- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 【ARMV8体系结构学习】ARMV8 浮点和NEON指令集
ARM高级单指令多数据(SIMD)架构、相关实现以及支持软件通常被称为NEON技术。AArch32(相当于ARMv7 NEON指令集)和AArch64都有对应的NEON指令集。这两种指令集都可显著加速对大型数据集的重复操作,这在媒体编解码器等应用中非常有用。AArch64的NEON架构使用32个128位寄存器,数量是ARMv7的两倍。这些寄存器与浮点指令所使用的寄存器相同。所有编译后的代码和子程序都遵循嵌入式应用二进制接口(EABI),该接口规定了在特定子程序中哪些寄存器可以被修改,哪些寄存器必须被保留。
2025-05-22 12:35:42
867
原创 【ARMV8体系结构学习】ARMv8 A64指令集介绍Part1
这是一组不同形式的ADD指令示例,ADD指令的基本功能是执行加法操作,不同形式的ADD指令根据操作数的类型、大小和指令后缀等因素,在不同位数的寄存器或向量寄存器上执行加法。
2025-05-19 12:25:41
1125
原创 【ARMV8体系结构学习】ARMv8 指令集介绍
ARMv8 架构引入的最重大变革之一是增加了 64 位指令集。该指令集对现有的 32 位指令集架构起到了补充作用。这一新增功能使得可以使用 64 位宽的整数寄存器和进行数据操作,并且具备使用 64 位大小的内存指针的能力。这些新指令被称为 A64,它们在 AArch64 执行状态下运行。ARMv8 还包含原有的 ARM 指令集,现在称为 A32,以及 Thumb(T32)指令集。A32 和 T32 都在 AArch32 状态下执行,并且提供了与 ARMv7 的向后兼容性。
2025-05-18 08:48:56
801
1
原创 【ARMV8体系结构学习】ARMV8寄存器
AArch64执行状态提供了31个64位通用寄存器,这些寄存器在所有异常级别下随时都可以访问。每个寄存器的宽度为64位,它们通常被称为寄存器X0 - X30。!每个 AArch64 的 64 位通用寄存器(X0 - X30)也有对应的 32 位形式(W0 - W30)。32 位的 W 寄存器构成了相应 64 位 X 寄存器的低半部分。也就是说,W0 对应于 X0 的低字部分,W1 对应于 X1 的低字部分。
2025-05-15 22:03:20
676
原创 【ARMV8体系结构学习】ARMV8 架构基础
在 ARMv8 架构中,执行操作发生于四个异常级别之一。在 AArch64 模式下,异常级别决定了特权级别,这与 ARMv7 中定义的特权级别类似。异常级别决定了特权等级,因此在异常级别 ELn 下执行对应着特权等级 PLn。同样地,n 值较大的异常级别高于 n 值较小的异常级别。n 值较小的异常级别被称为较低的异常级别。异常级别在 ARMv8 架构的所有操作状态下,对软件执行特权进行了逻辑上的划分。这与计算机科学中常见的分层保护域概念类似,并且支持该概念。以下是在每个异常级别上运行的软件的典型示例:EL0
2025-05-13 22:32:00
1045
原创 【ARMV8体系结构学习】ARM_v8_architecture_Programmer Guide
ARM架构的历史可以追溯到1985年,但它并非一成不变。相反,自早期的ARM内核问世以来,它经历了巨大的发展,每一步都在不断增加新的特性和功能。这些早期处理器仅使用ARM 32位指令集。ARMv4T架构在ARM 32位指令集的基础上增加了Thumb 16位指令集。这是首个被广泛授权使用的架构,由ARM7TDMI®和ARM9TDMI®处理器实现。ARMv5TE架构针对数字信号处理(DSP)类型的操作、饱和算术运算以及ARM与Thumb指令集的交互工作进行了改进。ARM926EJ - S®处理器实现了该架构。
2025-05-13 12:58:16
970
原创 【RK3399】【Uboot】 流程分析之常用宏定义说明
1、内核等固件加载地址:ENV_MEM_LAYOUT_SETTINGS,定义如下./include/configs/rk3399_common.h 58 #define ENV_MEM_LAYOUT_SETTINGS \ 59 "scriptaddr=0x00500000\0" \ 60 "pxefile_addr_r=0x00600000\0" \ 61 "fdt_addr_r=0x08300000\0" \ 62 "kernel_addr_r=0x002
2021-03-02 13:16:57
1527
原创 【RK3399】rk3399 arm64 ubuntu18.04 根文件系统制作
1、下载ARM64根文件系统ubuntu-base-18.04.5-base-arm64.tar.gz http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/2、制作根文件系统安装qeum模拟器sudo apt-get install qemu-user-static解压文件mkdir rootfstar -xvf ubuntu-base-18.04.5-base-arm64.tar.gz -C rootfs/...
2021-02-08 15:30:25
3133
6
原创 linux设备树学习笔记备忘--设备树格式
1、设备树格式设备树节点的node格式[label:] node-name[@unit-address] { [properties definitions] [child nodes]};例子:1150 fusb0: fusb30x@22 {1151 compatible = "fairchild,fusb302";1152 reg = <0x22>;1153 pinctrl-names = "d...
2021-02-04 09:01:19
392
原创 【RK3399】【Linux】rk3399 Can驱动分析 mcp2515
【RK3399】【Linux】Rockchip3399 Can驱动分析
2021-02-02 13:05:21
3658
原创 uboot学习笔记之uboot1.3.4一移植
自己学习嵌入式学习已经有一段时间了,感觉不懂的太多,在这里想把每一步学习的只是一步一步记录下来,以供自己以后查看使用,也希望看到这篇文章的朋友多给点意见。这篇主要是记录一下,uboot1.3.4部分,uboot1.3.4是一个比较老的版本,大概是08年的,与现在最新的差距还是挺大的,但是相比现在最新的uboot的移植起来要困难一点,不过对于学习来书,能学到的东西相对要多一点。 下面是这次移植涉及到的部分文件
2016-06-05 00:50:11
1435
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-06-05 00:47:06
243
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人