欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 03:15:10 责任编辑: Author_N1

 

MDK分散加载文件编写,2段加载域
用的芯片是STM32 ,请教:
我想编写2个应用程序(2段代码),一个放在FLASH开始的0x08000000处,另一个放在0x08005000处,然后自己编写分散加载文件,如下所示:

编译的时候老是提示:

是编译器没有找到第二段代码还是什么问题?调试的时候,我想跳转到0x08005000,程序也没有跳过去,这是什么问题?忘高手解答
谢谢了!
--参考方法--
建议你不要把两个应用程序放一个工程中编译。

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

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

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

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

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

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

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:15:10
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20134/
本文WWW.DOC100.NET DOC100.NET版权所有。