[ZLG-ARM] 在外部定义绝对地址的数组,什么方法好?

[复制链接]
2806|5
 楼主| bjluhaijun 发表于 2008-4-23 22:16 | 显示全部楼层 |阅读模式
RAM, AD, TI, IO, AN
我用LPC2378接一个外部RAM,发现在外部RAM上定义数组不方便,查了一些帖子,大概有几种:<br />1、用指针:volatile&nbsp;INT32U&nbsp;*buf;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;=&nbsp;(volatile&nbsp;INT32U&nbsp;*)0x7fe00000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf[1]&nbsp;=&nbsp;0xdf;<br />2、分散加载:<br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;this_main_arry[1056]&nbsp;__at(0x21000000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LR_ROM1&nbsp;0x00200000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;load&nbsp;region<br />&nbsp;&nbsp;ER_ROM1&nbsp;0x00200000&nbsp;0x00004000&nbsp;&nbsp;{&nbsp;&nbsp;;&nbsp;load&nbsp;address&nbsp;=&nbsp;execution&nbsp;address<br />&nbsp;&nbsp;&nbsp;*.o&nbsp;(RESET,&nbsp;+First)<br />&nbsp;&nbsp;&nbsp;*(InRoot$$Sections)<br />&nbsp;&nbsp;&nbsp;.ANY&nbsp;(+RO)<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;RW_RAM1&nbsp;0x00210000&nbsp;0x00003000&nbsp;&nbsp;{&nbsp;&nbsp;;&nbsp;RW&nbsp;data<br />&nbsp;&nbsp;&nbsp;.ANY&nbsp;(+RW&nbsp;+ZI)<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;RW_IRAM1&nbsp;0x20000000&nbsp;0x10000000&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;.ANY&nbsp;(+RW&nbsp;+ZI)<br />&nbsp;&nbsp;}<br />}<br />我试了,编译通不过,我用KEIL&nbsp;3.<br /><br />最好能改一下分散加栽文件,直接可以用外部RAM了,<br />请教谁有好方法,谢谢!<br /><br />
netcalf 发表于 2008-4-25 14:41 | 显示全部楼层

指针的方式能保证这块内存不被编译系统使用么?

指针的方式能保证这块内存不被编译系统使用么?也就是说,运行的时候不会被其他变量使用么?
netcalf 发表于 2008-4-25 14:52 | 显示全部楼层

关于分散加载文件

关于分散加载文件,以前写的一个总结,希望有所帮助<br />http://devdiary.blog.sohu.com/52597162.html
 楼主| bjluhaijun 发表于 2008-4-28 16:57 | 显示全部楼层

感谢3楼

感谢3楼对分散加载的总结!
qguangdong 发表于 2008-4-28 17:17 | 显示全部楼层

*

好东西
hackdj 发表于 2008-5-2 16:31 | 显示全部楼层

iar for arm 直接绝对地址定位,不用分散加载

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

14

帖子

1

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