weiqi7777

AArch32中thumb指令的IT block

ITblock是thumb指令集中引出来的东西,用来解决thumb指令不能条件执行的缺点。可以通过IT指令,给后续的1到4条指令,决定其执行条件。ITblock的信息,存放在PSTATE中,在thumb指令集中,也就是存在CPSR中。存放在CPSR的IT域。IT指令的指令编码如下:其汇编描述:firstco

GICv3软中断

软中断(softwaregeneratedinterrupts),用来多个核之间的通信(inter-processorcommunication)。软件通过写SGI寄存器来产生。软件写ICC_SGI1R_EL1产生对应当前secure状态的group1软中断软件写ICC_ASGI1R_EL1产生secure状态的group1软中断软件写ICC_SGI0R_EL1产生secu

gicv3的中断分组

GICv3架构中,对中断进行了分组。分成了以下三个组:group0,用于EL3处理的中断securegroup1:用于secureEL1处理的中断non-securegroup1:用于non-secure的EL2和non-secure的EL1。对于redistributor的set命令,带有Mod和Grp参数。Mod与Grp共同表示,中断所属的组。其组

ARM编译器(一)ARM汇编与ARM GNU汇编

一、ARM汇编开发的两种的方式ARM汇编开发指用ARM提供的汇编指令,进行ARM程序的开发。ARM汇编开发,有两种开发方式,一种是使用ARM汇编,一种是使用ARMGNU汇编。两种汇编开发,使用的汇编指令是完全一样的,区别是宏指令,伪指令,伪操作不一样。其实两种开发方式的区别

ARM GIC(八)总结

GIC,是arm为了实现复杂的中断控制,而定义的一套架构。版本也历经了多个变化,从最初的GICv1到现在最新的GICv4。每一个新的版本,都增加了一些新的功能。目前最新的GIC-600IP,支持GICv4。不过从GICv3开始,架构就和之前的架构,变化就比较大了。一、变化一:cpuinterf

ARM GIC(七)gicv3架构-power控制

从gic3开始,cpuinterface放到了PE中,因此cpuinterface和PE是同一个powerdomain。而属于gic的其他组件,如redistributor,distributor,是另外一个powerdomain。因此就有如下一种情况,PE和cpuinterface的电源给断掉了,而gic的电源并没有断掉。此时gic给cpuinterface

ARM GIC(六)gicv3架构-LPI

在gicv3中,引入了一种新的中断类型。messagebasedinterrupts,消息中断。一、消息中断外设,不在通过专用中断线,向gic发送中断,而是写gic的寄存器,来发送中断。这样的一个好处是,可以减少中断线的个数。为了支持消息中断,gicv3,增加了LPI,来支持消息中断。并且

ARM GIC(五)gicv3架构-gic stream协议

gicstream协议,是基于AXI-stream协议。用于gic的IRI组件(interruptroutinginfrastructure),和cpuinterface之间,传输信息。distributor,redistributor和ITS,统称为IRI组件。gicstream协议,包含以下2个接口:下行AXI-stream接口:用于IRI向cpuinterface传递信息,

ARM GIC(四) gicv3架构基础

GICv3架构是GICv2架构的升级版,增加了很多东西。变化在于以下:使用属性层次(affinityhierarchies),来对core进行标识,使gic支持更多的core将cpuinterface独立出来,用户可以将其设计在core内部增加redistributor组件,用来连接distributor和cpuinterface增加了LPI

ARM GIC(三) gicv2架构

ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cpu的中断管理,就不能像单core那样简单去管理,由此arm定义了GICv2架构,来支持多核cpu的中断管理。一、gicv2架构GICv2,支持最大8个core。其框图如下图所示:在gicv2中,gic由两个大模块组

ARMv8 系统定时器

ARMv8架构中,定义了一个系统定时器(systemtimer),并且指定了这个系统定时器,需要实现的寄存器,以及各个寄存器的偏移。系统寄存器中,包含一个系统计数器,以及一些控制寄存器,状态寄存器等。寄存器,包含如下:寄存器的基地址,由CNTControlBase来指定。其实是由

ARM GIC(二)中断术语

ARM在GIC中,对于中断,定义了如下的一些术语。一、中断状态对于每一个中断而言,有以下4个状态:inactive:中断处于无效状态pending:中断处于有效状态,但是cpu没有响应该中断active:cpu在响应该中断activeandpending:cpu在响应该中断,但是该中断源又发送中断过来

使用arm DS5在fvp上debug

在调试arm的软件时,可以使用arm公司提供的DS5工具,配合FVP,进行debug。启动ds5,选择Window->OpenPerspective->DS-5Debug进入DS5debug界面,如下图所示:一、debug配置在Debugcontrol子界面,右键选择debugconfiguration,弹出debug配置界面。如下图所示:在DS

ARM GIC(一) cortex-A 处理器中断简介

对于ARM的处理器,中断给处理器提供了触觉,使处理器能够感知到外界的变化,从而实时的处理。本系列博文,是以ARMcortex-A系列处理器,来介绍ARM的soc中,中断的处理。ARMcortex-A系列处理器,提供了4个管脚给soc,实现外界中断的传递。分别是:nIRQ:物理普通中断nFIQ:

jenkins pipeline中对git的操作

jenkins的pipeline对git的操作