这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » IAP,ISP,IAP IAP的实际意义何在?如果能远程ISP,是否比IAP好?

共2条 1/1 1 跳转至

IAP,ISP,IAP IAP的实际意义何在?如果能远程ISP,是否比IAP好?

院士
2006-09-17 18:14:16     打赏
IAP,ISP,IAP IAP的实际意义何在?如果能远程ISP,是否比IAP好?



关键词: 实际意义     何在     如果     远程     是否    

院士
2006-12-22 22:43:00     打赏
2楼
问   本人没做过IAP,请教有IAP经验高手,谢谢!  

  1、需IAP的嵌入式系统,程序的架构应该怎样规划?
  2、是否每个函数的存储空间及最大代码量都有要求?
  3、如果要增加任务,而不是简单地修改某个函数时,IAP能实现吗?怎样实现
  4、如果可以远程ISP,是否比IAP要好,并可取代之?
  5、Windows(含WinCE)或Linux等操作系统中,在安装软件的时候,也可以说是IAP?但我们的嵌入式系统功能有限,不能跟他们比的
  6、在几十K到几百K代码的嵌入式系统中,IAP有实际意义吗?请举例...

  本人认为第3点是最有实际意义的,容易实现吗?暂且这么多,请指教,谢谢! 1: 注:这里说的IAP是指代码升级...    而不是简单地把Flash当数据存储空间用... 2: 好象有不少系统有IAP的功能例如一台DVD机,如果代码升级的话,买一张升级用的光盘,塞进去,然后启动某个操作,就可以升级里面的固件了。

这样就方便了代码的升级,而不用拿回原厂,特别是发现有bug,要招回时,更能体现出其优势。 3: 应该给有优缺点,我用IAP准备写数据 4: 是的,用IAP写数据很方便,特别象2138这种大容量的 5: re关于您的第三点,其实很容易实现的

您在我们公司的网站上搜索 "IAP"
您会找到很多的文章,选几篇看一下,估计您肯定就明白了!

IAP的本质就是MCU在运行的过程中,可以自由地修改FLASH code区中的任意数据.

您可以将您的程序增加到某个code位置,然后跳转到那里执行即可! 6: 对啊.........就好象PC装软件一样
不过希望在LPC2XXX上面,可以看到一些具体的成功方案 7: 第三点能多次可靠实现?如果这样的话,是否就没必要把系统的一些初始化设置信息存到片外的EEPROM里了?直接让程序改写FLASH,程序开始时再去上次改写的FLASH区里读取? 8: 就想让FLASH"变成"EEPROM 9: 可以。不过要注意数据完整性。flash是块擦除。 10: 实际上第3点的实现并非容易   说的没错,IAP的本质就是MCU在运行的过程中,可以自由地修改FLASH code区中的任意数据.   把Flash当EEPROM用是很容易。

   第3点的实现,并不是简单地添加一个任务。任务的启动,信号量,事件标志,参数传递......等等或多或少与其它任务相关连的。也是说,IAP增加一个任务的时候,还要修改其它已经存在的任务。而修改其它已存在的任务,比增加一个任务麻烦些...

   实际上,要想用IAP升级代码,工作量非常大的(当然,做好工具和架构后,一劳永逸)
   1、程序架构的规划
     在方案阶段就要有一篇好的程序架构文档及IAP规划文档      
   2、IAP代码的编写
      这个容易,有现成的API调用
   3、上位机软件的支持
      不知是否有现成的好软件?没有的话,要自己设计。当然也可用串口通来实现
   4、目标代码的处理,
      需把每个函数的目标代码分离,每个函数有固定的存储首址
   5、修改已存在的任务时必须有足够大的空间
      该任务原来分配空间不够的话,可通过调用函数的方式实现
   OK,做好这些,IAP也应该很容易了...
       11: 我用IAP做BOOTLOADER...PC对产品升级. 12: 对于Flash块擦除的LPC21xx   IAP升级代码是很痛苦的。LPC22xx还好,可以扩展外部RAM 13: 主要是块分得太大了,升级是困难.主要是块分得太大了,升级操作困难.

这个是LPC2000系列的一大缺陷

如果像AVR系列就分256一个块就好了.


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]