硬件比软件更可靠?

最通俗教程!硬件消抖,软件消抖,状态机法! 主要聚焦按键抖动,介绍了消除按键抖动的方法。基于电容的硬件消抖法与基于延时法与状态机法的软件消抖法。附有流程图分析和程序代码。 阅读详情

有人告诉我硬件比软件更可靠
这句话是错误的,下面我就证明一下。
如果硬件是可靠的,
而我们的程序逻辑也是正确的,
在一个可靠的硬件之上运行的逻辑正确的程序,
没有任何理由可以说明它较底层的硬件更缺乏可靠性,
那么,就没有什么理由可以说明硬件比软件更加可靠。

但是,换个角度,为什么很多人会有这样的认识,而他们大都具有在硬件基础上开发软件的经验,这句话虽然是错的,但明显不是空穴来风,而是基于实际经验给出的看法,那它产生的必然性又在哪里?

下面给出几点我的看法:
1.软件要实现的逻辑比硬件更加复杂
2.当需求变动时,软件受到的冲击比硬件更大

它们都是造成“硬件比软件可靠”这个说法的根源,下面我会详细讨论这几点看法形成的依据。
1.软件要实现的逻辑比硬件更加复杂
很显然,不能片面地去理解这句话,一个CPU要实现的逻辑无庸置疑要比我们自己手头上的这些我们整日为之忙碌的软件项目更加复杂,甚至要比我们平时能够见到的大多数著名的软件产品拥有更复杂的逻辑,但是,最关键的一点,当我们在电子市场上购买到这些硬件器件的时候,它们复杂的硬件逻辑已经是封装在定义良好的接口之后的,根本无需我们操心,而它们的可靠性则是由生产它们的那些大公司充分的测试来保证的,我们最常见的应用无非就是将各个实现不同功能的芯片连接到一起,通常这都是很easy的事情(较之芯片中封装的复杂逻辑)。换句话说,硬件工业中“代码复用”的程度远远高于软件工业,甚至在嵌入开发社群中,面向对象的思想还没有得到最基本的普及,很多公司、项目选择的开发语言是C而非C++(这与嵌入开发领域C++编译器发展缓慢有很大关系),这就进一步限制了代码大规模复用的可能,需要我们自己写的代码越多,出错的可能就越大
。

2.当需求变动时,软件受到的冲击比硬件更大
当用户需要改变某个功能的使用方式,或是增加一项全新功能的时候,需要改动的往往是软件,或者说较之修改硬件我们更加倾向于修改软件(成本的原因?),而修改往往不可避免(至少是极大可能)地会引入新的逻辑缺陷,在底层的硬件设施一步步地逐渐完善成熟的同时,我们的程序却有可能因为多次因时间仓促以至考虑不周的改动而慢慢烂掉。这也是很多人“硬件比软件可靠”这个看法形成依据。

单片机系统抗干扰,软件 VS 硬件哪个重要? 在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。 1、软件抗干扰方法的研究 在工程实践中,软件抗干扰研究的内容主要是:一、消除模拟输入信号的噪声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。 (1) 指令冗余 CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在 阅读详情

相关推荐

软件看门狗与硬件看门狗:功能与区别

软件看门狗和硬件看门狗都是用于提高系统可靠性和稳定性的重要技术手段。软件看门狗是通过软件实现的,依赖于系统的运行,而硬件看门狗是独立的硬件设备。虽然两者具有相似的功能,但硬件看门狗更加可靠且不易受到系统故障的影响。在设计智能硬件系统时,可以根据实际需求选择适合的看门狗技术来提高系统的可靠性。以上是关于软件看门狗和硬件看门狗的作用和区别的详细介绍,并提供了相应的源代码示例。希望对您有所帮助!

HrqShell的博客 1217

软件构造4-1可复用性基本概念

在第四章学习如何通过一些方法提高软件的可复用性:如何构造出可以在不同应用中重复使用的软件模块 1.什么是软件的可复用性 目前来说软件的可复用性是不现实的。 软件的复用可以从两方面展开: 1)面向复用的编程:开发出可复用的软件 2)基于复用编程:利用已有的可复用软件搭建应用系统 2.最抽象的模块最能被复用(越抽象的模块可复用性越强) 3.为什么要可复用? 1)降低成本和开发时间 2)经过充分测试,可...

qq_41536873的博客 411

软件MVP与硬件MVP:探讨硬件开发的挑战

