STM32 Jlink 命令行 - 烧录&RTT转发

STM32 Jlink 命令行 - 烧录&RTT转发

烧录

使用JFlash软件进行烧录,该软件可以通过Gui和命令行调用两种方式,着重介绍命令行方式,该方式可以实现一键烧录

https://www.bmrtech.com/Tech/tech_show/355.html

烧录指令示例

需要提前创建好项目文件并放置在固定的地方

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

image-20241126161804674

对于复杂的程序,RTT控制块的地址难找,就需要使用其他方式实时修改 .jlink 文件中的RTT控制块地址

posted @ 2025-05-07 11:28  c17VV  阅读(570)  评论(0)    收藏  举报