arm m3的软件开发,用到协议栈,但不用到操作系统。怎么定这个目录结构?
问了开发的同事,公司还没有统一。我去百度学习一下。百度中,没找到严格的设计规范来约定它。有谁看到,帮推荐一下。
看了一个链接:http://blog.csdn.net/afei818/article/details/5786979。这个分的是比较细的,应该借鉴(简单抽取了一下):
1. driver:驱动程序目录。
(1) boot loader:boot loader程序目录;
(2) hardware:各个装置的驱动程序;
2. system: 系统程序目录。(1) include: 系统程序的header file;
(2) API: 将所有系统程序包装成API;
(3) common: 系统程序中的通用功能;
(4) RTOS: 嵌入式操作系统目录;
(5) glib: 图形函数库;
(6) sub system: 各个子系统目录;
3. AP: 应用程序目录。
(1) include: 应用程序的header file;
(2) source: 应用程序的程序代码;
4. third_party_library: 由协力厂商或网络取得的函数库。
(1) handwriting: 手写辨识函数库;
(2) font: 字形;
(3) 声音压缩函数库。
5. include: 项目的header file, sys_config.h(系统状态)就放在这个目录。
6. build: 所有用以制作系统执行文件的文件,如makefile以及link script。
7. simulator: 仿真器目录。
(1) build: 仿真器的build目录,可以产生仿真器执行文件
(2) simulated hardware: 在PC上仿真硬设备;
8. tools:开发过程所需要的工具。
(1) cross compiler: CPU厂商建议的编译器;
(2) offline tools: 开发过程会用到的工具,可能由团队自行开发。
9. document: 和项目有关的文件。
上述层次是一种细划分。从ic设计目录的经验来看,我的划分是:
顶层目录是项目目录-pwa-各成员-workarea区;
workarea区下,分为多个子目录:
corelib:被版本控制着,是核心目录;mdk_prj:mdk建立的项目;si_prj:编辑建立的项目;sim_prj:仿真的项目,等等。
上述划分中,我不知道mdk等项目,是否有大量的中间结果。一般,这些结果是不需要版本控制的。
corelib需要再划分(这是重点和难点):
src(源码):源码下,可以按照上面链接,结合软件层次,进行再划分。
doc(文档):分为spec、ref、datasheet等。
tools:存放各工具的脚本等。
libraries:各种基础库;ip库???
src下,再去细化:ap、driver、system等。