总结项目文件、程序开发管理方法
前言
搞了几年的单片机开发,考虑过项目文件架构、文件命名规范、软件架构的问题,但都比较零散,不够系统化,索性现在总结输出一个文件,以后也好直接套用。
因现阶段能力受限,规范的各方面难免存在问题,只能后期迭代完善。
总的目的
项目文件好管理、好找
项目开发有记录,有文档输出
程序移植性高,可裁剪
降低程序维护成本
下文简介
项目文件结构
文件归类存放,构成一个项目资料包:
版本控制
常用的SVN、Git,写好日志,历史版本可追溯:
软件系统架构
整体软件分4层:HAL、BSP、Drive、APP
HAL是MCU的外设库,硬件抽象层,不能改动
BSP负责对接不同MCU的外设库
Drive调用BSP,完成外设控制
APP向下只能访问Drive,实现业务逻辑
基础头文件
方便调整系统的关键参数,搭建系统功能模块:
BSP层
初始化系统所需的MCU外设
提供API供Drive监控外设
由多个外设构成,整体结构举例:
驱动层
由模块、具体功能组件构成
对外不体现MCU的外设
向下只能调用BSP的API
尽量降低不同文件间的联系
结构体描述模块,尽量使用状态机实现控制逻辑
若BSP的事件要告知APP,则Drive进行二次封装,传递给APP
应用层
这里的4个任务,向下只能调用驱动,结合系统框架,实现业务逻辑:
程序架构的特征
基本情况如下:
代码书写规范
这里挑关键的点来说明:
可考虑使用内联函数,替换宏函数
返回值、形参采用地址传递数组、结构体
-END-