Zephyr应用笔记:iMXRT1050evk下载固件到Hyper Flash

本方法受到@zuozhongkai的一篇文章很大启发,地址如下:

http://www.openedv.com/forum.php?mod=viewthread&tid=233628

根据他的文章编译出的镜像是可以下载到外部Hyper Flash并运行(keil已经提供了Hyper Flash的烧写算法),将keil编译出的可在HyperFlash文件中运行的 hello_world.bin 保存好,后边需要用到。


下边开始介绍如何下载zephyr镜像到Hyper Flash

Zephyr版本v1.11.0:

https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v1.11.0

该版本还没有支持镜像下载到HyperFlash,文档说明中关于mimxrt1050_evk开发板的部分有详细说明;

但是按照Zephyr的开发进度,也许v1.12.0可能会支持该版本,关于下载固件到HyperFlash的讨论链接如下:

https://github.com/zephyrproject-rtos/zephyr/pull/6951

请按照讨论的内容将需要添加的内容同步至v1.11.0版本,编译samples/hello_world,确保能够有下图内容:



其中 CONFIG_FLASH_BASE_ADDRESS 与 下载固件地址和中断向量表地址有关系;

以上内容实现了之后基本上已经完成了50%。


关于JLink的要求:

1、V9调试器,V8不能支持M7内核;

2、JLink驱动需要V6.32版本及以上,说明链接:https://wiki.segger.com/IMXRT105x


下载固件:

1、将boards/arm/mimxrt1050_evk/board.cmake 文件中device=Cortex-M7改为device=MIMXRT1052xxxxA

2、boards/arm/mimxrt1050_evk/board.cmake 增加两句话:

set_ifndef(BOARD_DEBUG_RUNNER jlink)

set_ifndef(BOARD_FLASH_RUNNER jlink)

3、make flash

效果如下图:


至此,固件已经能够下载到外部HyperFlash,但是还不能运行,因为没有正确的镜像头。


下面添加镜像头:

将镜像偏移地址改为0x2000,,此时编译出来的镜像前0x2000的内容都是0x00,

将文章开头让你保存的hello_world.bin的前0x2000内容替换到zephyr编程出来的zephyr.bin的前0x2000内容中,并保存,

然后在makeflash,串口打印如下图:



至此,下载zephyr固件到I.MX RT1050 EVK开发板外部HyperFlash已经成功,可能你在测试的时候不是特别顺利,但是这条路已经是通的,祝好运!



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值