固件显示“下载成功”,只说明文件已写入并完成相应校验,不代表目标CPU已开始执行。调试工具可能让核心停在复位入口,也可能在入口断点处暂停。设置自动运行前,先在当前板卡上验证“下载、复位、继续执行”这一顺序,再将它写入固定流程。
一、J-Link怎么设置下载后自动运行
1、在Commander中手动验证
J-Link Commander可用LoadFile下载、r复位、g继续执行。下载BIN文件时需要指定目标地址;ELF、HEX文件通常使用文件中记录的地址。
①打开【J-Link Commander】,选择目标芯片、接口和速度,输入connect,按【Enter】。
②下载BIN时输入LoadFile<固件路径>
③确认下载输出没有错误后,依次输入r、g,每条命令后按【Enter】。
④输入IsHalted,按【Enter】,查看核心是否正在运行。
2、用命令文件实现自动运行
手动操作有效后,可以把相同命令写入J-Link Command File。下次执行该文件,就能按既定顺序完成下载和启动。
①在【文本编辑器】中新建文件,逐行写入Device<芯片型号>、SelectInterface SWD、Speed 1000、connect;使用JTAG时修改接口命令。
②继续逐行写入LoadFile<固件路径><地址>、r、g、exit;使用ELF或HEX时省略下载地址。
③将文件保存为.jlink文件,在【终端】输入JLink.exe-CommandFile<文件路径>,按【Enter】查看执行结果。
3、在J-Flash中启用启动选项
若使用具备相应授权的J-Flash生产编程流程,可启用下载后的启动动作。该选项默认关闭。采用Flasher设备执行生产编程时,还需按目标配置连接复位引脚。
①打开项目,依次点击【Options】→【Project settings...】→【Production】。
②确认【Program】和【Verify】已选中,再勾选【Start application】。
③核对目标芯片、Flash bank和复位接线,保存项目。
④依次点击【Target】→【Production Programming】,查看完成后的状态。
二、J-Link程序下载完成后没有启动如何调整
1、确认CPU是否仍被暂停
下载完成后若没有预期输出,先读核心状态。若它仍处于暂停状态,补上继续执行动作,并检查命令文件的顺序。
①在【J-Link Commander】输入IsHalted,按【Enter】。
②若显示暂停,输入g,按【Enter】,再次读取状态。
③打开.jlink文件,确认g位于LoadFile和r之后。
2、核对下载地址与固件文件
BIN文件不包含装载地址。地址写错时,下载过程可能完成,但复位后芯片不会从该位置启动。对ELF、HEX文件,则应核对构建产物是否来自当前工程。
①查看下载输出中的写入地址,对照芯片内存表和工程链接文件。
②下载BIN时,重新输入LoadFile<固件路径><正确起始地址>。
③下载ELF或HEX时,核对文件路径与构建时间,再执行下载。
④若目标是Cortex-M,输入Mem32<向量表起始地址>2,检查初始栈指针和复位入口。
3、检查复位方式与启动模式
如果输入g后能运行,一执行r却无法启动,应检查芯片的启动配置与复位流程。部分设备需要先经过ROM引导程序,再进入用户固件。
①在【J-Link Commander】输入Device<芯片完整型号>,核对所选器件。
②输入RSetType,按【Enter】,查看可用的复位类型。
③按芯片手册核对启动引脚或启动配置,再执行r、g复查。
4、排除断点影响
程序刚开始执行又停住时,可能命中了入口断点。先看调试器显示的停机位置,再决定是否调整断点。
①在调试器的【Breakpoints】窗口查看已启用断点。
②暂时停用不需要的入口断点,点击【Continue】,观察程序是否继续执行。
5、检查程序是否在启动阶段出错
核心显示正在运行,却看不到LED、串口等预期现象,不一定是启动命令未生效。程序也可能进入异常处理、等待外设,或很快转入低功耗。
①在【J-Link Commander】输入halt,按【Enter】,再输入Regs查看PC、SP。
②对照链接文件,检查PC当前位于启动代码、异常处理还是主程序区域。
③在程序入口设置断点,执行r、g,检查能否到达入口。
三、怎样确认自动运行已生效
1、验证脱离调试器后的启动结果
连接J-Link时能运行,还要检查目标板独立上电后能否启动。两种状态的结果一致,才能确认程序没有依赖调试会话中的额外动作。
①运行.jlink文件,检查下载、校验和g的执行输出。
②退出【J-Link Commander】,断开调试连接,给目标板重新上电。
③观察程序约定的指示灯、串口输出或其他运行现象。
2、保存可复用的下载流程
如果目标板需要特定的复位顺序,应将其与固件版本一同记录,避免下次换设备或电脑时漏掉启动命令。
①保存.jlink文件,记录芯片型号、Flash地址和接口设置。
②记录复位后是否需要执行g,以及独立上电的测试结果。
总结
下载后自动运行是否设置完成,最终要看固件在脱离调试器后能否自行启动。保留两项结果很有用:工具显示的下载与运行状态,以及目标板重新上电后的实际表现。这样既能检查命令顺序,也能发现程序是否依赖调试时的额外初始化。希望本文能帮助大家排查J-Link下载完成后程序未启动的问题;如有J-Link相关需求,欢迎联系我们咨询。