[求助]数组放到flash中的问题和疑惑

[复制链接]
3640|4
 楼主| jiemnij 发表于 2007-7-25 10:29 | 显示全部楼层 |阅读模式
TI&nbsp;的2407<br />看网上的帖子..说要把const的数组放到flash中..必须在cmd设定<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.const&nbsp;&nbsp;&nbsp;:&nbsp;load=&nbsp;&nbsp;PROG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0,&nbsp;run&nbsp;=&nbsp;SARAM&nbsp;PAGE&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__const_run=.;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(c_mark)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(.const)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__const_length&nbsp;=&nbsp;.-__const_run;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />并且&nbsp;boot.asm哪里&nbsp;必须设置一个&nbsp;1<br /><br />我按照步骤做了..是可以把const&nbsp;char[]=&quot;asdf&quot;之类的放到flash中..<br />但是还&nbsp;有一些问题..想请教一下..<br /><br />问题一:<br />const&nbsp;放到flash中.运行的时候是在ram中..那么这样做.是不是意味这.<br />这些数组在rom和ram中同时在用了空间...<br />如果是..那么把数组定义在rom中的意义何在...<br /><br />问题二:<br /><br />rts.src中定义了__const_run,&nbsp;但是&nbsp;__const_run=.&nbsp;后面的&nbsp;&quot;.&quot;和<br />.&nbsp;-&nbsp;__const_run中的&quot;.&quot;&nbsp;就代表const启动地址??<br />如果是__const_length&nbsp;=&nbsp;.-__const_run;&nbsp;两个想减不是0了吗?<br /><br />另外&nbsp;(.c_mark)&nbsp;&nbsp;rts.src中有使用过..<br />但是为什么用(c_mark)没有&nbsp;&quot;.&quot;呢<br />而且cmd文件中好像没有分配这些空间..这些东西编译器自动分配????<br /><br />问题三:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.const&nbsp;&nbsp;&nbsp;:&nbsp;load=&nbsp;&nbsp;PROG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0,&nbsp;run&nbsp;=&nbsp;SARAM&nbsp;PAGE&nbsp;1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__const_run=.;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(c_mark)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*(.const)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__const_length&nbsp;=&nbsp;.-__const_run;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />{}中的东西&nbsp;那位大哥能不能详细讲一下..<br />只知道&nbsp;*(.const)&nbsp;把const文件分配到这段..其他的起始什么的有什么用<br />load&nbsp;=PROG&nbsp;和RUN&nbsp;=&nbsp;SARAM不是已经定位了吗??<br />另外我把{}里面的东西删除了好像&nbsp;也能把数组放到rom,&nbsp;取出来也是对的..&nbsp;
redskier 发表于 2007-7-25 11:07 | 显示全部楼层

回复主题:[求助]数组放到flash中的问题和疑惑

我这样做了还是放不进去,观看地址的值是,发现那一片rom还是全部是0;不知道怎么回事。最后只好还是去掉const,放到ram中。还有就是那个(.c_mark)好像是有.的
 楼主| jiemnij 发表于 2007-7-25 15:27 | 显示全部楼层

那位高人指点一下..........

那位高人指点一下..........
sesy 发表于 2007-8-27 10:14 | 显示全部楼层

搞不懂

怎么才能实现CONST数据只放在ROM中,用的时候指针指向该地址读取,而不是复制到RAM中呢?如果复制,那就不如直接放RAM里了
mr.king 发表于 2007-8-28 18:51 | 显示全部楼层

据说TI的C编译器不支持CONST直接在FLASH中存取

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

本版积分规则

3

主题

48

帖子

0

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