ARM微控制器与嵌入式系统 基础知识

学习地址

2.1 基础概念

机械计算
图灵 :一个计算的问题一定可以拆解为有限个计算的集合(可计算性) 01
冯诺依曼结构:运算器、控制器、存储器、输入设备、输出设备
模拟信号 连续 数字信号 离散 量化成若干个值 也会失真
一般通过电压高低标识01
ascll 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0)
学习氛围->认知不清

2.2 基础概念从晶体管到CPU

所有的东西都数字化
电压幅值代表0和1 逻辑 晶体管
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逻辑->加法 加法本身就是减法(补码)
在这里插入图片描述
计算机中的记忆元件由触发器组成,而触发器只有两个状态。即“0”态和“1”态,所以每条信号线上只能传送一个触发器的信息。如果要在一条信号线上连接多个触发器,而每个触发器可以根据需要与信号线连通或断开,当连通时可以传送“0”或“1”,断开时对信号线上的信息不产生影响,就需要一个特殊的电路加以控制,此电路即为三态输出电路,又称为三态门。
加一个三态门 做成取地址的操作

在这里插入图片描述
控制流量

组合逻辑 时序逻辑
在这里插入图片描述
锁存器 存储 串联移位 乘除法

在这里插入图片描述
边沿触发器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
概念CPU:16条指令 4bit位宽的CPU原型

助记符(mnemonic)是便于人们记忆、并能描述指令功能和指令操作数的符号,助记符是表明指令功能的英语单词或其缩写。汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

编程的本质:指令集的集合

2.3 概念CPU、微控制MCU和嵌入式系统

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 八卦计算机史和创新

摩托罗拉
6502 乔布斯 任天堂 CPU 指令集
68001 32位
C80

2.5不同领域不同系列的嵌入式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 ARM的历史与MKL25Z128MCU

在这里插入图片描述
powerPC IBM 摩托罗拉 苹果联合设计的 高性能 特别是高网络吞吐量和高性能汽车主控设备
6800后代 coldfire 军工 电表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
苹果 飞机 单片机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1 CPU的基本结构和运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ALU的四要素
在这里插入图片描述
flag标志位在哪里?
在这里插入图片描述
操作数哪里来
在这里插入图片描述
操作数在哪里?
在这里插入图片描述
在这里插入图片描述
运算结果放在哪里?
在这里插入图片描述
运算结果存在哪里?
在这里插入图片描述
谁掌控这一切的运行?
在这里插入图片描述
获取指令:一个完整的CPU
在这里插入图片描述
在这里插入图片描述

存储在存储器 时钟 时序电路的驱动下 挨个将指令放在控制单元
PC 程序计数器 保持下一条将要执行指令的地址

这些任然是图灵机的高度抽象

在这里插入图片描述
在这里插入图片描述

3.2.1 堆栈的概念

在这里插入图片描述
在这里插入图片描述
堆栈指针寄存器
在这里插入图片描述
C语言的编译器会帮我们使用堆栈

a completely cpu
在这里插入图片描述
数:寄存器 片外存储器
指令解析产生逻辑控单元
PC指针的指引下从程序的存储地址空间 一条一条拿来 解析控制数据的流向和来源 以及要做的运算内容
函数调用 嵌套调用 跳转 堆栈
在这里插入图片描述
堆栈溢出
在这里插入图片描述
用户程序进入内核火获得不应该有的权限

指令集 寄存器
在这里插入图片描述
在这里插入图片描述
总线
在这里插入图片描述

3.2.2 头脑体操

在这里插入图片描述
NOP 汇编语言的助记符
SP 堆栈指针寄存器
PC pc指针寄存器 读取下一条指令的地址
AB 片内的数据寄存器组
在这里插入图片描述
堆栈的初始化
在这里插入图片描述
压栈
在这里插入图片描述
JSR 跳转到一个子函数SubFunc
在这里插入图片描述
跳转 下一条指令的地址
在这里插入图片描述
堆栈会覆盖,不会销毁
在这里插入图片描述
RTS从子函数返回
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
交换 1微妙不到就可以完成

3.3.1 ARM的体系架构

在这里插入图片描述
在这里插入图片描述
R0-R12 通用
R13 堆栈
R14 函数调用 子函数 返回地址
R15 PC 程序指令地址
在这里插入图片描述
xPSR 保持各种CPU的设置状态 便于读写
PRIMASK 中断的开和关的
CONTROL CPU的工作模式
FAULTMASK 不可屏蔽中断的开和关 BASEPRI 按优先级关闭中断(M3 M4才有)
在这里插入图片描述
32bit 程序状态寄存器 各种状态指令跳转的依据
在这里插入图片描述
优先级控制寄存器
在这里插入图片描述
CPU的状态 用户态还是特权态
在这里插入图片描述
堆栈寄存器指向两个区域:操作系统内核 用户程序 任务跑飞的时候不会使操作系统崩溃
在这里插入图片描述
进程模式:mian函数
句柄模式:进中断出中断
M3/M4 分用户态 内核态
在这里插入图片描述

3.3.2 头脑体操

32bit
在这里插入图片描述
movs r4,#18 把18存到r4寄存器 #代表十进制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一级调用堆栈没有用 LR:末位为0 切换到38指令集 末位为1切换到arm指令集 返回0810(偶数有效)及下一位指令所在地址
在这里插入图片描述
在这里插入图片描述
pop 弹出一个置给r4寄存器
堆栈的特性 用来做数据交换
在这里插入图片描述
在这里插入图片描述

3.4.1 中断的概念和机制

在这里插入图片描述
中断和轮询
在这里插入图片描述
什么是中断
在这里插入图片描述
在这里插入图片描述
中断的允许/禁止控制
在这里插入图片描述
中断的标志位 IF
根据不同d
控制中断的开关
在这里插入图片描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

中断的工作流程
在这里插入图片描述
中断的堆栈占用
在这里插入图片描述
在这里插入图片描述
中断来后,CPU自动将这些寄存器压入堆栈
效率的平衡 可以手动压

3.4.2中断子程的概念和编程

在这里插入图片描述
在这里插入图片描述

中断向量表
在这里插入图片描述
中断优先级
在这里插入图片描述
中断嵌套
在这里插入图片描述
中断嵌套时的堆栈
在这里插入图片描述
对内存比较大的开销,又可能发生堆栈溢出,嵌套有限。

中断的潜在风险

中断是独立的,为外部元素所触发的函数,快速实时响应一些事情,并且可能由硬件的通知打断任意位置的main函数,依赖堆栈保留现场,但内存里面全局变量是不会被改写的。

3.5 复位、时钟、存储器和总线

在这里插入图片描述
中断向量表
在这里插入图片描述
0000:堆栈指针向量 ARM厂商 堆栈指针CPU内部寄存器初始地址 SP
0004:开发工具的入口地址填写在这,上电后CPU自动从这里加载,入口函数最后一条指令就是main PC
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
RAM堆栈 返回地址 临时变量
在这里插入图片描述
内部总线接口
在这里插入图片描述
CPU内部的寄存器通过指令就可以实现
CPU按地址看外面的

3.6 小结:MCU的总体架构

CPU除了独立的时钟和复位用电路连接外,通过总线以地址的视角看待
在这里插入图片描述
区别CPU内部寄存器通过指令访问,而是在外部寄存器通过地址访问,电路与编程的接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值