AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
--------------------------------------------------
In a source file, the AREA directive marks the start of a section. This directive names the section and sets its attributes. The attributes are placed after the name, separated by commas.---------------------------------------------------
这儿Stack_Mem STACK 地址会相同
0x2000ba28
只是长得像而已
请问一下,栈指针的地址,堆指针的在RAM中的具体位置,编译过后,应该是确定的吧?
那么在内存地址 0x2000 0000--0x2001 FFFF中的哪个地址?
不是太懂
我的理解:
>write_data_buf 0x2000ba28
这是全局变量write_data_buf的指针位置,大小为1024字节
>STACK 0x2000be28
这是栈指针的位置,大小为16384字节
STACK是段地址吧(其实这个section里只有栈...)
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
--------------------------------------------------
In a source file, the AREA directive marks the start of a section. This directive names the section and sets its attributes. The attributes are placed after the name, separated by commas.---------------------------------------------------
这儿Stack_Mem STACK 地址会相同
栈空间的起始地址,虽然每次编译时,不一样,但是,一旦编译之后就应该确定。
1、上述map文件中,RAM地址 0x2000 be28 应该是栈的起始地址;
2、栈空间是 16384 字节;
3、栈是向地址生长,那么栈的结束地址应该是 0x2000 7E28;
问题:在栈空间:0x2000 7E28 -- 0x2000 be28 这两者的RAM空间中,怎么会有
4、全局变量在编译后,就已经确实,在RAM空间的全局区。
定义1个section,叫STACK.
里面有一个数组(一块ram),叫Stack_Mem[SIZE].
栈的设置要代码实现.
map文件并不知道它是栈(STACK只是名字而已,跟代码对应)