ARMv8 ARM64
qemu armv8
__pop_
这个作者很懒,什么都没留下…
展开
-
Introduction To AMBA 简单理解
amba原创 2022-07-03 13:20:58 · 1350 阅读 · 1 评论 -
arm32和arm64和rv裸机编程中的区别
arm32/arm64/rv对待初始化 栈中的数组 为 0 的区别arm32/rv 引用了 memset ,arm64没有引用arm64 用 stp xzr, xzr, [sp, #16] 来填充0arm32/arm64/rv对待除法的区别arm32 需要 __aeabi_uidivmod 和 __aeabi_uidiv 的支持来做除法其他架构不需要arm32 编译器应该默认不支持硬件浮点,而其他架构的编译器应该支持硬件浮点TODO arm32/arm64/rv对待异常的区.原创 2022-04-19 11:29:38 · 3059 阅读 · 0 评论 -
AARCH64 常用的指令和寄存器描述
EL0/1常用的 A64 指令addadrpandasrbb.ccb.csb.eqb.geb.gtb.hiblb.leblrb.lsb.ltb.nebrkcmncmpcnegcselcseteret.instldpldrldrbldrhldrswlsllsrmovmovkmrsmsrmulnegnoporrretsmullstpstrstrbstrhstursubsvcsxtbsxthsxtwudi.原创 2022-04-06 16:20:27 · 2381 阅读 · 0 评论 -
Arm Development Studio & A64-Exercises试用报告
Arm Development Studio 下载与安装安装包在这里下载https://developer.arm.com/tools-and-software/embedded/arm-development-studio/evaluate安装包的安装当需要license的时候,点击30天免费试用导入工程体验用的是这里https://developer.arm.com/documentation/102422/latest/提到的代码下载地址 : https://armkei原创 2022-04-05 12:33:45 · 701 阅读 · 2 评论 -
各种 编译链 转换 C code 到汇编
riscvarm原创 2021-12-20 15:00:06 · 415 阅读 · 2 评论 -
qemu armv8 裸机 实战
装个工具链sudo apt-get install gcc-10-aarch64-linux-gnu版本控制sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-10 10下个代码git clone https://github.com/sinferwu/armv8-smp-baremetal.git //原创 2022-03-30 15:57:06 · 1448 阅读 · 0 评论 -
qemu 对 ARMv8的支持
这里打算用以下平台 qemu-system-aarch64 -M virt -cpu qemu virt 平台 // https://qemu.readthedocs.io/en/latest/system/arm/virt.html 1.硬件平台 1. 可配置项 1. cpu微架构,个数 // cortex-a53/57/72 // many CPUs (up to 512 if using a GICv3 and highmem) 2. 内存大小 // large amounts原创 2022-03-30 13:22:49 · 2665 阅读 · 1 评论 -
ARMv8 boot
boot为什么可以是 无 EL3 ? 因为 EL2和EL3 是选配的UEFI 被认为是在 trust world 之内的代码吗? UEFI 不是 trust world 之内的代码安全支持 无UEFI 的boot bl1.bin(FSBL) -> ATF(bl2.bin bl31.bin bl32.bin) -> bl33.bin(u-boot) -> LinuxImage // FSBL 是soc厂商做进入的 // ATF 一般是 用户可编辑的第一个代码,一般存.原创 2022-03-30 13:19:12 · 475 阅读 · 0 评论 -
ARMv7 boot
DEN0024A_v8_architecture_PG.pdf 没有这一章DEN0013D_cortex_a_series_PG.pdf 中有这一章,所以先翻译这一章UEFI 在 ARMv7 PG 中的提及B.1.3 Embedded LinuxB.2.5 UEFI and Tianocore提到了 UEFI 对 arm32 有支持.提到了 在桌面领域, 可以从UEFI启动...原创 2022-03-30 13:16:35 · 239 阅读 · 0 评论 -
ARMv7 Virtualization
DEN0024A_v8_architecture_PG.pdf 没有这一章DEN0013D_cortex_a_series_PG.pdf 中有这一章,所以翻译这一章原创 2022-03-28 19:01:39 · 853 阅读 · 0 评论 -
ARMv8 Power Management
PM: idle 管理 动态电压,频率缩放调制 power相关指令 power 状态 协调 接口原创 2022-03-28 11:29:24 · 540 阅读 · 0 评论 -
ARMv8 Security
内容来自 DEN0024A_v8_architecture_PG.pdfARMv8 Security 是什么本质 增加了一个 Secure world , 该体系结构的增加意味着单个物理内核可以以时间切片的方式执行来自正常世界和安全世界的代码 定义了 硬件实现 , 规范了 软件实现 软件实现 : TrustZone安全扩展 硬件实现 : 安全外围设备 ARM安全模型将设备硬件和软件资源进行了划分,以便它们要么存在于安全子系统的安全世界中,要么存在于其他所有系统的正常世界中。 worl原创 2022-03-25 11:41:28 · 1047 阅读 · 0 评论 -
ARMv8 Debug
内容来自 DEN0024A_v8_architecture_PG.pdf本质ARMv8 Debug 是什么历史 在 ARMv4 开始被引入,并已发展成一系列广泛的调试和跟踪功能 ARMv6和ARMv7-a 新增了 自托管调试和性能评测 ARMv8处理器提供硬件功能 侵入式 : 调试工具能够对核心活动提供显著级别的控制 非侵入式 : 以非侵入性方式收集有关程序执行的大量数据。 侵入式调试 提供了一些工具,使您能够在C源代码级别或汇编语言指令中停止程序并逐行执行它们。原创 2022-03-25 14:29:51 · 1393 阅读 · 0 评论 -
ARMv8 Multi-core processors
MP MP框架 MP分类 SMP AMP HMP MP引入的问题 BOOT cache coherency 独占访问:同步 时钟:Timers 异常处理原创 2022-03-27 13:32:13 · 2492 阅读 · 0 评论 -
ARMv8 big.LITTLE
big.LITTLE bit.LITTLE 产生原因 架构 软件执行模型 big.LITTLE MP原创 2022-03-27 13:34:46 · 464 阅读 · 0 评论 -
x86 arm riscv 生态
在linux中, 为什么x86只有几个config,arm有很多config,arm64只有一个config为什么x86 可以做发行版,对应一个 iso ,为什么arm 可以做发行版,每个board 对应一个isox86 的一套 BSP 代码 驱动了所有的 x86 PCBSP,全称Board Support Package,类似于最底层的硬件的基础驱动和硬件描述信息BSP 包括 bios 和 linux 中的 bsp 代码手机等移动设备是嵌入式开发的,有一个词叫做BSP,全称Boa原创 2021-09-13 10:03:19 · 2073 阅读 · 0 评论 -
TEE的由来以及TEE的概念
TEE的由来TEE概览将一个物理处理器分时复用为两个逻辑处理器 一半是Rich Execution Environment , 用来运行不可信的系统和APP 一半是Trusted Execution Environment , 用来运行可信的系统 ,管理 关键硬件, 为 不可信的系统提供接口TEE是一种环境,可信执行环境。TEE的实现方案需要硬件和软件的参与。 硬件:arm的trustzone,rv的多区域等。 软件:op-tee等TEE深入TEE会独占访问某些硬件资..原创 2021-08-10 11:01:51 · 1997 阅读 · 0 评论 -
ARM 汇编 调用约定ABI与汇编语法
汇编语法intel 语法AT&T语法ARM语法其实没有"ARM语法"这种概念ARM汇编只有一种语法三种语法的区别汇编语法实例x86 windows vc / nasm 使用 intel 语法 解析 汇编代码x86 gcc gas 默认使用 AT&T 语法 解析代码arm gcc gas 默认使用 ARM 语法 解析代码调用约定AAPCS64ATPCSodecloptlinkstdcallfastcall调用约定实例x64原创 2021-08-09 11:04:54 · 674 阅读 · 2 评论 -
各个架构下的linux启动流程-从linux被加载到start_kernel
引言本文关注点 在 架构相关的启动过程代码在 arch/xxx 中arch/xxx 的作用是 1.boot(从kernel的第一行代码到start_kernel) 2.start_kernel之后调用的平台(MACH)相关代码,架构相关代码(ARCH)// 这里的 xxx(目录名称) 指代的是 arm arm64 x86 riscv , 分别对应 架构名称如下 arm : arm32(ARMv7-A ARMv6) arm64 : ARMv8-A ARMv9-A x86 :原创 2022-01-17 13:13:33 · 2178 阅读 · 0 评论 -
ARMv8的异常向量表与linux的实现
armv8// 异常发生时,会置 PC 为一个值,这个值被称为 入口 , 下面是 "入口值" 的 定值过程1.从三个基地址(VBAR_EL3, VBAR_EL2 and VBAR_EL1)中 选一个,该值是向量表的基址,至于选哪个,要看路由到哪个EL等级 ,由Routing when both EL3 and EL2 are implemented 表决定2.基址已经确定,向量表有4组,从四组中选一个,具体选哪一个,由Vector offsets from vector table base ad.原创 2021-09-13 09:47:43 · 1015 阅读 · 1 评论 -
ARMv8 ARM64 架构 整体介绍
这里整理一些 arm64(aarch64是armv8下面的一个工作状态,一般我们将其称为arm64?)原创 2022-02-10 10:43:29 · 7305 阅读 · 2 评论