[ZLG-ARM] lpc2134的IAP问题,请教各位大哥.

[复制链接]
 楼主| shixi1021 发表于 2007-1-19 12:00 | 显示全部楼层 |阅读模式
小弟刚学ARM,有很多问题需要各位大哥帮助,先谢过了!<br />我想在2134中的FLASH留出一个扇区保存参数,要求能在运行中随时修改,还要能断电保存,用IAP可以吗?如果用IAP,可以从固定FLASH地址读,我怎样才能知道参数在运行中RAM的地址?怎样才能实现随时修改参数?<br />看了本坛的很多关于这方面的贴子,知道有很多人遇到和我一样的问题,只是上面没有看到解决的方法,周工能不能抽空给我们这些初学者讲一下.
 楼主| shixi1021 发表于 2007-1-19 13:47 | 显示全部楼层

就没有人顶一下吗?

  
huanhuan03 发表于 2007-1-19 16:02 | 显示全部楼层

关于IAP

可以用IAP&nbsp;的<br />你可以做一个结构体在内存中,把所有的参数都包含进去,修改结构体中的内容,然后整个内存作为一个缓存IAP到FLASH中<br />之所以要做一个结构体,是因为存在一个字节对齐的问题,查一些相关资料就明白了<br />对于IAP升级,我目前作的是在启动文件中,必须把整个程序搬到RAM中,否则的话不能升级<br />手册上说,IAP的时候FLASH不能读写,不知道是整个FLASH还是当前读写的那一块FLASH,我目前的试验证明是整个FLASH,但如果是这样的话,程序程度就不能大于32K,很受限制,希望有证明只是当前擦写的FLASH的高人来说说<br />好好努力了<br />
 楼主| shixi1021 发表于 2007-1-19 19:42 | 显示全部楼层

谢谢,可我怎样才能知道内存中结构体的地址了?

不知道地址也就用不了IAP了啊,
jeff_hk 发表于 2007-1-19 21:14 | 显示全部楼层

可以定义一个指向结构体的指针

  
huanhuan03 发表于 2007-1-20 13:31 | 显示全部楼层

存放在flash中的地址怎么能不知道?

存放在flash中的地址是自己决定的,内存中的缓存定义一个结构体变量就行了
 楼主| shixi1021 发表于 2007-1-20 21:12 | 显示全部楼层

怎样知道RAM中的地址?

谢谢大家的回答,只是因为我需要保存,在运行中还要随时修改,所以我要知道结构体在RAM中的地址,这样才能用IAP(我的理解,如果不对请大虾批评),如果是用指针,我应该怎样做,还请大虾们多多指点一下,或给点源码参考一下,
computer00 发表于 2007-1-20 22:49 | 显示全部楼层

取它的地址啊,C语言有取地址运算符&,

  
computer00 发表于 2007-1-21 13:59 | 显示全部楼层

参数不对,试试这样:

RamToFlash(0x00001000,(int)pio,&nbsp;256);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写数据到扇区1&nbsp;<br />err&nbsp;=&nbsp;Compare(0x00001000,(int)pio,&nbsp;256);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;比较数据
 楼主| shixi1021 发表于 2007-1-21 14:26 | 显示全部楼层

谢谢各位,非常感谢!!

  
hotpower 发表于 2007-2-10 02:48 | 显示全部楼层

哈哈~~~给个LPCARM的IAP图例~~~

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

本版积分规则

5

主题

14

帖子

0

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

5

主题

14

帖子

0

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