硬件开发的复杂性、原型制造和测试、供应链管理和制造流程以及用户反馈和迭代等方面都需要更多的资源和时间。如果你有充足的资源和专业知识,并且能够合理评估风险和时间成本,那么打造硬件产品的MVP也是可行的。这需要耗费大量的时间和资源。此外,硬件开发需要面对物理世界的限制,如材料成本、供应链管理和制造流程等问题,这些都增加了硬件MVP开发的难度。在产品开发过程中,MVP(Minimum Viable Product,最小可行产品)是一个常见的概念,它指的是在尽可能短的时间内构建出具备基本功能的产品原型。

DrezGcp的博客 659

最好用的94款软件

Peter注:原文名称是94个比付费软件更好用的免费软件。我看了全文后,不完全赞同,所以没有沿用原标题。 然而,作为免费软件,它们绝对是最棒的,其中部分软件的功能是我寻找已久的,如今它们实现了这些功能,如unlocker的解除不能删除的文件,而且它们是免费的。 另外,需要一提的是,这是一篇译文,列举的基本上是国外的产品,除了FlashGet。其实目前国内也有很多免费软件,做得也很不错,大家也可以留...

jarit 2273

通过缓存下载图片

网络下载图片的功能,并且在ViewPaper和RecyclerView中展示出来,采用三级缓存的模式:   a.先检测内存   b.再检测文件   c.最后检测网络下载

Directory Opus真正破解版,比资源管理器强大100倍的软件,网上极难找

Directory Opus真正破解版,比资源管理器强大100倍的软件,网上极难找,终于让我找到破解方法了,而且还是绿色版,太完美了!

社交交友网站调查

<br /><br />一.定义<br />SNS,全称Social Networking Services,即社会性网络服务,专指旨在帮助人们建立社会性网络的互联网应用服务。也指社会现有已成熟普及的信息载体,如短信SMS服务。SNS的另一种常用解释:全称Social Network Site,即“社交网站”或“社交网”。 <br />依据六度理论[1],以认识朋友的朋友为基础,扩展自己的人脉。并且无限扩张自己的人脉,在需要的时候,可以随时获取一点,得到该人脉的帮助。<br />社会性网络的理论基础源于六度

突飞猛进的专栏 2万+

在浏览器中实现图片粘贴的jQuery插件– pasteimg使用指南

pasteimg是一款可以在浏览器中实现图片粘贴的jQuery插件,兼容Chrome、Firefox、IE11以及其他使用这些内核的浏览器,比如,国内著名的360浏览器。      pasteimg可以识别浏览器中直接复制的图片,也可以识别复制的富文本中的图片。仅仅可以识别在浏览器中复制的内容,操作系统中复制的图片是不能识别的。      pasteimg依赖jQuery,简单易用,引入jQuery和paste.image.js后,调用方式如下: 代码如下: //在需要监听粘贴事件的dom元素上调用pasteImage方法 //调用pasteImage方法需要传入一个callback参数 /

Beyond Compare:高效文件与文件夹比较工具使用指南

本文介绍了Beyond Compare这款高效文件与文件夹比较工具的使用方法,包括其主要功能、下载安装步骤以及使用技巧,帮助用户快速上手。

byte轻骑兵的技术小窝 1万+

使用模拟工具Modbus poll 和PLC 通讯

使用模拟工具Modbus poll 和PLC 通讯 简介 Modbus Poll 是一个模拟Modbus 主站的工具。不用在现场调试,在家也能使用,方便快捷的调试验证程序。使用它可以和PLC进行Modbus TCP /RTU 通讯等功能,接下来为大家介绍使用Modbus Poll 和 PLC 进行 Modbus TCP 通讯。 组态PLC PLC作为我们的从站和Modbus Poll 通讯,那我们组态一个PLC。 创建通信DB 创建一个DB块,在数据类型处输入:TCON_IP_V4

weixin_61398412的博客 1万+

Proteus一体化安装STC15库添加

Proteus一体化安装与STC15库添加指南 本文详细介绍了Proteus 8.9 SP2专业版的一体化安装流程和STC15系列单片机库文件的添加方法。安装过程简单快捷,无需破解,稳定性好。通过将两个库文件(Lib和LIB)复制到Proteus安装目录的DATA/LIBRARY文件夹中,即可实现STC15W4K32S4芯片的仿真功能。文中还提供了新建工程和器件放置的步骤说明,特别指出STC15W4K32S4芯片可兼容仿真其他STC15系列芯片,并附带下载链接获取资源。该教程适用于电子设计初学者和开发者。

