ARM微处理器的工作状态
处理器状态
1.ARM状态:32位,这种状态下执行的是字方式的ARM指令
2.Thumb状态:16位,这种状态下执行的是半字方式的ARM指令
芯片(SC2440)(Samsung)SOC(片上系统)
CPU与外设的连接(非直连)
- 利用控制器(LCD)与适配器(显卡)
- 例如:显卡与CPU连接,外设与显卡连接
- (CPU)ARM920T:一个有37个寄存器(每个寄存器的容量都是32位):31个通用寄存器,(包含两套汇编指令:ARM指令32位,Thumb指令16位):32表示一条指令由32位二进制位组成,16表示一条指令由16位二进制位组成
- R13:SP 堆栈寄存器,对栈区的操作
- R14:LR 链接寄存器,处理中断/异常服务程序,将下一条指令的地址放到LR寄存器中,处理完异常之后,再重新回到原来的地方往下执行
- R15:PC 程序计数器(存放的是指令)在数据区
- CPSR:当前程序状态寄存器(高4位功能: N:表示上一次执行结果为负数 Z:一条指令执行结果为0 C:做加法或减法发生禁位则C置1 V:溢出 低八位功能: 第5位T:表示是出于Thumb状态, 第6位F:表示FRQ 第7位I:表示IRQ )
- SPSR:用来备份CPSR的
进程空间划分了四个区域
1.堆区
2.栈区:(既可以是顺序栈也可以是链式栈,函数调用相当于的操作是入栈,函数调用结束,空间被回收即为出栈),(局部变量的定义与形参变量的定义都定义在栈区,形参的本质都是变量定义)
3.数据区
4.代码区
CPU执行一条指令的基本过程
1.取指(获取指令,从内存里获取)
2.译码
2.5.取数据(可能有的指令需要做,有的不需要)(取数据:从立即数里取数据,归根到底是从内存里取)(mov r0 10:不用取数据,但要存数据)
3.执行
3.5存数据(可能有的指令需要做)
什么是片上系统
- SoC: System on Chip的缩写,称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。SoC定义的基本内容主要表现在两方面:其一是它的构成,其二是它形成过程。系统级芯片的构成可以是系统级芯片控制逻辑模块、微处理器/微控制器CPU 内核模块、数字信号处理器DSP模块、嵌入的存储器模块、和外部进行通讯的接口模块、含有ADC /DAC的模拟前端模块、电源提供和功耗管理模块,对于一个无线SoC还有射频前端模块、用户定义逻辑(它可以由FPGA或ASIC实现)以及微电子机械模块,更重要的是一个SoC 芯片内嵌有基本软件(RDOS或COS以及其他应用软件)模块或可载入的用户软件等。系统级芯片形成或产生过程包含以下三个方面:1) 基于单片集成系统的软硬件协同设计和验证;2) 再利用逻辑面积技术使用和产能占有比例有效提高即开发和研究IP核生成及复用技术,特别是大容量的存储模块嵌入的重复应用等;3) 超深亚微米(UDSM) 、纳米集成电路的设计理论和技术。SoC设计的关键技术 具体地说, SoC设计的关键技术主要包括总线架构技术、IP核可复用技术、软硬件协同设计技术、SoC验证技术、可测性设计技术、低功耗设计技术、超深亚微米电路实现技术等,此外还要做嵌入式软件移植、开发研究,是一门跨学科的新兴研究领域。
异常模式
1.用户模式usr 17个寄存器R0-R12 R13 R14 R15 CPSR
2.系统模式sys 17个寄存器
3.快速中断异常模式fiq 16个寄存器R0-R7 R8-R12 R15 CPSR SPSR
4.中断异常模式irq 20个寄存器 R13 R14(自带的) SPSR
5.管理异常模式svc 20个寄存器 R13 R14(自带的) SPSR
6.中止异常模式abt 20个寄存器 R13 R14 SPSR
7.未定义异常模式und 20个寄存器 R13 R14(自带的) SPSR
ARM所支持的异常
1.复位
2.未定义指令
3.软件中断
进程的5个状态
1.就绪
2.执行
3.僵尸
4.暂停
5.睡眠(一个进程进入睡眠的好处是,可以节省时间片给别的进程执行)(如何唤醒呢?通过中断)
寄存器(寄生在CPU里面的寄存器,寄存器不能独立存在)的存储方式
1.cache(1)获取数据的速度比在内存里快很多(2)如果cache里有CPU想要的数据,则CPU不需要访问内存了,速度大大提高(3)但是cache容量不是太大
2.内存
3.外存
C语言回顾
- C语言的核心是函数
指针最大的用途
1.指针和函数形参(指针可以传递一块内存空间)
2.指针和结构体
函数的定义
1.自定义函数
2.别人写的函数:(1)C库(2)操作系统(OS)提供的(系统调用函数)
3.第三方函数
作业
- 结构体作为函数形参有什么缺点,怎么解决