如何在CubeIDE中移除默认HAL库 仅用寄存器开发低资源占用程序
CubeIDE现有项目移除HAL库转为寄存器开发操作方法
1. 移除HAL相关文件与编译配置
- 删除项目目录下
Drivers/文件夹内的STM32xxx_HAL_Driver子文件夹,必须保留CMSIS文件夹,寄存器定义、内核标准头文件都存放在该目录下 - 右键项目选择
Properties,进入C/C++ General -> Paths and Symbols,在Includes标签页删除所有带HAL_Driver/Inc字样的头文件搜索路径 - 同属性页内进入
C/C++ Build -> Settings -> Tool Settings -> MCU GCC Compiler -> Preprocessor,删除预定义宏列表中的USE_HAL_DRIVER条目
2. 清理项目代码中的HAL引用
- 打开
Core/Src/main.c,删除开头的#include "stm32xxx_hal.h"引用,删除所有HAL相关初始化代码,包括HAL_Init()、HAL时钟配置函数等 - 删除项目中
stm32xxx_hal_msp.c、stm32xxx_hal_timebase_tim.c等所有HAL专属源文件 - 可自行重写
SystemInit函数实现时钟配置,也可直接在main函数开头通过操作寄存器完成时钟、外设的初始化逻辑
3. 验证与防回退配置
- 执行全量编译,若提示找不到HAL相关头文件或函数,检查是否还有残留的HAL引用未清理
- 清理完成后编译输出的Flash、RAM占用会比默认HAL项目降低80%以上,最小可压缩至KB级别
- 若不需要后续用CubeMX重新生成代码,可在项目属性的
CubeMX Settings页取消勾选Generate Code Automatically,避免误操作重新生成HAL相关文件
内容的提问来源于stack exchange,提问作者Saeid Haghighipour
相关产品推荐
相关产品推荐

