更新文档,提供ccache的支持,加速编译过程

This commit is contained in:
NeoZeng 2022-11-20 15:10:59 +08:00
parent 9fd540efba
commit 267b9c41b1
2 changed files with 9 additions and 4 deletions

View File

@ -142,7 +142,8 @@ HAL_N_Middlewares/Middlewares/Third_Party/SEGGER/RTT/SEGGER_RTT_ASM_ARMv7M.s
####################################### #######################################
# binaries # binaries
####################################### #######################################
PREFIX = ccache arm-none-eabi- PREFIX = arm-none-eabi-
# PREFIX = ccache arm-none-eabi- 可以通过安装ccache来缓存makefile内容加速编译
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
# either it can be added to the PATH environment variable. # either it can be added to the PATH environment variable.
ifdef GCC_PATH ifdef GCC_PATH

View File

@ -296,7 +296,9 @@ arm-none-eabi-objcopy -O ihex build/basic_framework.elf build/basic_framework.he
arm-none-eabi-objcopy -O binary -S build/basic_framework.elf build/basic_framework.bin arm-none-eabi-objcopy -O binary -S build/basic_framework.elf build/basic_framework.bin
``` ```
由于使用了多线程编译比KEIL的蜗牛单线程要快了不少。以上内容代表了生成的可执行文件的大小以及格式和内容。.elf文件就是我们需要传递给调试器的东西在[使用VSCode调试](###简单调试)部分会介绍。 由于使用了多线程编译比KEIL的蜗牛单线程要快了不少。以上内容代表了生成的可执行文件的大小以及格式和内容。.elf文件就是我们需要传递给调试器的东西在[使用VSCode调试](###简单调试)部分会介绍。典型的编译时间大致如下:
1. 从零开始重新编译:~10s
2. 修改文件后编译:~3s
当然了,你可能觉得每次编译都要在命令行里输入参数,太麻烦了。我们可以编写一个`task.json`这是VSCode的一个任务配置内容大致如下 当然了,你可能觉得每次编译都要在命令行里输入参数,太麻烦了。我们可以编写一个`task.json`这是VSCode的一个任务配置内容大致如下
@ -308,7 +310,7 @@ arm-none-eabi-objcopy -O binary -S build/basic_framework.elf build/basic_framewo
{ {
"label": "build task", // 任务标签 "label": "build task", // 任务标签
"type": "shell", // 任务类型,因为要调用mingw32-make,是在终端(CMD)里运行的,所以是shell任务 "type": "shell", // 任务类型,因为要调用mingw32-make,是在终端(CMD)里运行的,所以是shell任务
"command": "mingw32-make -j24",// 任务命令 "command": "mingw32-make -j24",// 要执行的任务命令
"problemMatcher": [], "problemMatcher": [],
"group": { "group": {
"kind": "build", "kind": "build",
@ -319,7 +321,7 @@ arm-none-eabi-objcopy -O binary -S build/basic_framework.elf build/basic_framewo
} }
``` ```
这样你就可以点击VSCode工具栏上方的Terminal->Run task选择你刚刚配置的任务开始编译了。**更方便的方法是使用快捷键:`ctrl+shift+B`。** 这样你就可以点击VSCode工具栏上方的Terminal->Run task选择你刚刚配置的任务开始编译了。**更方便的方法是使用快捷键:`ctrl+shift+B`。** 之后要配置下载任务和调试任务等也可以利用这种方法新建一个xxx_task实现一键下载、一键调试等。
![image-20221112192133103](assets\image-20221112192133103.png) ![image-20221112192133103](assets\image-20221112192133103.png)
@ -873,6 +875,8 @@ pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-arm-none-eabi-toolchain mi
注意,如果选用此安装方式,**OpenOCD的可执行文件也会被放在上面这个路径下**记得稍后在VSCode中配置的时候找到这里。相应的scripts放在`D:\Msys2\mingw64\share\openocd`下。 注意,如果选用此安装方式,**OpenOCD的可执行文件也会被放在上面这个路径下**记得稍后在VSCode中配置的时候找到这里。相应的scripts放在`D:\Msys2\mingw64\share\openocd`下。
通过这种方式安装之后还可以选用ccache加速编译。ccache会根据之前的编译输出建立缓存使得之后编译时可以直接读取缓存。要开启这个功能直接在Makefile中搜索PREFIX将下面一行的内容替代原有内容即增加ccache在arm-none-eabi-之前)。
## 附录6Windows修改用户名为英文 ## 附录6Windows修改用户名为英文