微机原理与嵌入式接口技术课件:Cortex-M3 基础_第1页
微机原理与嵌入式接口技术课件:Cortex-M3 基础_第2页
微机原理与嵌入式接口技术课件:Cortex-M3 基础_第3页
微机原理与嵌入式接口技术课件:Cortex-M3 基础_第4页
微机原理与嵌入式接口技术课件:Cortex-M3 基础_第5页
已阅读5页,还剩110页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Cortex-M3基础2.18位微处理器的功能结构2.2CM3处理器简介2.3CM3的寄存器2.4操作模式和特权级别2.5堆栈与堆栈指针2.6复位序列2.7CM3的存储器系统组习题2

本章要点

☆微处理器的一般结构与CM3的结构

☆CM3的寄存器组和特殊功能寄存器

☆堆栈操作与复位序列

☆CM3的存储器映射

☆位带操作

嵌入式CUP市场竞争激烈,各大半导体厂商提供了众多不同架构的CUP芯片,性能各有特点,应用上也是精彩纷呈。但随着技术的进步,用户的要求也变得越来越苛刻,一方面希望嵌入式CUP具有更低的成本与功耗,另一方面又希望它有更高的运算速度、更强大的实时能力和更多的功能模块。

2.18位微处理器的功能结构

微处理器是微型计算机的硬件核心,被称为中央处理器,它是采用大规模集成电路技术制成的半导体芯片,内部集成了计算机的主要部件——控制器、运算器和寄存器,还有一些增强功能部件,如MPU、Cache

等。

若按一次性处理数据的字长,可划分为4、8、16、32、64位微处理器,字长越长的微处理器,数据处理能力就越强,下面先介绍结构较为简单8位微处理器。图2.1是一个典型的8位微处理器的内部结构,它一般由算术逻辑运算单元、寄存器组和指令处理单元等几个部分组成。图2.18位微处理器功能结构图

1.算术逻辑运算单元(ArthmeticLogicUnit,ALU)

算术逻辑运算单元实际上就是计算机的运算器,负责进行各种运算。包括算术运算和逻辑运算,如加、减、增量(加1)、减量(减1)、比较、求反、求补,逻辑与、逻辑或、逻辑非、逻辑异或,以及移位、循环移位等运算和操作。

ALU的基本组成是一个加法器。这一加法器不仅可以实现加法运算,还能通过二进制补码形式将减法运算转变为加法运算,在此基础上采用移位操作实现乘除运算。

在ALU所进行的运算中,多数操作需要两个操作数,比如“加”和“逻辑与”运算。但是,也有些运算只要一个操作数,比如“增量”和“逻辑非”运算。对8位CUP来说,由累加器提供其中的一个操作数,另一个操作数通过暂存器来提供。运算后,运算结果被回送到累加器,运算中状态的变化和运算结果的数字特征则被记录在标志寄存器中。

2.寄存器组(RegisterSet)

寄存器是CUP内部的高速存储单元,不同的CUP配有不同数量、不同长度的寄存器。有些寄存器不面向用户,称为“透明”寄存器,对它们的工作,用户不需要了解;而有些寄存器则面向用户,供编程序用,这些寄存器在程序中频繁使用,被称为可编程寄存器。

从总线角度看,计算机中的信息分为数据、地址、控制三类,因此寄存器也可以分成这三类。

1)存放待处理数据的寄存器

累加器:一般CUP中至少有一个累加器,数据运算和加工处理大部分要使用累加器,一些CUP同外设的输入/输出也要经过累加器。

通用寄存器:在CUP中数量最多。它们既可以存放数据,又可以存放地址,使用频度非常高,是调度数据的主要手段。多数指令中通用寄存器一般没有特定的功能,但在某些指令中,一些通用寄存器被赋予了特定的功能,这与通用寄存器上下文有关。

2)存放地址码的寄存器

地址寄存器主要用来存放地址,用于存储器操作数的寻址操作,因而也称为地址指针或专用寄存器,如堆栈指针、指令指针等。地址寄存器的功能比较单一,在访问内存时,可以通过它形成各种寻址方式。

程序计数器:程序计数器用来指示现行指令的地址,是一个专用寄存器。

