题型
- 填空
- 选择
- 问答
第一课
-
数字电路不考,掌握时序电路的重要性
-
地址:分频器变形输出的码
-
通过对寄存器的读和写完成控制,完成智能的功能,微处理器需要一些外界设备完成功能。
-
统一寻址概念
统一的地址线,数据线,控制线,用地址选择芯片。 -
嵌入式系统概念:(p11)

-
ARM是一种体系结构
-
p13
-
RISC和CISC各自全程和区别,各自的优势和劣势以及c44bo属于哪一种
cisc复杂指令集,risc简单指令集。
区别说几个,cisc的指令是不等长的,risc的指令是等长的。
cisc的一条指令要完成工作相对比risc多
cisc更依赖于硬件,逻辑电路比risc复杂,所以也更耗电,而risc相对更依赖于编译器优化。c44b0属于RISC -
ARM和THUMB各自的优势以及劣势是什么,有什么区别

-
大小端怎么确定:靠管脚接高低确定(EDNIAN),大端和小端代表什么,按照大小端排列(p14)
小端Little Endian:低字节存放在低地址,低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
大端Big Endian:高字节存放在低地址,即高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 -
44b0有7重工作模式以及各自缩写(p15)
(SVC)Supervisor管理

-
物理和逻辑寄存器有多少个,逻辑寄存器有哪些(17/18个)
物理寄存器有37个,逻辑寄存器有17(18)个(R0-R12 PC SPSR SR LR SPSR)
CPSR:当前程序状态寄存器




| LR(R14) | SR | SPSR | PC(R15) | CPSR |
|---|---|---|---|---|
| 链接寄存器 | 状态寄存器 | 备份程序状态寄存器 | 程序计数器 | 当前程序状态寄存器 |
- 操作模式的切换:软件改变、中断、异常都可以完成
- p16 通信口四个:UART IIS SIO IIC,通讯口有哪几种



- p18 地址映射概念,256M分成8个bank(bank0-bank7),6 7bank之间大小可变但67尺寸必须相同
- (OMO,1) 启动代码(2M)。 特殊寄存器(4M),并不放之前的通用寄存器
- p20 13个内存控制器,bank0不定义,在管教上定义(一上电才能初始化,必须在上电之前确定),三个比特查询大小端状态

- p21 知道右边四句程序意思:

LDR R0,=SMRDATA ;将存储控制组件各控制器的初始化数据区的起始地址装载到R0
LDMIA R0,{r1-r13} ;将R0作为起始地址的13个连续字的初始化数据装载到R1~R13
LDR R0,=0x01C80000 ;配置总线宽度与等待控制寄存器BWSCON 的地址
STMIA R0,{R1-R13} ;将R1~R13中内容存储到R0作为起始地址的13个连续字的存储区 SMRDATA :
(进行内存控制器的初始化)
DCD 0x22221210

-
内存控制器的初始化,把左边暗红色标号搬到上面的13个内存控制器(13个寄存器),先指向最高,一个一个搬移。硬件连接+软件初始化
-
p22 CPU在进行读写的时候无法拿到数据,所以会有一个cache,解决问题:空间不一样,地址码不一样,128k地址解释32M地址(映射,cache的结构:p23,组相连映射,根据图能够描述出组相连映射的结构,16=422)。
- CPU结构

- 写穿式

- cache的结构

- cache的功能

- 组相连映射


- CPU结构
-
SYSCFG[3] 第四个比特(联系p25和p24)


-
p27(中断)中断源(30个)和真正连接(26个)有多少个:
1.来自芯片外部的中断:5pin,8种中断
2.来自芯片内部的中断(外围):
(1)从CPU手中申请控制资源的权利:
(2)外设与CPU的通信:
(3)定时器
(4)其他:看门狗和ADC
理解:关于44b0的中断:
1.44b0允许30个中断,这些中断来自于外部,和芯片内部(芯片内部的外围,例如uart)。
2.这30个中断可以被44b0编成两个级别(优先级)的中断:IRQ和FIQ。
3.对于编成同一类型中断的中断源,如果同时发生,如何解决?
44b0提供了两种中断服务的方式:
(1)需要通过程序确定中断源的优先级,方法是查询中断pending寄存器。“它表明“将”发生中断的类型”。
这种中断处理方法的缺点:有等待时间(latency time)。
(2)中断矢量的方式: CISC类型的微处理器的通用特性(为什么RISC没有,CISC的硬件可以做的复杂)。主要好处能够减少等待
时间。44b0能够完成这一功能主要是因为芯片内的中断控制器硬件提供了中断服务向量。
实现过程:当多个中断发生的时候,“硬件优先级逻辑”确定先服务那个哪个中断,同时,这个硬件逻辑申请(应用apply)中断向
量表(首地址是0x18或0x1c)中的跳转指令。这个跳转指令的目的就是去执行对应的ISR.这样能够减少等待时间。 -
这30个中断可以被44b0编成两个级别(优先级)的中断:IRQ和FIQ。
(FIQ和IRQ,r8-r12提供快速中断方式,快速响应) -
p28 中断矢量模式和非中断矢量模式,优先级策略中优先级产生量,非中断向量(读懂程序,程序出来时明白在干什么,功能是什么:非中断矢量的中断方式:I_ISPR逐比特右移,找到1,记录右移位数,找到中断,r8移了几个数,p44:00一开始上电,18IRQ,普通中断020)
| EXTINTPND | ISR |
|---|---|
| 外部中断挂起寄存器 | 中断服务程序 |

