.ARM.__at_0x02FC是什么意思
在Cortex-M0的启动代码中,有以下几句:CRP_Level EQU 0xFFFFFFFF
IF :LNOT::DEF:NO_CRP
AREA |.ARM.__at_0x02FC|, CODE, READONLY
CRP_Key DCD CRP_Level
ENDIF
请问|.ARM.__at_0x02FC是什么意思 at 0x02FC, CRP
代码保护配置。 你看一下map表,应该在0x2fc这个位置放了CRP_Key这个变量。 aozima 发表于 2013-3-20 14:00 static/image/common/back.gif
at 0x02FC, CRP
代码保护配置。
我也明白是加密设置,我是问.ARM.__at 0x02FC是什么意思 xinzha 发表于 2013-3-20 14:44 static/image/common/back.gif
你看一下map表,应该在0x2fc这个位置放了CRP_Key这个变量。
这个我明白,我是问.ARM.__at_0x02FC是什么意思 本帖最后由 lymbgd 于 2013-3-20 15:30 编辑
我只找到这个
lymbgd 发表于 2013-3-20 15:18 static/image/common/back.gif
这个我明白,我是问.ARM.__at_0x02FC是什么意思
如果情况确实是这样的,那就已经很明显了。这句话的意思是0x2fc这个位置的内容是下面那句话,并且是arm语句。这属于汇编范畴的,每种汇编器的规定不一样,你得根据你所使用的汇编器去查找。 AT直译意思是: “在”
就是在这个位置放一个这样的数据,这个数据的意义刚好是MCU的代码保护配置。 |.ARM.__at_0x02FC|
这只是一个符号,左右两边各有一个竖,是因为这儿符号不是字母开头。所以符号是:.ARM.__at_0x02FC
里面的点,还有at,都只是一串字符里的字符,没有特殊意义。但能让你初步估计此符号描述的位置是在: 0x02FC,而它在这里的作用仅仅是利于理解,注释
该符号表示下面内容作为一个独立的代码块,直到下一个AREA定义为止。
该代码块的实际位置,与该符号描述的 0x02FC 没有半毛钱关系,而是由MDK中的分散加载脚本定义的。分散加载脚本则是连接器的运行参数。
应该说的比较明白了。 ; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x00000000 0x00020000{ ; load region size_region
ER_IROM1 0x00000000 0x00020000{; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x10000000 0x00002000{; RW data
.ANY (+RW +ZI)
}
}
这里看不出来啊,为什么可以加载到0x02FC 本帖最后由 lymbgd 于 2013-3-21 15:16 编辑
好像有点明白了
Image Symbol Table
Local Symbols
Symbol Name Value Ov Type SizeObject(Section)
RESET 0x00000000 Section 188startup_lpc122x.o(RESET)
../clib/angel/boardlib.s 0x00000000 Number 0boardinit3.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0boardinit2.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0boardinit1.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0boardshut.o ABSOLUTE
../clib/angel/handlers.s 0x00000000 Number 0__scatter_zi.o ABSOLUTE
......
.ARM.__at_0x02FC 0x000002fc Section 4startup_lpc122x.o(.ARM.__at_0x02FC)
.bss 0x10000000 Section 96libspace.o(.bss)
HEAP 0x10000060 Section 0startup_lpc122x.o(HEAP)
STACK 0x10000060 Section 512startup_lpc122x.o(STACK)
Heap_Mem 0x10000060 Data 0startup_lpc122x.o(HEAP)
Stack_Mem 0x10000060 Data 512startup_lpc122x.o(STACK)
__initial_sp 0x10000260 Data 0startup_lpc122x.o(STACK)
lymbgd 发表于 2013-3-21 15:12
好像有点明白了
Image Symbol Table
启动代码里类似这样的代码放的,
IF :LNOT::DEF:NO_CRP
AREA |.ARM.__at_0x02FC|, CODE, READONLY
CRP_Key DCD 0xFFFFFFFF
ENDIF
页:
[1]