堆栈指针:堆栈指针是一个专用寄存器,它用来指示内存中堆栈栈顶的地址,每次堆栈压栈或出栈时按一定规则自动修改SP的值,保证SP始终指向栈顶。

3)存放控制与状态信息的寄存器

指令寄存器:在CUP中,IR专门用来存放指令,一直保存到指令译码完成为止。

标志寄存器:也称程序状态字寄存器,用来保存最近一次ALU操作结果的特征标志,后续指令通过测试这些特征标志,判断程序是否转移。

这些特征标志被称为标志位,各标志位的意义与具体的CUP有关。通常有以下几种标志位:

·符号标志位SF,表示运算结果是否为负数;

·零标志位ZF,表示运算结果是否为零;

·辅助进位标志位AF,也称为半进位标志位,表示运算时第3位与第4位之间是否有进位或借位;

·奇偶标志位PF,表示运算结果中1的数量是奇数还是偶数;

·进/借位标志位CF,表示运算是否产生了进位或借位;

·溢出标志位OF,表示有符号运算结果是否超出范围,产生溢出。

3.指令处理单元

指令处理单元是计算机的控制器,负责对指令进行译码和处理。它一般包括如下内容:

(1)

指令寄存器:用来暂时存放从存储器中取出来的指令。

(2)

指令译码逻辑:负责对指令进行译码,通过译码产生完成指令功能的各种操作命令。

(3)时序和控制逻辑:根据指令要求,经过译码产生的电平操作还要按一定的时序发出、接收各种信号,从而控制、协调整个系统完成所要求的操作。这些信号包括:一系列定时控制信号、CUP的状态和应答信号、外界的请求信号和联络信号等。

为了方便计算机在嵌入式领域的应用,把中央处理器的频率与规格作适当缩减,并将内存、计数器、USB、A/D及D/A转换、UART、中断、DMA等周边接口甚至LCD

驱动电路都整合在单一芯片上,形成用于嵌入式领域的芯片级计算机,称为微控制器。

2.2CM3处理器简介

Cortex-M3(简称CM3)作为ARM7的后继者,大刀阔斧地改革了设计架构,显著简化了编程和调试的复杂度,处理能力也更加强大。

2.2.1CM3处理器的结构

ARM核是作为复杂片上系统的一个处理单元来应用的,所以还必须提供一个ARM与其他片上宏单元通信的接口。为减少不必要的设计资源浪费,ARM公司定义了ARM总线规范,它是一组针对基于ARM核的、片上系统之间通信而设计的、标准的开放协议。图2.2定义了两种典型的AMBA总线。图2.2典型的AMBA总线

(1)AHB——先进高性能总线(AdvancedHigh-performaceBus),用于高性能系统模块的连接,支持突发数据传输和单个数据传输方式,代替了较老的ASB系统总线格式。

(2)APB——先进外设总线(AdvancedPeropheralBus),用于较低性能外设的简单连接,一般是接在AHB系统总线上的第二级总线。

如图2.3所示,CM3在中央处理器内核上还集成了先进的系统外设,如中断控制、内存保护以及系统调试和跟踪功能。这些外设可由芯片公司自由进行配置,使CM3处理器更贴近系统的需求。CM3内核和集成部件均经过专门设计,以满足使用内存最小、减少管脚数目和降低功耗的要求。图2.3CortexM3内核方框图

图2.4是一个STM32F103非互联型芯片的系统架构图,STM32主系统由四个驱动单元和四个被动单元构成。

四个驱动单元是:内核DCode总线、系统总线、通用DMA1、通用DMA2。

四个被动单元是:AHB到APB的桥,连接所有的APB设备;内部Flash闪存;内部SRAM,

静态随机存取存储器);FSMC可变静态存储控制器)。图2.4STM32系统架构图

1)ICode总线:该总线将CM3内核指令总线和闪存指令接口相连,完成指令的预取。

2)DCode总线:该总线将CM3内核的DCode总线与闪存存储器的数据接口相连接,

完成常量加载和调试访问。

3)系统总线:该总线连接CM3内核的系统总线到总线矩阵,总线矩阵协调内核和DMA间访问。

