[ZLG-ARM] 如何使用内部flash永久性保存参数?

[复制链接]
4217|15
 楼主| jintonglei 发表于 2007-5-21 11:06 | 显示全部楼层 |阅读模式
我想问的是,在没有外部RAM,ROM扩展的情况下,我可以使用那些地址段?为什么?<br />请高人指点.
computer00 发表于 2007-5-21 11:18 | 显示全部楼层

什么型号的芯片?只要可以写,又不破坏原来的程序即可

也可以外接I2C的EEPROM,也不麻烦。
 楼主| jintonglei 发表于 2007-5-21 15:56 | 显示全部楼层

如果确实想用内部的,怎么半?

  
ANCHORMAN 发表于 2007-5-21 16:25 | 显示全部楼层

看看IAP的资料吧

ZLG网站上有
平常人 发表于 2007-5-21 21:05 | 显示全部楼层

00说得很清楚了,哪里都可以,只要不与你的程序冲突即可

  
andrew.xu 发表于 2007-5-22 10:16 | 显示全部楼层

对的,IAP编程

  
wangchch 发表于 2007-5-22 11:16 | 显示全部楼层

感谢!那怎么判断一定不会与程序冲突呢?

  
realrots 发表于 2007-5-22 14:15 | 显示全部楼层

看看你的程序有多大啊,也不要占用顶端的RAM就可以了

  
computer00 发表于 2007-5-22 14:27 | 显示全部楼层

你可以将一部分ROM保留起来,要注意的是至少一个扇区

不然没办法擦除
tenderair 发表于 2007-5-31 15:34 | 显示全部楼层

楼上的,请问

请问如何保留一部分的flash啊,就是如何划分才不会被程序所占用呢?用什么语句啊?和c语言一起编程能直接用么?<br />
tenderair 发表于 2007-6-1 14:49 | 显示全部楼层

大侠们,继续啊!

请问一下在keil&nbsp;uvision3编译环境下,如何调用iap函数呢,我照着周立功上面的例子在c语言程序中加入如下一段程序,可是根本编译不过阿,有谁做过这方面的,请指教,我就是想向flash中保存数据,读数据啊,555怎么这么难呢<br />#define&nbsp;IAP_FCCLK&nbsp;48000<br />#define&nbsp;IAP_ENTER_ADR&nbsp;0x7ffffff1<br />INT32U&nbsp;paramin[8];<br />INT32U&nbsp;paramout[8];<br />main(void)<br />{<br />//<br />*****<br />&nbsp;SelSector(15,15);<br />&nbsp;EraseSector(15,15);<br />&nbsp;SelSector(15,15);<br />&nbsp;RamToFlash(DestAdrr,src,512);<br />&nbsp;while(1);<br /><br /><br />}<br />INT32U&nbsp;SelSector(INT8U&nbsp;sec1,INT8U&nbsp;sec2)<br />{<br />&nbsp;paramin[0]=IAP_SELECTOR;<br />&nbsp;paramin[1]=sec1;<br />&nbsp;paramin[2]=sec2;<br />&nbsp;(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);<br />&nbsp;return(paramout[0]);<br />&nbsp;}<br /><br />INT32U&nbsp;EraseSector(INT32U&nbsp;sec1,INT32U&nbsp;sec2)<br />{<br />paramin[0]=IAP_ERASESECOTR;<br />paramin[1]=sec1;<br />paramin[2]=sec2;<br />paramin[3]=IAP_FCCLK;<br />(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);<br />return(paramout[0]);<br />}<br /><br />INT32&nbsp;RamToFlash(INT32U&nbsp;dst,INT32U&nbsp;src,INT32U&nbsp;no)<br />{<br />paramin[0]=IAP_RAMTOFLASH;<br />paramin[1]=dst;<br />paramin[2]=src;<br />paramin[3]=no;<br />paramin[4]=IAP_FCCLK;<br />(*(void(*)())IAP_ENTER_ADR)(paramin,paramout);<br />return(paramout[0]);<br />}<br />
wangchch 发表于 2007-6-3 15:23 | 显示全部楼层

我再顶一会!!

  
yjtks 发表于 2007-6-3 16:40 | 显示全部楼层

回复

很容易的&nbsp;可以参考C:KeilARMFlashLPC_IAP_128LPC_IAP_128.Uv2
tenderair 发表于 2007-6-4 08:19 | 显示全部楼层

大哥,谢谢啊!

太谢谢了,我还没有看呢,看看有不明白的再问你啊!
tenderair 发表于 2007-6-6 14:19 | 显示全部楼层

还是存在些问题!

我现在是用仿真器可以看到我的数据已经写入相应的FLASH扇区内了,问题是,问什么我使用别的程序上电去读这段地址时发现相应FLASH扇区内的数据变了呢?这是为什么呢,FLASH应该是掉电保存的不是么?<br />大家帮帮我啊!
tenderair 发表于 2007-6-6 14:52 | 显示全部楼层

呵呵,问题已经解决的

是我自己设置的仿真器的问题!呵呵呵呵,谢谢大家的帮忙!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

12

帖子

0

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