20年的嵌入式开发经验总结 !
共 10319字,需浏览 21分钟
· 2021-12-14
正文
大家好,今天跟大家推荐一篇好文章,文章的原作者应该是一名经验非常丰富的开发者,我重头到尾的阅读了一遍,很多东西可以参考借鉴~
正文部分 :
首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完,就算你2个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此文章,慢慢品尝,这绝对是一篇需要品尝2~3天,再结合自己过往的经验,加上自己的思考,我相信会对你不仅仅是技术能力,甚至包括整体的思维方式都会有一个非常大的提高。
我写这篇文章的目的,是用本人20年的嵌入式经验呈现给大家一副完整的产品,项目开发蓝图,用本人多年的经历总结了一些教训无私的分享给各位,希望各位今后能站在本人的肩膀之上,少走弯路,多为公司,为个人多做贡献,那我的愿望就达到了,也同时希望能看到大家反馈和回复,留个脚印,留下你的见解和智慧,为后人乘凉打点基础,先在这谢谢各位了。
那么由此开始我们充满知识的旅程吧,最重要的一点,就是在一个产品或项目的开发过程中,如果没有明确的目标,那么成功将无从谈起,做任何事的第一步必须明确目标。
与日常生活中的大多数事务一样,设计一个嵌入式产品的过程也必须从确定目标开始,对生产的产品进行明确定义。对产品进行定义主要是对产品是什么和能有什么功能进行描述,其次是在我们的整个开发过程中,应该要撰写一些开发文档,大概的框架的如下:
1)产品需求文档:描述产品的特性
2)功能需求文档:描述产品必须具备的功能
3)工程说明文档:描述系统实现的方法和满足需求的手段
4)硬件说明文档:对有关硬件进行描述
5)软件或固件说明文档:描述特定处理器下设计微程序以及固件的方法
6)测试说明文档:描述必须测试的项目和验证系统正常运行的方法
1 . 需求定义
需求定义用来描述产品的基本功能,对于公司来说,需求一般由该公司的市场销售部门或该公司的主要客户来制定;而对小公司或爱好者(就像armjishu.com里的爱好者一样),技术人员可以自己负责定义需求,并撰写成文档。
通常需求定义是围绕以下几个因素而来:
1)系统的用途(定义需要系统实现的各种功能) 2)实际输入输出是何种方式实现的(为元器件的选型做参考) 3)系统是否需要操作界面(涉及软件层操作系统的选型) 其实对小型的嵌入式产品来说,定义需求是非常关键的,因为需求清楚了,就可以避免后续开发过程中出现的诸如随机存储器(RAM)容量不足或所选的CPU速度不能满足处理的需要等一系列问题。
1)使用单相交流电机,由机械电气进行控制 2)如果温泉池处于低水位,则输入开关闭合信号,以禁止水泵继续运行 3)用户可以自由设置水泵运行或关闭的时间长度 4)除了自动设置控制外,还需要提供一种人工装置来允许维护人员灵活控制水泵进行维修 5)水泵开启/关闭/人工干预的时间可以30分钟为单位,在30分钟到23小时的范围内进行调节 6)显示设备可以指示水泵的开关状态,剩余时间,以及水泵是否处于人工干预模式 7)具备监视低水位的功能,并显示在屏幕上
a.处理或更新输入输出信号的速率究竟需要多快?
b.是否可使用单片集成电路(专用IC)或FPGA来完成数据处理?
c.系统是否有大量的用户输入输出操作(如对开关和显示设备进行频繁操作)?
d.系统与其他外部设备之间需要使用何种接口?
e.设计完成后是否有可能需要进行改动,或在设计过程中系统需求是否可能出现变化?我们的设计是否能适应系统需求的变化?
1)处理器速度与处理器时钟之间的关系
2)处理器指令系统
3)芯片结构体系
1)要注意设计方案中是否对电源的供电方式有所限制,例如,是否像大多数家用电器那样需要使用屋内墙上的电源插座供电,或是是使用USB接口供电 2)看系统是否需要使用电池供电方式,如果这样,我们就要考虑选择那种对驱动电流要求不高的处理器,然后再为其选择合适的电池。 3)休眠电流:许多微处理器都支持低功率运行模式,在这种模式下,系统的CPU处理器将处于休眠状态,同时所有外部设备的电源供电都被暂时切断,以便减少系统的电能消耗;某些微处理器在这种方式下需要的维持电流极小,但也有一些微处理器在这种方式下并不能节省多少功率;不管怎样,我们都要对系统在节点模式下的工作时间有一个估测,以便对具体情况选择使用的电池。
a.首先,我们需要选择一种处理器或存储体系结构都可以升级的器件 b.考虑到程序升级的可能,我们还要选择较大容量的内存 c.最后要注意的则是所选处理器是否可以长期供货,这一点的重要性远远大于处理器的价格
1)人力成本(开发人员、管理人员、销售人员、其他行政等辅助人员)的开销 2)材料(硬件物料和损耗,有时候需要投几次PCB版才把产品稳定下来)的开销 3)开发系统和开发工具软件的开销 4)硬件工具的开销(例如示波器、仿真器等)
1)首先是需求定义或产品规格:
2)其次,根据需求,系统整体定义文档中给出硬件接口的具体定义:
3)一旦完成了系统整体说明文档,就开始进行系统设计:
内存和I/O端口地址(如果需要,还可以提供内存映射图) 可用内存容量 状态寄存器每一位的定义 每个端口管脚的用途 外部设备的驱动方法(例如,说明输入定时器电路的时钟频率等) 其他由管软件人员设计程序需要了解的信息
素材源于:直接来源:360doc-圆锥的布袋
http://www.360doc.com/content/17/1006/23/8706683_692735706.shtml
版权归原作者所有。仅供技术的传播和学习讨论,如涉及作品版权问题,请联系我进行删除。
最后
相关阅读: 分享几款超好用的 REST API 工具 推荐一款开源的GitHub简历制作工具 如何优雅地给妹子优化电脑?