4)DMA总线:该总线将DMA的AHB主控接口与总线矩阵相连,总线矩阵协调CPU的DCode和DMA到sraM、闪存和外设的访问。

5)总线矩阵:总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。

6)AHB/APB桥:这两个桥在AHB和两个APB总线间提供同步连接,APB1操作速度限于36MHz,APB2操作速度为全速72MHz。

2.2.2CM3处理器的特点

具体来说,CM3处理器有如下特点。

1)运行速度与存储密度兼顾的32位处理器核

CM3是一个32位的处理器核,内部数据总线是32位的,寄存器是32位的,存储器接口也是32位的。

2)哈佛结构

CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行进行。这样一来数据访问不再占用指令总线,从而提升了性能。

3)高性能的译码器与ALU

CM3内核包含一个适用于传统Thumb和新型Thumb-2指令的译码器、一个支持硬件乘法和硬件除法的先进ALU、控制逻辑和用于连接处理器其他部件的接口。

4)分支预测的三级流水线技术

CM3系列处理器中每条指令分取指、译码、执行三个阶段,分别在不同的功能部件上依次独立完成。在如图1.6所示三级流水线下,虽然一条指令仍需3个时钟周期来完成,但通过多个部件并行执行,使得处理器的吞吐率约为每个周期一条指令,提高了流式指令的处理速度。

5)低成本与低功耗

针对敏感市场降低成本和功耗一直是高性能微控制器最大的问题之一。由于先进的制造工艺相当昂贵,因此只有缩小芯片的尺寸才有可能明显降低成本。

6)集成调试和跟踪功能

嵌入式系统通常不具备图形用户界面,软件调试成了一大难题。传统上使用线仿真器(ICE)插件单元实现,通过PC界面向系统提供窗口。

CM3处理器包括以下组件:

·FPB:实现硬件断点以及从代码空间到系统空间的修补访问。FPB有8个比较器。

·ITM:数据观察点和跟踪、调试功能部件。

·ITM:一个应用导向的跟踪源,支持应用事件跟踪和Printf类型的调试。

·ETM:支持指令跟踪的低成本跟踪宏单元。

·TPIU:用作来自ITM和ETM)如果存在)的CM3内核跟踪数据与片外跟踪端口分析仪之间的桥接。

·SW/JTAG-DP:CM3处理器可配置为具有一个适用于低管脚数封装设备的2管脚串行线调试调试端口SW-DP或传统的JTAG-DP调试端口的接口,或两者都有。

2.3CM3的寄存器组

如表2.2所示,Cortex-M3处理器拥有R0~R15

的寄存器组以及一些特殊功能寄存器。其中R13作为堆栈指针(

SP)。SP有两个,但在同一时刻只能有一个可以看到,这就是所谓的备份寄存器。特殊功能寄存器有预定义功能,必须通过专用的指令来访问。

2.3.1通用寄存器

R0~R12都是32位通用寄存器,用于数据操作。R0~R7也被称为低组寄存器,所有指令都能访问它们,复位后的初值不确定。R8~R12被称为高组寄存器,只有少量的16位Thumb指令能访问它们,32位的Thumb-2则不受限制,复位后的初值不确定。

2.3.2连接寄存器R14

R14是连接寄存器(LR)。当调用一个子程序时,由R14存储返回地址。与大多数其他处理器不同的是,ARM为了减少访问内存的次数)访问内存的操作往往需要3个以上指令周期),把返回地址直接存储在寄存器中。这样足以使很多只有1级子程序调用的代码,在返回时无需访问堆栈内存,从而提高了子程序调用的效率。如果多于1级,则需要把前一级的R14值压入堆栈。在ARM上编程时,应尽量只使用寄存器保存中间结果,迫不得已时才访问内存。

2.3.3程序计数器R15

R15

是程序计数器,在汇编代码中一般写作PC。CM3采用了三级流水线,因此指令分为三个阶段执行:取指、译码、执行。而R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令。一般来说,人们习惯性约定将正在执行的指令作为参考点,称之为当前第一条指令,因此PC总是指向第三条指令。当工作在ARM状态时,PC值=当前程序执行位置+8。

2.3.4特殊功能寄存器

