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

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. 定版复盘

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27260.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git学习

Git命令 1、管理文件夹,创建版本仓库 创建文件夹 mkdir repos初始化命令 git init2、查看工作区的文件状态 注:新增和修改过后的文件都是红色 git status3、提交缓存区 注:加入缓存区后的文件变成绿色 git add . git add 文件名4、生…

数据库拓展操作

目录 一、截断表: 操作目的: 操作内容: 性能影响: 基本语法: 例子: 二、插入查询结果: 基本语法: 例子: 三、聚合函数: 常用函数: 基…

【Java分布式】Nacos注册中心

Nacos注册中心 SpringCloudAlibaba 也推出了一个名为 Nacos 的注册中心,相比 Eureka 功能更加丰富,在国内受欢迎程度较高。 官网:https://nacos.io/zh-cn/ 集群 Nacos就将同一机房内的实例划分为一个集群,一个服务可以包含多个集…

鸿蒙兼容Mapbox地图应用测试

鸿蒙Next已经发布一段时间了,很多之前的移动端地图应用,纷纷都要求适配鸿蒙Next。作为开发者都清楚,所谓的适配其实都是重新开发,鸿蒙的开发语言和纯前端的Javascript不同,也可以Android原始开发的语言不同。鸿蒙自带的…

老牌工具,16年依然抗打!

在电脑还没普及、操作系统为Windows XP/7的时代,多媒体文件的转换操作常常面临格式不兼容的问题。这时一款名为格式工厂的软件成为了众多用户的首选工具。格式工厂以其简洁易用的界面和强大的功能,轻松地进行各种文件格式的转换。成为很多修小伙伴的喜爱…

前缀和算法 算法4

算法题中帮助复习的知识 vector<int > dp( n ,k); n为数组大小 ,k为初始化 哈希表unordered_map<int ,int > hash; hash.find(k)返回值是迭代器 ,找到k返回其迭代器 没找到返回hash.end() hash.count(k)返回值是数字 ,找到k返回1 ,没找到返回0. C和java中 负数…

如何使用Spring Boot框架整合Redis:超详细案例教程

目录 # 为什么选择Spring Boot与Redis整合&#xff1f; 1. 更新 pom.xml 2. 配置application.yml 3. 创建 Redis 配置类 4. Redis 操作类 5. 创建控制器 6. 启动应用程序 7. 测试 # 为什么选择Spring Boot与Redis整合&#xff1f; 将Spring Boot与Redis整合可以充分利…

DeepSeek开源周,第五弹再次来袭,3FS

Fire-Flyer 文件系统&#xff08;3FS&#xff09;总结&#xff1a; 一、核心特点 3FS 是一个专为 AI 训练和推理工作负载设计的高性能分布式文件系统&#xff0c;利用现代 SSD 和 RDMA 网络&#xff0c;提供共享存储层&#xff0c;简化分布式应用开发。其主要特点包括&#xf…

爬虫系列之【数据解析之JSON】《三》

目录 前置知识 一、 json.loads()&#xff1a;JSON 转 Python 数据 二、json.dump()&#xff1a;python数据 转 json 并写入文件 三、json.loads() &#xff1a;json 转 python数据 四、json.load() &#xff1a;json 转 python数据&#xff08;在文件操作中更方便&#xf…

FastExcel vs EasyExcel vs Apache POI:三者的全面对比分析

一、核心定位与历史沿革 Apache POI&#xff08;1990s-&#xff09; 作为Java生态中最古老的Excel处理库&#xff0c;提供对.xls/.xlsx文件的全功能支持。其核心价值在于对Excel规范的完整实现&#xff0c;包括单元格样式、公式计算、图表操作等深度功能。但存在内存消耗大&…

创建一个MCP服务器,并在Cline中使用,增强自定义功能。

MCP介绍 MCP 是一个开放协议&#xff0c;它标准化了应用程序如何向LLMs提供上下文。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种标准化的方法来将您的设备连接到各种外围设备和配件一样&#xff0c;MCP 提供了一种标准化的方法来将 AI 模型连接到不同的…

【计算机网络入门】初学计算机网络(七)

目录 1. 滑动窗口机制 2. 停止等待协议&#xff08;S-W&#xff09; 2.1 滑动窗口机制 2.2 确认机制 2.3 重传机制 2.4 为什么要给帧编号 3. 后退N帧协议&#xff08;GBN&#xff09; 3.1 滑动窗口机制 3.2 确认机制 3.3 重传机制 4. 选择重传协议&#xff08;SR&a…

[Windows] 免费电脑控制手机软件 极限投屏_正式版_3.0.1 (QtScrcpy作者开发)

[Windows] 极限投屏_正式版 链接&#xff1a;https://pan.xunlei.com/s/VOKJf8Z1u5z-cHcTsRpSd89tA1?pwdu5ub# 新增功能(Future)&#xff1a; 支持安卓14(Supports Android 14)提高投屏成功率(Improve the success rate of mirror)加快投屏速度(Accelerate screen mirrorin…

阿里云 | 快速在网站上增加一个AI助手

创建智能体应用 如上所示&#xff0c;登录阿里云百炼人工智能业务控制台&#xff0c;创建智能体应用&#xff0c;智能体应用是一个agent&#xff0c;即提供个人或者企业的代理或中间件组件应用&#xff0c;对接阿里云大模型公共平台&#xff0c;为个人或者企业用户提供大模型应…

http报文的content-type参数和spring mvc传参问题

很早之前博主聊过HTTP的报文结构以及其中和传参相关的重要参数content-type还有spring mvc&#xff0c;以前的三篇文章&#xff1a; HTTP与HTTPS协议详解&#xff1a;基础与安全机制-CSDN博客 详解Http的Content-Type_content-type application-CSDN博客 如何在Spring Boot中…

如何在Python用Plot画出一个简单的机器人模型

如何在Python中使用 Plot 画出一个简单的模型 在下面的程序中&#xff0c;首先要知道机器人的DH参数&#xff0c;然后计算出每一个关节的位置&#xff0c;最后利用 plot 函数画出关节之间的连杆就可以了&#xff0c;最后利用 animation 库来实现一个动画效果。 import matplo…

JVM常用概念之垃圾回收设计与停顿

在我们应用程序运行期间&#xff0c;我们是需要尽可能避免垃圾回收。 图1&#xff1a;不同垃圾回收器的设计&#xff08;黄色代表STW&#xff0c;绿色代表并发&#xff09; 实验 计算机配置 Hardware Overview:Model Name: MacBook ProModel Identifier: MacBookPro14,2Pro…

大摩闭门会:250228 学习总结报告

如果图片分辨率不足&#xff0c;可右键图片在新标签打开图片或者下载末尾源文件进行查看 本文只是针对视频做相应学术记录&#xff0c;进行学习讨论使用

【Docker】使用Docker搭建-MySQL数据库服务

零、更换Docker镜像源 因为国内现在封锁了Docker默认拉取镜像的站点&#xff08;DockerHub&#xff09;&#xff0c;而且国内大部分Docker镜像站已全部下线&#xff0c;导致现在很多朋友在拉取镜像的时候会出现无法拉取的现象&#xff0c;这时候就需要进行更换Docker镜像源。 可…

商米科技前端工程师(base上海)内推

1.根据原型或高保真设计&#xff0c;开发web、H5、小程序等类型的前端应用&#xff1b; 2.在指导下&#xff0c;高质量完成功能模块的开发&#xff0c;并负责各功能模块接口设计工作&#xff1b; 3.负责产品及相关支撑系统的开发及维护工作&#xff0c;不断的优化升级&#x…