一个嵌入式项目从0开始开发的大致流程
从0开始做一个嵌入式开发项目的大致流程如下:
了解需求
和客户对接了解需求,形成需求文档,双方签字,并注明后续是否可以增加需求或者方案调整。
召集人员汇聚资源
根据需求文档召集项目组,项目组一般需要硬件设计、画PCB板、驱动工程师、算法工程师、软件工程师,其中驱动工程师和算法工程师可能是同一个人。
好了,参与人员确定了,找一个负责人负责这个项目,一般选择驱动/算法工程师作为项目负责人,因为项目负责人需要较为丰富的经验和对整个系统了解比较深入。
人员到齐了,开始制定实施方案,芯片选型、架构设计、可能存在的风险点、给项目组中各个人员分配具体任务,确定任务节点,形成设计方案和技术手册。
开始执行
任务分配完成后
第一阶段:
1.硬件设计开始设计原理图,大约需要2周
2.驱动开发人员开始根据所选芯片准备调试驱动程序 ,在开发板上调试驱动,大约需要1~2周
3.算法工程师也开始根据项目需求进行算法设计和仿真,大约需要2周,如果有重大问题或者风险点,可能时间会加倍
第二阶段:
1.原理图设计完成,开始画PCB板,一般1周到10天时间,画完投板
2.驱动调试基本完毕,还需要上真实板子调试
3.算法仿真完成,只待板子制板完成
4.算法工程师和软件开始定内部接口协议
5.软件开发人员开始根据客户提的需求和与算法工程师之间定的接口协议开始设计开发软件。
第三阶段:
1.制板(大约2周时间)完成,回来测试,大约1~2天
2.搭建好环境,开始准备把驱动在板子上跑起来测试,测试时钟是否锁定,驱动是否正常、各个接口是否已经打通,这个事情如果没有太大问题,1天时间就可以完成,如果有较大问题,比如中断功能异常,可能就得画1周时间来查问题。
第四阶段:
驱动已经顺利完成测试了,开始将仿真程序移植到板子上,痛苦的调试过程从这一刻就正式开始了
驱动和算法都在板子上跑起来了,ok,开始调试,嵌入式代码是三分写,七分调。
调试的时候可能会遇到各种奇奇怪怪的问题,比如中断时间异常、某个接口的输出数据异常、算法的运行结果并不是和仿真的结果一致、硬件不稳定等等问题,在调试中都会一一出现,然后准备实验手段,定位各种问题出现的地方和原因,逐一排查,这和过程的耗时可能会很长。因为嵌入式系统的最终目的是要让程序在板子上高效稳定的运行,任何一个小的问题在交付后都有可能变成大的问题,因此,在排查故障和解决问题这方面,这个应该是嵌入式工程师的看家本领了。
……此处略去无数调试过程和踩过的坑,修改过的Bug