程序在运行时难免会出现各种各样的bug,而有时候出现了bug而我们又很难确认程序是运行到哪里导致出现,提出个小技巧,方便各位使用。
工具
- Atollic TrueSTUDIO for STM32
界面为
1、代码写好之后,设置以优化等级为0进行编译:
项目---》属性---》C/C++ Build---》Settings---》Tool Settings---》C compiler---》Optimization---》None(-O0)
2、焼写可执行程序,即编译好的固件
设置成烧录方式,Jlink /ST-Link等,本人使用的是Jlink-SWD模式。
3、程序在芯片运行中出现bug时调试方式
我们不太方便实时的连着仿真器查看程序运行情况,当出现问题时再连上仿真器查找问题是一个很方便的事情。
编译的程序原模原样的保留一份,保证和芯片中运行的代码完全一样,连上仿真器,对IDE进行相关设置:
该设置是进入debug模式时,不烧写代码,只是和运行在芯片中代码的相关特征点进行关联,这样就可以将芯片中当前运行的工作状态可以通过仿真模式进行查看,方便查找问题和不破坏出现问题的环节环境。
当然Keil/MDK IAR CCS等IDE也可以实现这样的功能,相关设置搜索应该会有。