我们从2011年坚守至今,只想做存粹的技术论坛,记录你的技术足迹,有空就回来看看。  由于网站在外面,点击附件后可能要20秒才弹出下载,请耐心等待,勿重复点击

 找回密码
 立即注册
搜索
查看: 1193|回复: 4

[技术文章] ARM 学习 与 使用

[复制链接]

该用户从未签到

112

主题

28

回帖

0

积分

二级逆天

积分
0

终身成就奖特殊贡献奖

发表于 2020-4-19 23:39:44 | 显示全部楼层 |阅读模式
1.ARM:
Advanced RISC Machine 高级精简指令集计算机
2.RISC: Reduce Instruction set Computer 精简指令集,周期执行等长,固定指令长度3.哈佛与冯诺依谩的区别:     CPU在一个周期内能否同时操作数据和指令instruction cache 和data cache分开为哈佛结构,没有分开为冯诺依谩结构    Note: ARM7三级流水线冯诺依谩结构 ARM9五级流水线哈佛结构 4.ARM特点: 低功耗、移动手持设备 5.编程模型: ARM 32位架构指的是数据总线<---->字 6.工作模式: 7种工作模式            usr 非特权模式|------------------|空间共用            system  系统模式|FIQ 快速中断模式|IRQ 外部中断模式|abort 异常模式 |异常模式undef 未定义模式 |supervisor 管理模式 |7.寄存器: R13:SP栈指针。R14:LR 链接返回。R15:PC 程序计数器 8.ARM有37个32位长的寄存器  1个 R15 PC(Program counter)1个  CPSR(Current program status register)5个  SPSR(saved program status register)30个通用寄存器R0-R12:五种模式公有 除FIQ(usr 和system算一种)13个|FIQ:私有寄存器R8-R12             5个 |30个通用寄存器R13:R14:六种模式都是私有的           2*6=12个|PC :公有 1个状态寄存器:CPSR 公有1个SPSR 私有5个(usr没有)Note:(Crotex A  中monitor又多3个,一共是40个) 9.CPSR 当前程序状态寄存器 current program status register可以在任何处理器模式下被访问        1)ALU (atithmetic logic unit,算术逻辑单元)状态标志的备份2)当前处理器的模式3)中断全能标志4)设置处理器的状态(只有在4T架构) 10.CPSR复位后 进入supervisor模式,ARM状态11.ARM状态32位4字节对齐,特点最后两位无效为0.PC的bit[1:0]=0 12.当异常产生时:         1)系统会拷贝CPSR到SPSR,设置CPSR状态2)返回由程序员恢复SPSR-->CPSR13.ARMv4所有指令都是条件执行。ARMv5有一条BX非条件执行14.Thumb代码比ARM代码的优势     1)代码密码是ARM的65%2)方便窄内存操作15.DMIPS: 一秒种执行的速度.CPI:指令执行的百分率周期/指令16.指令流水线结论:1)Execute Address=PC-82)IRQ的lr=PC-4.  BL、undef:lr=PC3)LDR互锁条件:LDR的目的地址在下一周期的源地址出现LDM(多内存操作)的条件:最后一个寄存器在一个周期作为源地址使用17.ARM9E: E支持DSP。ARM9TDMI:支持调试,IDE18.在流水线的第二阶段 译码decode读寄存器----------------------------------------------------------------------------------测试:1.说出ARM可以工作的模式名字答:7种:usr 用户模式system  系统模式FIQ 快速中断模式IRQ 外部中断模式Abort 异常模式undef 未定义模式svc 管理模式2.ARM核有多少个寄存器答:37个32位的寄存器3.什么寄存器用于存储PC和LR寄存器  答:PC:R15。LR:P144.R13通常用来存储什么  答:栈指针5.哪种模式使用的寄存器最少  答:usr6.在Thumb指令中,哪些处理器处于Low group  答:R0-R77.CPSR的哪一位反映了处理器的状态  答:T8.所有Thumb指令采取什么对齐方式  答:16位2字节对齐9.ARM有哪几个异常类型 答:7个Reset   复位异常   0x00Undefined instruction 未定义异常 0x04Software interrupt 软中断  0x08Prefetch Abort  预取指异常 0x0cData Abort  数据异常 0x10IRQ   外部中断异常 0x18FIQ   快速中断异常 0x1c10.为什么FIQ的服务程序地址要位于0x1c 答:因为0x1c后面可以直接给异常处理函数,而不需跳转,FIQ还有额外的5个私有寄存器,不需对齐进行保护(中断处理时,必须保护期使用的非私有寄存器)从而提高执行速度如果在0x1c前面的话则只有四个字节只能跳转执行异常函数11.在复位后,ARM处理处于何种模式、何种状态  答:处理ARM状态,svc模式12.哪些ARM指令可以有条件的执行  答:在ARMv4架构下所有的指令都是可以有条件执行,但是在ARMv5架构下有一条指令BX不能有条件执行,是非条件执行13.Thumb代码与ARM代码比较的两在优势 答:优化代码密码、提高窄内存操作性能、是ARM指令集的一个功能子集14.AMBA代表是什么  答:advanced mircontrol bus architecture 高级微控制总线体系结构AHB:高速总线。APB:低速总线
回复

使用道具 举报

该用户从未签到

1

主题

243

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2020-4-20 07:30:51 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

3

主题

945

回帖

0

积分

二级逆天

积分
0

终身成就奖特殊贡献奖

发表于 2020-4-20 08:58:03 | 显示全部楼层
回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 39 天

    [LV.5]常住居民I

    2

    主题

    8271

    回帖

    9590

    积分

    二级逆天

    积分
    9590

    社区居民终身成就奖特殊贡献奖原创先锋奖

    QQ
    发表于 2020-5-11 08:53:31 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    316

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖

    发表于 2020-5-11 08:58:06 | 显示全部楼层
    谢谢分享,学习了!!
    回复

    使用道具 举报

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

    本版积分规则

    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表