嵌入式项目分层模型
为将基于不同MCU/不同编译环境/不同产品功能的嵌入式项目能统合在一起编译, 提出这个分层模型.
层级 | 层名 | 解释 | 硬件相关性 | 产品型号相关性 |
---|---|---|---|---|
8 | 编译层 | 为方便项目快速编译而开发的批处理文件(如.bat ), 可进行dev/build/release等操作,不同产品通过f5y_config.bat 配置文件修改 |
有 | (多数)有 |
7 | 配置层 | 用于配置产品型号,版本,功能等信息,C语言统一为proj_conf.h |
有 | 有 |
6 | 功能层 | 提供各种产品的各种功能,与硬件解耦, 分功能子层func.c/h 和驱动测试子层driver_tester.c/h |
- | 有 |
5 | 驱动层 | 上驱动层driver.c/h 对功能层提供标准驱动接口, 下驱动层修改必要的SDK示例内容以实现不同产品功能的兼容 |
有 | 有 |
4 | 项目层 | 为编译使用的项目文件, uv5.proj文件或.mk文件等 | 有 | (多数)有 |
3 | SDK层 | 为原生SDK, 可能在硬盘的其他位置 | 有 | (多数)无 |
2 | 编译器层 | 为编译器文件, 如uv4.exe, gcc.exe等, 在硬盘其他位置安装 | 有 | 无 |
1 | 硬件层 | 为基于不同MCU的实际硬件, 如C51的某型号产品PCB, ESP8266某型号PCB等 | 有 | 有 |
项目生成的固件一般放置在firmware
目录中
4~8层在一个集合目录中, 3层SDK看实际情况放置