From f287958a678abd25211aee8d967d04f6b8408abf Mon Sep 17 00:00:00 2001 From: NeoZeng Date: Sat, 19 Nov 2022 22:47:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 10 ++--- VSCode+Ozone使用方法.md | 64 ++++++++++++++++++++++++----- assets/image-20221119222946103.png | Bin 0 -> 6665 bytes assets/image-20221119223148604.png | Bin 0 -> 31425 bytes 4 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 assets/image-20221119222946103.png create mode 100644 assets/image-20221119223148604.png diff --git a/.vscode/launch.json b/.vscode/launch.json index 1fef058..482e0ac 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,8 +1,8 @@ { "version": "0.2.0", "configurations": [ -// 使用dap-link(如无线调试器时的参考配置) - { + // 使用dap-link(如无线调试器时的参考配置) + { "name": "Debug-dap", "cwd": "${workspaceRoot}", "executable": "${workspaceRoot}\\build\\basic_framework.elf", // 要下载到调试器的文件 @@ -13,14 +13,14 @@ // 该项目的根目录已经提供了C型开发板使用的外设svd文件 "servertype": "openocd", //使用的GDB Server "configFiles": [ - ".\\openocd.cfg", // 配置文件已经在根目录提供,若要修改以此类推 + ".\\openocd.cfg", // 配置文件已经在根目录提供,若要修改以此类推,openocd的路径下的share/scripts中有各种写好的配置文件 ], // path to your gcc-arm-none-eabi/arm-none-eabi-gdb.exe,如果在cortex-debug的设置中写入了全局路径,这里不需要再写 // "gdbPath": "D:\\gcc-arm-none-eabi\\bin\\arm-none-eabi-gdb.exe", //"preLaunchTask": "build task",//先运行Build任务,取消注释即可使用 }, -// 使用j-link时的参考配置 - { + // 使用j-link时的参考配置 + { "name": "Debug-jlink", "cwd": "${workspaceFolder}", "executable": "${workspaceRoot}\\build\\basic_framework.elf", diff --git a/VSCode+Ozone使用方法.md b/VSCode+Ozone使用方法.md index bc7f88b..41b15dc 100644 --- a/VSCode+Ozone使用方法.md +++ b/VSCode+Ozone使用方法.md @@ -151,7 +151,7 @@ ITM是instrument trace macrocell指令追踪宏单元的缩写,它用于提供 ## 环境配置 -- ***所有需要编辑的配置文件都已经在basic_framework的仓库中提供,如果不会写,照猫画虎。*** +> ***所有需要编辑的配置文件都已经在basic_framework的仓库中提供,如果不会写,照猫画虎。*** - 安装STM32CubeMX,并安装F4支持包和DSP库支持包 @@ -173,7 +173,13 @@ ITM是instrument trace macrocell指令追踪宏单元的缩写,它用于提供 ![image-20221112172254809](assets\image-20221112172254809.png) -- 安装MinGW,等待界面如下: + + + > MinGW、Arm GNU toolchain和OpenOCD也可以通过**MSYS2**使用pacman包管理器(和apt/yum类似)直接安装,这种方法一步到位,**==这是更推荐使用的方式==**,请参看[附录5](##附录5:利用MSYS2安装依赖环境)。 + > + > **当然,你也可以直接按照下面的方法安装这两个工具。**不过,强烈推荐使用附录5中的方法。下面的方法将在发布完整版更新的时候被删除。 + +- 安装MinGW,等待界面如下:(will be deprecated soon,请注意这种方法将会在主分支发布正式版的时候删除) ![image-20221112172051589](assets\image-20221112172051589.png) @@ -191,7 +197,7 @@ ITM是instrument trace macrocell指令追踪宏单元的缩写,它用于提供 打开命令行(win+R,cmd,回车),输入`gcc -v`,如果没有报错,并输出了一堆路径和参数说明安装成功。 -- 配置gcc-arm-none-eabi环境变量,**把压缩包解压以后放在某个地方**,然后同上,将工具链的bin添加到PATH: +- 配置gcc-arm-none-eabi环境变量,**把压缩包解压以后放在某个地方**,然后同上,将工具链的bin添加到PATH:(will be deprecated soon,请注意这种方法将会在主分支发布正式版的时候删除) ![image-20221112172858593](assets\image-20221112172858593.png) @@ -203,9 +209,13 @@ ITM是instrument trace macrocell指令追踪宏单元的缩写,它用于提供 > 添加到环境变量PATH的意思是,当一些程序需要某些依赖或者要打开某些程序时,系统会自动前往PATH下寻找对应项。**一般需要重启使环境变量生效。** -- **将OpenOCD解压到一个文件夹里**,稍后需要在VSCode的插件中设置这个路径。 +- **将OpenOCD解压到一个文件夹里**,稍后需要在VSCode的插件中设置这个路径。(will be deprecated soon,请注意这种方法将会在主分支发布正式版的时候删除) -- CubeMX生成代码的时候工具链选择makefile + + +- **CubeMX生成代码**: + + 在project manager标签页工具链选择makefile ![image-20221112173534670](assets\image-20221112173534670.png) @@ -214,9 +224,9 @@ ITM是instrument trace macrocell指令追踪宏单元的缩写,它用于提供 ![image-20221112174211802](assets\image-20221112174211802.png) Makefile就是我们要使用的构建规则文件。 - + > **如果你使用basic_framework,不需要重新生成代码。** - + ## VSCode编译和调试配置 @@ -341,7 +351,7 @@ Makefile的大部分内容在CubeMX初始化的时候就会帮你生成。如果 > 在VSCode中调试不能像Keil一样查看变量动态变化,但是支持以外的所有操作,如查看外设和反汇编代码,设置断点触发方式等。 > -> 用于调试的配置参考这篇博客:[Cortex-debug 调试器使用介绍](https://blog.csdn.net/qq_40833810/article/details/106713462),这里包含了一些背景知识的介绍。你也可以直接查看下面的教程。 +> **用于调试的配置参考这篇博客**:[Cortex-debug 调试器使用介绍](https://blog.csdn.net/qq_40833810/article/details/106713462),这里包含了一些背景知识的介绍。你也可以直接查看下面的教程。 你需要配置**arm gnu工具链的路径**(工具链包括编译器、链接器和调试器等),**OpenOCD的路径**(使得GDB调试器可以找到OpenOCD并调用它,从而连接硬件调试器如j-link等),**JlinkGDBServer**的路径,以及该工作区(文件夹)的**launch.json文件**(用于启动vscode的调试任务)。 @@ -353,13 +363,15 @@ VSCode `ctrl+,`进入设置,通过`搜索`找到cortex-debug插件的设置。 **注意**,windows下路径需要使用两个反斜杠`\\`代表下一级文件夹。 +> 如果你使用附录5中的方法安装,前两个的路径都在Msys2/mingw64/bin下。 + ***其他配置需要的文件已经全部在basic_framework中提供***,包括`openocd.cfg STM32F407.svd .vscode/launch.json`。 ![image-20221115215531879](assets/image-20221115215531879.png)
主要需要配置这三个路径,第四个gdbPath可以选配
-如果教程中的启动json文件看不懂,请看仓库里的`.vscode`下的`launch.json`,照葫芦画瓢。 +如果教程中的启动json文件看不懂,请看仓库里的`.vscode`下的`launch.json`,照葫芦画瓢。注意把我写的路径替换掉或注释掉。`launch.json`已经添加了详细的注释。 根目录下已经提供了C板所需的.svd和使用无线调试器时所用的openocd.cfg配置文件。 @@ -714,7 +726,9 @@ C_DEFS = \ # C语言的宏定义 -DARM_MATH_ROUNDING # 对数学库的输出结果进行取整防止溢出? # AS includes -AS_INCLUDES = # 汇编包含目录.汇编语言也和C一样可以多个文件联合编译,在没有C语言的时候大家都是利用这种方式开发的.在一些运算资源极其受限的情况下也会直接编写汇编. +AS_INCLUDES = -IHAL_N_Middlewares/Inc +# 汇编包含目录.汇编语言也和C一样可以多个文件联合编译,在没有C语言的时候大家都是利用这种方式开发的.在一些运算资源极其受限的情况下也会直接编写汇编. +# CubeMX生成的HAL包含目录Inc下有一些头文件里面就包含了一些汇编要用到的头文件 # C includes, C语言的包含目录,将所有参与编译的头文件目录放在这里,注意是目录不需要精确到每一个文件. # 不想一行写完记得行尾加\,最后一行不要加 @@ -825,3 +839,33 @@ clean: ## 附录4:VSCode直接烧录代码 有时候你对自己的代码特别自信,不想debug想直接下载代码,那么直接通过J-Flash即可(随jlink一起安装)。要是觉得这样有点麻烦还要再开一个软件,J-Flash支持通过命令行执行。你可以在vscode中编写一个`download_task.json`: + + + + + +## 附录5:利用MSYS2安装依赖环境 + +之所以要使用Linux进行C++开发,是因为在开发环境中配置依赖包、依赖应用和库非常的方便。Debian系有apt,Fedora和Redhat系有yum,他们都可以方便地帮助我们下载开发软件必须的一些文件和工具。在windows的宇宙最强IDEVisual Studio中配置头文件和动态链接库可以称得上是最折磨的事。好在,现在Windows下也有可以使用的包管理工具了:[MSYS2](https://www.msys2.org/)。 + +安装包已经上传到了网盘的`EC/VSCode+Ozone环境配置/msys2-x86_64-20221028.exe`下。安装之后,打开MSYS2 MSYS软件,他是一个类shell的界面: + +![image-20221119222946103](assets/image-20221119222946103.png) + +输入以下命令然后一路回车即可: + +```shell +pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-arm-none-eabi-toolchain mingw-w64-x86_64-ccache mingw-w64-x86_64-openocd +# 需要注意ctrl+V不是黏贴快捷键,而是Ins+Shift.或者右键点击空白处选择黏贴也可以. +``` + +![image-20221119223148604](assets/image-20221119223148604.png) + +
比如上面这样,会让你选择,直接敲回车即可,等待安装
+ +刚进来第一次安装可能还会更新一下数据库,也是全部更新就行。 + +安装好之后,把Msys2下的mingw64的bin加入PATH环境变量:`D:\Msys2\mingw64\bin`(这是我的路径,注意要选自己的)。 + +注意,如果选用此安装方式,**OpenOCD的可执行文件也会被放在上面这个路径下**,记得稍后在VSCode中配置的时候找到这里。相应的scripts放在`D:\Msys2\mingw64\share\openocd`下。 + diff --git a/assets/image-20221119222946103.png b/assets/image-20221119222946103.png new file mode 100644 index 0000000000000000000000000000000000000000..c482f162579b828a2eb89b61780bc71ac9d02358 GIT binary patch literal 6665 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 I-}+qqADc16HUIzs literal 0 HcmV?d00001 diff --git a/assets/image-20221119223148604.png b/assets/image-20221119223148604.png new file mode 100644 index 0000000000000000000000000000000000000000..651b6e1f85b47f44f92f725f2ebe58c8144fe9e4 GIT binary patch literal 31425 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%0AoFf!$K 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