首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

在 Code::Blocks 中搭建 STM32F10x 開發環境(Sourcery G++ Lite)

     編輯:關於C語言

Code::Blocks + Sourcery G++ Lite for ARM EABI 開發 STM32F10x 完整配置

1. 工具鏈安裝與編譯器設定

  • 下載 Sourcery G++ Lite for ARM EABI(arm-none-eabi-gcc)。
  • Code::Blocks:Settings → Compiler → Copy from "GNU GCC Compiler",命名 Code Sourcery G++ Lite。
  • Toolchain executables:
C compiler:        arm-none-eabi-gcc.exe
C++ compiler:      arm-none-eabi-g++.exe
Linker for dyn:    arm-none-eabi-g++.exe
Linker for static: arm-none-eabi-ar.exe
Debugger:          arm-none-eabi-gdb.exe
Resource compiler: arm-none-eabi-windres.exe
Make:              make.exe

2. 建立 ARM 專案

File → New → Project → ARM Project,選擇上述編譯器。

3. 加入 STM32 標準庫原始檔

  • 專案右鍵 Add files,加入 STM32F10x_StdPeriph_Driver/src 下所有 .c。
  • 關鍵:加入啟動檔 startup_stm32f10x_md.s(位於 Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/gcc_ride7/)。

4. 設定標頭檔搜尋路徑

Project → Build options → Search directories → Compiler 加入:

  • Libraries/CMSIS/CM3/CoreSupport
  • Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x
  • Libraries/STM32F10x_StdPeriph_Driver/inc
  • 專案自有 inc/ 目錄

5. 連結腳本設定

Linker settings → Other linker options:

-T"${PROJECT_DIR}/STM32F103C8_FLASH.ld"

腳本檔放專案目錄,定義 FLASH/RAM 區塊與區段配置。

6. 定義宏(Defines)

Compiler settings → #defines 加入:

STM32F10X_MD
USE_STDPERIPH_DRIVER

7. 編譯器旗標(Compiler flags)

-mcpu=cortex-m3 -mthumb

注意:Cortex-M3 僅支援 Thumb 指令集,不可 使用 -mcpu=stm32f103c8(GCC 不認得),正確為 -mcpu=cortex-m3。

8. 建置後步驟:產生 HEX 與大小報告


arm-none-eabi-objcopy.exe -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).hex
arm-none-eabi-size.exe $(TARGET_OUTPUT_FILE)

9. __WFI() / __WFE() 編譯錯誤解決

若使用 __WFI()、__WFE() 內建函式編譯報錯,確認已加 -mcpu=cortex-m3,並包含 <cmsis_gcc.h>(提供內建函式宣告)。

參考資源

阿莫電子論壇高手指點:https://www.amobbs.com/forum.php?mod=viewthread&tid=5538067

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved