关于使用jlink下载程序时出现No Cortex-M Device found问题
自己最近做了一块板子。stm32rbt6,第一个程序下载进去后发现LED灯闪烁,说明程序已经正常运行。但第二次添加了几段代码后,再重新使用jlink下载,总提示 no device found还有emulator has been changed or 什么什么,然后开始找原因。更新jlink驱动,jlink是盗版的以为它坏了呢,但是在debug里却能找到他的sn号说明他是好的,网上说跟stm32的BOOT0 和boot1的接法有关系,经过反复查看资料发现BOOT0是在接地的时候,而BOOT1三种状态任意的情况下程序都是从内部flash里开始运行的,并且此时用jlink下载是没有问题的,我也考证了神州1号stm32的开发板,人家也是这么接的,公司的产品也是这么做的,为什么我的就有问题呢?
回过头来想了想,公司产品使用stlink下载的,难道跟着有关,我在debug里改成swo,结果竟然能下载成功,我再重新尝试jlink下载还是出现上述问题。
网友说是可能程序禁用了jlink的功能,成千上万的代码我开始寻找,终于在某一个初始化的函数中找到了这句话
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);将他屏蔽掉,问题解决,
看来跟驱动无关,跟版本无关,硬件只要BOOT0接地,boot1任意都没问题。