摸清楚系统架构后,项目的整体情况已经成竹在胸了,是不是有点摩拳擦掌,信心十足的要开始码代码了。
但是代码如何下手呢?做项目的话不能再像Demo程序一样,我们有多个功能,有多个人参与开发,代码的组织也需要提前设计一番,当然此刻有一个详细的设计文档最好,不过做嵌入式开发通常不会这么详细。
Freertos作为一个实时的操作系统,非常的短小精悍,需要注意的是和类Linux系统不同的是,Freertos所有的代码都是放在一个程序里,不同的功能大致用Task区分。这就意味着基于Freertos的项目的代码结构:
1、只有一个Main函数入口,大部分的初始化和Task启动可能都在Main文件中完成;
2、不同的功能放在不同的Task代码中,Task更加类似Linux中Thread的概念;
3、共用的功能和功能模块可以抽象到单独的模块中;
4、正如ESP32的代码架构,一个典型的项目源代码目录架构如下:
![](https://i-blog.csdnimg.cn/blog_migrate/980168d07c9e6566b999717dd04c04c0.png)
所以我们项目的代码结构大致如此,构建main和components目录。将实际的功能分别放入不同的目录。