你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

keil分散加载文件

[复制链接]
哈佛祖安智 发布时间:2017-12-25 14:59
通过使用分散加载机制,可以为链接器指定映像的内存映射。分散加载为您提供了对映像组建分组和位置的全面控制。分散加载可以用于简单映像,但它通常仅用于具有复杂内存映射的的映像,即多个区在加载和执行时分散在内存映射中。

加载域:就是编译之后得到的二进制文件烧写到rom中的这一段区域。包括只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。
执行域:程序执行时的区域。比如:没有变动还是在ROM中RO段;被移到了RAM中的RW段和ZI段。


先看一下分散加载文件的内容:
LR_IROM1 0x08000000 0x00080000  {    ; 加载域:名字 + 地址 + 大小
  ER_IROM1 0x08000000 0x00080000  {  ; 执行域:名字 + 地址 + 大小
   *.o (RESET, +First) ; RESET段(因此程序从RESET开始执行)
   *(InRoot$$Sections) ; __main的代码段(用于将加载域转移到执行域)
   .ANY (+RO) ; 所有代码段
  }
  RW_RAM1 0x20000000 0x00010000  {  ; 执行域:名字 + 地址 + 大小
   .ANY (+RW +ZI) ; 所有RW段(.data)和ZI段(.bss)
  }
}

这一段的作用就是告诉链接器:按照以上的信息进行链接,__main也将根据这些信息进行转移。

转自http://blog.csdn.net/lushoumin/article/details/78885558

收藏 评论4 发布时间:2017-12-25 14:59

举报

4个回答
左岸右岸 回答时间:2017-12-25 17:09:31
还得在KEILMDK工具里进行设置,不然用户编写的.sct文件是无效的,在编译后会被覆盖掉
maxtch 回答时间:2017-12-25 17:20:24
这个还不如 GNU 套件来的简单……
哈佛祖安智 回答时间:2017-12-25 17:50:49
maxtch 发表于 2017-12-25 17:20
这个还不如 GNU 套件来的简单……

有链接吗

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版