查看: 5272|回复: 1

[原创] 【经验分享】LPC51U68 Reinvoke ISP指令

[复制链接]

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25234
最后登录
2025-8-20
发表于 2019-4-8 18:41:31 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2019-4-8 18:43 编辑

LPC51U68 Reinvoke ISP
Ø 问题描述
        客户碰到如下问题:
        LPC51U68 IAP 指令集中的Reinvoke ISP指令(如图1所示)可以将MCU从application重新跳转到ISP bootloader内,因此,客户使用SDK软件包中提供的IAP_ReinvokeISP()函数想实现跳转USB ISP bootloader操作,但代码被执行后,状态返回值始终为:0x1C,表明指令并未成功被执行,这是咋回事呢。

Fig 1.png
1 Reinvoke ISP
表1 Reinvoke ISP函数
2019-04-08_18-36-59.jpg

Ø 问题解决
        经测试,发现错误有两个,首先,如图1所示,发现ReinvokeISP指令只需要两个输入参数,而IAP_ReinvokeISP()函数中的输入参数有点画蛇添足了,更离谱的是顺序其实也不对。其次,IAP_ReinvokeISP()不能在全局中断禁止的情况下正确执行,推测在ROM bootloader里的代码有使用到中断,全局中断禁止后,导致中断无法被响应处理,从而ROMbootloader代码无法正常工作,这个问题其实在《ISP“二进宫”问题》里也有提到。

       所以,针对上述发现的问题,对IAP_ReinvokeISP()函数更改如下。
2019-04-08_18-37-58.jpg

LPC51U68 ISP USB boot.pdf (197.08 KB, 下载次数: 21)
回复

使用道具 举报

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 1868 天

    连续签到: 2 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112694
    最后登录
    2025-8-17
    发表于 2019-4-8 19:48:44 | 显示全部楼层
    感谢分享~~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-21 15:30 , Processed in 0.089285 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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