| I_ISPR( R) | F_ISPR( R) | I_ISPC(W) | F_ISPC(W) |
|---|---|---|---|
| IRQ Interrupt Pending Status | FIQ Interrupt Pending | IRQ Interrupt Pending Clear | FIQ Interrupt Pending Clear |
- 非中断矢量的中断方式

I_ispr:irq的中断程序的pending寄存器。
Movs和mov的区别:加s影响标志位,不加s不影响标志位。
isrIRQ解释:
(1)r8,r9入栈。
(2)将I_ISPR的内容存到r9里面(先存地址,再将地址的内容存入)。
(3)将r9逻辑右移,当移除为1时,知道对应bit位为待处理的中断。该中断的相对地址由r8计算。
(4)r8用来存储pending寄存器中发生中断的中断源的“相对地址”。先令r8=0x0,然后pending中等于1的位置,每隔一个加地址4。
(5)如果没有移除1,则跳转到0继续移(B0表示向后back到0),如果移除1,则向前跳转到1(F1:forward 1)
(6)将相对地址编成绝对地址:r8+(=handleADC),然后将r9入栈。
(7)将r8,r9,还有中断处理程序的绝对地址同时出栈,其中中断处理程序的首地址(绝对地址)赋予了PC
补:
isrIRQ:用来判断是第几号中断,并读取相应的地址,然后跳转到中断程序的入口。这段程序执行时间长。
而中断向量,PC会直接跳到中断向量表,并从中断向量表(0x20开始)读取地址,而例程会执行一段宏。
- 中断矢量

- 备注
I:bit[7];
F:bit[6]
1.CPU的PSR(程序状态寄存器)表明自己是否会接收FIQ或IRQ类型的状态。如果Fbit等于1,说明CPU不接收FIQ类型中断;Ibit=1,类似。
2.Pending(未决的)
3.当ARM7TDMI接收到IRQ时,ARM7TDMI会执行0x00000018处的指令。
如果是矢量中断模式,中断控制器会产生一个跳转指令(机器码),使PC从ox00000018跳转到对应的中断矢量。
矢量中断模式。当多重中断源请求中断时,硬件优先级逻辑会判断哪一个中断将会被执行,同时,硬件逻辑自动执行由0x18地址到各个中断源向量地址的跳转指令,然后再由中断源向量进入相应当中断处理程序。简单的说,每个中断源对应一个内存地址,只要在对应当地址上设置一条到中断服务程序的跳转指令,CPU自动跳转到响应的中断处理函数。和原来的软件实现方式相比,这种方式可显著缩短中断响应时间。
用户需要对中断矢量进行编写,写出对应的ISR。
4.INTCON的bit[1]和bit[0]可以发出IRQ和FIQ中断使能信号。Bit[2]可以选定是否中断矢量模式。总之,INTCON是用来通知CPU的。 - 理解p42页配图在手册里面上面的那一句话理解



-
p34 外部可以请求ZDMA,REQ和ACK的时序关系需要考虑

-
p38 4种外部DMA REQ/ACK协议(握手、单步、全服务、demand)
-
gpio:管口复用(关于功能PCON、端口数据寄存器PDATA,上拉寄存器PUP)



- PUPC_G:控制上拉电阻是否使能
- PDATA_G:决定了端口写入数据还是输出数据
- PCONA_G:决定了对应端口(pin)使用对应的程序(function)
第三课
- p3 四种通讯口 IO控制器(LCD、UART、IIS、IIC)
- p5

- LCD控制器产生:
(1)生成时序信号;
(2)把视频数据变换成要求格式的数据:4,8单扫描;4双扫描;
(3)LCDDMA负责数据从Memory传送到LCD控制器。

- p9 UART (通用异步收发传输器)一帧数据的数据额结构:

