
研发课堂丨飞凌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;
2) 如果没有接收到“space”字符,则跳转到第二部分代码执行app
3) 如果接收到该字符,进入选择菜单。
4) 选择2执行更新操作
5) 选择镜像,并更新完成之后,再次进入菜单,可选择1运行新的app,也可选择3重新启动系统:
使用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\下工程。
选择XIP工程:
然后进入魔术棒—link配置--Edit:
打开MIMXRT1052xxxxx_flexspi_nor.scf文件作如下更改:
注释掉以下代码:
然后进入魔术棒—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,程序开始运行。