ARM基础知识
文章平均质量分 79
TrustZone_
一个搞技术的读书人,妄图分享最干货的技术知识与世界运转的底层逻辑。公ZH:TrustZone
展开
-
CPU处理器模式与异常
FIQ和IRQ在ARM架构中具有不同的特性和优先级。FIQ由于其独特的硬件支持和更少的寄存器操作,通常能够更快速地响应和处理中断。这使得FIQ在处理需要快速响应的中断时具有明显优势。FIQ和IRQ的中断向量地址差异导致了它们中断处理流程的不同。FIQ由于可以直接在其中断向量地址处放置处理程序,因此通常具有更快的响应速度。而IRQ则需要一个额外的跳转步骤,这增加了中断处理的延迟。这也是为什么在某些需要快速响应的场景中,FIQ被优先考虑的原因。原创 2024-03-07 22:53:05 · 1665 阅读 · 0 评论 -
内存系列学习(二):ARM处理器中CP15协处理器
之前我们在学习MMU的时候,知道这个内存的分配和CP15协处理器。这里先介绍一下CP15寄存器以及访问CP15寄存器的汇编指令。CP15的寄存器列表:FCSE(Fast Context Switch Extension,快速上下文切换)位于 CPU 和 MMU 之间,如果两个进程使用了同样的虚拟地址空间,则对 CPU而言,两个进程使用了同样的虚拟地址空间。快速上下文切换机构对各进程的虚拟地址进行变换,这样系统中除了 CPU 之外的部分看到的是经过快速上下文切换机构变换的虚拟地址。原创 2023-08-12 15:25:59 · 1246 阅读 · 0 评论 -
看一下ARM的IP:SMMUU
SMMU(system mmu),是I/O device与总线之间的地址转换桥。这里就可以很明显的看出这个MMU和SMMU的差别与相似。原创 2023-05-21 21:42:46 · 1074 阅读 · 0 评论 -
GNU AS汇编质量
汇编器:将汇编语言翻译为机器目标代码的程序。常用的两种汇编器:ARM 公司官方的ARM 格式:ARM 官方汇编语法GNU AS 汇编器: aarch64-linux-gnu-asGNU 工具链提供了一个 as 的命令作为器汇编器。并且 汇编码是 AT&T 格式的。AT&T 格式源自贝尔实验室,为开发UNIX 系统而产生的汇编语法。as 是 assembler 的简称。参考链接:https://re-eject.gbadev.org/files/GasARMRef.pdfhttps://zh原创 2023-02-15 20:51:19 · 224 阅读 · 2 评论 -
ARM体系结构与编程模型
ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。转载 2022-12-23 23:05:28 · 2139 阅读 · 0 评论 -
ARM的常用概念
为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和Thumb程序中子程序调用的基本规则。这些规则包括寄存器使用规则,数据栈的使用规则,参数的传递规则等。ARM有16个32位的寄存器(r0到r15),r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。ARM有一个当前程序状态寄存器:CPSR。转载 2022-12-23 20:38:53 · 470 阅读 · 0 评论 -
SMP多核启动
而后通过 arch_send_wakeup_ipi mask给要唤醒的CPU发IPI中断,这个时候,被唤醒的CPU会退出WFI状态并从前面 smp_operations中的smp_prepare_cpus成员函数,即 vexpress_smp_prepare_cpus里通过 v2m_flags_set()设置的起始地址 versatile_secondary_startup开始执行,( virt_to_phys( versatile_secondary_startup)设置其他CPU的启动地址为。转载 2022-11-30 22:19:37 · 665 阅读 · 0 评论 -
WFE和WFI的区别
WFI(Wait for interrupt)和WFE(Wait for event)是两个让ARM核进入low-power standby模式的指令,由ARM architecture定义,由ARM core实现。转载 2022-11-30 22:05:59 · 3499 阅读 · 0 评论 -
ARM学习扫盲篇(一):CPSR&SPSR、Lcache&Dcache、w/parity&w/ECC
icache用来缓存指令;dcache用来缓存数据,dcache用的前提是mmu要启动。目前裸机部分用不到,操作系统MMU才用得到。原创 2022-11-23 00:29:15 · 770 阅读 · 0 评论 -
Linux中CPU亲和性(affinity)
就是利用特殊的硬件指令,(一个核模拟出两个核?)让,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。我们常听到的双核四线程/四核八线程指的就是支持超线程技术的CPU.**物理CPU:**机器上安装的实际CPU, 比如说你的主板上安装了一个8核CPU,那么物理CPU个数就是1个,所以物理CPU个数就是主板上安装的CPU个数。**逻辑CPU:**一般情况,我们认为一颗CPU可以有多核,加上intel的超线程技术(HT), 可以在逻辑上再分一倍数量的CPU core出来;转载 2022-11-21 23:50:28 · 3857 阅读 · 0 评论 -
有关big.LITTLE,你需要知道的十件事情
在早期的 big.LITTLE 软件模型中(集群迁移和 CPU 迁移),软件在核心之间切换,不能同时打开所有核心。在更新的软件模型“全局任务调度”中,软件可以让所有核心同时处于活动状态,因为操作系统能够识别系统中的 big 和 LITTLE 核心,而且直接控制可用核心之间的线程分配。使用全局任务调度,操作系统电源管理机制会继续让未使用的核心保持空闲状态,这与当前标准多核系统中的做法相同。原创 2022-11-21 23:11:43 · 607 阅读 · 0 评论 -
big.LITTLE&DynamIQ
首先要知道DynamIQ,那么你肯定得知道big.LITTLE。因为DynamIQ可以说是big.LITTLE新一代或者是升级版。那么在这之前你肯定得知道什么是big.LITTLE?然后知道了后你就会想知道DynamIQ与big.LITTLE是什么关系?以及DynamIQ说的这么好,到底有什么好处呢?下面来依次看看。原创 2022-11-21 23:05:34 · 1359 阅读 · 0 评论 -
GICV2&GICV3的基础知识
当时把这个笔记在本地,搞忘了转载的地址,麻烦看到了联系我。原创 2022-10-31 23:14:48 · 1160 阅读 · 0 评论 -
ARM hint instruction-WFI(Wait For Interrupt)指令的一些笔记
最近在研究一些关于S3和S4的东西,里面出现了WFI的东西,我以前只知道WIFI,哈哈哈。然后发现了一篇前辈写的文章不错。大家记得点击原文阅读观感更加。原创 2022-10-31 23:14:11 · 1131 阅读 · 0 评论 -
ARM专栏创建
brand new。原创 2022-09-23 01:22:55 · 231 阅读 · 0 评论
分享