查看: 4607|回复: 3

[原创] ISP“二进宫”问题(后续)

[复制链接]

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25190
最后登录
2025-8-12
发表于 2018-11-26 10:24:06 | 显示全部楼层 |阅读模式
ISP“二进宫”问题(后续)
Ø 问题描述
       前些时候,小编曾分享过《ISP“二进宫”问题》,文章里介绍了如何调用IAP 指令集中的Reinvoke ISP指令(如图1所示),使得LPC1549能够成功地从application重新跳回到USB ISP bootloader中,而这次的MCU主角换成了LPC54114,虽然问题相似,但造成的原因却是有差异的。具体问题如下:客户使用LPC54114过程中,想实现程序从应用程序到ROM bootloader的跳转,FLASHIAP_Reinvoke()跳转函数如下所示,函数内就调用的是Reinvoke ISP指令,跳转函数执行后,代码会一直停留在0x03004d2e,表明程序确已跳转到ROM bootloader区域,紧跟着连接USB口,USB MSC枚举并没有成功(如图2所示),使得MCU真正进入到USB ISP 模式。
图1.jpg
1 ReinvokeISP指令
  1. static status_t translate_iap_status(uint32_t status)
  2. {
  3.     /* Translate IAP return code to sdk status code */
  4.     if (status == kStatus_Success)
  5.     {
  6.         return status;
  7.     }
  8.     else
  9.     {
  10.         return MAKE_STATUS(kStatusGroup_FLASHIAP, status);
  11.     }
  12. }

  13. static INLINE void iap_entry1(unsigned int cmd_param[5], unsigned int status_result[4])
  14. {
  15.     ((IAP_ENTRY_T)0x03000205)(cmd_param, status_result);
  16. }

  17. status_t FLASHIAP_Reinvoke()
  18. {
  19.     uint32_t command[5], result[4];

  20.     command[0] = 57;
  21.     command[1] = 2;
  22.     command[2] = 0;
  23.     command[3] = 0;
  24.     iap_entry1(command, result);

  25.     return translate_iap_status(result[0]);
  26. }
复制代码
图2.jpg
2 枚举失败
Ø 问题解决
       经测试发现,让MCU成功地从应用工程再次进入USB ISP 模式,需要以下两个条件:1.USB口需要提前连接(在调用FLASHIAP_Reinvoke()函数之前);2.时钟配置复原为默认形式,即使用FRO 12 MHz启动的初始状态。
ISP“二进宫”问题(后续) (AutoRecovered).pdf (288.47 KB, 下载次数: 23)
回复

使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    连续签到: 1 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2207
    最后登录
    2025-8-11
    发表于 2018-11-26 10:34:15 | 显示全部楼层
    谢谢分享  下载看看
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-8-8 16:43
  • 签到天数: 1504 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    97

    主题

    4692

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    10093
    最后登录
    2025-8-8
    发表于 2018-11-26 10:38:10 | 显示全部楼层
    向楼主学习了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 13:17
  • 签到天数: 1868 天

    连续签到: 2 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    112694
    最后登录
    2025-8-17
    发表于 2018-11-26 10:51:38 | 显示全部楼层
    不错,学习一下
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-18 02:48 , Processed in 0.087695 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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