首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

MDK疏散加载文件编写,2段加载域

2013-09-07 
MDK分散加载文件编写,2段加载域用的芯片是STM32 ,请教:我想编写2个应用程序(2段代码),一个放在FLASH开始的

MDK分散加载文件编写,2段加载域
用的芯片是STM32 ,请教:
我想编写2个应用程序(2段代码),一个放在FLASH开始的0x08000000处,另一个放在0x08005000处,然后自己编写分散加载文件,如下所示:
MDK疏散加载文件编写,2段加载域
编译的时候老是提示:
MDK疏散加载文件编写,2段加载域
是编译器没有找到第二段代码还是什么问题?调试的时候,我想跳转到0x08005000,程序也没有跳过去,这是什么问题?忘高手解答
谢谢了! stm32 分散加载 2个加载域
[解决办法]
建议你不要把两个应用程序放一个工程中编译。

如果分开编译的话,能编译通过第一个,你再同样做第二个。

两个工程的分散加载脚本差不多,只是加载域不一样。你这图片没法复制下来.....
不过看你改出来的脚本,感觉你应该会写的,就不敲出来了。

我项目也会用到这种功能,但是我是分开两个程序的工程编译和烧写,这样做是没问题,放一起编译,我没试过,不敢说放一起就不行。
[解决办法]
1. 首先那个警告是说在文件里没有找到有效的.RO段数据,也就是说,编译器链接0x08005000地址的内容时发现这三个对象文件里已经没有可链接的内容了。

2. 因为你在0x08000000里已经.ANY(+RO)了,导致这三个文件中的RO段代码都放到那里去了。

3. 这个推荐你用两个工程来做,这样两个程序相关性比较小,相互之间不会干扰。

4. 如果一定要用一个工程来做,脚本中就不能随便用.ANY(+RO),你可以一个个列出来,包括.ANY(+RW,+ZI)也一样,否则,两个工程的代码或数据会混在一起分配,可能会造成许多的麻烦。

热点排行