首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVR链接器脚本:为什么在0x60启动数据内存?

问AVR链接器脚本:为什么在0x60启动数据内存?
EN

Stack Overflow用户
提问于 2018-01-15 07:32:00
回答 1查看 290关注 0票数 0

我对链接器脚本没有太多的经验,所以可能我只是误解了这里的某些东西。静态随机存取存储器( ATmega32u4 )的LD链接器脚本(avr5.x)指定数据内存( 0x800060 )从avr5.x开始。我知道0x800000只是编译器用于静态随机存取存储器指针的特殊偏移量,但是为什么要使用0x60作为内存的基础呢?ATmega32u4数据表显示,0x60是外部I/O寄存器的开始,而静态随机存取存储器实际上是从0x100开始的。这不是意味着当.data段被复制到静态随机存取存储器时,外部I/O寄存器将被破坏吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-15 10:59:20

显然,如果您通过它调用avr-ld,这就是GCC要说明的问题。根据您传递给-mmcu=的内容,GCC会覆盖.data部分的虚拟地址。如果直接与avr-ld链接,则.data部分位于默认0x800060。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48255235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档