#法外狂徒张三的博客 4万+

硬件算法与软件算法实现区别通俗易懂

同样一个算法,用硬件实现和使用软件实现的区别很大,在实现难度和效率上都天差地别。 算法硬件实现和软件实现的区别? CPU一般分为两种,一种是专用CPU,另一种是通用CPU,电脑上的CPU就是一种通用CPU,它是基于通用任务型的计算来设计的,电脑功能全面,处理网页,做数学运算都能处理,特点是我们在写代码时用高级编程语言C/C++,Phthon等来实现我们的功能。比如一个图像压缩算法,实现好之后需要把C/C++,Phthon编译成通用CPU能够执行的二进制文件,交给CPU来执行,指令是一个cloc...

yh13572438258的博客 1万+

[华为ensp]双核心的园区网

(给部分只会emm......借鉴的朋友提个醒,在group-member e0/0/2 to e0/0/20是所选,所以到了p l t那会给2-20端口都配置上trunk,别紧张,不是你问题)完成上述配置后,PC1可以ping通HTTP2服务器,Client1可以访问HTTP2服务器的HTTP站点,如果不能就要检查上述是否正确。本次实验主要目的是采用双核心的冗余网络,采用MSTP和VRRP技术,在核心层交换机上配置SC1上配置OSPF协议。SC1交换机上配置VRRP。在SC1上配置DHCP。

2301_78859499的博客 1416

硬件与软件集成的好处

通过在设计和开发过程中充分考虑硬件和软件之间的兼容性和协作,可以减少系统中的错误和故障。此外,集成的硬件和软件还可以共同实现容错和错误检测机制,从而提高系统的可靠性和容错性。通过将硬件和软件集成在一起,可以减少硬件和软件之间的接口和通信开销,提高系统的整体效率。此外,集成的硬件和软件还可以共享资源和功能,减少了重复开发和维护的成本。硬件和软件的集成可以实现更高效的数据交换和处理,从而提高整体系统的性能。通过紧密的协作,硬件和软件可以共同优化系统的资源利用,提升系统的运行速度和响应能力。

laisen2023的博客 1214

MaxEnt运行报错的各种问题及解决方法

由于我使用的环境数据并不是大部分人常用的worldclim上下载的气候数据,而是使用不同的四类环境数据,分别包括:降雨数据、气温数据、氮沉降数据和大气CO2浓度数据,数据需要分别从不同的网站下载,因此并不能得到非常一致的数据文件,导致MaxEnt运行时出现了各种各样的错误。文件终于能够读取了,然而计算到一半又弹出第三种问题,根据弹出的报错提示,找到错误所在那一行,用Notepad++打开,可以发现,这一行确实存在nan值,导致文件读取无法正常进行。出现上图所述的问题时,检查环境变量是否具有相同的行列号。

guye322的博客 1万+

智能车图像处理11-进阶篇3--中线累积差值的统计

中线累积差值的统计在后面判断小S,以及长直道的时候都有用到,关键点在于中线的跳变 第12 - 13 行:comulants1 和comlants2代表的是两种不同的累差,取的行数不同 第14-17 行:comulants2取6到25行,其实就是My_Abs(LCenter[i], LCenter[i - 1])的累加 第18-21 行:comulants1去第1到40行 第27- 行: 计算了一下右线的开始于最终结束行,这里判断R_black是否为0,是和中线的提取中g

taiyuezyh的博客 3827

***软件和***硬件的区别

***软件和***硬件的区别 回答:如果对一般软件使用和windows系统十分熟悉,建设的网络结构比较简单,对网络性能、QOS无十分严格的要求,正好又有闲置的、高配置的、装有正版windows系统的机器,软件产品可以在一定程度上体现价格优势。 如果建立的×××网络,考虑系统安全、长期稳定运行、维护成本、良好的综合性能等等因素,建议您使用硬件×××产品。以下的比较...

weixin_34162401的博客 421

Vue2 - 详细实现解析Markdown内容生成侧边栏Toc目录索引,识别文章内容根据大标题/小标题自动生成多级文章目录,点击目录导航时跳转到文章内容对应的锚点位置带过渡动画,滑过锚点时高亮对应标题

