随笔分类 - ARM
摘要:在ARMv8架构中,通用寄存器x0-x30(64位)或w0-w30(32位)用于数据操作和函数调用,但部分寄存器在硬件或软件层面被赋予了特殊作用。以下是它们的详细分类和约定用途: 1. 通用寄存器(无特殊约定) • x0-x7 • 作用:函数参数传递和返回值。 • 约定: ◦ `x0`:第一个参数,
阅读全文
摘要:在 ARMv8/AArch64 架构中,SP_ELx 是不同异常级别(Exception Level, EL)的 栈指针寄存器,用于管理当前执行环境的栈。以下是各异常级别下栈指针寄存器的详细解释: 1. 异常级别(EL)与 SP_ELx 寄存器 异常级别 描述 对应的栈指针寄存器 EL0 用户态(U
阅读全文
摘要: 
阅读全文
摘要:/* Exception Syndrome register bits and bobs */ #define ESR_EC_SHIFT U(26) #define ESR_EC_MASK U(0x3f) #define ESR_EC_LENGTH U(6) #define ESR_ISS_SHIF
阅读全文
摘要:在 ARM 架构中,寄存器命名和使用根据架构模式(32位或64位)有所不同。对于 ARM 32-bit 模式(AArch32) 和 ARM 64-bit 模式(AArch64),寄存器的命名规则以及它们的功能有一些区别。 AArch32(ARM 32-bit) 在 AArch32 模式下,通用寄存器
阅读全文
摘要:在 ARM 架构中,无论是 32 位还是 64 位模式下,都有不同的处理器模式和相应的寄存器资源。这些模式决定了当前执行环境的特权级别以及可用的寄存器集合。以下是 ARM 在 64 位(AArch64)和 32 位(AArch32)架构下的不同模式及其对应的寄存器资源概述。 AArch64 (ARM
阅读全文
摘要:在 OP-TEE 适配 ARMv7 的 SMC 代码中,当处理来自 Non-Secure World(非安全世界) 的请求时,进入 smc_from_nsec 时需要将 SCR(Secure Configuration Register) 的 NS(bit 0) 和 FIQ(bit 2) 位设置为
阅读全文
摘要:LOCAL_FUNC sm_vect_table , :, align=32 UNWIND( .cantunwind) b . /* Reset */ b . /* Undefined instruction */ b sm_smc_entry /* Secure monitor call */ b
阅读全文
摘要:ARMv7-A架构保护系统控制协处理器CP15,主要用于处理存储系统相关的功能。CP15只能在特权模式下访问。CP15提供了16个32位主寄存器,命名为c0-c15。c0-c15寄存器可能对应多个不同的物理寄存器 协处理器CP15寄存器访问包括读和写操作。 读操作即将CP15内的寄存器CRn的值读到
阅读全文
摘要:ARMv7架构中的CPSR(Current Program Status Register)是32位的寄存器,用于存储处理器的当前状态信息,包括条件标志、中断禁止位、处理器模式等。 以下是CPSR寄存器中每个bit位的详细说明: 1. 条件标志位(Condition Flags) 这些标志位用于指示
阅读全文
摘要:在 ARMv8-A 架构中,处理器的工作模式和寄存器设计有了显著的变化,特别是在引入了 Exception Levels (EL) 的概念之后。以下是 ARMv8 寄存器的详细说明以及工作模式的解析。 1. ARMv8-A 架构中的寄存器 (1) 通用寄存器(General-purpose Regi
阅读全文
摘要:在 ARMv7-A 架构中,处理器支持多种工作模式(Processor Modes),每种模式下可用的寄存器数量和类型有所不同。以下是基于 ARMv7 的寄存器组织和模式划分的详细说明: 参考链接:https://blog.csdn.net/qq_40309666/article/details/1
阅读全文
摘要:一次压测循环播放几个APK里面DRM视频1小时后会发生失败,现象是TA没有load 成功 出错log如下 [ 2276.030861] [TEE] D/TC:? 00 tee_ta_init_session_with_context:583 Re-open TA 37eb0e02-c43d-48a8
阅读全文
摘要:和传统os ( linux )相比 ,Linux 下的bin/ lib/ etc/之类的 都打包到 system.img 里面了 , 对于应的是 /system/bin/ /system/lib/ /system/etc/ . /system/app 是当前app 列表目录 , /system/pr
阅读全文
摘要:本人Linux 嵌入式开发3年 ,面试半导体TOP 10 某厂, 4次面试 ,最终拿到offer . 现将 问题总结 ,供后人参考。 1:进程的地址空间分布 ,Linux系统调用应用程序的过程 ,几大数据段? 2:i2c spi 的 驱动模型 , 如何匹配,如何probe,如何设计中断处理函数 ,上
阅读全文
摘要:理解工作队列 ,理解工作 调度的两种方式: 1: 单独调度 work_struct API: schedule_work() 2: 调度执行一个workqueue_struct 里面的某个任务。 API: queue_work() demo 如下: schedule_work 1 #include
阅读全文
摘要:在看 内核代码的时候 发现 tasklet 的 api ,想着如何去使用它。 首先是 tasklet_disable 和 tasklet_kill 的 区别 测试demo 如下: #include <linux/kernel.h> #include <linux/module.h> #include
阅读全文
摘要:#include <linux/of.h> #include <linux/device.h> #include <linux/platform_device.h> #include <linux/err.h> #include <linux/errno.h> #include <linux/lis
阅读全文
摘要:/ { wanghb { gpio = <129>; gpios = <129 130 131>; args = "wanghbargs"; compatible = "wanghbcompatible"; child1@0x1000012{ args = "child1"; gpios = <12
阅读全文

浙公网安备 33010602011771号