嵌入式开发:嵌入式软件——它能变得多复杂?
创始人
2025-05-28 15:49:56

  从历史上看,嵌入式开发系统非常简单:只有几K内存的8位CPU。尽管这种简单的系统仍在开发中,但许多资源丰富的设备现在都在使用一个或多个32位处理器和许多兆字节的内存。这些设备的巨大威力导致软件的规模和复杂性不断增加。但这种复杂性的极限是什么?

  如果我们观察机械系统,就会发现存在很多复杂性。迄今为止最复杂的机器是航天飞机轨道器,它有一百万个运动部件。考虑到这些车辆在设计上有多大的挑战,它们工作得非常好。我想,没有内在的原因不能创造出更复杂的机器。

  现在,电子系统逐渐变得更加复杂和小巧。在20世纪50年代,嵌入式开发一个复杂的电子设备可能有100个(分立的)晶体管——它甚至可能使用真空管。到今天,芯片上有几十亿个晶体管并不罕见。芯片的几何形状每年都会缩小到越来越小的纳米。

  在过去50-60年中,软件复杂性急剧增长,反映了硬件的进步。比特是软件的最小“单位”,以这种方式衡量,软件的复杂性已经远远落后于机械设计,它比硬件领先一到两个数量级。然而,我们看不到软件理论复杂性/规模的任何具体限制。制造大内存芯片已经足够容易了,所以我们可以让代码越来越大。

  

  当然,设计是瓶颈。硬件设计非常具有挑战性,需要复杂的电子设计自动化(EDA)。嵌入式开发中软件开发更难一些。但它需要的不仅仅是工具。

  在生活的几乎所有方面(包括嵌入式软件),基本上有三种方法来应对更大的挑战:

  1.更加努力地工作(即更多的人力)

  2.工作更长时间

  3.更聪明地工作

  有时第1种和第2种可以互换。例如,在建筑工程中,更多的劳动力可能会加快工作进度。但是,如果仅仅指派更多的人员来完成这项工作,软件开发的回报就会迅速减少。这在很大程度上是因为代码不同部分之间的相互关系,以及开发人员进行通信的相应需求。他们最终花在沟通上的时间超过了编码。在某种程度上,开发团队的智能扩展可以带来好处。这需要确定具体的专门知识要求,并相应地指派工作人员。这与嵌入式开发尤其相关,其中的专业领域可能是:应用程序级代码、驱动程序开发、操作系统配置、网络、UI设计等。

  更聪明地工作听起来像是一家公司的口号,但意思是让开发人员能够在给定的时间段内创建和调试更多的功能。大体上,有两种方法:

  更高抽象级别的代码

  重用现有代码(并使代码可重用)

  更高层次的抽象意味着远离传统语言,如C语言,并接受其他范例。UML是一种可能性。可重用代码在很大程度上是面向对象编程(OOP)技术的领域。可以创建可重用的对象,OOP支持专业知识的封装,这对于嵌入式开发来说也是特别有用的。

相关内容

热门资讯

