常数数组如何放到FLASH中

[复制链接]
5284|11
 楼主| clz918 发表于 2008-7-9 09:17 | 显示全部楼层 |阅读模式
各位;<br />&nbsp;&nbsp;&nbsp;&nbsp;现在我想把一个6000个16位数的常数数组放到FLASH中,不知该如何操作呢,我用的是28015和2812,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;谢谢
snakeemail 发表于 2008-7-9 09:55 | 显示全部楼层

好像很麻烦,存在flash里运行是还是要读到RAM中

用const定义没有用,TI有一个相关的文档
 楼主| clz918 发表于 2008-7-9 11:17 | 显示全部楼层

回snakeemail

&nbsp;&nbsp;我是想定义一个常数大的数组,因为RAM放不下,所以只能放到FLASH,至于到底是在FLASH运行还是在RAM运行我并不在乎,snakeemail&nbsp;兄有什么合适的方案吗<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;谢谢
snakeemail 发表于 2008-7-9 12:09 | 显示全部楼层

估计只能读一部分出来到ram

  
rivflood 发表于 2008-7-11 16:10 | 显示全部楼层

用28系列的没有问题

可以存在flash里,只要你的flash够用,如果用c语言的话,你定义的常数数组是放在program区中的,program区在cmd定义的时候定义在flash中就可以了
snakeemail 发表于 2008-7-11 22:11 | 显示全部楼层

楼上怎么定义的?给个例子。

24中我用const&nbsp;int&nbsp;a[400],烧到flash中无法运行程序,dsp为了快速运行,数据都放在ram中,加快运行速度。要是数据从flash中读出,会降低效率
hotpower 发表于 2008-7-11 22:33 | 显示全部楼层

倒塌了~~~dsp直接寻址很方便~~~

自己找吧~~~ <br /> 相关链接:<a href='http://blog.**/hotpower/125030/message.aspx'>http://blog.**/hotpower/125030/message.aspx</a>
snakeemail 发表于 2008-7-14 11:35 | 显示全部楼层

大叔,看不懂你blog你写的,好歹也写几个字说明一下

  
rivflood 发表于 2008-7-14 13:05 | 显示全部楼层

24系列的烧到flash中的数据要用汇编指令来操作

如果用c语言定义的数组,程序在执行的时候会从flash中copy到ram中运行,这个是由24系列的硬件结构决定的。<br />如果不想将flash中的数据copy到ram中运行,可以在汇编里定义数组,在c语言中通过嵌入汇编来访问
hotpower 发表于 2008-7-14 13:14 | 显示全部楼层

俺虽没用过24系列,但俺不相信楼上所述~~`俺从不信邪~~~

  
lianshumou 发表于 2008-7-14 16:39 | 显示全部楼层

给个够简单的

&nbsp;&nbsp;&nbsp;.econst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&gt&nbsp;FLASH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;=&nbsp;0<br /><br />或者是:&nbsp;&nbsp;&nbsp;&nbsp;.const&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&gt&nbsp;FLASH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;=&nbsp;0<br /><br />在CMD文件时指定所有常数都在flash中就好了!&nbsp;虽然会降临其它常数的执行效率,但楼主不要求效率的话,这是个很好的方法
snakeemail 发表于 2008-7-15 09:37 | 显示全部楼层

编译器的pdf上讲的,

<br />If&nbsp;your&nbsp;system&nbsp;configuration&nbsp;does&nbsp;not&nbsp;support&nbsp;allocating&nbsp;an&nbsp;initialized&nbsp;section&nbsp;such&nbsp;as&nbsp;.const&nbsp;to&nbsp;data&nbsp;memory,&nbsp;then&nbsp;you&nbsp;must&nbsp;<font color=#FF0040>allocate&nbsp;the&nbsp;.const&nbsp;section&nbsp;to&nbsp;load&nbsp;in&nbsp;program&nbsp;memory&nbsp;and&nbsp;run&nbsp;in&nbsp;data&nbsp;memory</font>.&nbsp;At&nbsp;boot&nbsp;time,&nbsp;copy&nbsp;the&nbsp;.const&nbsp;section&nbsp;from&nbsp;program&nbsp;to&nbsp;data&nbsp;memory.&nbsp;The&nbsp;following&nbsp;sequence&nbsp;shows&nbsp;how&nbsp;you&nbsp;can&nbsp;perform&nbsp;this&nbsp;task:<br />不知道楼上的方法是否可以用,常数可以分配在program&nbsp;memory,即flash中,但是运行还是要放到data memory中.<br />28是可以用const定义数组,有兴趣看一下.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

336

帖子

3

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