diff --git a/Software/Applications/PyOCD/PyOCD_的基本使用.md b/Software/Applications/PyOCD/PyOCD_的基本使用.md index 2aeb44b..013d057 100644 --- a/Software/Applications/PyOCD/PyOCD_的基本使用.md +++ b/Software/Applications/PyOCD/PyOCD_的基本使用.md @@ -2,10 +2,11 @@ ## 1. 基本命令 -- erase -- load -- gdbserver -- list:列出已连接的调试器。 +- erase:擦除 Flash; +- load:烧写 Flash,带擦除和校验; +- gdbserver:启动 GDB Server 服务器; +- list:列出已连接的调试器; +- rtt:控制 SEGGER RTT 兼容接口。 ## 2. pack 管理 @@ -38,7 +39,7 @@ pyocd erase --chip --target --pack <"/Path/To/Nationstech.N32 ## 5. 烧写芯片 -使用 load 命令烧写新,需要指定烧写的起始地址和要烧写的程序。 +使用 load 命令烧写新,需要指定烧写的起始地址和要烧写的程序。load 命令会自动擦除 Flash 并校验,可以指定擦除和校验方法。 ```bash pyocd.exe load --trust-crc --base-address <"/Path/To/Program.hex"> --target --frequency {Examples: "1000", "2.5khz", "10m"} --erase {auto,chip,sector} --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> @@ -52,6 +53,42 @@ pyocd.exe load --trust-crc --base-address <"/Path/To/Pro pyocd gdbserver --port 50000 --telnet-port 50001 --target --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> ``` -## 7. 外部参考资料 +## 7. RTT 控制 + +项目中如果兼容 RTT 接口,则可以通过 PyOCD 查看 RTT 输出。集成 RTT 的方法为,将 [RTT 接口](./RTT.zip) 文件解压后添加到项目中,代码中增加: + +```c +#include "SEGGER_RTT.h" + +SEGGER_RTT_ConfigUpBuffer(0, "RTTUP0", NULL, 0, + SEGGER_RTT_MODE_NO_BLOCK_SKIP); +SEGGER_RTT_ConfigDownBuffer(0, "RTTDOWN", NULL, 0, + SEGGER_RTT_MODE_NO_BLOCK_SKIP); +SEGGER_RTT_SetTerminal(0); +``` + +进行配置,使用: + +```c +SEGGER_RTT_printf(0, "Hello\r\n"); +``` + +进行打印。 + +该方法不但支持 Jtag,还支持 CMSIS-DAP/DAPLink 等调试器。 + +```bash +pyocd.exe rtt --target --pack <"/Path/To/Nationstech.N32L40x_DFP.0.9.0.pack"> +``` + +其他参数: + +- --help +- --address +- --up-channel-id +- --down-channel-id +- --log-file + +## 8. 外部参考资料 1. [PyOCD Command reference](https://pyocd.io/docs/command_reference.html) diff --git a/Software/Applications/PyOCD/RTT.zip b/Software/Applications/PyOCD/RTT.zip new file mode 100644 index 0000000..051d345 Binary files /dev/null and b/Software/Applications/PyOCD/RTT.zip differ