LR_IROM1 0x08000000 0x00040000 { ; load region size_region
ER_IROM1 0x08000000 0x00040000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x0000C000 { ; RW data
.ANY (+RW +ZI)
}
}
如上,程序的起始地址是 0x08000000,是否可以加入一个预编译语句,在某些编译条件下(比如将程序编译为APP2)将该地址更改为 0x08002000 ?貌似 #ifdef 不好使啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一般情况下,复制个demo工程就可以开始你的项目了。但是还有些深入的开发者需求是超出一般情况的。
比如一个项目用掉的内存为data段,bss段,剩下了许多内存;要求把剩余的内存都自动用作malloc的heap空间。
这时候就需要打通链接文件和汇编来共同实现了。
再比如,ARM9带有MMU,需要对内存进行分类,配置有无cache,写缓存之类的。这些不同分类的内存段用于不同的目的,这就需要统一的宏定义,用于初始化代码和链接脚本文件,方便修改管理。
收藏了,谢谢!
一周热门 更多>