首先下载附件中的几个文件放入项目路径下如图所示
在项目根目录下的CMakeLists.txt中添加能够引用到RTTDebug的CMakeLists.txt的子模块
add_subdirectory(Core/RTTDebug)
# Add linked libraries
target_link_libraries(${CMAKE_PROJECT_NAME}
stm32cubemx
rttDebug
# Add user defined libraries
)
其中Core/RTTDebug是RTTDebug对于项目根目录的相对路径,也可使用./Core/RTTDebug这种方式,要对于自己存放的位置合理修改。
openocd配置文件中添加如下代码
init
rtt setup 0x20000000 2048 "SEGGER RTT"
rtt start
rtt server start 9090 0
其中rtt setup 0x20000000 2048 "SEGGER RTT"
是在0x20000000处向后2048个字节寻找RTT控制块,这里的起始地址要根据自己的单片机型号,RAM地址区间酌情修改。 rtt server start 9090 0
代表在上位机localhost的9090端口开启rtt服务用于TCP连接,可以通过连接localhost的9090端口来接收日志信息。
在main函数中添加如下代码
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
SEGGER_RTT_Init();
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
其 SEGGER_RTT_Init();
为初始化RTT控制块的代码,需要在main函数中执行,然后便可通SEGGER_RTT_printf()
函数打印日志输出,并在单片机开始debug时由上位机中支持TCP连接的软件如XShell、Vofa+等软件连接localhost的9090端口实现实时日志查看。
附件:RTTDebug.zip