STM32F030F4P6 HAL问题
本帖最后由 jyl518-283289 于 2018-12-6 10:10 编辑STM32CubeMX 5.0.0环境下,
STM32F030F4P6+HAL,仅生成一些初始接串口工作,
但编译后发现HEX文件大小14KBytes,
STM32F030F4P6总共就16KByte的ROM,
占了这么多空间,写应用的空间几乎没了?
请教下大家,用HAL都是占这么大的空间吗?怎么初始化代码空间?
STM32CubeMX 生成后的代码就以下这些。
#include "main.h"
SPI_HandleTypeDef hspi1;
UART_HandleTypeDef huart1;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
static void MX_SPI1_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
while (1)
{
}
}
本帖最后由 す疯Ⅱ恒す 于 2018-12-6 10:55 编辑
把优化等级开最高试试吧。实在不行就换标准库吧。HAL是挺占空间的。另外hex文件大小与flash空间大小不等价,需要看编译后的信息看看占了多大flash。 换LL库,最省空间了:lol 本帖最后由 jyl518-283289 于 2018-12-6 12:04 编辑
谢谢,我找到答案了,占用ROM空间的代码不能似HEX文件为准,
而要参考编译结果:
Program Size: Code=4772 RO-data=232 RW-data=8 ZI-data=1240让keil直接生成Bin文件,大小在5KByte左右,还可以接受的样子
详见http://blog.csdn.net/u011392772/article/details/42869859
す疯Ⅱ恒す 发表于 2018-12-6 10:54
把优化等级开最高试试吧。实在不行就换标准库吧。HAL是挺占空间的。另外hex文件大小与flash空间大小不等价 ...
优化等级开已经开最高了 不能看hex文件的大小,真正烧写的是BIN文件,应该以这个为准,HEX不是真正的二进制文件。 HEX文件大小不是FLASH的大小,不能作为比较,你应该看编译器编译后的大小,一般编译信息里都有代码大小的,或者看BIN文件的大小
页:
[1]