ARM 存储器
- 格式:pptx
- 大小:2.08 MB
- 文档页数:11


1特性
•融合了ARM920T™ ARM® Thumb®处理器
–工作于180 MHz时性能高达200 MIPS,存储器管理单元
–16-K字节的数据缓存,16-K字节的指令缓存,写缓冲器
–含有调试信道的内部仿真器
–中等规模的嵌入式宏单元结构(仅针对256 BGA封装)•低功耗:VDDCORE电流为30.4 mA待机模式电流为3.1 mA•附加的嵌入式存储器
–SRAM为16K;ROM为128K•外部总线接口(EBI)
–支持SDRAM,静态存储器, Burst Flash,无缝连接的CompactFlash®,
SmartMedia™及NAND Flash•提高性能而使用的系统外设:
–增强的时钟发生器与电源管理控制器
–两个有双PLL的片上振荡器
–低速的时钟操作模式与软件功耗优化能力
–四个可编程的外部时钟信号
–包括周期性中断、看门狗及第二计数器的系统定时器
–有报警中断的实时时钟
–调试单元、两线UART并支持调试信道
–有8个优先级的高级中断控制器,独立的可屏蔽中断源,伪中断保护
–7个外部中断源及1个快速中断源
–有122个可编程I/O口线的四个32位PIO控制器,各线均有输入变化中断及开漏能力
–20通道的外设数据控制器(DMA)•10/100 Base-T型以太网卡接口
–独立的媒体接口(MII)或简化的独立媒体接口(RMII)
–对于接收与发送有集成的28字节FIFO及专用的DMA通道•USB 2.0全速(12 M比特/秒)主机双端口
–双片上收发器(208引脚PQFP封装中仅为一个)
–集成的FIFO及专用的DMA通道•USB 2.0全速(12 M比特/秒)器件端口
–片上收发器, 2-K字节可配置的集成FIFO•多媒体卡接口(MCI)
–自动协议控制及快速自动数据传输
–与MMC及SD存储器卡兼容,支持两个SD存储器•3个同步串行控制器(SSC)
–每个接收器与发送器有独立的时钟及帧同步信号
–支持I2S模拟接口,时分复用
ARM的存储器访问指令
实验目的
熟悉使用ADS开发环境。
通过实验掌握ARM存储器访问指令的使用方法。
实验设备
硬件:PC机。
软件:ADS集成开发环境,Windows 2000/XP/2003。
实验内容
熟悉开发环境,并使用LDR/STR指令等访问寄存器或存储单元。。
实验原理
ARM处理器是Load/Store型的,即它对数据的操作是通过将数据从存储器加载到片内寄存器中进行处理,处理完成后的结果经过寄存器存回到存储器中,以加快对片外存储器进行数据处理的执行速度.
存储器访问指令分为单寄存器操作指令,多寄存器操作指令和寄存器和存储器交换指令。
LDR指令用于从内存中读取单一字或字节数据存入寄存器中,STR指令用于将寄存器中的单一字或字节数据保存到内存。
LDR{cond}{T} Rd, ;将指定地址上的字数据读入Rd
STR{cond}{T} Rd, ;将Rd中的字数据存入指定地址
LDR{cond}B{T} Rd, ;将指定地址上的字节数据读入Rd
STR{cond}B{T} Rd, ;将Rd中的字节数据存入指定地址
其中,T为可选后缀。若指令有T,那么即使处理器是在特权模式下,存储系统也将访问看成是在用户模式下进行的。T在用户模式下无效,不能与前索引偏移一起使用T。
LDR/STR指令寻址非常灵活,它由两部分组成,其中一部分为一个基址寄存器,可以为任一个通用寄存器;另一部分为一个地址偏移量。地址偏移量有以下3种格式:
立即数。立即数可以是一个无符号的数值。这个数据可以加到基址寄存器,也可以从基址寄存器中减去这个数值。
如:LDR R1,[R0,#0x12]
寄存器。寄存器中的数值可以加到基址寄存器,也可以从基址寄存器中减去这个数值。
如:LDR R1,[R0,R2]
寄存器及移位常数。寄存器移位后的值可以加到基址寄存器,也可以从基址寄存器中减去这个数值。
1.
产品特性
◼内核
—32位ARM®Cortex®-M0+
—最高48MHz工作频率
◼存储器
—最大64Kbytesflash存储器
—最大8KbytesSRAM
◼时钟系统
—内部4/8/16/22.12/24MHzRC振荡器(HSI)
—内部32.768KHzRC振荡器(LSI)
—4~32MHz晶体振荡器(HSE)
—32.768KHz低速晶体振荡器(LSE)
—PLL(支持对HSI或者HSE的2倍频)
◼电源管理和复位
—工作电压:1.7V~5.5V
—低功耗模式:Sleep和Stop
—上电/掉电复位(POR/PDR)
—掉电检测复位(BOR)
—可编程的电压检测(PVD)
◼通用输入输出(I/O)
—多达30个I/O,均可作为外部中断
—驱动电流8mA
—4个GPIO支持超强灌电流,可配置为
80mA/60mA/40mA/20mA
◼3通道DMA控制器
◼1x12-bitADC
—支持最多10个外部输入通道PY32F030系列
32位ARM®Cortex®-M0+微控制器
数据手册
—输入电压转换范围:0~VCC
◼定时器
—1个16bit高级控制定时器(TIM1)
—4个通用的16位定时器
(TIM3/TIM14/TIM16/TIM17)
—1个低功耗定时器(LPTIM),支持从stop模式唤醒
—1个独立看门狗定时器(IWDT)
—1个窗口看门狗定时器(WWDT)
—1个SysTicktimer
—1个IRTIM
◼RTC
◼通讯接口
—2个串行外设接口(SPI)
—2个通用同步/异步收发器(USART),支持自动波
特率检测
—1个I2C接口,支持标准模式(100kHz)、快速模
式(400kHz),支持7位寻址模式
◼支持4位7段共阴极LED数码管
—可循环扫描1位、2位、3位、4位数字
◼硬件CRC-32模块
◼2个比较器
◼唯一UID
◼串行单线调试(SWD)
◼工作温度:-40~85℃
◼封装LQFP32,QFN32,TSSOP20,QFN20咨询电话:*************、159****9508PY32F030DatasheetRev1.3
ARM中常⽤的汇编指令
1 处理器内部数据传输指令
MSR & MRS
⽤于在状态寄存器和通⽤寄存器之间传送数据
MRS: 状态寄存器到通⽤寄存器的传送指令。({R0-R12} <== CPSR,SPSR)
MSR: 通⽤寄存器到状态寄存器的传送指令。
MRS:(CPSR,SPSR==>{R0-R12})
MOV
MOV 指令⽤于将数据从⼀个寄存器拷贝到另外⼀个寄存器,或者将⼀个⽴即数传递到寄
存器⾥⾯,使⽤⽰例如下:
2 存储器访问指令
ARM 不能直接访问存储器,⽐如 RAM 中的数据,⼀般先将要配置的值写⼊到 Rx(x=0~12)寄存器中,然后借助存储器访问指令将 Rx 中
的数据写⼊到寄存器中。
指令描述
LDR Rd, [Rn , #offset]从存储器 Rn+offset 的位置读取数据存放到 Rd 中
STR Rd, [Rn, #offset]将 Rd 中的数据写⼊到存储器中的 Rn+offset 位置
LDR 指令
LDR 主要⽤于从存储加载数据到寄存器 Rx 中, LDR 也可以将⼀个⽴即数加载到寄存器 Rx中, LDR 加载⽴即数的时候要使⽤“=”,⽽
不是“#”。在嵌⼊式开发中, LDR 最常⽤的就是读取 CPU 的寄存器值。
上述代码就是读取寄存器中的值,读取到的寄存器值保存在 R1 寄存器中,
上⾯代码中 offset 是 0,也就是没有⽤到 offset。
STR 指令
LDR 是从存储器读取数据, STR 就是将数据写⼊到存储器中
LDR 和 STR 都是按照字进⾏读取和写⼊的,也就是操作的 32 位数据,如果要按照字节、半字进⾏操作的话可以在指令“LDR”后⾯加上
B 或 H,⽐如按字节操作的指令就是 LDRB 和
STRB,按半字操作的指令就是 LDRH 和 STRH。MRS R0, CPSR @ 将特殊寄存器 CPSR ⾥⾯的数据传递给 R0,即R0=CPSR1MSR CPSR, R0 @ 将 R0 中的数据复制到 CPSR 中,即 CPSR=R01MOV R0, R1 @ 将寄存器 R1 中的数据传递给 R0,即 R0=R1