我们要开启一个项目,如何将程序很好的部署关系到后续的代码移植和代码量增多之后的管理。本文就针对上述问题,提出一种合理的工程部署方法。
我们基于cobemx的软件灵活性,确保每次编译之后否不改变系统的完整性这一思想,将cobemx生成的文件和自己编写的文件独立开。这就是所提出这种工程部署方法的初衷。
拿STM32F103VBT6这块单片机来说我们要注意以下几点:
基础底层头文件汇总
我们通过cobemx生成的一些列基础功能配置,都会产生单独的.c和.h文件。将一些底层配置的头文件汇总到一个头文件中,在程序调用的时候只需要调用该头文件即可。我们调用其头文件无非是引用其中的初始化配置。因此,我们就定义其为application.h来存放cobemx生成的一些列基础功能配置头文件,当我们引用这些基础功能配置的头文件时只需要引用这个application.h即可。
功能定义集中
将一个功能模块的相关硬件和变量定义统一定义在一个文件中,这样方便移植和查阅。
如果功能C调用了功能D的函数,功能B又要调用功能C的函数该怎么写?
基于这种思想我们建立一个中间层,也就是将上述功能集中起来处理,再将处理的结果上报给功能A,我们将这三层关系总结为如下关系:
1. App
功能函数的实现,主要是回调函数的使用
usart_callback.c and usart_callback.h 另外,为了方便移植管理
2. BSP
我们配置的bsp_usart.c and bsp_usart.h是对上述的补充
3. DEVICE
Keil的工程如下所示。