首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM基本知识内存

ARM基本知识内存

存储器大/小端
RM存储字数据采用两种方法
大端模式(Big endian
字数据的高字节存储在低地址中
字数据的低字节存放在高地址中
小端模式(Little endian
低地址中存放的是字数据的低字节
高地址中存放的是字数据的高字节
大端和小端都支持,默认是小端模式
ARM的寻址方式(PPT3章 第6页)
ARM的寻址方式分为数据处理指令寻址方式和内存访问指令寻址方式。
数据处理指令寻址方式
Operand2(第二个操作数)的寻址方式
立即数寻址方式
寄存器寻址方式
寄存器移位寻址方式
内存访问指令寻址方式
字及无符号字节的Load/Store指令的寻址方式;
杂类Load/Store指令的寻址方式;
批量Load/Store指令的寻址方式;
堆栈操作寻址方式。




Load/Store指令是对内存进行存储/加载数据操作的指令,根据访问的数据格式的不同,这列指令的寻址分为字、无符号字节的Load/Store指令寻址和半字、有符号字节Load/Store指令寻址两大类。


汇编指令语法格式:
LDR {<cond>}{B}{T}<Rd>,<addressing_mode>
STR {<cond>}{B}{T}<Rd>,<addressing_mode>
1)偏移量为立即数
前变址不回写
[<Rn>#+/-<immed_offset>]
前变址回写
[<Rn>#+/-<immed_offset>]
后变址回写
[<Rn>]#+/-<immed_offset>

(2)偏移量为寄存器的值
前变址不回写
[<Rn>+/-<Rm>]
前变址回写
[<Rn>+/-<Rm>]
后变址回写
[<Rn>]+/-<Rm>

3)偏移量通过寄存器移位获得
前变址不回写
[<Rn>+/-<Rm><shift>#shift_amount ]
前变址回写
[<Rn>+/-<Rm><shift>#shift_amount]
后变址回写
[<Rn>]+/-<Rm><shift>#shift_amount



半字、有符号字节Load/Store指令寻址(也叫杂类Load/Store指令的寻址方式)
这类指令可用来加载有符号字节、加载有符号半字、加载/存储无符号半字。

加载有符号字节到寄存器:
LDR {<cond>}SB <Rd>,<addressing_mode>
加载有符号半字到寄存器:
LDR {<cond>}SH <Rd>,<addressing_mode>
加载无符号半字到寄存器:
LDR {<cond>}H  <Rd>,<addressing_mode>
存储无符号半字到内存:
STR {<cond>}H  <Rd>,<addressing_mode>

(1)偏移量为立即数
前变址不回写
[<Rn>#+/-<immed_offset8>]
前变址回写
[<Rn>#+/-<immed_offset8>]
后变址回写
[<Rn>]#+/-<immed_offset8>


2)偏移量为寄存器的值
前变址不回写
[<Rn>+/-<Rm>]
前变址回写
[<Rn>+/-< Rm >]
后变址回写
[<Rn>]+/-< Rm >

有关例题,直接看ppt3章和第4

PLL(锁相环)
PLL是一个相位误差控制系统。它比较输入信号和压控振荡器输出信号之间的相位差,从而产生误差控制电压来调整压控振荡器的频率,以达到与输出信号同频。
锁相环输出频率
     MPLL =m×Fin/p×2S
m = M8 MM寄存器的值
p = P2PP寄存器的值
SS寄存器的值

S3C24104种电源管理模式:
正常模式:锁相环工作,为CPU和所有片内外设提供时钟

慢时钟模式:锁相环不工作
            CPU等直接使用原始时钟、或原始时钟的分频工作,此模式工作时钟频率低而
            使功耗低,并且锁相环不工作也使功耗降低

空闲模式:停止为CPU提供时钟,CPU不工作(其外设均工作)
          退出方法:
           任何中断请求可唤醒CPU工作,退出空闲模式

掉电模式:时钟模块断电,除了唤醒电路之外所有部分均不供电
          系统需分成两部分供电。此模式功耗最低
          退出方法:用中断唤醒必须设置外中断
          1)外部中断EINT0---15
          2)实时钟报警中断








S3C2410X串行通信(UART)单元
UART有三个独立的异步串行I/O端口:UART0UART1UART2,每个串口都可以在中断和DMA两种模式下进行收发。UART支持的最高波特率达230.4kbps
3UART都有遵从1.0规范的红外传输功能,UART0UART1有完整的握手信号,可以连接MODEM
每个UART 包含:波特率发生器、接收器、发送器和控制单元。波特率发生器以PCLKUCLK为时钟源。发送器和接收器各包含116字节的FIFO寄存器和移位寄存器。
当发送数据的时候,数据先写到FIFO 然后拷贝到发送移位寄存器,然后从数据输出端口(TxDn)依次被移位输出。被接收的数据也同样从接收端口(RxDn)移位输入到移位寄存器,然后拷贝到FIFO中。
波特率由一个专用的UART 波特率分频寄存器(UBRDIVn)控制。计算公式如下:
UBRDIVn = (int)(UCLK/(波特率×16) ) 1
UBRDIVn = (int)(PCLK/(波特率× 16) ) 1
时钟选用UCLK还是PCLKUART控制寄存器UCONn[10]的状态决定。
UCONn[10] = 0,选用PCLK
UCONn[10] = 1,选用UCLK
UBRDIVn的值必须在1~(2161)之间

例子:若波特率为115200bps,时钟源频率PCLK40MHz,除数UBRDIVn应如何计算?
解:UBRDIVn
=( int) (40000000/(115200×16))-1
=( int)(21.7)-1
=20
返回列表