毕了业,搞起了嵌入式软件。一切都从头来。下面是我的一些项目经验
1.软件要分层
C语言虽是面向过程的语言,但是并不意味着,设计程序的时候要把一个分任务从头写到尾。要学会
任务分隔。我的做法是这样的,先把程序从功能或硬件上,分成几个模块。每个模块完成自己的事情,
一般是设置相应的标志位,并不做实际的工作。如果标志位过多,就充分利用结构体的优势。
上下关系的模块:下一个模块解析上一个模块的全局结构体变量来置自己的标志位。同一个模块内部,
就写一个大结构体的全局变量,最后补充一个 返回全局变量指针的函数给下一个模块通信。一般最后
一个模块就要执行实际的动作。那就是根据标志位,执行了, 也很简单。
如果按照上面的思路来组织程序,要注意头文件的写法。首先每个C文件对应一个头文件。然后,专门
写一个总的头文件包涵所有的其它头文件。注意这个总的头文件内部不要再定义结构类型。最后,再在每
个子文件中包括这个总的头文件。
2.软件分工
一般情况下,一个工程会比较大,需要多个人来写。那么如何确保分工明确,协调一致呢?
一种串行方式的分工:总工程师按照任务的先后顺序,定义好接口,由项目组的人分别去实现接口。这种
方式完成的程序耦合性高,不利于维护和修改。但是程序容易理解。
一种并行方式的分工:总工程师,给每个人分配一个公共内存区,并指明其内存区的含义。然后,由个人
自由实现与公共内存 区的通信。这种方式方便调试和修改,但是程序的实际含义可能
只有总工程师理解。也就是每个人“只见树林,不见森林”。
3.不要“不懂就要问”
一个项目往往很大。如果你都知道了,再坐下来写程序,岂不到了猴年马月。要习惯利用别人的程序,要
习惯程序中有一些你自己都不知道的东西,甚至是在你看来完全多余的东西。这些多余的东西,有的是
为了扩展性的需要,写好了,先放在那里,有的是为了优化硬件性能,有的甚至就是为了延时。