記錄一下在Windows平臺下,利用VSCode的arm-none-eabi擴展和msys使用Make實現STM32的交叉編譯。
準備:
1.安裝arm-none-eabi擴展
在VSCode的擴展窗口,搜索eabi,安裝windows-arm-none-eabi擴展

需要注意:我最開始安裝的0.1.6版本,但是編譯到最后copy的時候出錯,安裝0.1.2版本后,就正常,目前沒有去詳細分析原因。
這里搜索出來的時候,只能安裝最新版本,安裝成功后,可以點擊“設置”-> “Install Another Version...” 來安裝舊版本。有的時候“Install Another Version...”不可點擊,重啟一下VSCode就可以了。

2.安裝msys
msys是MinGW的一部分,先下載MinGW安裝器,安裝完成后運行。選擇MSYS,然后選擇右邊最上面的msys-base-bin,選中后會自動選中其他一系列的package,然后應用修改。

安裝完成后,會在C:MinGWmsys1.0bin看到安裝這些文件。主要看有沒有rm,mkdir這些。

安裝這個,主要是為了支持Makefile文件中的一些命令,很多命令是Windows原生沒有的。
3.配置環境變量
打開“高級系統設置” -> “環境變量”,找到用戶變量里的“path” -> “編輯”,分別添加上面安裝的兩個工具的路徑。

4.執行make
打開VSCode ->終端,執行make,一切OK

關鍵字:Make STM32 交叉編譯
引用地址:
VSCode+arm-none-eabi+msys使用Make實現STM32交叉編譯
推薦閱讀最新更新時間:2025-05-05 02:16
交叉編譯ARM版 Qt (qt-everywhere-opensource-src-4.8.4)
因實際項目需求,需將Qt編譯成LINUX-ARM版,以下為整個操作過程,使用Qt編寫的程序已在實際開發板上運行,在此貼出,但愿能為需要的朋友提供上幫助。 準備工作: Linux內核版本: Linux 2.6.35-22-generic #33-Ubuntu 交叉編譯工具: arm-none-linux-gnueabi 4.4.1 Qt安裝包: qt-everywhere-opensource-src-4.7.3.tar.gz 安裝 一.安裝交叉編譯工具 1.本機使用的交叉編譯工具是:arm-none-linux-gnueabi 2.添加交叉編譯工具的路徑至相應環境變量中: export
[單片機]
make the OC8051 run
作為開頭,很多細節我就先略過了,主要簡單的介紹幾個步驟to make the OC8051 run。 1、獲取OC8051源代碼。(opencore或某電子類論壇下載)。 2、修改oc8051_defines.v。此文件可讓用戶對硬件進行裁剪和配置。 修改如下(部分): 1 // 2 // oc8051 pherypherals 3 // 4 `define OC8051_UART 5 `define OC8051_TC01 6 `define OC8051_TC2 7 `define OC8051_PORTS //ports global enable 8 `define OC8051_PORT0
[單片機]
STM32 報錯:identifier is undefined
問題:頭文件中定義了結構體變量,但在.c的文件中使用時,總是報錯提示該結構體變量未定義。 原因:頭文件引入有問題。經檢查,在工程的include paths中不同路徑下存在同名的頭文件,這會造成編譯工程時始終執行的是同名文件中靠前的那一個,也就是說你正在編寫的那個頭文件根本沒有執行,所以會出現你認為自己已經定義的變量,可是程序總報錯提示變量未定義。 解決方案:在keil工程的include paths中去掉同名文件只剩下一個,或者先刪掉一個更名后再引入。
[單片機]
STM32: vscode 調試過程記要
一、 使用工具 cortex-debug 插件 1.png PyOcd 燒錄器 可以通過 pip install pyocd 來安裝 二、 pyocd 配置 首先要找到其芯片對應的包。其網上找。我這里使用的是 stm32f103ve ,其包是Keil.STM32F1xx_DFP.2.4.0.pack。 另外在項目中加入 pyocd 的配置文件 pyocd.yaml。其內容為, pack: - ChipPackage/Keil.STM32F1xx_DFP.2.4.0.pack 即包的路徑。 我以 stm32cubemx 生的項目結構為例, 1.png 其中 pyocd 的下載命令為, pyocd lo
[單片機]
STM32點亮小燈的程序和方法
STM32點亮小燈(庫函數版) 首先解釋以下 #ifndef _LED_H #ifndef _LED_H ...... ...... #endif 避免重復引用頭文件的內容。 一般放在頭文件里面,作用就是以防你在.c文件里面不小心重復包含頭文件的時候不會報錯 搞起來,搞起來。玩32其實點個燈是很難的,不像51,arduino等單片機 首先定義led庫 /******聲明led庫,防止在主函數中被重復調用*****/ #ifndef __LED_H #define __LED_H void LED_Init(void); #endif 定義led.c文件 #include led.h #include stm32f10x.
[單片機]
《嵌入式-STM32開發指南》第二部分 基礎篇 - 第1章 GPIO(HAL庫)
1.1 GPIO流水燈硬件電路分析 發光二極管是屬于二極管的一種,具有二級管單向導電特性,即只有在正向電壓(二極管的正極接正,負極接負)下才能導通發光。PB0引腳接發光二極管(LED1)的正極,所以PB0引腳輸出高電平LED1亮,PB0引腳輸出低電平LED1熄滅,,LED2,LED3同理。 圖1 LED電路圖 在上一章,我們知道STM32的引腳有8中模式,我們要點亮LED,顯然是輸出模式,那么則要將PB0、PG6、PG7設置為普通輸出模式,那么是是開漏輸出,還是推挽輸出呢?或者都可以。為了使得LED點亮,我們只需要將PB0、PG6、PG7輸出為高電平,斌企鵝需要輸出電流,則需要將其設置為推挽輸出,因為如果是開漏輸出,則不會有電
[單片機]
基于STM32的智能(GPS+NB-IOT)導盲系統
閑來無事,用手頭STM32做個項目。 成品功能: STM32通過GPS模塊采集位置數據,通過超聲波監測距離,看前方是否有障礙物,有的話蜂鳴器提醒。數據顯示在屏幕上,通過NB-IOT(BC26)模塊連接阿里云物聯網平臺接受數據并實時監控。 材料 STM32ZET6開發板(戰艦V3) TFT顯示屏(戰艦有我用的2.7寸的) NB-IOT(BC26)模塊 GPS模塊(ATK-NEO-6M GPS 模塊) 超聲波模塊(HCSR04) 杜邦線 用keil5進行開發 開始制作。 制作過程 首先測試GPS模塊,將例程下入板中測試。然后測試BC26模塊,通過AT指令接入阿里云,成功連接后再通過STM32接入阿里云實現通信。最后加
[單片機]
STM32(3):番外篇之Let's GO!
Let's GO! 能夠看到這里的盆友,相信前面兩個章節并沒有勸退,我覺得前面兩個章節可能是難度最大的兩篇了,如果能夠搞掂,后面的內容其實反而簡單。但是前面兩個章節是嵌入式開發 生存必要的技能 (理解寄存器以及查看手冊),否則后面也是寸步難行。 Go! Go! Go! 讓我們繼續探索STM32的世界吧。 番外:名字解析 這一回我們番外一下,八卦一下STM32的名稱,讓你實現“管中亦可規豹”;我現在手頭的這塊板子是: STM32F103C8T6 STM32:產品系列 ST是STMicroelectronics的縮寫,STMicroelectronics則是SGS-Thomson Microelectronics的縮寫,SGS
[單片機]