研发课堂丨飞凌iMXRT1052开发板使用IAP在线升级APP的操作方法

飞凌 OK1052-C 开发板烧写方式及工具多种多样,现在我们先来总结一下:


1、 SWD 方式烧写,使用 DAP 仿真器,上位机使用 keil MDK 点击 download 下载。

2、 USB 方式烧写,使用 USB 数据线连接板子和 PC 机,上位机有三个烧写工具:

1)  NXP MCU Boot Utility 工具。

2) RT-flash 工具。

3) MfgTool2工具。

3、 SD 方式卡烧写,将要烧写的镜像放入 SD 卡,从 SD 卡启动烧写程序进行烧写。

当然除了以上我们总结的几点, OK1052-C 还有其他烧写方式,这里不再一一列举。这几种方式各有千秋也各有不便,具体优缺点需要根据大家的应用环境决定。


一、简单介绍一下 IAP


今天给大家介绍一下,如何通过 IAP 方式进行程序烧写。目前 OK1052-C IAP 功能,在设计 在设计固件程序时编写两个项目代码,第一个项目程序 bootloder 不执行正常的功能操作,而只是通过 UART 接收 镜像 数据,执行对第二部分代码的更新;第二个项目代码 app 才是真正的功能代码。这两部分项目代码都同时烧录在 User Flash 中,当芯片上电后,首先是第一个项目代码 bootloder 开始运行,它作如下操作:


1)  串口等待输入 space ”键,等待超时时间 1000ms


串口打印信息.jpg  

2)  如果没有接收到 space ”字符,则 跳转到第二部分代码执行 app


3) 如果接收到该字符,进入选择菜单。


选择菜单.jpg  


4)  选择 2 执行更新操作


打印信息.jpg  


5)  选择镜像,并更新完成之后,再次进入菜单,可选择 1 运行新的 app ,也可选择 3 重新启动系统:


菜单栏.jpg  


使用 IAP 方式进行程序烧写,就省去了频繁使用仿真器连接烧写的麻烦,也不用像 USB 烧写那么繁琐。不管是开发阶段还是 维护阶段,都能轻松升级。


二、具体操作,实现 APP 升级


OK1052-C IAP 主要使用串口通过 Ymodem 协议进行镜像数据传输,因为 secureCRT 工具有 Ymodem 传输功能,所以我们使用 secureCRT 工具作为串口终端。

步骤一:烧写 BootLoder 镜像。

烧写 BootLoder 镜像我们可以使用 SWD 方式和 USB 方式烧写,烧写一次即可。

步骤二:制作 APP 镜像

我们的 BootLoder 镜像存储在 flash 中的空间范围为: 0X0 – 0X7FFF;

APP 镜像存储偏移地址为: 0X8000


gpio 例程为例,我们做一个 APP 镜像:


打开\boards\evkbimxrt1050\driver_examples\gpio\led_output\mdk\ 下工程。

路径.jpg  

选择 XIP 工程:

工程文件.jpg  


然后进入魔术棒—link 配置 --Edit

配置.jpg  


打开MIMX RT1052xxxxx_flexspi_nor.scf文件作如下更改:


代码.jpg



















注释掉以下代码:


代码  


然后进入魔术棒—user ,在 Run#1 中加入命令以生成 .bin 文件:

#K\ ARM\ARMCC\bin\fromelf.exe --bincombined --output=.\DebugInFlash\@L.bin !L

 

文件  


配置完成,之后编译工程,最后会生成 igpio_led_out.bin 镜像文件,至此 APP 镜像制作完成。


步骤三: IAP 烧写 APP 镜像

BootLoder 镜像烧写完成之后,打开 PC 机软件 secureCRT ,配置好串口:

串口  


重启板子,通过串口打印信息,可以看到

打印信息  


然后按空格键,可以进入菜单:


菜单栏  


选择 2 update app 更新 APP 镜像:


串口信息  

 

软件菜单栏  


选择要烧写的镜像:


镜像  


烧写成功:


成功界面  

重启板子或者选择 1 run app ,程序开始运行。

相关产品: