本帖最后由 小恩GG 于 2021-7-6 16:57 编辑
【经验分享】RT1060 OTA bootloader ISP配套APP
一 文档说明
RT1060OTA bootloader能够实现flashloaderISP的功能,可以理解为把flashloader放到了flash里面,而不是之前的RAM,并且不需要进入serial download 模式就可以使用blhost下载APP代码,启动先跑ota_bootloader,然后检查APP区域是否有数据,如果有则6秒之后跳过去,否则留在boot loader里面,是一个具有ISP功能的secondary bootloader。之前写过一篇经验分享:
是在原来evkmimxrt1060_lwip_httpssrv_ota的基础上去修改代码。那么如果是一个客户的APP,如何修改来匹配这个带有ISP 下载代码的bootloader呢?本文将以evkmimxrt1060_iled_blinky MCUXPresso工程为例讲解如何去实现ota_bootloader所需要的下载APP。
二 操作步骤
使用MCUXPresso IDE导入evkmimxrt1060_iled_blinky工程。 作为一个合格的ota bootloader配套image,需要从0X60040000存放数据,这点可以在ota_bootloader的bootloader_config.h中知道:
#define BL_APP_VECTOR_TABLE_ADDRESS (0x60040000u)
另外,还需要从0X60040000开始的前0X400存放ota_header。所以需要这几个文件: Ota_bootloader_hdr.c, ota_bootloader_board.h, ota_bootloader_supp.c, ota_bootloader_supp.h 存放到source文件夹。这几个文件可以从evkmimxrt1060_lwip_httpssrv_ota工程中找到。 另外需要在ld文件中开辟一块0X400的区域作为ota_header的存放区域。 下面给出添加的细节:
2.1 memory空间调整
将APP从原来的0X60000000调整到0X60040000,ota_bootloader所指定的APP区域。
图1
2.2 ota_hdr文件添加
在source文件夹添加上面提到的四个文件,并且在led_blinky.c中添加ota_bootloader_supp.h的调用:
图2
2.3 linker文件修改
在evkmimxrt1060_iled_blinky_debg.ld中添加boot_hrd,长度为0X400。
- /* OTA bootloader header */
- .boot_hdr : ALIGN(4)
- {
- FILL(0xff)
- __boot_hdr_start__ = ABSOLUTE(.) ;
- KEEP (*/ota_bootloader_hdr.o(.text .text* .rodata .rodata*))
- __boot_hdr_end__ = ABSOLUTE(.) ;
- . = 0x400 ;
- } >BOARD_FLASH
复制代码
图3至此,已经完成了配套app的修改。 编译,生成.bin文件,并且修改名为:evkmimxrt1060_iled_blinky_ota_0x60040000.bin 以备用。 查看这个image:
图4
可以看到在前0X400区域,有对应的ota_hdr数据。
三 测试结果 Bootloader下载之后,使用的ota_bootloader路径: SDK_2.9.3_EVK-MIMXRT1060\boards\evkmimxrt1060\bootloader_examples\ota_bootloader 需要先下载到MIMXRT1060-EVK。 然后复位,并且使用如下命令去连接:
- blhost.exe -t 50000 -u 0x15a2,0x0073 -j -- get-property 1 0
- blhost.exe -t 2048000 -u 0x15a2,0x0073 -j -- flash-erase-region 0x60040000 0x6000 9
- blhost.exe -t 5242000 -u 0x15a2,0x0073 -j -- write-memory 0x60040000 evkmimxrt1060_iled_blinky_ota_0x60040000.bin
- blhost.exe -t 5242000 -u 0x15a2,0x0073 -j -- read-memory 0x60040000 0x6000 flexspiNorCfg.dat 9
复制代码图5
下载完成之后,按下reset,等待6秒之后,跳转到APP,可以看到MIMXRT1060-EVK板子上的小灯闪烁,实现了ota_bootloader配套APP的准备。 |