使用VSCode + arm-none-eabi-gcc + Cortex Debug創(chuàng)建STM32交叉開發(fā)環(huán)境
Author:Edward
Data: 2022-03-27
Version: 1.0
1. 軟件工具安裝
1.1 VSCode
VSCode下載鏈接:Download Visual Studio Code - Mac, Linux, Windows
1.2 arm-none-eabi-gcc
下載連接:Arm GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developer
?Tip: eabi - 嵌入式應用二進制接口(Embedded Application Binary Interface)
?各個不同的arm編譯器區(qū)別:
?Figure?1:
基于上表對比,選用arm-none-eabi-gcc來開發(fā)ARM裸機程序(包括Linux系統(tǒng)的引導程序或者單片機程序)。
arm-none-eabi-gcc下載地址:Arm GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developer(一定要下載高版本的程序,測試過 10.3.1版本可以穩(wěn)定開發(fā)STM32)。
文件下載完成之后,直接雙擊進行安裝,這個軟件的安裝過程其實只是一個解壓的過程。
安裝完成之后,需要將安裝目錄(GNU Arm Embedded Toolchain10 2021.10bin)添加到環(huán)境變量中。
Figure?2:
一切完成之后,在終端或者命令行中輸入arm-none-eabi-gcc -v 即可顯示當前arm-none-eabi-gcc的版本。
Figure?3:
1.3 make工具的安裝
arm-none-eabi-gcc雖然提供了為ARM設計的匯編器(arm-none-eabi-as.exe),C編譯器(arm-none-eabi-gcc.exe),C++編譯器(arm-none-eabi-g++.exe),鏈接器(arm-none-eabi-ld.exe),調(diào)試器(arm-none-eabi-gdb.exe)等和獨立的C庫,但是美中不足的是不提供make工具。
因此,可以從MinGW中分離出mingw32-make.exe,將其作為一個獨立的軟件,放置在arm-none-eabi-gcc的bin目錄中。
make的下載地址: 公盤位置 Z(172.19.100.68):公用cortex gcc toolsmake.exe。
將放置在arm-none-eabi-gcc的bin目錄中之后,在終端中輸入make,make工具就能正常運行,不會拋出軟件未找到的錯誤,如下圖。
Figure?4:
1.4 Cortex-Debug工具安裝
完成上述步驟之后,STM32的工程已經(jīng)可以正常編譯并輸出elf文件了。
??ELF文件 :Executable and Linkable Format. 在計算機科學中,是一種用于二進制文件、可執(zhí)行文件、目標代碼、共享庫和核心轉(zhuǎn)儲格式文件。是UNIX系統(tǒng)實驗室(USL)作為應用程序二進制接口(Application Binary Interface,ABI)而開發(fā)和發(fā)布的,也是Linux的主要可執(zhí)行文件格式。
但是,還缺少一個集成的調(diào)試工具,這里推薦的調(diào)試工具有三個:
?Ozone: Ozone is a cross-platform debugger and performance analyzer for J-Link and J-Trace.這是個Segger官方推出的免費工具,基于Jlink調(diào)試工具。
?OpenOCD: Top (OpenOCD User’s Guide). OpenOCD是一個運行于PC上的開源調(diào)試軟件,它可以控制包括Wiggler之內(nèi)的很多JTAG硬件;我們可以將它理解為一種GDB服務程序。
?Cortex-Debug: Cortex-Debug是一個基于VSCode插件形式的調(diào)試工具。
為了使用一個集成度比較高一點的開發(fā)環(huán)境,Cortex-Debug工具是個比較明智的選擇。下圖介紹了 gdb 調(diào)試的組成和它們之間的關系,在開始之前有必要理解清楚它們的關系。
Figure?5:
Cortex-Debug的安裝方式非常簡單,只要在VSCode的擴展欄輸入“Cortex-Debug”即可搜索到這個工具,接著,點擊安裝即可完成。
Figure?6:
2. 創(chuàng)建新工程
2.1 利用STM32CubeMx軟件創(chuàng)建工程。
按照之前創(chuàng)建STM32工程一樣,使用STM32CubeMx軟件配置適合自己硬件的工程,并且輸出代碼。需要注意的是,在輸出代碼的時候,需要選擇輸出為Makefile形式。
Figure?7:
代碼成功輸出之后,就可以看到輸出目錄里面有如下的文件和文件夾。
Figure?8:
上圖中,使用顏色框框出的文件是在后續(xù)移植代碼中需要用到,其余文件都是STM32CubeMx軟件自動生成的項目文件,無需理會,可以將其刪除。
2.2 創(chuàng)建VSCode相關配置文件
直接用VSCode打開這個文件夾,在“運行和調(diào)試”中,點擊“創(chuàng)建launch.json文件”,并在彈出的下拉菜單中,選擇“Cortex-Debug”,即可創(chuàng)建一個項目運行的配置文件。