嵌入式系统软件和硬件的看法都是错误的?
创始人
2026-01-01 18:09:21
0

嵌入式软件自学_嵌入式软件怎么学_嵌入式系统软件教程

【文本】

当有人问“什么是嵌入式系统”时,没有必要看我的文章。 有一句狡猾的说法,找不出任何错误——借用知乎上的一个著名问答,“如何快速假装/成为某个领域的专家”——你可以假装认真地说:

“嵌入式系统首先是计算机系统”,那么谈谈你对软件和硬件的看法...

为了让大家有机会在一个几乎没有人才的行业里展示自己的才华,我将教大家一个关于嵌入式系统软件和硬件的特殊观点,绝对可以让所有师姐、师弟甚至同行借鉴。 “一脸钦佩。” 当然,首先你得真正理解这句话。

为了吸引更多人的关注,让话题更有影响力,你应该非常坚定、神秘、愤慨地声明一个观点:

“你知道吗,嵌入式系统中几乎每个人对软件和硬件的认识都是错误的……我们都被教科书愚弄了!”

1.传统计算机系统中的“软件/硬件”概念

通常,当我们提到计算机硬件时,首先想到的就是PC主机。 当然,这个时候你要特别小心,因为你这个时候给出的例子很可能会暴露你的年龄或者天赋。 例如,以台式电脑还是笔记本电脑为例,会明显暴露你的年龄;以Windows笔记本电脑或Mac为例,会暴露你的实力。 当我们提到软件时,我们想到的几乎都是Windows上运行的各种软件。 当然,如果能以APP尤其是iOS APP为例,显然是非常值得尊敬的。

是的,如果你细心的话,你会发现传统的软件和硬件概念都是直接源自通用计算机的。 正如我们将在后面的讨论中看到的,通用计算机带来的这种心态是非常可怕的。

2.嵌入式系统中“软件/硬件”的概念

嵌入式系统中的软件和硬件并不像你想象的那么简单。 这其实很容易理解。 你可以在大学校园里拦住几个学生,要求我们进行采访,问他们的软件和硬件是什么:

屌丝A(计算机学院):你有病吗?硬件就是你的电脑主机、主板、CPU、内存硬盘、显卡等; 软件是Windows程序。

屌丝B(信息学院):硬件就是单片机,比如51、AVR、STM32等。对了,开发板也算吧?软件就是Firmware。 以前用汇编开发,现在用C。

屌丝C(信息学院):羊毛! 我还可以使用VHDL和Verilog来编写内核。 你能告诉我用VHDL和Verilog写的东西算不算软件吗? FPGA是硬件吗?

屌丝B:呃……我们该怎么办?

屌丝D(计算机学院):别忘了,开发板上运行的虚拟机也是硬件嵌入式系统软件教程,虚拟机上用Java编写的程序也是软件。

您可能已经注意到,在嵌入式系统中,软件和硬件并不是非常可靠的定义——当人们用普通话使用相同的声音并说相同的单词时,他们可能根本描述的不是同一件事。 那么,嵌入式系统中的软件和硬件应该如何理解呢?

选项1.要么,你可以假装你从未读过这篇文章,只与与你使用相同系统的人讨论问题,或者你可以“根据上下文”自动切换软件和硬件的含义。

方案2。或者,我们可以重新定义软件和硬件的概念,只要这个概念与原来的理解兼容即可。

真的有一个与旧概念兼容的新定义吗? 答案是肯定的。 我们先来看看不同层面的软件有什么共同点:每个人都用一种语言(Java、C、VHDL,甚至是原理图)来描述自己大脑中的逻辑(思维)。 让我们体验一下这个功能。 有这样的功能吗? 因此,我们郑重地重新定义软件:

软件:人们用某种语言来“尝试”自己已经固化的思维

相比之下,硬件的概念可以修改为:

硬件:固化的逻辑,能够稳定地提供一定的服务和功能

可见,软件的本质是思维,也就是设计者的思维。 因此,对于程序员来说最重要的是根据任务的需要弄清楚所有的逻辑,并使用某种语言作为工具来“固化”自己的思维。 这个思考过程称为“设计”,这个固化过程称为“编码”。 简单来说,写代码只是一个思维翻译的过程。 更重要的是嵌入式系统软件教程,写程序的人首先要思路清晰,思维清晰,然后使用准确的语言表达能力(不幸的是,很多人的语言表达能力非常有限)——也就是说,如果你不能写出你想用C语言实现的功能,就可以写出正确的代码。

思维设计的辅助工具有很多,比如大家熟知的流程图(Flow Chart)、UML图,以及较少使用的数据流图(Data Flow Chart)等,但具体的代码往往并不是很好的辅助工具。 进行思维设计的开发人员称为程序员。

