打印
[ZLG-ARM]

如何在片外指定的RAM定义数组?

[复制链接]
1554|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lcyong|  楼主 | 2007-2-26 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RAM, AD, TI, IO, se
我的板子上有两个片外RAM。一片是大容量的RAM,分配地址为0x80000000,用作仿真和存放临时数据;一片是小容量的RAM,分配地址为0x83000000,并有电池备用电源,用作存放掉电不丢失的数据。在小RAM中定义单个变量可以按照:
#define  NVMARK0     (*((volatile unsigned char *) 0x83000000))来实现。

但是如何在小RAM中定义数组呢?是否可以用#pragma DATA_SECTION 来实现?由于没有ADS编译器的说明文档,不知道在ADS环境中怎么用#pragma DATA_SECTION.

请大家支招!

相关帖子

沙发
bqt| | 2007-2-26 21:22 | 只看该作者

re

1. 使用指针
   如:volatile uint32 *buf;
       buf = (volatile uint32 *)0x83000000;
   只要保证不越界,就可以把buf当做数组来用了,如buf[0],buf[1]

2. 使用分散加载
   直接将该数据段的位置指定在0x83000000

3.  .......

4.  .......

................

使用特权

评论回复
板凳
lcyong|  楼主 | 2007-2-26 21:28 | 只看该作者

分散加载不错

能不能说得详细点,举个应用的例子,比如如何将数据定义在分散加载段

使用特权

评论回复
地板
lcyong|  楼主 | 2007-2-26 21:29 | 只看该作者

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

使用特权

评论回复
5
zlgARM| | 2007-2-27 09:09 | 只看该作者

RE

参考一下我们提供的ADS模板。

模板里的分散加载文件有把堆栈段放到某个地址的RAM的例子,您参考一下就明白如何做到了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

32

帖子

0

粉丝