查看: 2861|回复: 3

关于什么是IAP?如何实现IAP?

[复制链接]
  • TA的每日心情
    奋斗
    2014-9-5 15:28
  • 签到天数: 67 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-8-12 18:16:29 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 jin_tong 于 2013-8-13 21:06 编辑

    IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。


    通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、USART)接收程序或数据,执行对第二部分代码的更新;
    第二个项目代码才是真正的功能代码。这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:


    1)检查是否需要对第二部分代码进行更新
    2)如果不需要更新则转到4)
    3)执行更新操作
    4)跳转到第二部分代码执行


    第一部分代码必须通过其它手段,如JTAG或ISP烧入;第二部分代码可以使用第一部分代码IAP功能烧入,也可以和第一部分代码一道烧入,以后需要程序更新时再通过第一部分IAP代码更新。


    对于STM32来说,因为它的中断向量表位于程序存储器的最低地址区,为了使第一部分代码能够正确地响应中断,通常会安排第一部分代码处于Flash的开始区域,而第二部分代码紧随其后。


    在第二部分代码开始执行时,首先需要把CPU的中断向量表映像到自己的向量表,然后再执行其他的操作。

    ------------------------------------------------------------
    如果IAP程序被破坏,产品必须返厂才能重新烧写程序,这是很麻烦并且非常耗费时间和金钱的。针对这样的需求,STM32在对Flash区域实行读保护的同时,自动地对用户Flash区的开始4页设置为写保护,这样可以有效地保证IAP程序(第一部分代码)区域不会被意外地破坏。
    ------------------------------------------------------------
    ST的网站上有使用USART实现IAP的例子,各位可以参考这个例子和相应的手册。

    应用笔记AN2557 - STM32F10xxx in-application programming using the USART
    例程:AN2557 - STM32F10xxx in-application programming using the USART


    本文参考链接:http://bbs.ednchina.com/BLOG_ARTICLE_141390.HTM
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2013-8-12 17:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-8-12 19:47:12 | 显示全部楼层
    丁丁丁丁顶顶丁丁丁丁
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-2-22 19:39
  • 签到天数: 316 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-8-12 20:09:45 | 显示全部楼层
    还好吧!不过将ISP作对比就更好了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2013-8-20 15:04
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-8-13 16:42:00 | 显示全部楼层
    顶顶顶顶顶顶
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-24 00:46 , Processed in 0.143250 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.