[ZLG-ARM] 如何在片外指定的RAM定义数组?

[复制链接]
2760|4
 楼主| lcyong 发表于 2007-2-26 17:28 | 显示全部楼层 |阅读模式
RAM, AD, TI, IO, se
我的板子上有两个片外RAM。一片是大容量的RAM,分配地址为0x80000000,用作仿真和存放临时数据;一片是小容量的RAM,分配地址为0x83000000,并有电池备用电源,用作存放掉电不丢失的数据。在小RAM中定义单个变量可以按照:<br />#define&nbsp;&nbsp;NVMARK0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*((volatile&nbsp;unsigned&nbsp;char&nbsp;*)&nbsp;0x83000000))来实现。<br /><br />但是如何在小RAM中定义数组呢?是否可以用#pragma&nbsp;DATA_SECTION&nbsp;来实现?由于没有ADS编译器的说明文档,不知道在ADS环境中怎么用#pragma&nbsp;DATA_SECTION.<br /><br />请大家支招!<br /><br />
bqt 发表于 2007-2-26 21:22 | 显示全部楼层

re

1.&nbsp;使用指针<br />&nbsp;&nbsp;&nbsp;如:volatile&nbsp;uint32&nbsp;*buf;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;=&nbsp;(volatile&nbsp;uint32&nbsp;*)0x83000000;<br />&nbsp;&nbsp;&nbsp;只要保证不越界,就可以把buf当做数组来用了,如buf[0],buf[1]<br /><br />2.&nbsp;使用分散加载<br />&nbsp;&nbsp;&nbsp;直接将该数据段的位置指定在0x83000000<br /><br />3.&nbsp;&nbsp;.......<br /><br />4.&nbsp;&nbsp;.......<br /><br />................
 楼主| lcyong 发表于 2007-2-26 21:28 | 显示全部楼层

分散加载不错

能不能说得详细点,举个应用的例子,比如如何将数据定义在分散加载段
 楼主| lcyong 发表于 2007-2-26 21:29 | 显示全部楼层

对于多维数组还是用分散加载好吧

  
zlgARM 发表于 2007-2-27 09:09 | 显示全部楼层

RE

参考一下我们提供的ADS模板。<br /><br />模板里的分散加载文件有把堆栈段放到某个地址的RAM的例子,您参考一下就明白如何做到了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

32

帖子

0

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