CM3除了通用寄存器外,还在内核平台上搭载了若干特殊功能寄存器,包括程序状态字寄存器组、中断屏蔽寄存器组和控制寄存器,如表2.3所示。

1.程序状态寄存器(PSRs)

PSRs

在用户级编程时用于存储条件码,包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。

程序状态寄存器在其内部又被分为三个子状态寄存器:应用程序PSR(APSR)、中断号PSR(IPSR)和异常PSR(EPSR),如图2.5

和图2.6所示。

xPSR寄存器各位的含义如表2.4所示。

可以通过指令MRS读取PSR,也可以通过指令MSR修改APSR,但EPSR和IPSR为只读的,例如:

采用整体操作的例程如下:

2.控制寄存器(CONTEOL)

控制寄存器(CONTEOL)有两个作用,用于定义处理器特权级别和选择堆栈指针,如表2.5

所示。

ControL[0]:异常情况下,处理器总是处于特权模式,ControL[0]位总是为0。

ControL[1]:为0时,只使用MSP,此时用户程序和异常共享同一个堆栈,处理器复位后默认的也是该模式。

2.4操作模式和特权级别

CM3处理器支持两种处理器操作模式,还支持两级特权操作。这两种处理器操作模式是:处理者模式和线程模式。引入两个模式是用于区别普通应用程序和异常服务例程(包括中断服务例程)。

两种特权操作是:特权级和用户级操作。在硬件内核把代码按特权级和用户级分开对待,有利于使系统的架构更加安全和健壮,使得普通的用户程序代码不能意外地、甚至是恶意地执行涉及要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。

它们组合起来,可以有如表2.6所示的工作方式。

图2.7

表示了CM3各种操作模式的转换方法。图2.7合法的操作模式转换图

2.5堆栈与堆栈指针

2.5.1堆栈的基本概念堆栈是一种存储器的使用模型。它由一块连续的内存和一个栈顶指针SP组成,用于实现LIFO(LastInFirstOut,后进先出)的缓冲区。其最典型的应用,就是在数据处理前先保存寄存器的值,再在处理任务完成后从中恢复先前保存的这些值。它有PUSH(压栈)和POP(出栈)两种操作,如图2.8所示。图2.8堆栈内存的基本概念

2.5.2CM3的堆栈指针

在CM3中,R13是堆栈指针,指示了栈顶的位置。在CM3中拥有两个堆栈指针,即主堆栈指针(MSP)和进程堆栈指针,它们是备份寄存器,任一时刻只能使用其中的一个。当引用R13(即SP)时,引用的是当前正在使用的那一个,另一个必须用特殊的指令(MRS、MSR指令)来访问。

主堆栈指针(MSP)是复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程操作,包括中断服务例程。

进程堆栈指针(PSP)由用户应用程序代码使用。

堆栈指针的最低两位永远是0,这意味着堆栈总是4字节对齐的。事实上,R13的最低两位被硬线连接到0,并且总是读出0。

2.5.3CM3堆栈的实现与应用

CM3使用的是“向下生长的满栈”模型。向下生长意味着堆栈规模向较低的地址空间扩大,栈顶SP的值在减小。满栈则是指堆栈指针SP指向最后一个被压入堆栈的32位数值。在下一次压栈时,SP先自减4,再存入新的数值,如图2.9

所示。图2.9CM3堆栈的PUso实现方法

POP操作时,先从SP指针处读出栈顶的值,再把SP加4。执行POP指令后,该单元中的值保持不变,但已经失效,因为下次的PUSH操作将覆盖它的值,如图2.10所示。图2.10CM3堆栈的PoP实现方法

CM3的堆栈分为两个:主堆栈和进程堆栈,由CONTROL[1]决定选择哪一个。

在进入异常服务例程时,CM3会自动把一些寄存器压栈,这里使用的是发生本次异常的瞬间正在使用的SP指针(MSP或者PSP)。离开异常服务例程后,只要ESR

没有更改过CONTROL[1],就依然使用发生本次异常的瞬间正在使用的SP指针来执行出栈操作。

