TI中文支持网
TI专业的中文技术问题搜集分享网站

关于TMS320F28335的CMD文件里面的SARAM问题

描述事实:

28335的官方技术文档上说:SARAM的大小总共有34K *16 。但是我从28335的内存映射表上查到:0x008000~0x010000这段连续的空间是SARAM,这段空间大小共计32K*16。另外在0x3F8000~0x3FC000这段连续的地址是SARAM,这段空间大小为16K*16。

问题1. 官方技术文档上说的SARAM的大小为34K*16 是怎么计算出来?

问题2. 0x008000~0x010000这段空间与0x3F8000~0x3FC000有什么关系?写了一程序,程序里面调用了API函数,在CMD文件里面把API函数放在Flash里面,执行API函数的时候在拷贝到 0x008000~0x010000这段SARAM空间里面。同时我在CMD文件里面并没有定义0x3F8000~0x3FC000这片区域,也就不存在放任何数据或者程序。运行程序时我发现0x008000~0x00C000这段空间里面内容竟然映射到0x3F8000~0x3FC000这段区域内???这么理解这个问题??反过来我验证0x3F8000~0x3FC000这段空间里面的数据是否会映射到0x008000~0x00C000这段空间里面,我在上面的说的程序里面加上了0x3F8000~0x3FC000这段空间的定义性质为存放我的数组数据,然后我在主程序开始就给我定义的数据里面赋值,我发现我赋的值是写到0x3F8000~0x3FC000这段空间里里面,但奇怪的0x008000~0x00C000这段空间的竟然存放了我刚刚写到0x3F8000~0x3FC000的数据,怎么理解??后来程序开始在0x008000处开始执行 API函数,竟然把我刚刚写到0x3F8000~0x3FC000这里面的数据给擦除了,这又怎么理解???

求高手解惑!!!万分感谢!!

Eric Ma:

1. L0~L7加起来是32K, 算法M0,M1各1K,加起来就是34K了。

2. L0~L3是双映射,就是一个RAM内容,两个地址,一般只用一个地址就好了,0x80000~0xc0000, 高地址不用去管它,这个高地址区域是为了和F240x兼容的。

ERIC

描述事实:

28335的官方技术文档上说:SARAM的大小总共有34K *16 。但是我从28335的内存映射表上查到:0x008000~0x010000这段连续的空间是SARAM,这段空间大小共计32K*16。另外在0x3F8000~0x3FC000这段连续的地址是SARAM,这段空间大小为16K*16。

问题1. 官方技术文档上说的SARAM的大小为34K*16 是怎么计算出来?

问题2. 0x008000~0x010000这段空间与0x3F8000~0x3FC000有什么关系?写了一程序,程序里面调用了API函数,在CMD文件里面把API函数放在Flash里面,执行API函数的时候在拷贝到 0x008000~0x010000这段SARAM空间里面。同时我在CMD文件里面并没有定义0x3F8000~0x3FC000这片区域,也就不存在放任何数据或者程序。运行程序时我发现0x008000~0x00C000这段空间里面内容竟然映射到0x3F8000~0x3FC000这段区域内???这么理解这个问题??反过来我验证0x3F8000~0x3FC000这段空间里面的数据是否会映射到0x008000~0x00C000这段空间里面,我在上面的说的程序里面加上了0x3F8000~0x3FC000这段空间的定义性质为存放我的数组数据,然后我在主程序开始就给我定义的数据里面赋值,我发现我赋的值是写到0x3F8000~0x3FC000这段空间里里面,但奇怪的0x008000~0x00C000这段空间的竟然存放了我刚刚写到0x3F8000~0x3FC000的数据,怎么理解??后来程序开始在0x008000处开始执行 API函数,竟然把我刚刚写到0x3F8000~0x3FC000这里面的数据给擦除了,这又怎么理解???

求高手解惑!!!万分感谢!!

mangui zhang:

回复 Eric Ma:

这一块知识   大师有时间还是多分享一些 

双映射是不是双口RAM啊

赞(0)
未经允许不得转载:TI中文支持网 » 关于TMS320F28335的CMD文件里面的SARAM问题
分享到: 更多 (0)