NDK 常见问题(FAQs)¶
Q1:为什么我使用 JLink (SWD) 烧录一个工程后,无法(或很难)再次烧录?¶
正常来说,如果 JLink 接线没问题的话,您是可以反复烧录 App 工程的,若您发现在空板上使用 JLink 烧录 App 工程很容易成功,但再次烧录则不容易成功,则有可能是以下两个原因:
您在 App 代码的初始化流程中修改了 P00/P01 引脚的功能,将其由默认的 SWD 功能切换为其他功能(如GPIO),那么当试图使用 JLink 进行烧录的时候,SWD 通信将无法正常进行
您的 App 工程会频繁地或长期地进入芯片的 DeepSleep 或 Standby 低功耗流程,在这两种低功耗模式下,SWD 通信将无法正常进行
若遇到上述情况,您可以尝试将 JLink 的 RESET 引脚接到 SoC 的 RESET 引脚上,然后再进行烧录,很多时候可以解决问题。若此方法仍然无法成功,那么您可以尝试以下两种方法:
使用 Panchip 量产烧录工具 PANLINK,将芯片 Flash 全部擦除
执行 JLink 脚本 ForceEraseVectorTable_PAN107x.bat(位于:
<pan1070-ndk>\05_TOOLS\调试工具
目录下),此脚本会尝试将 Flash 上的启动代码擦掉,若成功,后续即可正常使用 JLink 重新烧录
注:使用上述两种方法擦除 Flash 时,SoC 的 RESET 引脚是一定要连接上 PANLINK/JLink 的