加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1. 軟件工具安裝
    • 2. 創(chuàng)建新工程
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

如何使用VSCode+GCC+Cortex Debug創(chuàng)建STM32交叉開(kāi)發(fā)環(huán)境

09/20 09:20
2.3萬(wàn)
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

使用VSCode + arm-none-eabi-gcc + Cortex Debug創(chuàng)建STM32交叉開(kāi)發(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 - 嵌入式應(yīng)用二進(jìn)制接口(Embedded Application Binary Interface)

?各個(gè)不同的arm編譯器區(qū)別:

?Figure?1:

基于上表對(duì)比,選用arm-none-eabi-gcc來(lái)開(kāi)發(fā)ARM裸機(jī)程序(包括Linux系統(tǒng)的引導(dǎo)程序或者單片機(jī)程序)。

arm-none-eabi-gcc下載地址:Arm GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developer(一定要下載高版本的程序,測(cè)試過(guò) 10.3.1版本可以穩(wěn)定開(kāi)發(fā)STM32)。

文件下載完成之后,直接雙擊進(jìn)行安裝,這個(gè)軟件的安裝過(guò)程其實(shí)只是一個(gè)解壓的過(guò)程。

安裝完成之后,需要將安裝目錄(GNU Arm Embedded Toolchain10 2021.10bin)添加到環(huán)境變量中。

Figure?2:

一切完成之后,在終端或者命令行中輸入arm-none-eabi-gcc -v 即可顯示當(dāng)前arm-none-eabi-gcc的版本。

Figure?3:

1.3 make工具的安裝

arm-none-eabi-gcc雖然提供了為ARM設(shè)計(jì)的匯編器(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)等和獨(dú)立的C庫(kù),但是美中不足的是不提供make工具。

因此,可以從MinGW中分離出mingw32-make.exe,將其作為一個(gè)獨(dú)立的軟件,放置在arm-none-eabi-gcc的bin目錄中。

make的下載地址: 公盤(pán)位置 Z(172.19.100.68):公用cortex gcc toolsmake.exe。

將放置在arm-none-eabi-gcc的bin目錄中之后,在終端中輸入make,make工具就能正常運(yùn)行,不會(huì)拋出軟件未找到的錯(cuò)誤,如下圖。

Figure?4:

1.4 Cortex-Debug工具安裝

完成上述步驟之后,STM32的工程已經(jīng)可以正常編譯并輸出elf文件了。

??ELF文件 :Executable and Linkable Format. 在計(jì)算機(jī)科學(xué)中,是一種用于二進(jìn)制文件、可執(zhí)行文件、目標(biāo)代碼、共享庫(kù)和核心轉(zhuǎn)儲(chǔ)格式文件。是UNIX系統(tǒng)實(shí)驗(yàn)室(USL)作為應(yīng)用程序二進(jìn)制接口(Application Binary Interface,ABI)而開(kāi)發(fā)和發(fā)布的,也是Linux的主要可執(zhí)行文件格式。

但是,還缺少一個(gè)集成的調(diào)試工具,這里推薦的調(diào)試工具有三個(gè):

?Ozone: Ozone is a cross-platform debugger and performance analyzer for J-Link and J-Trace.這是個(gè)Segger官方推出的免費(fèi)工具,基于Jlink調(diào)試工具。

?OpenOCD: Top (OpenOCD User’s Guide). OpenOCD是一個(gè)運(yùn)行于PC上的開(kāi)源調(diào)試軟件,它可以控制包括Wiggler之內(nèi)的很多JTAG硬件;我們可以將它理解為一種GDB服務(wù)程序。

?Cortex-Debug: Cortex-Debug是一個(gè)基于VSCode插件形式的調(diào)試工具。

為了使用一個(gè)集成度比較高一點(diǎn)的開(kāi)發(fā)環(huán)境,Cortex-Debug工具是個(gè)比較明智的選擇。下圖介紹了 gdb 調(diào)試的組成和它們之間的關(guān)系,在開(kāi)始之前有必要理解清楚它們的關(guān)系。

Figure?5:

Cortex-Debug的安裝方式非常簡(jiǎn)單,只要在VSCode的擴(kuò)展欄輸入“Cortex-Debug”即可搜索到這個(gè)工具,接著,點(diǎn)擊安裝即可完成。

Figure?6:

2. 創(chuàng)建新工程

2.1 利用STM32CubeMx軟件創(chuàng)建工程。

按照之前創(chuàng)建STM32工程一樣,使用STM32CubeMx軟件配置適合自己硬件的工程,并且輸出代碼。需要注意的是,在輸出代碼的時(shí)候,需要選擇輸出為Makefile形式。

Figure?7:

代碼成功輸出之后,就可以看到輸出目錄里面有如下的文件和文件夾。

Figure?8:

上圖中,使用顏色框框出的文件是在后續(xù)移植代碼中需要用到,其余文件都是STM32CubeMx軟件自動(dòng)生成的項(xiàng)目文件,無(wú)需理會(huì),可以將其刪除。

2.2 創(chuàng)建VSCode相關(guān)配置文件

直接用VSCode打開(kāi)這個(gè)文件夾,在“運(yùn)行和調(diào)試”中,點(diǎn)擊“創(chuàng)建launch.json文件”,并在彈出的下拉菜單中,選擇“Cortex-Debug”,即可創(chuàng)建一個(gè)項(xiàng)目運(yùn)行的配置文件。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