当CONTROL[1]=0时,如图2.11所示,只使用MSP,此时用户程序和异常操作共享同一个堆栈。这也是复位后的缺省使用方式。图2.11ControL[1]=0时的堆栈使用情况

当CONTROL[1]=1时,如图2.12所示,线程模式将不再使用MSP,而改用PSP(Han⁃dler模式永远使用MSP)。因为,在使用OS的环境下,OS内核仅仅在Handler模式下执行,用户应用程序仅在用户模式下执行,以防止用户程序的堆栈错误破坏OS使用的堆栈。图2.12CONTROL[1]=1时的堆栈切换情况

在这种情况下,应该注意的是,自动压栈和出栈机制将会使用PSP,不过异常处理中的栈操作会使用MSP。

也可以直接对PSP和MSP进行读/写操作,而无需考虑R13代表的含义。假设当前处于特权等级,可以这样访问MSP和PSP的值:

一般来说,由于堆栈可能会用于存储局部变量,因此不建议在C函数中改变当前选定SP的值。要用汇编访问SP,可以使用MSR和MRS指令。

通过MSR指令读出PSP的值后,就可以读出用户应用程序栈中的数据。下面的程序展现了在子程序调用过程中是如何使用堆栈的。

2.6复位序列

如图2.13所示,CUP退出复位后,CM3处理器会从存储器中读取下列两个32位整数值:·从地址0x00000000处取出R13(MSP)的初始值。·从地址0x00000004处取出PC的初始值。这个值是复位向量,即程序执行的起始地址,LSB

必须是1,以表明是Thumb状态。图2.13复位序列

如图2.14所示,复位向量为0x101,而启动代码是从0x100地址开始的。取出复位向量后,CM3可以从复位向量地址处执行程序,并且开始正常操作。SP需要初始化,这是因为复位后就可能会发生一些异常,这些异常可能是需要栈存储的。图2.14初始MSP及PC初始化的一个范例

2.7CM3的存储器系统

Cortex-M3的存储器系统与传统ARM构架有所不同。

1)CM3的存储器映射是预定义了的,并且还规定好了哪个位置使用哪条总线,这个特性使得在访问不同的设备时,处理器可以对这些访问进行优化。

2)CM3的存储器系统支持“位带”操作,可以实现对某些特殊存储器区域或外设中的位数据进行操作。

3)CM3存储器系统还支持非对齐访问和互斥访问,这个特性也是v7-M架构的一部分。

4)CM3的存储器系统支持小端配置和大端配置。

5)比较复杂的应用可能需要更多的存储系统功能,为此CM3提供了一个可选的MPU,而且在需要的情况下也可以使用外部的Cache。

2.7.1大于8位的数据的存储

在计算机系统中,存储器是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8位。但是在实际应用中除了8位的Char型之外,还有16位的short型、32位的Long型(要看具体的编译器),按什么样的顺序安排这些大于8位的数据,就出现了大端、小端存储模式以及对齐、非对齐的问题。

1.大端和小端存储模式

大端和小端存储模式定义如下:

1)小端存储就是低位字节存放在内存的低地址端,高位字节存放在内存的高地址端。

2)大端存储就是高位字节存放在内存的低地址端,低位字节存放在内存的高地址端。

例如,地址0x00处存放32位数据0x12345678,大、小端模式下的存放情况如图2.15所示。图2.15大端和小端存储模式对比

2.非对齐存取

现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是按顺序一个接一个地排列,这就是对齐,图2.16)a)表现了数据的对齐存储方式。

CM3同样可以实现“字”以及“半字”对齐的寻址方式,但它还可以使用非对齐存取方式。这赋予了编译链接器在将程序数据编译链接时的最大自由。如图2.16)b)所示,非对齐存取方式可以大大节约存储空间。图2.16对齐与非对齐存储方式对比

事实上,CM3在内部是把非对齐的访问自动转换成若干个对齐的访问,这种转换由处理器总线单元来完成,转换过程对程序员是透明的——编程时不必操心。但是,因为它通过若干个对齐的访问来实现一个非对齐的访问,会需要更多的总线周期。虽然CM3提供了非对齐的访问方法,但是节省内存有很多方法,通过压缩数据的地址,破坏对齐性不是一个好的选择。

