研发课堂丨飞凌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 


打开MIMXRT1052xxxxx_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镜像:


串口信息 

 

软件菜单栏 


选择要烧写的镜像:


镜像 


烧写成功:


成功界面 

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

相关产品: