STM32 CubeMX产生的程序架构

使用STM32CubeMX产生启动相关代码,配置各种外设。在后续程序开发过程中,有可能使用STM32CubeMX逐步产生使用的代码,为了将其产生的代码和我们程序隔离,一种可行的程序架构如下:

STM32 CubeMX产生的程序架构_第1张图片

在此架构中,STM32CubeMX产生的相关代码作为整个架构的HWD层,和我们的程序分开放到不同的目录,易于区分。

HWD层依赖HAL层,功能模块和业务逻辑依赖HAL层。

HWD层依赖HAL层,在STM32CubeMX产生的代码USER处添加HAL层内的函数的依赖。

这样,当后续使用STM32CubeMX再次产生代码时,原USER处添加的代码不会发生变化。

HWD依赖HAL层,这种依赖在实现时使用HWD include HAL层内对应头文件。

为了在没有HWD层时,程序编译/链接/仿真不出问题,在HAL层内,使用弱函数(内部可以先为空,保证编译/链接正确),需要时在HWD层内实现同名函数功能

RTOS层在层级上位于HAL层上,具体是否调用HAL层接口,依赖具体实现。

文件目录结构参考如下:

STM32 CubeMX产生的程序架构_第2张图片

STM32CubeMX_Project为CubeMX产生的代码,在USER处加入了依赖代码。

Source为除HWD外的程序。

Output为编译出的目标文件。

你可能感兴趣的:(stm32,架构)