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

keil分散加载文件

[复制链接]
Stm32McuLover 发布时间: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 套件来的简单……
Stm32McuLover 回答时间:2017-12-25 17:50:49
maxtch 发表于 2017-12-25 17:20
这个还不如 GNU 套件来的简单……

有链接吗

所属标签

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