ARM64架构的寄存器
ARM64提供了31个通用寄存器,其用途如下表: x0~x7:传递子程序的参数和返回值,使用时不需要保存,多余的参数用堆栈传递,64位的返回结果保存在x0中。 x8:用于保存子程序的返回地址,使用时不需要保存。 x9~x15:临时寄存器,也叫可变寄存器,子程序使用时不需要保存。 x16~x17:子程序内部调用寄存器(IPx),使用时不需要保存,尽量不要使用。 x18:平台寄存器,它的使用与平台相关…
ARM generic timer
硬件描述 1、block diagram ARM generic timer相关的硬件block如下图所示(用绿色标记): ARM generic timer的硬件block主要是SOC上的System counter(多个process共享,用来记录时间的流逝)以及附着在各个processor上的Timer(用于触发timer event)组成,其他的generic timer的硬件电路主要是用…
arm GIC介绍之一
GIC是ARM架构中及其重要的部分,本文只在公开ARM对应资料基础上,以MTK开发板为基础整理。个人理解之后记录,巩固和加深认识,仅此而已,如果有错误,欢迎指出。 1. GIC的概述 看过SOC架构的同学知道,CPU接受外部的中断处理请求,并进行处理,其实是一个被动接受的过程,这样好处是既能 保证主任务的执行效率,又能及时获知外部的请求,从而处理重要的设备请求操作。 如图:    GIC的全称为g…
arm GIC介绍之二
连接"arm GIC介绍之一",我们补充对应的GIC 寄存器描述,和主要的用法说明,仅供参考。 3 . GIC_V3寄存器介绍 我们把完整的图放在这里: 从这里看到,GIC分为3个主要的部分,要完成其作用,而且给用户进行预先配置的方法,GIC就提供了一组寄存器,这些寄存器的设计就是围绕着这些主要的功能来实现的。 3.1Distributor Registers 在前面介绍过,D…
ARM GICv3中断控制器
1. 前言 GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为: 接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理。 当前GIC 有四个版本,GIC v1~v4, 主要区别如下表: 本文主要介绍GIC v3控制器, 基于linux kernel 4.19.0。 2. GIC v3中断类别 GICv3定义了以下中断类型:…