查看: 2377|回复: 3

[分享] LPC824 一种IAP实现方法

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3300

    主题

    6547

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32034
    最后登录
    2024-4-26
    发表于 2020-6-1 14:36:26 | 显示全部楼层 |阅读模式
    LPC824 一种IAP实现方法

    1 flash空间分配


    LPC824是一款CortexM0+微控制器,片上自带32KB Flash.为了实现IAP功能,先把Flash空间进行地址分配,如下表所示。
    1.png
    其中,sector 30 用于存放IAP标志位。这个物理区域bootloader和应用程序都要访问。


    上电复位之后,MCU首先运行bootloader程序,它会检测IAP标志位的特征值,如果是0x987EA321,那么进入IAP模式,等待升级。如果不是,那么跳过IAP,直接跳到APP起始向量入口0x1000,进入正常的应用程序。


    需要注意的是,如果进入IAP升级,最后校验完成,确认APP正确之后,bootloader需自行清除IAP标志位,以避免下一次上电复位再次进入IAP。


    在应用程序里,可由通信命令,将IAP标志位置为允许IAP升级,重启之后bootloader将进入IAP升级状态


    #define APP_CONFIG_SET_VALUE             0x987EA321        //允许IAP升级


    #define APP_CONFIG_CLEAR_VALUE        0xFF                   //IAP不升级

    2 应用程序配置


    *.s文件禁止CRP


    这里就是在汇编代码注释掉以下行


                    ;IF      NOT:EF:NO_CRP


                    ;AREA    |.ARM.__at_0x02FC|, CODE, READONLY


                    ;DCD     0xFFFFFFFF


                    ;ENDIF


    另外,在Keil 工程属性页设置代码起始地址,编译生成hex。再用fromelf将hex转成bin,如以下格式


    fromelf.exe --bincombined--bincombined_base=0x00001000 --output .\Objects\ lpc824demo.bin  .\Objects\lpc824demo.axf


    得到的bin文件即可用于bootloader更新下载。
    2.png


    文章出处:CSDN

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-4-15 14:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    88

    帖子

    0

    高级会员

    Rank: 4

    积分
    784
    最后登录
    2024-4-25
    发表于 2020-6-1 20:32:36 | 显示全部楼层
    其实这样也不完美。中途烧了半就停了,或flash坏了,这样就会变“砖”。
    建议在flash最后增加CRC校验。或者简单的Checksum校验也不错。校验参考SRecord.exe
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3300

    主题

    6547

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32034
    最后登录
    2024-4-26
     楼主| 发表于 2020-6-2 11:10:36 | 显示全部楼层
    waterkingchen 发表于 2020-6-1 20:32
    其实这样也不完美。中途烧了半就停了,或flash坏了,这样就会变“砖”。
    建议在flash最后增加CRC校验。或者 ...

    很好的建议
    签到签到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    4
    最后登录
    2023-11-3
    发表于 2023-11-3 17:03:10 | 显示全部楼层
    是否有对应的Boot loader源代码以及电脑端传输应用程序bin文件的工具软件?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-27 19:39 , Processed in 0.135275 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表