8 调试理论讲解
开发工具图

我们通常使用GDB完成调试任务,有关gdb的相关信息请看b站视频(11分21秒)

由图可知,我们需要Cortex-Debug与arm-none-eabi-gdb。其中后者已经在ARM GNU Toolchain中下载完成。只需要安装Cortex-Debug即可
9 vscode配置
安装 Cortex-Debug插件

10 让代码跑起来!
1,学习CMakeLists.txt
CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。
而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,在根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需make编译即可,所以可以把CMake看成一款自动生成 Makefile的工具,其编译流程如下图:

蓝色虚线表示使用makefile构建项目的过程
红色实线表示使用cmake构建项目的过程
附上我觉得很不错的CMake教程
2,VSCode Debug 配置
OpenOCD + ST-Link 调试配置(launch.json)
"configurations": [
{
"name": "ST-Link Cortex-M4 Debug",
"type": "cortex-debug",
"request": "launch",
"servertype": "openocd",
"cwd": "${workspaceRoot}",
"executable": "${workspaceRoot}/build/qingluan.elf",
"device": "STM32F401RE",
"configFiles": [
"interface/stlink-v2-1.cfg",
"target/stm32f4x.cfg"
],
"svdFile": "${workspaceRoot}/Script/STM32F401.svd",
"runToEntryPoint": "main",
},
]
为了能让 Cortex-Debug 知道开发板寄存器内存映射,在 Debug 的时候能够看寄存器的值,需要开发板对应的 CMSIS-SVD 文件(即上述配置中的 STM32F401.svd),在下面的 GitHub 仓库可以找到,加入到launch.json中就可以了
Patched SVD files for STM32 MCUs
打上断点,就可以正常单步 Debug 啦
11 结语
终于写完了 五一搞了整整三天。。。呜呜呜。。。
希望大家看这个可以缩短搭建时间。中间代码有什么问题还请多多包涵。最后感谢刘佬的博客教学!!!
现在是12/5号,已经过去7个月了。回看7个月前的自己,简直emmmmm。当年脑子绝对有问题,写了那么一坨出来。这次真的理解了,但是还是发现自己无法向其他人讲述出来。。。估计半年之后回来发现自己依旧写了一坨。。。
12 挖一个坑
ps:跟学长交流后,这个教程还需完善,为了学习真正的底层,要自己写CMakeLists.txt与start文件。未完待续。。。
最大的感悟: 当你完成从0到1的突破后,继续向从1到10的突破的时候,就会发现已经讲不清如何从0到1的了。那些面向小白的,讲的通俗易懂的也是真的大佬。后面有时间再改改吧。
Comments 1 条评论
(・∀・)