[ZLG-ARM] 如此的分散加载为什么内部RAM还不让开辟?

[复制链接]
1835|3
 楼主| Ice_River 发表于 2007-8-3 15:58 | 显示全部楼层 |阅读模式
ROM_LOAD&nbsp;0x80000000<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ROM_EXEC&nbsp;0x80000000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(vectors,&nbsp;+First)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ERAM1&nbsp;0x80002000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(MyStacks)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;STACKS_BOTTOM&nbsp;+0&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(StackBottom)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;STACKS&nbsp;0x80004000&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Stacks)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ERAM&nbsp;0x80030000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RW,+ZI)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;HEAP&nbsp;+0&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Heap)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;HEAP_BOTTOM&nbsp;0x80080000&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(HeapTop)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br />分散加载函数的目的是把使用的资源全部移到外部,然后在内部的SRAM中开辟一块空间,目的是使用IAP的时候做缓存。<br /><br />如下是函数一部分是使用指针开辟内部缓存的.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;volatile&nbsp;&nbsp;UINT32&nbsp;*&nbsp;&nbsp;&nbsp;WriteData&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteData=&nbsp;&nbsp;&nbsp;(UINT32*)0x40004000;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;128;&nbsp;i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清除内存<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteData=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />函数执行完此段代码后函数返回时&nbsp;跳到取指令终止!<br />
zlgARM 发表于 2007-8-3 18:24 | 显示全部楼层

Ice_River

您好:<br />&nbsp;&nbsp;&nbsp;&nbsp;用什么处理器?可以到我们公司网站上找该系列处理器里的最低型号的模板试试。
zlgARM 发表于 2007-8-4 06:42 | 显示全部楼层

Ice_River

您好:<br />&nbsp;&nbsp;&nbsp;已经注意您很久。您发了许多贴咨询您的个人项目技术问题,但我们并没有深入回复,您可能很有情绪。那么在这里稍作解释,我们的技术支持并未承诺就客户项目开发问题也进行深入支持(除非是和我们另有协议)。解决这类问题,需要一定的调试时间/精力,所以我们需要作一些取舍,请您理解,十分抱歉!<br />&nbsp;&nbsp;&nbsp;但是,提问者仍然可以善用我们强大的技术支持资源(我们的每一个技术支持后面,都是整个公司开发团队和整个公司数年的技术经验资源积累!!)来改善开发效率。但是这需要高效提问,这是唯一有效的方法。<br />&nbsp;&nbsp;&nbsp;其实,具体的项目问题完全转化为一般性的常规问题;复杂问题,可以归结为若干个形式简单的问题(如果不行,这说明提问者自己都不清楚自己的问题,那么别人从何帮起?);提问时,把自己的问题表述整通顺一些简明一些(连提问者自己都不认真,那么,试问别人还有没有必要去猜测提问者的含糊旨意?);把自己的代码风格整清晰一些、删除无关的细节,设计一个简明的Bug&nbsp;Demo(解答者累着,提问者自己却闲着,这样是否合适?)。<br />&nbsp;&nbsp;&nbsp;大大改善了我们的技术支持效率,不正也是大大改善您们的开发效率吗?&nbsp;&nbsp;&nbsp;
 楼主| Ice_River 发表于 2007-8-4 08:55 | 显示全部楼层

多谢周工!

&nbsp;&nbsp;&nbsp;&nbsp;说实话,刚来到这里的时候确实有(两个多月前),那个时候刚刚接触ARM&nbsp;用的是LPC2292(至今仍使用),后来研究您的东西多了才发现,原来有很多东西,已经超过了开发板技术支持的泛畴。所以就目前状况而言,涉及到情绪的东西已经很少了。多谢周工的建议,改!如果下次发帖不简明,或者不清晰,如果您有时间回一个“改”字即可。<br />&nbsp;&nbsp;&nbsp;&nbsp;原来的时候研究外围,CAN,UART,I2C以及OS2,基本的问题考虑后都能解决,现在涉及到启动程序,有的时候不知所措。望周工见谅!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

149

主题

1882

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部