本帖最后由 xpzheng888 于 2011-12-27 13:17 编辑
最近在整理客户的一些疑问,给自己充充电,也跟大家一起学习下。
ISP、ICP、IAP三种编程方式区别:
ISP:In System Programing,在系统编程
ICP:In Circuit Programing,在电路编程
IAP:In applicating Programing,在应用编程
新唐M0提供2种编程模式:ISP和ICP
ISP与ICP的差别
For ISP
(1) MCU必须处于可执行程序的状态 (除了上电,还要接XTAL),且必须预烧ISP-code(即ISP LDROM固件)在LDROM里面
(2)烧录范围只限于APROM, DataFlash或CONFIG (但对使用者来说,应该够了!)
(3) chip在LOCK的状态下,仍然可以只更新某一区块 (APROM, DataFlash或CONFIG)
(4)因为烧录的动作取决于ISP-code的写法,所以给系统设计者的弹性较大
(5)不需要额外硬件
For ICP
(1) MCU只要处于上电状态即可,不必预烧任何code在MCU里面
(2)烧录范围涵盖整颗MCU,包括 APROM, DataFlash, CONFIG, LDROM和 ROMMAP
(3) chip在LOCK的状态下,无法只更新某一区块,只能在erase-ALL之后,更新某一区块,再逐一烧回其它区块(因为ICP的本质就是走串行接口的Writer Mode, chip被LOCK之后,除了erase-ALL,所有烧录动作皆会被禁止)
(4)因为烧录纯粹是ICP硬件的行为, MCU无法自己更新自己,所以给系统设计者的弹性较小(例如:无法藉由ICP去实现IAP的功能)
(5)需要其他硬件支持(如NU-LINK等)
什么是 IAP (In-Application Programming)?
IAP指的是, MCU在运行的状态下,利用ISP的机制,不透过外接工具 (例如: ISP Programmer) 的帮忙,去更新APROM, DataFlash或 CONFIG.要实现这种功能,
系统必须有取得更新数据的能力,例如:处于某一种联机的状态.
(注:有时候, ISP/IAP的分别并不是那么清楚!我之前做得一个系统式通过网络服务器去IAP的)
形象点得描述是:
1、ISP是把房子拆了再重造一间,但是地基保留,那么在造好之前当然是不能住人的啦!
2、ICP是对房子地基与房子的整体重构;
2、IAP是在造好的房子里边进行一些装修,当然人可以继续住啦!
期待DX发表意见,拍砖!!! |