在 Code Blocks 中开发 STM32F10x
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 在阿莫电子论坛发帖得到高手帮助)