将程序员的设计文档(各种图表)翻译成具体程序代码的人称为Coder。

残酷地说:程序员负责设计,负责思考; Coder翻译,辛苦了。 如果你不服气,我也没办法,哈哈哈哈……

硬件本质上是一个固化的逻辑。 这个逻辑的前身当然是思维,但它已经固化,可以“稳定”、可靠地提供“确定”的功能和服务。 例如,先进先出(FIFO)就是一个队列。 在一些软件系统中,这种逻辑确定的模块被称为“组件”,一种中性的描述,不强调它是软件还是硬件。 因为组件的本质是模块,是能够提供大家都知道的“某些”功能的模块。 它可以是硬件或软件。 谁在乎? 有些系统还会提供硬件抽象层,以进一步模糊此类模块的软硬属性——反正你就知道它是做什么的。 反正很靠谱,可以重复使用,就用吧。 不管是软的还是硬的,反正API都是一样的。

当我们想要凸显一个模块的逻辑性、确定性、稳定性,但又不能、不需要或者不关心它的软硬属性时,我们就干脆称它为组件。

重新定义软件和硬件的概念并不是文字游戏,而是业界心里按照惯例默默做的事情。 然而,今天显然已经被打破了。 虽然你感觉自己的三观发生了变化(也许还没有),但仔细想想,其实和你过去的理解并没有什么本质的区别?

是不是? 其实你已经明白了,对吧? 哈哈哈哈——我不是在重新发明软件或硬件,我只是一个诚实的搬运工。

(待续...)

如果你喜欢我的思考,欢迎订阅裸金属思考

相关内容

热门资讯

达... 我已经使用耳机很长时间来退烧了。 虽然发烧已经退了,但在无线耳机和有线耳机之间我最喜欢的还是有线耳机...
嵌... 【文本】当有人问“什么是嵌入式系统”时,没有必要看我的文章。 有一句狡猾的说法,找不出任何错误——借...
爱... 首先请问各位电视剧迷,你们最常访问哪个视频平台?小雷猜测,爱奇艺、优酷、腾讯三大公司中,爱奇艺应该是...
全... 大家好,我叫聪明。 不知不觉,我已经在互联网行业工作了3年。 网上创业的项目层出不穷,但始终没有对我...
舒... 虽然已经很久没有听说过“动铁四大天王”了,但舒尔就是其中之一,我非常喜欢的一个品牌。 记得很早以前参...
可... 可靠、高效! 采集管网,就用汇邦通!永远免费慧宇智能测绘技术有限公司(以下简称“慧宇智能”)是广东慧...
手... 现代人确实对手机着迷。 无论身在何处,他们都会习惯性地拿出手机看一眼。 于是,公交车、地铁上随处可见...
千... 老爱好者:ckk我一直用的是价格在600到800之间的入门款,因为经常听音乐,所以对耳机的要求非常高...
安... 需要积累哪些知识才能具备独立开发App的能力? (Java + Kotlin + Android ...
免... 也许您正在寻找一款用于简单噪声收集和分析的软件,那么您就找到了正确的地方。 在工作中,我们经常遇到现...
魅... 当我在魅族魅族S6即将发布的同时看到魅族将推出新耳机的消息时,我以为这只是Flow的增强版。 正当我...
国... 看来很多读者仍然对电子邮件相关的文章感兴趣。 所以顺便把之前博客写的文章搬过来了。 顺便问一下免费采...
森... 说起森海塞尔的耳塞产品,很多朋友首先会想到森海塞尔的MX500。 作为森海塞尔历史上第一款耳塞产品,...
“... 2018年4月3日下午6点30分,“网易新闻杯”第二届全国大学生手机摄影大赛线下讲座系列活动在华东师...
专... 相信大家都对3D技术非常感兴趣,最近3D技术非常流行。 我们日常生活中见到最多的3D技术就是在电影院...
搬... 搬家是一个复杂而乏味的过程。 对于现在的很多年轻人来说,由于工作变动等原因,搬家已经成为一种常态。 ...
使... 当我们的旧电脑使用了七八年甚至更长时间的时候,就会出现一系列的问题,比如死机、死机、蓝屏、黑屏等,这...
入... 设计领域和设计工具之间越来越融合,设计门类和技术的交叉创造了足够新颖和独特的设计。很多习惯PS、AI...
搬... 面对复杂繁琐的搬家活动,很多搬家新手不知道从哪里开始,搬家时要准备什么。 不知道要带什么? 您可以收...
河... 各省市财政局、人力资源社会保障局,济源示范区财政局、人力资源社会保障局,各省市、济源示范区会计专业技...