STM32F030 MDK工程改GCC工程 记录过程

MDK版本:5.24.2.0

工程已经用ARMCC编译通过,复制MDK工程文件开始将编译器改为GCC arm。

1. 将编译器改为GCC arm.

2. 修改项目编译条件

CC子项:

Preprocessor Symbols中的Define项和ARMCC相同:USE_STDPERIPH_DRIVER,STM32F0XX,

Misc Controls的配置:-mcpu=cortex-m0 -mthumb -fdata-sections -ffunction-sections

可以根据MCU调整-mcpu=cortex-m0配置

Assembler子项:

Misc Controls的配置:-mcpu=cortex-m0 -mthumb

Link子项:

Misc Controls的配置:-Wl,-gc-sections

3. 获取ld文件和startup文件

使用ST的STM32CubeMX生成一个makefile工程

STM32CubeMX版本:5.3.0

在生成的工程文件夹内拷贝startup和ld文件到自己的工程,其中startup.s文件替换原来的startup文件,在link子项中的Linker Script File选择该ld文件

PS:修改堆栈的大小是在ld文件中

/* Highest address of the user mode stack */
_estack = 0x20002000;    /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200;      /* required amount of heap  */
_Min_Stack_Size = 0x400; /* required amount of stack */

使用gcc编译MDK并不会像ARMCC一样生成ROM和RAM的使用情况,自己写了一个map文件分析工具,计算ROM和RAM的使用情况,然后在user选项中在编译完成后运行该工具,参数是map文件的文件路径,其中对应的相对地址参考地址是工程文件uvprojx所在的文件夹。

运行效果如下:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值