然后对超级下载算法源代码里 ufl_get_imxrt_chip_id() 函数做一点小改动,这里我们用了 0x5AA60FF0 来标识 I.MXRT1170,实测是可行的,当然如果觉得不放心,可以将标识空间再拓大一些,标识符也相应长一些。
#define FP_FLAG_ADDR (0x0000FFFCu) #define FP_FLAG_RT117X (0x5AA60FF0u) rt_chip_id_t ufl_get_imxrt_chip_id(void) { rt_chip_id_t chipId = kChipId_Invalid; core_type_t coreType; coreType = ufl_get_core_type(); if (kCoreType_CM7 == coreType) { uint32_t rt117xFlag = *(uint32_t *)FP_FLAG_ADDR; if (rt117xFlag == FP_FLAG_RT117X) { return kChipId_RT117x; } else { // 代码省略... } } else if (kCoreType_CM33 == coreType) {} // 代码省略...与第一小节一样,在 JLinkDevices.xml 里指定好 JLinkScript 文件路径,然后 iMXRT117x_CortexM7.JLinkScript 内容也比较简单,按要求将标识符写进 RAM 里即可:
void SetFlagInITCM() { MEM_WriteU32(0xFFFC, 0x5AA60FF0); JLINK_SYS_Report("J-Link script: 0x5AA60FF0 has been written to address 0xFFFC"); } void SetupTarget(void) { SetFlagInITCM(); } void AfterResetTarget(void) { SetFlagInITCM(); }Note:标识符似乎不能放在 0x0 - 0xFFF 空间里,这个空间在当前超级下载算法设计里被 JLink 占用了,痞子衡测试了 0x0 - 0x3 和 0xFFC - 0xFFF 两处空间地址,均失败了。
至此,超级下载算法开发笔记番外篇之JLinkScript妙用痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。