- p10 红色虚线包含的是芯片内部,和串口接受两根线。UART里面一定有一个串并转换——波特率发生器:数字电路的时钟,控制0和1的发出速率UART是什么,干什么
微处理器芯片只能处理并行数据,所以,在进行串行通信时,要进行串-并的转换.即发送时,要把并行数据转换成串行数据;接收时候,要把串行数据转换成并行数据.实现这种转换的设备:通用异步接收发送器.
并不是简单的串并转换
(1)异步串行通信:接收端和发送端时钟不一致。
如何让接收端能够识别发送端数据?靠约定:
(a)平时处于1,发送开始0,结束为1,中间为一帧数据。
(b)表示信息的数据有多少bit是约定好的。
(c)为了保证数据发送是正确的,发送时,对要发送的数据进行某种逻辑运算,结果写在奇偶校验位中,接收端接收到规定长度的数据后,
照同样的逻辑计算奇偶校验位,看与收到的奇偶校验位是否一致,一致传输正确,不一致传输错误。
- UART的作用:
(a)发送时:将“计算机内部”传来的”并行数据“转换为“串行数据流”,在输出的串行数据流中加入奇偶校验位,输出数据流+奇偶校验位两端加上开始bit=0,停止bit=1。
(b)接收时:将“计算机外部”来的串行数据转换成字节(计算机用的是并行数据);对接收来得数据进行奇偶效验,在接收数据中删除起始和结束bit。
- p11 IIC总线包含地址、数据和传输方向(串行)
IIC:Inter-Integrated Circuit(集成电路总线)
IICSDA:IIC-BUS的数据线
IICSCL:IIC-BUS的时钟


- p18 L3总线模式(GPIO)包含什么(L3MODE、L3DATA、L3CLOCK)
1.实现串口通信需要完成两部分工作:
(1)将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/COMS电平的转换;
(2)接收并检验串行数据,将数据编程并行的,并提供给处理器使用。
实现RS-232电平和TTL/COMS电平转换用接口芯片;实现数据的串行到并行转换用UART。它们是实现串行通信必不可少的两个部分。
- 什么是宏
- 1.MACRO,MEND伪操作可以将一段代码定义为一个整体,称为宏指令。
- 2.宏操作的使用方法与子程序有些相似,子程序可以提供模块化的程序设计,节省存储空间并提高运行速度。但是,使用子程序结构时需要保护现场,从而增加了系统能够开销,因此,在代码较短且需要传递的参数较多时,可以使用宏操作代替子程序。
第四课
- p3 ARM体系结构支持c/c++以及汇编混合编程
- 在c/c++代码中嵌入汇编指令;
- 在汇编程序和c/c++程序之间进行变量互访;
- 汇编程序,c/c++程序之间互相调用;
- 初始化:汇编语言
- 主要编程任务:c/c++
- p5 B:无条件跳转到reset,ISRIRQ查询那一段指令被中断,中断矢量模式比非中断矢量模式快
- p6 ENTRY:程序入口
- 初始化堆栈:
- 针对7种操作模式,有6种sp,要想对sp进行初始化,首先要让系统进入该工作状态。因为,汇编中sp只有一个标识符。
- 用户堆栈不用初始化。
- 程序细节:先将MODE位全部清零(保存在r0),然后,将用“或”来实现各种模式的选择(保存在r1)。注意:这时不允许INT,所以,同时进行“NOINT”的设置。
- p19 程序要考:
功能:未定义模式下sr的初始化

- bic:比特清零
- mrs:将状态寄存器内容传到通用寄存器
例子:

- p14 :

- p15 volatile使用情况:

第五课
- OSI:Open system interconnect
- 七层模型的目的,好处(包括优点)

- 七层模型:

- 数据链路层解决了几个问题(就是物理层存在的问题):

- p11和p12不考
- P14 以太网是前数据链路层的一种,
- 以太网的传输单元称为“帧”。
- 数据段不够64字节需要补零,说明其至少需要64字节(**为什么?**尽量传输机制和碰撞,百度查找并参考p15)
- CRC校验
- 8019接受是大的(52页),发射是少的(12页),一共是16k
- P19 IOS3-0:0000,八个地址中的哪一个
- P29
专有名词:

- 特殊寄存器








本文详细介绍了嵌入式系统中的44b0微处理器,涵盖时序电路、ARM体系结构、RISC与CISC的区别、工作模式、中断处理、内存控制器初始化、UART、IIC通讯及中断矢量模式。内容包括寄存器、地址映射、通信口类型、中断源及其管理、数据存储和转换,以及OSI模型相关知识。

6111

被折叠的 条评论
为什么被折叠?



