更新文档

This commit is contained in:
NeoZeng 2022-11-19 17:53:50 +08:00
parent e3137d867f
commit 59ad9579b5
4 changed files with 32 additions and 2 deletions

View File

@ -47,7 +47,7 @@ CubeMX进行初始化 --> VSCode编写代/进行编译/简单调试 --> Ozone变
***务必学完以上课程再开始本教程的学习。***
> 4. 如果有可能,还应该学习:[哈佛大学公开课计算机科学cs50](https://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fcs50.html)。你将会对单片机和计算机有不同的理解。
> 如果有可能,还应该学习:[哈佛大学公开课计算机科学cs50](https://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fcs50.html)。你将会对单片机和计算机有不同的理解。
## 预备知识
@ -123,6 +123,8 @@ RTOS创建任务的时候也会为每个任务分配一定的栈空间它会
> 工具链包含了编译器链接器以及调试器等开发常用组件。我们使用的Arm GNU toolchain中编译器是`arm-none-eabi-gcc.exe`,链接器是`arm-none-eabi-ld.exe`,调试器则是`arm-none-eabi-gdb.exe`。通过跨平台调试器和j-link/st-link/dap-link我们就可以在自己的电脑上对异构平台即单片机的运行进行调试了。
==***特别注意在新框架中我们使用的是arm-none-eabi-gcc此编译器不支持`__packed`关键字,若要进行字节压缩(不对齐字节),应该使用预编译指令`#pragma pack(1)`***==。
### Debug外设工作原理
![image-20221112145717063](assets\image-20221112145717063.png)
@ -248,7 +250,7 @@ VSCode常用快捷键包括
此时就可以享受intellicode带来的各种便利的功能了。我们的项目使用Makefile进行编译在之前的编译介绍中以GCC编译器为例如果需要编译一个文件要输入如下命令
```shell
gcc your_source_code_name.c -o output
gcc your_source_code_name.c -o output # your_source_code_name是待编译的文件名
```
然而,你面对的是一个拥有几百个.c和.h文件以及大量的链接库如果要将所有文件都输入进去那将是一件苦恼的事。Makefile在gcc命令上提供了一层抽象通过编写makefile来指定参与编译的文件和编译选项再使用`make`命令进行编译它会自动将makefile的内容“翻译”为gcc命令。这样编译大型项目就不是一件困难的事了。更多关于makefile的指令介绍参见[附录3](##附录3Makefile指令介绍)。
@ -473,6 +475,24 @@ VSCode `ctrl+,`进入设置,通过`搜索`找到cortex-debug插件的设置。
这页不要动。如果希望保存jlink的调试日志最后一个选项选择一个文件或者新建一个日志文件。
### 启用FreeRTOS支持
注意如果你的代码使用了实时系统在载入项目的时候Ozone会进行对应的提示。选择载入支持实时系统的插件即可。
如果没有提示请在console中输入下面的命令然后回车即可
```shell
Project.SetOSPlugin(“plugin_name”)
# plugin_name是启用的实时系统支持插件名
# 我们要使用的命令是Project.SetOSPlugin(“FreeRTOSPlugin_CM4”)
```
支持的插件在Ozone的安装目录下的`Plugins/OS`目录:
![image-20221119174445067](assets/image-20221119174445067.png)
我们的项目是F4的板子内核时Cortex-M4CM4因此选用`FreeRTOSPlugin_CM4.js`输入的时候js后缀不用输
### 常用调试窗口和功能
下图的配置是笔者常用的layout。每个窗口是否显示、放在什么位置等都是可以自己定义的。通过工具栏的view选项卡可以自行选择需要展示的窗口。
@ -483,6 +503,14 @@ VSCode `ctrl+,`进入设置,通过`搜索`找到cortex-debug插件的设置。
2. 变量watch窗口这里的变量不会实时更新只有在暂停或遇到断点的时候才会更新。若希望实时查看在这里右键选择需要动态查看的变量选择Graph他就会出现在**窗口8**的位置。
如果不需要可视化查看变量变化的趋势但是想不赞同查看变量的值请右键点击变量选择一个合适的refresh rate
![image-20221119173731119](assets/image-20221119173731119.png)
如果是一个结构体,你可以为整个结构体都进行刷新率的配置,不需要手动一个个修改。**或直接右键点击窗口**将refresh打勾
![image-20221119173918340](assets/image-20221119173918340.png)
3. 断点和运行追踪管理
4. 调试控制台,输出调试器的信息。
@ -509,6 +537,8 @@ VSCode `ctrl+,`进入设置,通过`搜索`找到cortex-debug插件的设置。
- **变量动态查看(可视化)**
- **在变量的watch窗口右键点击变量选择一个refresh rate也可以实时查看变量和keil一样。**
- 如果没有打开窗口现在view->timeline中打开可视化窗口。动态变量查看的窗口也在view->data sampling。
启用动态变量查看的流程如下:

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB