问题描述
在使用NXP RT10x0系列的童鞋,会经常遇到在某次下载SpiFlash代码后,再次Debug就连不上,提示下方:
这时IAR无论如何也连接不上板子了,通Jflash连接,也会提示DAP Register Failed, 初次遇到会误认为硬件坏掉了。。
。
问题解决
解决方法有两种:
方法1、通过 清空Memory(需更改BootMode)
1、更改BootMode为Serial启动,这里我用的RT1060,所以将1060开发板的SW17更改为Serial 模式:
SW7 to “1-OFF, 2-OFF, 3-OFF, 4-ON”.:
2、通过IAR打开一个NXP SDK工程,并切换Debug模式,然后清空Memory
这里随便选择一个Led_Blinky的工程,点击Erase Memory
注意要选择Debug Configuration
3、Erase后,将开发板SW7拨回正常启动(Internal Boot)
SW7 to “1-OFF, 2-OFF, 3-ON, 4-OFF”.:
最后就发现IAR可以正常连接调试了:
BootMode如下
方法2、通过MCUBootUtility烧写/下载任一程序,如LedBlinky:
- 下载MCUBootUtility: https://github.com/JayHeng/NXP-MCUBootUtility/releases
- 将EVK board SW7改为Serial :
3. 下载后在NXP-MCUBootUtility/Bin中打开NXP-MCUBootUtility.exe ,然后根据使用的硬件,选择MCU Device、Boot DeviceConfiguration、BootType、
4.点击Connect to ROM/Reset Device连接,连接后选中Borwse打开编译好的Hex/bin (如打开文件里包含测试用的LedBlinky固件)最后点击上方All-in One Action烧写程序到单片机
具体使用可参见https://github.com/JayHeng/NXP-MCUBootUtility
根本原因
原因也有多种:
- 一种是由于Jlink来不及在程序跑飞前连接MCU
在 Flash-XIP代码跑飞后,Jlink在Reset后Code会立即运行,所以无法进行连接(跑飞的原因有多种,如硬件配置、野指针、初始化失败、代码bug等)
- 另一种是由于写入的程序FCDB和BootHeader有误,导致Bootloader无法正确引导启动
这种情况需要检查下BootHeader的Macro是否开启:
将XIP_BOOT_HEADER_ENABLE设为0,即不需要生成包含i.MXRT加载启动文件头的image;
如果为1,那么生成的可执行image文件会包含i.MXRT加载启动文件头,生成的image也可叫做Bootable image,即能被BootROM正确加载启动的image
一般XIP(eXecute In Place,如flash)中的image,都要定义:
XIP_EXTERNAL_FLASH=1
XIP_BOOT_HEADER_ENABLE=1
这样BootROM才能在flash中加载application到RAM/XIP执行
博主热门文章推荐:
一篇读懂系列:
LoRa Mesh系列:
网络安全系列:
- ATECC508A芯片开发笔记(一):初识加密芯片
- SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果
- 常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
- AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例
嵌入式开发系列:
- 嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)
- IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等
- Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤
- Android底层调用C代码(JNI实现)
- 树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等
- Android/Linux设备有线&无线 双网共存(同时上内、外网)
AI / 机器学习系列:
- AI: 机器学习必须懂的几个术语:Lable、Feature、Model…
- AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)
- AI: 什么是机器学习的数据清洗(Data Cleaning)
- AI: 机器学习的模型是如何训练的?(在试错中学习)
- 数据可视化:TensorboardX安装及使用(安装测试+实例演示)