2.7.2CM3存储器映射

尽管CM3处理器拥有多种内部总线,但其存储映射方案却是固定和标准化的,经过映射,其内部仍然是一个线性的4GB

地址空间。这种标准化的结构定义有以下好处:

1)通过预定义的映射关系,也对访问速度进行了优化,而且片上系统的设计更加集成化。

2)只有一个固定的存储器映射,极大地方便了软件在各种CM3处理器间的移植。

1.CM3存储器的基本组织结构

与其他ARM架构不同,CM3内核分区如图2.17

所示,预先定义好了存储器的映射和用途。图2.17CM3存储器组织

2.内核外设区映射

0xFFFF_FFFF~0xe000_000的512MB存储空间是内核外设区,如图2.18所示,映射CM3内核的外设,包括中断控制器NVIC以及各种调试组件等。这些外设均使用固定的地址,通过固定基础外设地址,至少在内核水平上为应用程序的移植扫清了障碍。图2.18CM3内核外设区

内核外设区包括:ROM表、私有外设总线、嵌入式跟踪单元、跟踪端口接口单元、闪存地址重载及断点单元、数据观察点单元、仪器化跟踪宏单元。

3.片外的外设和存储器映射

当MCU内部资源不够用时,可在0x6000_0000~0x9FFF_FFFF区域扩展外部存储器;在0xa000_0000~0xDFFF_FFFF区域扩展外部设备。

有些CUP不支持外部扩展,如图2.19

中的虚框部分,根据CM3的存储器组织,这部分是片外外设区和片外存储区。由此可见,此MCU并不能扩展片外外设和存储器。

4.片上外设映射

如图2.19

所示,通过将片上外设的寄存器映射至0x4000_0000~0x5FFF_FFFF的外设区,就可以简单地以访问内存的方式访问这些外设寄存器,从而控制外设的工作。

5.片上存储器映射与启动方式

STM32不同的CUP其片上存储器容量虽有所不同,但映射关系却是大同小异,下面以配备256

KBFlash存储器和64KBSRAM存储器的STM32F107为例进行讲述,其片上存储器映射如图2.19

的下半部分所示。

图2.19CM3存储器映像

如表2.7

所示,改变STM32的两个外部引脚BOOT0和BOOT1的电平,STM32存储空间的起始地址会对齐到不同的内存空间上,这样就可以选择在用户Flash、内部SRAM或者系统存储区上运行代码,即用户可以通过BOOT0和BOOT1来选择三种启动方式。

2.7.3位带操作

位是计算机中最小的存储单位,可以表示0和1两种状态,例如一个开关的通断、一只LED

指示灯的亮灭这样的开关量正好用一位来表示。当然也可以用一个字节来表示一位,不过这样会比较浪费存储空间。为了节约存储空间,人们会使用一个字节来表示多个开关量。在开关量的控制中,需要单独对指定的位进行操作,而其他的位保不变。在操作系统中,位操作还应具备不可分割的原子性。

在实际应用中,有以下三种方法实现位开关量的存储及其操作运算。

1.读—改—写三步操作的字节逻辑运算

通过执行逻辑与、逻辑或等指令,修改这些存放开关量的字节中的某些位。如图2.20所示,需要先从内存中将其读出,然后修改,最后再写回,也就是要经历读—改—写三步才能完成位操作。这种传统的方式不需要特殊的硬件设计就能完成位操作,但是会花费较长的时间和产生较多的代码,在硬件I/O密集型的底层程序中缺点比较明显。图2.20读—改—写的位操作

2.布尔处理机

在嵌入式应用中,有大量的开关量需要处理,位操作运算是比较频繁的。为了克服上述传统方式的限制,有必要引入一种专用的位操作指令,或者一个完整的布尔过程。

在CM3系列处理器中采用位带技术既可以实现对设备区和内存区的位操作,又不需要任何特殊的指令,保持了CM3内核的小巧性。

3.CM3的位带机制

如图2.21和图2.22所示,在CM3中,有两个区实现了位带操作。其中一个是SRAM区的最低1MB范围,第二个则是片内外设区的最低1MB范围。图2.21位带区与位带别名区的膨胀对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论