vue2,nuxt2,Markdown,目录,文章目录锚点,滚动高亮导航文字,根据页面滚动高亮显示目录的侧边栏,自动提取标题生成右侧目录,vuemarkdown解析并生成目录,滚动页面的时候文章目录跟着选中效果,侧边栏滚动跟随页面,右边目录固定,左边内容可以滚动并且与左边目录联动,实现监听滚动,锚点定位,文章目录滚动跟随高亮,右边菜单点击目录滚动到对应标题,报错,渲染失败,文章内容,读取#标题符号,自动生成一个目录树,自动生成Toc目录,博客内容生成目录索引,资讯文章,生成锚点目录树TOC,详细示例代码教

🏆 前端领域优质创作者 3670

与嵌入式软件开发相关的一些硬件知识

有这样一个问题? 在嵌入式开发中,软件是怎样知道硬件行为,硬件又是怎样接受软件操作的。这个问题涉及到硬件和软件相关的知识。为了清楚这个问题,查阅了相关资料,将其总结记录在下,如果有一些开发经历就能更加深入理解了。 一、硬件事件(Event)的通知——硬件告知软件 在设计软件时,需要被告知硬件中发生的事件,事件可以分为两大类:   (1)一是软件引发事件,由嵌入式软件下达给硬件的任务时...

weixin_30955617的博客 124

基于MATLAB的语音声强度和响度分析及处理

综上所述,本文介绍了如何使用MATLAB进行语音信号的声强度和响度分析,并提供了相应的源代码。通过这些工具和方法,可以更好地理解和处理语音信号的声强度和响度特性,为语音信号处理和音频应用提供支持。声强度(Intensity)和响度(Loudness)是语音信号中常用的两个重要参数,用于描述声音的强度和感知响度。响度均衡化:可以通过对语音信号施加不同的加权滤波器,调整信号的频谱分布,从而改变声音的响度。除了分析语音信号的声强度和响度,MATLAB还提供了丰富的工具和函数,用于处理语音信号的声强度和响度。

COWizard的博客 617

23、电器元件符号及封装大全(2025版本)

总计28类电器元件符号和封装。

XU157303764的博客 2656

软件工程师VS硬件工程师的思维对比,说中你了吗?

关于软件工程师和硬件工程师的问题,我们先看一张图: 前几天,我的一个朋友问我:你觉得软件工程师和硬件工程师,哪一个更有发展前景?说实在的,他把我问住了。但是我是得以我多年的经验来和大家聊聊这个问题,只是个人的一点拙见,有问题我们可以一起沟通下。 软件/硬件工程师发展前景对比: 就我所了解的,在现在以及可预见的未来,软件工程师的需求绝对是碾压硬件工程师的。也就是说,招软件工程师的职位比硬件工程师的职位要多的多,而且软件工程师找工作上来说会比硬件工程师更容易。 第一点从企业的角度来讲讲。我个人认为造成这个..

测试萌萌 2288

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

雷电预警系统甄选攻略:硬件软件售后全知晓

雷电预警系统怎么选?一文读懂

EYZAO的博客 419

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

软件定义闪存系统是什么?

在软件定义一切的时代,存在非常多的概念,很容易混淆。在市场上客户会经常听到“软件定义存储”、“软件定义闪存”等概念,那么本文中所提到的软件定义闪存系统和上面这些概念之间存在什么差别呢?特别是“软件定义闪存系统”和“软件定义闪存”之间有何差别呢?在此我试图通过技术的角度和大家一起分享一下“软件定义闪存系统”的精华所在。 在今年5月份召开的中国云计算大会上,我做了一个主题为“软件定义闪存系统关键技术”...

weixin_33704591的博客 162

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

软件绑定电脑硬件、U盘绑定方式开发

表格方案安全性硬件变动容忍度适用场景仅 CPU ID 绑定极低(易虚拟机伪造)零容错,换 CPU 即废不推荐CPU + 硬盘 + 主板多硬件混合指纹中单项更换可容错中小型离线软件硬件加密狗(USB 加密锁)高,底层防篡改不受硬件更换影响高价值工业软件、CAD云授权 / 在线激活(设备白名单)极高,可限制并发支持设备解绑迁移SaaS、商用客户端主板 OTP / 内置安全芯片绑定最高,不可伪造更换主板才失效嵌入式设备、工控。

272
上一篇: 今天第一次用易语言
下一篇: 注释越多代码越烂——这绝不是哗众取宠
duyanning
博客等级 码龄25年 15粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值