当前位置:   article > 正文

嵌入式项目流程:一、项目初期

嵌入式项目


我们在Github与Gitee中开源了一些嵌入式与软件工程相关技术文档资料,其仓库地址为:
https://github.com/lyf854359855
https://gitee.com/lyf854359855

欢迎大家前去观看并下载,并顺手点亮黄色star,添加收藏。之后会不定期分享相关技术资料与项目实战经验

本期,我们不讲解具体的嵌入式技术,分享一些嵌入式项目中的一些经验。

根据需求进行系统分解,系统架构设计,编制软件规格书

团队在申报项目通过之后,通常会开展项目启动大会。项目中的每一个时间节点与交付要求,则是衡量我们嵌入式是否按时保质保量完成工作的唯一标准。因此,在项目中,一定要树立时间节点与交付要求的意识。切记不要拖沓延期,不要兼容所有,不要过度发散。
软件规格书与行业经验是高度相关的,笔者就以自己最熟悉的新能源汽车充电桩行业为例,尝试着讲解以下系统架构设计。

  • 1.根据产品功能需求,确定核心功能开发点。该产品需要完成哪些功能,是家用还是公用,需要做哪些功能,预留哪些功能接口。
  • 2.结合市场上有力竞品的特点,分析其市场竞争力在哪,有哪些特色功能,如何进行实现,如何划分系统架构。
  • 3.锁定产品功能需求后,对整个产品系统架构进行划分。比如,在一些复杂的产品上,可能有一颗或多颗MCU,甚至SOC构成,那么每颗芯片该承担哪些功能,各芯片之间如何进行通信。
  • 4.使用画图工具(推荐使用思维导图)将整个系统架构用图示表达出来,并转化成软件设计规格书,召开专题会议,进行讨论论证评审,作为后期软件开发的核心技术文档。
  • 后期,我会在GitHub上传一些开源项目的软件设计文档,敬请关注。

与硬件共同设计原理图

在确定软件规格书后,硬件工程师开始进行原理图设计。期间,会展开一系列讨论评审会议。做为核心的软件工程师,我们必须清楚,为了实现产品功能需求,我们至少需要哪些接口,需要多大的芯片资源,全身心参与进去,并投入足够的资源。

  • 1.查看项目中使用的各类数字芯片,独立器件具体型号,搜集芯片手册、推荐电路、源码例程等相关资料。
  • 2.检查最小系统核心电路设计,供电电路,复位电路,Boot启动电路,晶振时钟电路,下载调试电路等。
  • 3.检查与数字芯片或独立器件的通信接口,例如IIC,SPI,SCI,CAN,ETH等,这里面有个常见的错误,通信信号的TX与RX连接反
  • 4.检查模拟信号输入输出是否正确,例如AD口的最大输入幅值是否在范围内,PWM输出口是否正确,并熟悉硬件电路设计。
  • 5.检查GPIO口输入输出信号驱动能力是否足够,默认常开还是常闭等,有无特殊说明。
  • 6.在实际项目中,我们往往会省略或者遗漏IO口的上下拉电路,这一块着重检查。
  • 7.着重理解与突破本次项目中,模拟电路的控制与信号采样时序,为后续驱动开发与应用开发打好基础。

生成软件工程,移植可复用代码

再与硬件工程师配合,完成原理图设计之后;BSP工程师正式投入开发资源了。解决的第一个课题,就是搭建软件工程。那么,我们根据所选主控芯片具体应对。

  • MCU类。当使用MCU做为主控芯片时,我们通常使用芯片厂家提供的图形配置工具构建软件工程,例如STM32CubeMX。如果芯片厂家不提供图形配置工具,那么我们需要在官方Demo、公司已有项目或三方培训教育机构提供的例程中,寻找一个匹配度最高且代码最成熟的软件工程,在此基础上进行修改,尽可能的复用已有软件工程架构。IDE推荐使用Eclipse类工具,尽可能与其他软件开发人员进行沟通,使用相同开发工具。
  • SOC类,当使用SOC类做主控芯片时,软件工程与开发工具会变得更加复杂,我们搭建工程之初,尽量多搜集多学习一些技术文档。厂家SDK包,交叉编译工具链必不可少,建议直接复用公司已有项目或三方培训机构提供的例程,快速入门,搭建好项目工程。

编写驱动模块及模块测试

编写应用模块及模块测试

整机系统性调试与测试、产品认证

整理可复用功能模块,补全开发技术文档

复盘

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/374214
推荐阅读
相关标签
  

闽ICP备14008679号