随想008:烂摊子 我看到过很多离谱的现象。比如: 程序 代码重复、命名随意、逻辑混乱、甚至对齐都不一致&...
2023长沙到广州的火车时刻表... 今天给各位分享2023长沙到广州的火车时刻表,从长沙到广州高铁最新...的知识,其中也会对长沙到广州...
车载DVD一体机导航升级教程(... 本篇文章极速百科给大家谈谈车载DVD一体机导航升级教程(凯立德)(超详细),以及汽车凯立德导航用u盘...
圈内sp是什么意思(sp圈里是... 今天给各位分享圈内sp是什么意思的知识,其中也会对sp圈里是什么样的进行解释,如果能碰巧解决你现在面...
鸡蛋撞地球(鸡蛋撞地球怎么制作... 本篇文章极速百科给大家谈谈鸡蛋撞地球,以及鸡蛋撞地球怎么制作对应的知识点,希望对各位有所帮助,不要忘...
Vue2基础语法速通2 目录计算属性计算属性的简写监视属性深层次监视watch 和 computed 区别绑定 class ...
2023年全国最新高校辅导员精... 百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等ÿ...
Web前端:Angular和R...   在编程领域,Angular 和 React 对于前端开发人员来说是目前最流行的两款...
【Git】SourceTree... 本系列文章前言   之前一直用的TeamFoundation,近期要代码迁移到Gite...
五官是指哪些(五官是指哪些器官... 今天给各位分享五官是指哪些的知识,其中也会对五官是指哪些器官进行解释,如果能碰巧解决你现在面临的问题...
北京汽车交易市场有哪些(北京车... 本篇文章极速百科给大家谈谈北京汽车交易市场有哪些,以及北京车市场在哪里对应的知识点,希望对各位有所帮...
微信吃喝玩乐在哪里搜(微信中吃... 本篇文章极速百科给大家谈谈微信吃喝玩乐在哪里搜,以及微信中吃喝玩乐在哪儿对应的知识点,希望对各位有所...
马勒滤清器怎么样(马勒滤清器产... 今天给各位分享马勒滤清器怎么样的知识,其中也会对马勒滤清器产品目录进行解释,如果能碰巧解决你现在面临...
Java服务器-NIO模型-J... Java服务器 NIO概览 NIO模型 每个客户端关联的套接字都注册到服务器的选择器(...
Vault配置中心产品调研实施... Vault配置中心产品调研实施方案 一、需求描述 nacos作为配置中文,数据都是明文...
镜头校正软件的新标杆DxO P... 镜头校正软件的新标杆DxO PhotoLab 6 的光学校正功能基于 DxO 专用实验室 20 年的...
CNI 网络流量 5.2 Ci... 文章目录Pod 间同节点 pod跨节点 pod in vxlan小结 环境: fedo...
汽车养护,汽车养护品牌排行榜前... 今天给各位分享汽车养护,汽车养护品牌排行榜前十名的知识,其中也会对汽车养护产品品牌进行解释,如果能碰...
大灯随动转向是什么意思?随动转... 今天给各位分享大灯随动转向是什么意思?随动转向大灯是什么功能的知识,其中也会对大灯随动转向是近光还是...
80厘米是几尺几寸(78厘米是... 本篇文章极速百科给大家谈谈80厘米是几尺几寸,以及78厘米是几尺几寸对应的知识点,希望对各位有所帮助...
拉杆旅行箱包十大品牌排行(拉杆... 今天给各位分享拉杆旅行箱包十大品牌排行的知识,其中也会对拉杆旅行包价格进行解释,如果能碰巧解决你现在...
Vue2学习小笔记(一篇带你入... 一篇入门Vue2一、基础概念1.1 MVC和MVVM1.2 初识Vue1.2.1 Vue是什么1.2...
【3.17】MySQL索引整理... 3.1 索引常见面试题 索引的分类 什么是索引? 索引是一种数据结构,...
ASEMI代理PCF85163... 编辑:ll ASEMI代理PCF85163T/1,518原装NXP车规级PCF8516...
83、NeRFshop: In... 简介 主页:https://repo-sam.inria.fr/fungraph/ne...
车辆违章查询电话是多少(车辆违... 本篇文章极速百科给大家谈谈车辆违章查询电话是多少,以及车辆违章查询客服电话是多少对应的知识点,希望对...
5寸照片是多大尺寸(5寸照片是... 本篇文章极速百科给大家谈谈5寸照片是多大尺寸,以及5寸照片是多大尺寸的对应的知识点,希望对各位有所帮...
日产精品卡2卡3卡4卡怎么看(... 今天给各位分享日产精品卡2卡3卡4卡怎么看的知识,其中也会对日产sim卡进行解释,如果能碰巧解决你现...
上海通用所有车标,上海通用汽车... 今天给各位分享上海通用所有车标,上海通用汽车有几种标志的知识,其中也会对上海通用汽车的车标进行解释,...
数据挖掘与分析应用刷题笔记2 数据挖掘与分析应用刷题笔记2 2022找工作是学历、能力和运气的超强结合体,遇到寒冬&...