问题 事情是这样滴,客户通过NXP MCUBootUtility工具将RT1020 eFuse中的eFuses BT_FUSE_SEL and FORCE_INTERNAL_BOOT位置1,想实现如下图序号所示的启动流程启动,意外当发现Boot MOde[0:1]脚都接高电平时,同时将BOOT_CFG1[7:1]中的任意引脚也接高电平,上电启动就会失败。
图1
图2 解决经过反复测试和追踪,上述启动失败的原因在于MCU可能进入Boot MOde[0:1]=11所对应的Reserve功能,这里要解释一下,Reserve功能其实是留给NXP内部测试用的“后门”,对于开发者来说,你可以直接无视它,而这次的问题可能就是客户误打误撞的进入了这个“后门”导致的,为了避免掉坑,需要手工将eFuse中的DIR_BT_DIS位(如下图所示)置1。
图3 照道理来说,开发者应该无需关注DIR_BT_DIS位是否被置1,NXP出厂时就应该将其置1,现实也是这样,现在出厂的RT10xx MCU的DIR_BT_DIS位都已置1,而原来没有置1的,就需要开发者自己手动置1了。 补充一句,DIR_BT_DIS位在efuse的0x460[3],有些参考手册可能没有列出。
图4
|