微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM指令学习笔记

ARM指令学习笔记

时间:11-11 来源:互联网 点击:

但是为什么是减去8呢?这因为ARM7是三级流水线。

那什么三级流水线是什么?

PC代表程序计数器,流水线使用三个阶段,因此指令分为三个阶段执行:1.取指(从存储器装载一条指令);2.译码(识别将要被执行的指令);3.执行(处理指令并将结果写回寄存器)。即执行时取指已经提前两个字了,即8个字节。

6.什么是软中断?

软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和"信号"有些类似,同时,软中断又是和硬中断相对应的,"硬中断是外部设备对CPU的中断","软中断通常是硬中断服务程序对内核的中断","信号则是由内核(或其他进程)对某个进程的中断"(《Linux内核源代码情景分析》第三章)。  软中断的一种典型应用就是所谓的"下半部"(bottomhalf),它的得名来自于将硬件中断处理分离成"上半部"和"下半部"两个阶段的机制:上半部在屏蔽中断的上下文中运行,用于完成关键性的处理动作;而下半部则相对来说并不是非常紧急的,通常还是比较耗时的,因此由系统自行安排运行时机,不在中断服务上下文中执行。bottomhalf的应用也是激励内核发展出目前的软中断机制的原因。  软中断是linux系统原“底半处理”的升级,在原有的基础上发展的新的处理方式,以适应多cpu、多线程的软中断处理。  一般来说,软中断是由内核机制的触发事件引起的(例如进程运行超时),但是不可忽视有大量的软中断也是由于和硬件有关的中断引起的,例如当打印机端口产生一个硬件中断时,会通知和硬件相关的硬中断,硬中断就会产生一个软中断并送到操作系统内核里,这样内核就会根据这个软中断唤醒睡眠在打印机任务队列中的处理进程。  在网络编程中,软中断用来引发协议层代码的执行

7.关于程序状态的切换

程序不能通过修改直接修改CPSR中的T控制位直接将程序状态切换到Thumb状态,必须通过BX等指令完成程序状态的切换

8.对于LDMIA指令,Rn的最终值是加载的值,而不是增加后的地址

上一篇:关于LPC2103外部中断
下一篇:第7课:DMA

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top