STM32 Jlink 命令行 - 烧录&RTT转发
STM32 Jlink 命令行 - 烧录&RTT转发
烧录
使用JFlash软件进行烧录,该软件可以通过Gui和命令行调用两种方式,着重介绍命令行方式,该方式可以实现一键烧录
烧录指令示例
需要提前创建好项目文件并放置在固定的地方
JFlash.exe -openprjE:/TEST/JFlashProject.jflash -openE:/TEST/build/SimCoJLinkTest.hex -auto -startapp -exit
#指令解析
# -openprjE:/TEST/JFlashProject.jflash 为项目文件,该项目文件需要提前创建,项目文件描述了烧录对象的信息(单片机型号等等)
# -openE:/TEST/build/SimCoJLinkTest.hex 为需要烧录的文件,bin格式的文件需要附上烧录地址,而hex和elf文件不需要(其自带烧录地址)
# -auto 自动烧录方式;默认情况下执行擦除,烧录,验证
# -startapp 启动app,默认情况下烧录完毕后不会执行程序,该参数可以让单片机在烧录后立刻运行
# -exit 退出JFlash,如果没有该指令则不会退出JFlash,需要手动关闭Gui串口
RTT
直接查看RTT可以通过JLink RTT View进行查看,如果需要透传到第三方软件查看则需要通过telnet通道传输
使用
JLlink.exe打开telnet通道
运行命令
JLink.exe -device STM32F103C8 -if swd -speed 10000 -autoconnect 1
# -if swd 指定接口
# -speed 10000 连接速度 这里为10000k,也就是10M
# -autoconnect 1 使能自动连接
运行该命令后,参考输出
PS C:\Users\USER> JLink.exe -device STM32F103C8 -if swd -speed 10000 -autoconnect 1
SEGGER J-Link Commander V6.88c (Compiled Dec 4 2020 18:07:30)
DLL version V6.88c, compiled Dec 4 2020 18:05:56
Connecting to J-Link via USB...O.K.
Firmware: J-Link V9 compiled May 7 2021 16:26:12
Hardware version: V9.70
S/N: 150712423
License(s): GDB, RDI, FlashBP, FlashDL, JFlash
VTref=3.288V
Device "STM32F103C8" selected.
Connecting to target via SWD
Found SW-DP with ID 0x1BA01477
Found SW-DP with ID 0x1BA01477
DPIDR: 0x1BA01477
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x14770011)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x411FC231. Implementer code: 0x41 (ARM)
Found Cortex-M3 r1p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 001BB000 SCS
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 001BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 001BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 001BB923 TPIU-Lite
Cortex-M3 identified.
J-Link>
此时,JLink.exe会开放 19021 端口
使用 Vofa+,SecureCRT等软件可以采集RTT数据
使用 J-Link Command Strings 修改RTT 的地址和Telnet的监听地址
https://wiki.segger.com/J-Link_Command_Strings#Using_J-Link_Command_Strings
可以使用
.jlink文件执行命令,字符串修改可以通过exec指令修改exec SetRTTAddr 0x20000000 exec SetRTTTelnetPort 19021
对于复杂的程序,RTT控制块的地址难找,就需要使用其他方式实时修改
.jlink文件中的RTT控制块地址


浙公网安备 33010602011771号