Turing machine git
与门=与非门+非门编程
由控制电路为0为1来控制电路的通断,当其为0时out端处于高阻状态(电路视为断路)状态不肯定(能够对应为turingmachine中纸带上的空白),当其为1时电路导通out对应in小程序
将抽象出来的“方块”组合获得一个4位加法器api
分析可知只有当“A端”为“1 0 0 1”时“S端”能够输出“1”,结合以前的三态门能够实现取出特定编号(如:“1 0 0 1”)中数据的功能。架构
由两个输入信号产生四个控制信号函数
电路分析:学习
当c为0时d的输入会被锁死(即d的值对输出不起做用)例子:一、(c = 1;d = 0;)->(Q = 0;Q' = 1;) 二、(c = 0;d = 0;)->(Q = 0;Q' = 1;) 三、(c = 0;b = 1;)->(Q = 0;Q' = 1) (当c为0时e,f必都为1;若上次Q = 0,Q' = 1或Q = 1,Q' = 0;因为反馈的存在Q和Q'的值不改变,也从而达到存储数据的功能)ui
电路分析:url
经过不断交替给clk 0 1以实现移位操做(也能够看作乘除法)(在实际中此电路并不起做用,由于数值传递很快,当给clk 1 时电路中全部位都会刷新为0)
电路分析:
D触发器级联起来就能够实现以上功能而不会出错。
功能模块---助记符---汇编---程序
通用CPU的发展之路
第二章到此结束,在经过本章学习后咱们从计算机聚焦到了MCU上,不局限于课堂的几十分钟,习惯于阅读英文文档(最好是官方的)。
上图是一个基本的MCU内部结构,在了解了MCU内部结构后,在本章中最重要的是在此基础上理解编程的内部运行机理。接下来咱们首先学习MCU内部结构。
MCU的概览
分析其中的CPU
红色(运算器,存储器,控制器)必要,灰色非必要
将ALU拎出来
下面分析Quiz,以对四要素尤为是Status加深理解
运算逻辑单元所产生的结果及状态位须要保存下来,大部分CPU会有叫作register的东西来完成
那么操做数又是如何加载到CPU的呢?
既然数据能够存储在Memory中,那么如何存取就涉及到了地址与存储了:
这一切又是如何运行起来的:
在时序电路(“依次”)的驱动下CPU完成指令的获取:
当指令组成程序时:
被调函数完成执行后后会返回主调函数,这就要求PC = adress ,那么如何完成呢?早期CPU会增长一个返回地址寄存器,可是若是出现函数的嵌套调用,就会要求有多个返回地址寄存器,那么问题就出现了,寄存器不能无限制的加下去,这就出现了一种新机制-------------->堆栈
堆栈多数时候指的只是栈
定义:
做用:
堆栈的运行机制:
堆和栈是有很大区别的,但在嵌入式系统中一般不使用堆。
堆栈溢出(难点)
sp指针寄存器,pc指针寄存器,数据寄存器,标志位寄存器。。。称为register file(寄存器组)or programmer‘s model(编程模型) 。
学习一种cpu时:
两种常见的mcu模型:
下面经过一个小程序来理解堆栈的运行机理
程序跑在一个如上图所示的12系列的mcu中
其寄存器组分别为:一个16位的D寄存器(可分为两个8位的数据寄存器A B),两个寻址寄存器X Y,一个栈指针寄存器,一个程序计数器,一个状态位寄存器。
初始状态
完成堆栈初始化
a值入栈
b值入栈
调用子函数,pc发生跳转,在栈中保存子函数执行完后要执行的代码的地址,sp发生跳转
执行子函数
子函数执行返回语句,将栈中的0x30,0x0c的值赋给pc指针寄存器,sp指针寄存器返回到子函数执行前的位置,以前的0x30,0x0c依然在栈中只是不被栈所认可(注意并非清空只是能够被心之所覆盖)。
这个程序实现了a b值交换
进入ARM Cotex M的32位微处理器
常见的微处理器架构:powerpc coldfire arm
如下是对xPSR这个32位寄存器地详细分析:
xPSR的每一位都会有其对应的功能,咱们经过其别名(APSR(应用程序状态寄存器) IPSR (中断程序寄存器) EPSR(程序运行状态寄存器))来访问其特定位;
APSR:访问最高四位,来判断是否有溢出,是否进位。。。
IPSR:访问低位,保存中断号
EPSR:访问中间的T,是否有中断发生
优先级屏蔽寄存器(PRIMASK register)在这里开关总中断
cpu状态寄存器(用户态(辅堆栈)or特权态(主堆栈))
thread mode :(进程模式)简单理解为运行main和main调用
handler mode:(句柄模式)发生中断和响应中断
以上和16位cpu类似
函数调用有不一样之处:
总结:
一、走近中断
二、定义中断
三、中断的使用(只是中断发生时可以让CPU响应的条件,具体使用方式在下节给出)
(1)打开/关闭总的控制中断的开关
(2)设置某一中断发生的标志
(3)中断的工做流程