美文网首页
程序是如何控制硬件的?

程序是如何控制硬件的?

作者: 老夫不正经 | 来源:发表于2021-10-17 20:54 被阅读0次
众所周知,计算只能识别二进制,任何程序或软件,最终都要经过编译或解释转换成二进制才能被计算机识别。源代码,源代码就是由程序员使用各种编程语言编写的还未经编译或者解释的程序文本,编译或解释能把源代码翻译成等效的二进制代码,也就是CPU能够识别的机器语言。
image

编译和解释

编译和解释都是对源代码的解释处理方式,而由于他们的操作方法不同,所以会有不同的运行的效果:

  • 编译是把源代码的每一条语句都编译成机器语言,并最终生成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,在运行时会有很好的性能;

  • 解释器是只有在执行到对应的语句时才会将源代码一行一行的解释成机器语言,给计算机来执行,所以使用解释器来执行的语言也被称为动态语言;

hex文件

在单片机中,源代码经过编译之后生成hex文件,该文件以行为单位每行以冒号开头内容全部为16进制代码。那为啥是十六进制而不是二进制,为什么不直接生成二进制代码?

image

16进制代码它的每一个字节都有其特定的含义,比如数据长度、起始地址、数据类型等信息。所以在编译的时候就能检验代码是否有错误,能够在一定程度上降低错误率,为代码的传输存储带来便利,而二进制代码却没有这个功能;

并且hex代码通过程序烧写就能转换成CPU就能识别的二进制代码。

但是无论是编译或者解释,最终的结果都是二进制代码,在CPU看来,二进制代码就是一组特定的高低电平的组合;这些高低电平最终去给内存条中相应的一个个电容充电。

那么CPU如何执行二进制的代码呢?

CPU是有工程师精心设计的,我们可以把CPU看作是海量的开关组合,这个开关由三极管组成,三极管/场效应管类似继电器(一种通过线圈产生磁场、然后用磁场控制物理开关的通断与否的设备);在它一个管脚上输入/切断电压信号,另一个管脚就会出现高/低电平;

ps:继电器是一种利用电磁铁控制的开关;当向电磁铁通电时就产生磁场,而这个磁场就会吸合或者分离开关,从而实现“以微弱电流控制另一条电路的通断”这个功能。

三极管拿来当开关使用时,和这种继电器效果几乎一样。

人类的第一台万用型计算机马克一号就拥有3000多支继电器,这也是它的核心零部件,所以它也被称作为继电器,继电器在这台计算机中的作用就是开关。

image

现代的计算机中使用了三极管来代替继电器的原理也是一样的,CPU中有规模庞大的开关组,当给开关组输入一组特定的高低电瓶组合时,就会导致其内部出现复杂的开关动作,最终产生另一种高低电瓶的组合作为输出,输出的电平经过放大电路、模数转换电路等变换之后,就可以驱动相应的硬件动作。

相关文章

  • 程序是如何控制硬件的?

    编译和解释 编译和解释都是对源代码的解释处理方式,而由于他们的操作方法不同,所以会有不同的运行的效果: 编译是把源...

  • 鸟哥私房菜Shell基础(1/3)

    何为shell 应用程序操作操作系统的顺序是 应用程序发出指令 核心管理Kernel(主要控制各个硬件工作) 硬件...

  • 软件是如何控制硬件的?

    姓名:刘亚宁 学号:17101223434 转载自:http://baijiahao.baidu.com/s?...

  • 电脑常见问题之驱动

    驱动程序:操作系统连接硬件的程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的...

  • Control the camera

    在本节课中,我们将讨论如何使用框架api直接控制摄像头硬件。 直接控制设备摄像头所需要的代码要比从现有相机应用程序...

  • 第二章:ESS弹性伸缩笔记

    一、什么是弹性伸缩ESS? 估算峰值,采购硬件,安装硬件,如何运维,成本控制...... 弹性扩展 弹性伸缩 弹性...

  • 细说嵌入式驱动程序设计

    嵌入式系统驱动程序的开发有别于WIndows或Linux。后者除了必须了解新设备的硬件特性,把控制硬件的程序尽快完...

  • python全栈学习之Linux操作系统(7)

    1、计算机操作系统:计算机操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和程序之间。...

  • 操作系统基本原理

    操作系统用于管理系统的硬件、软件和数据资源,控制程序的运行,是应用软件与硬件之间的接口,也是人机之间的接口。操作系...

  • 2016.9.1 PM

    一、通电BIOS运行硬件引导MBR引导程序加载指定的操作系统到内存将硬件的控制权交给操作系统while(1) ...

网友评论

      本文标题:程序是如何控制硬件的?

      本文链接:https://www.haomeiwen.com/subject/gsgwoltx.html