1 下載:Sourcery G++ Lite for ARM EABI
2 設置編譯器路徑: 從 GCC ARM 拷貝而來 改名為: Code Sourcery G++ Lite
3 新建ARM Project
4 添加STM32庫文件,和 mdk 類似
注意:需要添加 gcc_ride7文件夾中的 GCC的啟動文件: xxx.s 且添加 core_cm3.c
5 加入頭文件搜索目錄:
6 添加連接腳本
7 添加定義宏:
STM32F10X_MD
USE_STDPERIPH_DRIVER
7.1 添加以及編譯選項:
7.1.1 C99編譯選項: -std=c99 (注意:不是 mdk中 的 --c99)
7.1.2 CPU框架:-mcpu=cortex-m3 -mthumb (注意:m3 只支持thumb模式)
然后編譯文件 就OK, 了
添加編譯后步驟,得到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)
/******************************************************************/
8 還存在問題:
在有用到 __WFI() 和 __WFE() 時編譯有錯誤:表示MCPU不支持這個語句,可能還是哪里還需要設置為STM32的MCU
但是當我加入編譯選項 -mcpu=stm32f103c8 后,編譯提示: cc1.exe: error: bad value (stm32f103c8) for -mcpu switch
可能當前的Sourcery G++ Lite 還沒有支持 STM32
在這里求助,希望知道的大俠,留言給我,解決這個問題,謝謝了!!!!
已解決:即 添加編譯選項:-mcpu=cortex-m3 -mthumb 即可!!
(http://www.amobbs.com/forum.php?mod=viewthread&tid=5538067&page=1#pid6745848 在阿莫電子論壇發帖得到高手幫助)