Bootstrap

【随手笔记】嵌入式项目开发流程(欢迎指正补充)

1. 产品需求-竞品分析

  1. 一般研发的需求都是市场部或者高层评估过利润和销量或者前景才会到研发的
  2. 研发开始研究需求,分析竞品优缺点,一般会选用竞品前三名的产品进行分析
  3. 分析竞品的功能,竞品的硬件方案和物料成本,功能优点和缺点,把硬件成本给到市场,为后面做的产品硬件成本做参考,避免后面硬件方案价格无优势的情况
  4. 进行产品功能细致的梳理和过滤
  5. 确定好规格性能参数等等
  6. 查询对应的强制标准或行业标准
  7. 考虑功能异常的补救逻辑
  8. 项目未做,专利先行,考虑到专利的法律风险,

2.软件,硬件,外观,结构方案的敲定

  1. 开始进行软件开发设计文档的初步编写(和硬件选型同步)
  2. 软件方案从 硬件成本考虑, 考虑硬件资源反推出 裸机和操作系统或者第三方合适,或者使用场景,
  3. 一个原则没有说哪种技术好或者坏,只有说最合适的技术方案,技术考虑市场流行程度,技术容易招聘到人员,内部人员掌握情况,软件的实现方式条条道路通罗马,最合适的软件方案,代码编写在资源性能允许的前提下怎么简单怎么易维护,怎么来,高深的代码让三个新的同事修改功能,时间长易出错,代码是非常厉害,带上新同事维护修改的时间成本,简单的短时间搞定不会出错,高深的研究几天改好了还有副作用,这个因人而异,对于强者是护城河,对于公司是隐形的,全靠懂技术的项目经理去平衡,说多了,本身把代码写简单和写高深是一个矛盾点
    编写驱动层分哪些模组实现,应用层整体的框架是怎么设计,怎么实现对应的逻辑功能,
    比如分几个线程,每个线程对应的功能,
  4. 硬件同时选型,符合产品性能参数,符合主控软件资源要求 ram+rom+io+对应外设
    比如电池电量 ,使用理论值去估算电池设计容量
  5. 结构外观一同开始设计草图
  6. 开会确定最后的软件硬件选型方案,评估一下时间周期,项目的难点和技术的难点,
  7. 外观和结构的周期和物料成本也大致确定下来,
  8. 和领导汇报整体方案的方向和结果
  9. 画饼打鸡血制定时间结点

3. 硬件画板, 结构画图,外观发散,

4. 软件驱动和单元测试

  1. 购买开发版或画最小系统板,在最小系统板上创建工程,设计好软件框架
  2. 进行每一个模组单元的驱动编写,调试,验证,
  3. 比如激光甲烷传感器就验证调用接口读取一次数据准确与否,是否驱动层读取数据后需要多次滤波
  4. 比如GPS模组,考虑到读取不到数据情况,超时处理或者返回值
  5. 全部的驱动验证完成

5. 项目硬件初版好了

  1. 等软件工程师把驱动层的调试验证工作做完之后,硬件的板子时间应该打好焊接差不多了
  2. 和硬件工程师先初步验证板子电路没有问题(不烧录程序的时候各电路点电压正确)
  3. 烧录软件,验证板子问题和驱动模组是否有异常,
  4. 交给测试人员去单元测试,针对性的每一个模组功能,
  5. 如果这些驱动模组功能没有问题
  6. 开始编写应用层代码
  7. 这时候测试和硬件可以用写好的程序初步验证某些项目
  8. 高低温对传感器,静电对芯片等等
  9. 编写应用层代码功能

6. 发布固件开始测试

  1. 和测试工程师沟通编写测试用例
  2. 发布测试版的固件开始功能测试
  3. 装机进行整体功能测试
  4. 发现问题讨论修改
  5. 根据国标,行标等送样,拿认证证书,
  6. 功能可靠性,防爆,EMC,静电,等等

7. 编写生产自检的功能

  1. 这个期间有充足的时间去编写生产程序
  2. 设计软件自检功能和生产负责人沟通试验箱步骤效率等
  3. 生产的负责人一般要求挺多,注重一个简单和高效
  4. 确定好编写上电自检功能
  5. 完成后进行测试交付生产

8. 定版复盘

总结项目开发过程中问题等等
一般会在小批量或者第一批
研发
市场
生产
供应链
举例屏幕的问题,屏幕批次导致同样参数明暗度不同,解决方案是生产环节增加机器自检环节,

;