【朝花夕拾】RT1170 SBL ISP下载带SDRAM APP

一, 文档简介

NXP官方推出了关于RT bootloader的SBL和SFW,能够很好的实现常规使用中对于secondary bootloader的要求。比如ISP,OTA,加密等功能。关于具体SBL/SFW的情况,可以查看应用笔记:
https://www.nxp.com/docs/en/user-guide/MCUOTASBLSFWUG.pdf
本文主要基于SBL,利用ISP方式下载用户app。最近遇到一个案例关于RT1170使用SBL ISP功能下载APP,在配置了SBL之后,下载SDK的简单代码比如led_blinky,helloword没有问题,但是如果下载SDK GUI demo,比如vglite_examples\vector_freertos代码,发现启动失败的问题。具体对于app的偏移等操作也是一样,代码大小也没有超过1MB,只是SDK GUI demo中使用了SDRAM,所以推测和SBL 的SDRAM使能有关。本文将就这个问题给出如何使用SBL ISP方式下载一个带有SDRAM的app,并且能够启动运行。

二, 操作步骤

2.1 SBL配置与下载

首先下载,SBL源码并解压:
https://github.com/nxp-mcuxpresso/sbl
下载ARM GCC,并安装,这里给出gcc-arm-none-eabi-9-2019-q4-major-win32.exe链接:
https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/gcc-arm-none-eabi-9-2019-q4-major-win32-sha2.exe?revision=ba95cefa-1880-4932-94d4-ebf30ad3f619&rev=ba95cefa1880493294d4ebf30ad3f619&hash=B2513193FEEED9E850C62399EFF9DA04C0F0A809
安装之后路径为:C:\Program Files (x86)\GNU Tools Arm Embedded\9 2019-q4-major\bin,打开\sbl-master\target\evkmimxrt1170\ sblprofile.py,修改EXEC_PATH为最新安装的ARM_GCC的路径:

EXEC_PATH   = r'C:\Program Files (x86)\GNU Tools Arm Embedded\9 2019-q4-major\bin'

下面给出SBL的配置步骤:
(1) 打开\sbl-master\target\evkmimxrt1170\ env.bat
输入:

scons –menuconfig

在这里插入图片描述

图 1
(2) 配置Single image OTA
MCU SBL core->[*]Enable single image function
在这里插入图片描述

图 2
(3) 配置enable SDRAM
在这里插入图片描述

图 3
在这里插入图片描述

图 4
在这里插入图片描述

图 5
配置完成之后,保存 .config文件,退出配置界面。
在这里插入图片描述

图 6
(4) 生成sbl iar工程
窗口输入:

scons --ide=iar

然后打开\sbl-master\target\evkmimxrt1170\iar\sbl.eww
可以看到SDRAM的DCD已经成功加入:
在这里插入图片描述

图7
(5) 配置加密信息
命令窗口输入:

cd ..\..\component\secure\mcuboot\scripts

命令切换目录,并通过两行命令生成公钥与密钥:

python imgtool.py keygen -k xxxx_priv.pem -t rsa-2048-sign 
python imgtool.py getpub -k xxxx_priv.pem -o xxxx_pub.pem -t sign

在这里插入图片描述

图 8
拷贝路径:sbl-master\component\secure\mcuboot\scripts\ xxxx_pub.c公钥内容,替换路径文件内容:
\sbl-master\component\secure\mcuboot\sign-rsa2048-pub.c
这样就会更新SBL工程的公钥信息。
打开\sbl-master\target\evkmimxrt1170\iar \sbl.eww
编译工程并使用debugger直接下载到MIMXRT1170-EVK开发板。

2.2 APP 配置

本文APP以MCUXpresso IDE导入SDK工程:evkmimxrt1170_vector_freertos_cm7
配置地址做偏移,偏移到:0X30100400

在这里插入图片描述

图 9
去掉FCB和DCD头:
在这里插入图片描述

图 10
编译代码,并且生成bin文件:evkmimxrt1170_vector_freertos_cm7.bin,拷贝到SBL文件夹:
sbl-master\component\secure\mcuboot\scripts
在命令窗口输入:

python imgtool.py sign --key xxxx_priv.pem --align 4 --version "1.1" --header-size 0x400 --pad-header --slot-size 0x100000 --max-sectors 32 evkmimxrt1170_vector_freertos_cm7.bin app2.bin

用于给app拼接上符合SBL的头,生成app2.bin用于备用。

三, 测试结果

通过上面的操作,已经下载了配置好的SBL到MIMXRT1170-EVK,并且准备好了可用的带有SDRAM的app,下面使用MCUBootutility工具下载。
在这里插入图片描述

图 11
这里注意,模式需要调整为SBL OTA模式。
开发板复位之后,5S内连接connect to SBL ISP, 然后在4选项中填入准备好的APP,点击5 write下载。这里注意3处的地址需要配置为:0X30100000。
下载成功后,退出。
复位开发板,等待5S之后,可以看到开发板能够成功电路LCD,说明GUI代码已经成功运行,打印log如下:
在这里插入图片描述

图 12
实物显示效果如下:
在这里插入图片描述

图 13
至此,带有SDRAM的app已经成功结合SBL运行,说明SBL带SDRAM的配置以及成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值