更新文档
This commit is contained in:
parent
e3137d867f
commit
59ad9579b5
|
@ -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](##附录3:Makefile指令介绍)。
|
||||
|
@ -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-M4(CM4),因此选用`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 |
Loading…
Reference in New Issue