请选择 进入手机版 | 继续访问电脑版
查看: 3084|回复: 5

[原创] 【经验分享】RT1064 ota bootloader HID更新app

[复制链接]

该用户从未签到

648

主题

6301

帖子

0

超级版主

Rank: 8Rank: 8

积分
19546
最后登录
2024-3-28
发表于 2020-11-4 18:10:38 | 显示全部楼层 |阅读模式

【经验分享】RT1064 ota bootloader HID更新app

   有客户需求把flashloader放到内部memory,启动直接从flashloader启动,然后跳转到app中去,同时也可以使用flashloader的USB HID的方式结合blhost去更新app。

   本文在SDK 工程evkmimxrt1060_ota_bootloader的基础上修改了OTA boot loader到RT1064, evkmimxrt1060_lwip_httpssrv_ota的基础上修改为适应RT1064的APP,APP功能主要是打印信息标志app版本,并且可以闪烁小灯。然后通过blhost去连接板子,并且更新app运行app。

   由于本文修改点较多,暂时不一一列出,直接给出修改后的RT1064 otabootloader以及对应的简单app,并且给出测试步骤与结果。

   测试开发板MIMXRT1064-EVK,两根USB线分别连接PC到J14,J9.修改工程基于MCUXPresso IDE。

    附件中文件如下:

1.evkmimxrt1064_ota_bootloader_kerry , 这是ota bootloader, release 版本, 使用release模式下载。

2.evkmimxrt1064_lwip_httpssrv_ota_kerry, 这是app,debug版本,功能uart 打印信息,LED闪烁。

3.evkmimxrt1064_lwip_httpssrv_ota_kerry1_0x70040000.bin,这是app 版本1bin文件,使用板载虚拟串口打印测试信息test1,并且闪烁led小灯。

4.evkmimxrt1064_lwip_httpssrv_ota_kerry2_0x70040000.bin, 这是app版本2bin文件,使用板载虚拟串口打印测试信息test2,并且闪烁led小灯。

具体测试步骤以及测试log:

1.下载evkmimxrt1064_ota_bootloader_kerryrelease version到MIMXRT1064开发板。

2.拷贝evkmimxrt1064_lwip_httpssrv_ota_kerry1_0x70040000.bin和evkmimxrt1064_lwip_httpssrv_ota_kerry2_0x70040000.bin到blhost.exe的相同路径。

3.按下板子上reset按键, 在6秒内发送第一条blhost命令:

blhost.exe-t 50000 -u 0x15a2,0x0073 -j -- get-property 1 0

因为如果你的RT1064内部flash已经下载了有效app,那么复位先跑ota bootloader, 检测到app区域有有效代码,则在6s超时之后跳转到app并且运行app。如果需要返回到ota bootloader,则通过复位按键的方式返回。

下载app1:


--------------

C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 50000 -u 0x15a2,0x0073 -j --get-property 1 0

{

   "command" :"get-property",

   "response" : [ 1258424064 ],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 5242000 -u 0x15a2,0x0073 -j --fill-memory 0x20202000 4 0xc0000007 word

{

   "command" :"fill-memory",

   "response" : [],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 5242000 -u 0x15a2,0x0073 -j --fill-memory 0x20202004 4 0 word

{

   "command" :"fill-memory",

   "response" : [],

   "status" : {

      "description" : "0 (0x0) Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 50000 -u 0x15a2,0x0073 -j --configure-memory 9 0x20202000

{

   "command" :"configure-memory",

   "response" : [],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 5242000 -u 0x15a2,0x0073 -j --read-memory 0x70000000 0x4000 flexspiNorCfg.dat 9

{

   "command" :"read-memory",

   "response" : [ 16384 ],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 5242000 -u 0x15a2,0x0073 -j --read-memory 0x70040000 0x6000 flexspiNorCfg.dat 9

{

   "command" :"read-memory",

   "response" : [ 24576 ],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 2048000 -u 0x15a2,0x0073 -j --flash-erase-region 0x70040000 0x6000 9

{

   "command" : "flash-erase-region",

   "response" : [],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 5242000 -u 0x15a2,0x0073 -j --write-memory 0x70040000 evkmimxrt1064_lwip_httpssrv_ota_kerry1_0x70040000.bin 9

{

   "command" :"write-memory",

   "response" : [],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>



到此为止,evkmimxrt1064_lwip_httpssrv_ota_kerry1_0x70040000.bin已经下载到板子,按下复位按键,等待6秒后,会发现板载LED D18闪烁,UART窗口115200bps打印信息:test1。

这个现象说明evkmimxrt1064_lwip_httpssrv_ota_kerry1_0x70040000.bin功能已经工作。

现在尝试下载evkmimxrt1064_lwip_httpssrv_ota_kerry2_0x70040000.bin,按下reset按键,6秒之内发送第一条命令:

blhost.exe-t 50000 -u 0x15a2,0x0073 -j -- get-property 1 0

一旦发送命令成功,代码将会停留在flashloader,不会跳转到app。

然后输入如下信息:


-----------------------------

C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 50000 -u 0x15a2,0x0073 -j --get-property 1 0

{

   "command" :"get-property",

   "response" : [ 1258424064 ],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 2048000 -u 0x15a2,0x0073 -j --flash-erase-region 0x70040000 0x6000 9

{

   "command" :"flash-erase-region",

   "response" : [],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 5242000 -u 0x15a2,0x0073 -j --write-memory 0x70040000 evkmimxrt1064_lwip_httpssrv_ota_kerry2_0x70040000.bin 9

{

   "command" :"write-memory",

   "response" : [],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}


C:\KerryPC\IMXRTCode\Question\RT1064\flashloader\USBHID bootloader\kerry\tool>blhost.exe -t 5242000 -u 0x15a2,0x0073 -j --read-memory 0x70040000 0x6000 flexspiNorCfg.dat 9

{

   "command" :"read-memory",

   "response" : [ 24576 ],

   "status" : {

      "description" : "0 (0x0)Success.",

      "value" : 0

   }

}

-------------------

到此为止,evkmimxrt1064_lwip_httpssrv_ota_kerry2_0x70040000.bin已经下载到板子,按下复位按键,等待6秒后,会发现板载LED D18闪烁,UART窗口115200bps打印信息:test2。

这个现象说明evkmimxrt1064_lwip_httpssrv_ota_kerry2_0x70040000.bin功能已经工作。

综上,放在flash的boot loader已经能够成功工作,并且成功跳转到app区域。暂时先给出测试修改工程代码以及测试结果,关于具体修改点以及详细分析,后续给出!
evkmimxrt1064_lwip_httpssrv_ota_kerry.zip (5.85 MB, 下载次数: 79)
回复

使用道具 举报

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

    [LV.1]初来乍到

    5

    主题

    85

    帖子

    0

    高级会员

    Rank: 4

    积分
    741
    最后登录
    2024-3-27
    发表于 2021-3-15 17:52:15 | 显示全部楼层
    能分析下下 memory remapp过程?
    整个rom空间分配是不是L2 bootloader, App1, App2?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    648

    主题

    6301

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19546
    最后登录
    2024-3-28
     楼主| 发表于 2021-7-6 16:09:32 | 显示全部楼层
    waterkingchen 发表于 2021-3-15 17:52
    能分析下下 memory remapp过程?
    整个rom空间分配是不是L2 bootloader, App1, App2?

    是的,有两个APP的区域,然后可以选择哪个启动。
    回复 支持 反对

    使用道具 举报

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

    [LV.1]初来乍到

    5

    主题

    85

    帖子

    0

    高级会员

    Rank: 4

    积分
    741
    最后登录
    2024-3-27
    发表于 2021-7-7 16:43:04 | 显示全部楼层
    小恩GG 发表于 2021-7-6 16:09
    是的,有两个APP的区域,然后可以选择哪个启动。

    如何选择那个启动?如果当前在APP1里运行,并下载新的app到APP2, 然后在APP1里面切换?还是在OTA bootloader里面切换?

    点评

    兄弟搞清楚这个问题了没?最近也在搞这个bootloader,这个APP切换的问题没搞明白  发表于 2023-8-24 15:05
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    22
    最后登录
    2023-12-28
    发表于 2023-12-28 17:36:27 | 显示全部楼层
    工程用什么软件打开呢?有知道的大佬吗
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-3-29 07:40 , Processed in 0.118203 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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