找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2839|回复: 0
打印 上一主题 下一主题
收起左侧

初识ARM cotex—A9

[复制链接]
跳转到指定楼层
楼主
ID:130440 发表于 2016-7-14 17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1) 电阻的作用

[上拉电阻]

       接在电源和参考点之间的电阻
       (1) 作用:  使参考点的电平默认为高电平

[下拉电阻]
       接在地和参考点之间的电阻
       (1) 作用:  使参考点的电平默认为低电平


2) 局部性原理

程序执行时,访问的数据和执行的指令往往在一个局部范围内。

3)bus
       可以接多个设备的一组线叫总线
      
       (1) CPU总线
           CPU(ALU和控制器)连接内存和IO设备的一组线, 用于传输: 地址、数据和控制
           地址线
           数据线
           控制线
           
       (2) 单总线(ARM)
           内存和IO设备接在相同cpu总线上,表现为:
           1. 内存和IO设备在同一地址空间(0 - 4G)
           2. 访问内存和IO设备的方法一样(指令相同)
           
       (3) 多总线(x86)
           内存和IO设备接在不同组cpu总线上,表现为:
           1. 内存和IO设备在不在同一地址空间(0 - 4G)
           2. 访问内存和IO设备的方法一样(不同指令)

4)RISC & CISC

RISC (精简指令集): 可以不用硬件实现的功能,就用软件实现。

CISC(复杂指令集):硬件可以实现的功能,都由硬件实现。

5)ARM处理器八种工作模式

(1).正常运行

user                       运行应用程序

system                   运行内核中的进程上下文

SVC  运行操作系统的管理代码

(2)中断运行

IRQ(中断请求)  运行普通的设备中断

FIQ(快速中断请求)用于快速或安全设备的中断

(3)异常处理

Abort   读取指令或数据储存失败时,运行处理程序的模式

Undefined  Instruction      解析指令时,发现指令非法,运行处理程序的模式

(4)Monitor

Coetex-A  安全模式

6)权限

user非特权模式

其它 特权模式

7)寄存器

概念:  软硬件接口,也是存储单元。CPU内核寄存器,也是存储单元,CPU利用寄存器的名字中的编号来访问寄存器。

功能:    R0——R15通用寄存器

R0——R7  非备份寄存器

R8——R14  备份寄存器

R13  (SP) 栈指针寄存器

R14(LR)    保存返回地址寄存器

R15(PC)  Program  Count  (正在读取的指令的地址)

CPSR  状态寄存器

SPSR   备份状态寄存器

8)    CPSR        

状态标识位(ALU运算时产生)
            (1)N  

计算的结果是否为负数(保存下来的结果的最高位)
                  1               负数
                  0               正数
                  
                  例: 2 - 3 = -1         N = 1
                      0000 0000 0000 0000 0000 0000 0000 0010
                     +1111 1111 1111 1111 1111 1111 1111 1101
                     -----------------------------------------
                      1
                     
                      2 - 1 = 1          N = 0
                      0000 0000 0000 0000 0000 0000 0000 0010
                     +1111 1111 1111 1111 1111 1111 1111 1111
                     -----------------------------------------
                     10
                  
                  int x, y
                  ....
                  if (x > y)
                     
             (2) Z  

计算的结果是否为0(保存下来的结果)
                  1                为0
                  0                为非0
                  例: 2 - 2 = 0          Z = 1
                      0000 0000 0000 0000 0000 0000 0000 0010
                     +1111 1111 1111 1111 1111 1111 1111 1110
                     -----------------------------------------
                     10
                  
                  int x, y
                  ...
                  if (x == y)
                  
             (3) C  

加法运算中,是否有进位

                  1           进位
                  0           不进位
                  
                  减法运算中,是否有借位
                  1           没有借位
                  0           有借位
                  
                  例: 2 - 3 = -1         C = 0
                  
                      0000 0000 0000 0000 0000 0000 0000 0010
                     +1111 1111 1111 1111 1111 1111 1111 1101
                     -----------------------------------------
                      1
                     
                      2 - 3 = -1         C = 0
                      0000 0000 0000 0000 0000 0000 0000 0010
                     -0000 0000 0000 0000 0000 0000 0000 0011
                     -----------------------------------------
                     
                 unsigned int x, y;
                 ...
                 if (x > y)      
                     
              (4)V  

计算的结果是否超出补码的范围()
                 1           超出补码的范围
                 0           没有超出补码的范围
                 例: 0x7fffffff - (-1) = -2^31   V = 1
                     0 0111 1111 1111 1111 1111 1111 1111 1111
                    +0 0000 0000 0000 0000 0000 0000 0000 0001
                    ------------------------------------------
                     0 1                                     0
                 
                     -2^31 - 1                   V = 1
                     
                     -2^31 +(-2^31)              V = 1
                     
                     -1 + -1                     V = 0
                     1 1111 1111 1111 1111 1111 1111 1111 1111
                     1 1111 1111 1111 1111 1111 1111 1111 1111
                     -----------------------------------------
                     1 1                                    10
                     
                 总结:
                 如果运算的结果为负数(保存), 并且V = 1, 说明原本(实际)的结果为正数
                                 正数或0         V = 1,                       负数
                                 
           I位      屏蔽IRQ中断
           F位      屏蔽FIQ中断
           T位      1             表示正在运行thumb指令,处于thumb状态
                    0                         ARM            ARM
           模式位   0 - 4bit

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表