0

    【软件开发底层知识修炼】一 深入浅出处理器之一 微处理器与微控制器

    2023.06.29 | admin | 135次围观

    深入浅出处理器这几篇文章可能你觉得对软件开发用处不大,这个看个人理解吧,若是想贯通上下,知其然还要知其所以然的话,或许还是有点用处的。学习处理器的篇章非常少,花一点时间学一下也无所谓的!

    在我之前还是做硬件的时候,我一直不理解微处理器和微控制器的区别。

    之前写过一篇文章,讲X86处理器的,可以点击查看:X86处理器

    文章目录

    1、 处理器

    处理器分为两种:微处理器和微控制器。

    微处理器与微控制器有以下区别:

    注意:

    微控制器具有成本低,功耗低等优点,常用于嵌入式系统设计对于软件工程师而言,微处理器与微控制器没有任何区别

    其中,CPU与外设(包括微控制器的片内外设与片外外设)都有寄存器,但是它们的用处却是非常的不一样。之前写过的X86处理器那篇文章中,已经讲了一些X86处理器的寄存器的用处,大致就是存储数据的,但是微控制器上的外设中的寄存器微处理器与外设大学教程,不是用来存储数据的,而是用来控制外设的行为和工作方式的。

    1.1、寄存器分类

    CPU寄存器

    – 专用指令执行,数据运算, 变量处理,参数传递

    外设寄存器

    – 用于控制外设的行为和工作方式、

    –寄存器值的配置需要查看相应的硬件手册

    1.2、处理器中的关键寄存器

    今天我们只了解两个寄存器:PC程序计数器寄存器,SP栈指针寄存器。

    具体使用方法,会在后面的文章中讲解,今天暂时知道这两个寄存器的概念与用法。

    1.3、处理器的IO操作

    众所周知,一台电脑有很多外设,USB,声卡,显卡等,这些都是外设。那么处理器是如何与外设进行数据通信的呢?

    处理器与外设之间的通信通过IO操作完成。

    【软件开发底层知识修炼】一   深入浅出处理器之一 微处理器与微控制器

    那么既然有IO操作,肯定是要有CPU去寻址的过程,在CPU所能寻址的范围内,找到外设的地址,对该地址进行读写就可以与外设进行通信。那么外设如何通过IO将自己的地址空间映射给CPU的寻址空间呢?

    上面是CPU与外设的基本通信方式,我们不必纠结于具体的硬件实现,毕竟我们是做软件开发。

    那么,CPU现在可以与外设进行通信了,那么CPU如何操作外设呢?

    通过IO端口配置控制寄存器通过IO端口读取数据寄存器

    从软件工程师的角度来看,只要对不同的IO端口读写,就可以操作外设;读写IO端口时候的具体值和意义需要查询具体的硬件手册。

    2、硬件设计的关键

    上一节我们知道了CPU是如何与外设打交道的。那么在硬件上,大概设怎样的设计呢?

    首先CPU与外设之间要有地址总线与数据总线,然后需要有一个片选信号用来确保是否“启动”该外设。

    通过具体的硬件设计,可以使地址总线上的值在某个范围时,片选信号为“真”,即:使能连接的外设,从而读取相应地址中的数据!!!

    具体的硬件如何设计不去细究,这里知道大概原理即可,

    3、处理器的启动过程

    在一开始,我们的电脑是没有操作系统的,那么处理器是如何启动的呢?

    下图为CPU简易的启动过程

    大致了解一下BIOS:

    固化于硬件中的一个程序,用于初始化硬件,然后将指令指针寄存器PC(IP)指向主引导扇区程序微处理器与外设大学教程,主引导扇区程序再来引导操作系统内核的自举程序,然后启动操作系统。(后期会专门学习操作系统,现在暂时不用了解)

    4、总结

    基础不牢,地动山摇。上来就提倡看各种源码的,不是大牛就是菜鸡。大牛很少,菜鸡很多。

    本系列文章几乎全部参考狄泰软件学院相关课程,想学习的可以加群,

    群聊号码:199546072

    学习探讨加个人:

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论