历史上的今天
返回首页

历史上的今天

今天是:2025年03月08日(星期六)

2019年03月08日 | STM32分散加载文件

2019-03-08 来源:eefocus

通过使用分散加载机制,可以为链接器指定映像的内存映射。分散加载为您提供了对映像组建分组和位置的全面控制。分散加载可以用于简单映像,但它通常仅用于具有复杂内存映射的的映像,即多个区在加载和执行时分散在内存映射中。


加载域:就是编译之后得到的二进制文件烧写到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也将根据这些信息进行转移。



推荐阅读

史海拾趣

中科芯(CKS)公司的发展小趣事

在技术创新方面,中科芯不断推出具有竞争力的新产品。其中,CKS32系列MCU是公司近年来推出的一款高性能微控制器产品。该产品具有高可靠性、高兼容性和高性价比的特点,在市场上广受好评。在苏州先进技术成果交易大会上,CKS32系列MCU以其卓越的性能和广泛的应用领域吸引了众多关注。该产品的推出不仅提升了中科芯在微控制器领域的市场地位,也为中国电子行业的发展注入了新的活力。

富芯森美(FUXINSEMI)公司的发展小趣事

为了进一步提升公司的竞争力和市场地位,富芯森美积极寻求资本市场的支持。通过上市融资等方式,公司获得了充足的资金支持,为技术研发、市场拓展和产能扩张提供了有力保障。同时,资本市场的关注也进一步提升了富芯森美的品牌价值和市场影响力。在资本市场的助力下,富芯森美实现了快速发展,成为了电子行业中一颗璀璨的明星。

General Instrument Optoelectronics公司的发展小趣事
如果电子琴内部电源电路出现故障,应请专业人员进行检查和维修。
DCD [Digital Core Design]公司的发展小趣事

随着技术的不断成熟和产品线的日益丰富,DCD公司开始着手拓展市场。公司积极参与各类行业展会,与国内外客户建立了广泛的联系。同时,公司还加大了品牌推广力度,通过线上线下多种渠道提高品牌知名度。经过几年的努力,DCD公司的产品在市场上逐渐获得了认可,公司也因此在电子行业中崭露头角。

ASPEED Technology公司的发展小趣事

自成立以来,ASPEED Technology一直致力于自主创新技术的研发与客户需求的快速响应。公司拥有一支专业的研发团队,不断推出具有竞争力的新产品和解决方案。同时,ASPEED还积极拓展全球市场,与众多知名企业和机构建立了合作关系,为公司的发展奠定了坚实的基础。正是这种持续的创新与研发精神,使得ASPEED在电子行业中不断发展壮大,成为了一家备受瞩目的企业。

以上五个故事均基于ASPEED Technology公司发展起来的相关事实,展现了公司在并购、产品创新、合作研发等方面的努力和成果。这些故事不仅反映了ASPEED在电子行业中的成长轨迹,也展示了其不断追求卓越、推动行业发展的决心和实力。

ERA Transformers公司的发展小趣事

为了保持技术领先地位和市场竞争力,ERA Transformers公司非常重视创新与研发工作。公司每年都会投入大量资金用于新产品的研发和技术创新。在一次研发项目中,公司成功开发出了一种具有超高能效和极低损耗的新型变压器。这款产品的问世立即引起了市场的广泛关注,并成功获得了多项国内外专利。持续的创新与研发使得ERA Transformers公司在电子行业中始终保持着领先地位。

问答坊 | AI 解惑

菜鸟请教!多开关控制多个发光二极管C程序

  要求:按下开关灯亮,断开开关灯灭。 我用switch语句,按下开关灯亮了,可断开开关灯就是不灭,我改了n次了它还是不灭,我已经拿它没办法了,求哥哥们给个C语言的程序,谢谢!   比如:按k1,led1亮;按k2,led2与led3亮;按 ...…

查看全部问答>

新手遇到的问题

这几天我有重新再论坛里瞎转悠了,发现以前很好很老的帖子有浮出水面了,但是当我看到下面好几十楼的回复我蒙了,我不知道里面是否有别人回复的资料,所以我就一口气翻了几十楼。这一点感觉很不方便,希望管理员可以吧那些精华和置顶的帖子里的较好 ...…

查看全部问答>

欢迎s3c6410爱好者加入超级群67958848

欢迎s3c6410爱好者加入超级群67958848…

查看全部问答>

I2C_IOControl 传一个数组出来,老不成功,郁闷死了

BOOL I2C_IOControl(         DWORD context, DWORD code, BYTE *pInBuffer, DWORD inSize, BYTE *pOutBuffer,         DWORD outSize, DWORD *pOutSize ) 里面定义了一个BYTE *str;然后给他空间,也 ...…

查看全部问答>

OK2440 DNW下载内核文件(nk.bin)

    有没有哪位高人用过OK2440开发板?小弟我刚开始学习,遇到很奇怪的问题,就是使用DNW的USB下载内核文件nk.bin或者nk.nb0时,一直提示checksum error!MEM:1502 DN:200 Invalid BIN file signature!24,d0,24,6c,af,d0,24   &nbs ...…

查看全部问答>

CE5.0支持MIDI吗?

CE5.0支持MIDI吗?。。。。。…

查看全部问答>

访问允许异常(section permission fault)

Hi,Dear all, 我在使用Hms30c7202过程中遇到一个难题,我使用的内核是2.6.13.4,大多数能够正常启动运行,个别出现不能启动情况。打印DEBUG信息,非正常设备启动失败,打印: Kernel panic - not syncing: No init found.  Try passi ...…

查看全部问答>

sqlite3如何建库,如何读?

从网上找了个sqlite3.exe,就这一个文件, 直接双击,就是sqlite> 在网上查了一下,建库有好多的方法,什么$,sqlite3 xxx.db等, 执行就报sql error。 直接create table .....OK。 insert .......OK。 .exit以后再打开sqlite3.exe时,刚才建 ...…

查看全部问答>

求救?我在PB定制WINCE内核的时候出现了一个错误

我在PB4.2下定制WINCE,build时出现1个错误,系统提示参考WINCE420目录下的build.err文件,文件的内容如下: Starting sysgen phase for project ( common ) Found localized resources for Languages ( 0404 0407 040C 0410 0411 0412 0413 041 ...…

查看全部问答>

我的应急灯经验

我做的比较晚,现在才发表一下自己的见解。真的很感谢EEWORLD能提供这样的机会,让我们获得好多的知识。 在做应急灯的过程中,我主要能获得的就是在设计电路中自己的一点小小经验吧。 在到设计电路中,我都是拿一个集成模块,根据标准电路来设计 ...…

查看全部问答>