ARM系列
文章平均质量分 91
主要介绍ARM 体系结构,以及基于ARM平台的SoC开发。
老衲不依
小小程序员
展开
-
基础篇(二).ARMv8寄存器(2)
我们重点关注的是和启动相关的寄存器,异常处理相关寄存器,以及内存管理相关寄存器。看寄存器很枯燥,后面需要的寄存器,再追加吧。原创 2022-11-05 02:34:31 · 4016 阅读 · 1 评论 -
基础篇(二).ARMv8寄存器(1)
ARMv8架构(针对Core来说)至少有上千个寄存器,更别提Core外SOC级外设寄存器。这两类寄存器的区别是:前者(不管通用寄存器还是系统寄存器)不占用地址空间,而后者是和内存统一编制的,要占用地址空间。下面我们主要针对ARM Core内寄存器进行介绍。通用寄存器。这类寄存器主要是用来暂存数据和参与运算。通过load\store指令操作。状态寄存器。AArch64体系结构使用PSTATE寄存器表示当前处理器状态。特殊寄存器。有专门的用途,用于控制处理器的行为,或表示CPU的状态。系统寄存器。原创 2022-11-05 00:37:24 · 2812 阅读 · 0 评论 -
基础篇. ARMv8‑A 架构和处理器(2)
ARMv8是ARM公司发布的第一代支持64位处理器的指令集和体系结构。它在扩充64位寄存器的同时对上一代体系结构指令集兼容,因此它提供了运行32位和64位应用程序的环境。原创 2022-11-03 01:46:11 · 3448 阅读 · 0 评论 -
基础篇.ARM架构介绍(1)
ARM公司主要向客户提供处理器IP。ARM体系结构是一种硬件规范,主要用来约定指令集、芯片内部体系结构等。以指令集为例,ARM体系结构并没规定每一条指令在硬件IP中如何实现,只是约定了每条指令的格式、行为规范、参数等。原创 2022-11-01 23:41:56 · 4934 阅读 · 0 评论 -
基础篇. ARM架构和处理器(3)
Arm Application-profile (A-profile) 架构面向高性能市场,例如 PC、移动、游戏和企业。A-profile 架构的最新版本是 Armv9-A 和 Armv8-A。Arm Application-profile (A-profile) 架构面向高性能市场,例如 PC、移动、游戏和企业。A-profile 架构的最新版本是 Armv9-A 和 Armv8-A。原创 2022-11-01 23:56:10 · 341 阅读 · 0 评论 -
[crash分析2]C语言在ARM64中函数调用时,栈是如何变化的?
做系统分析的话你肯定遇到过一些crash, oops等棘手问题,一般大家都会用 gdb, objdump 或者 addr2line等工具分析 pc 位置来定位出错的地方。但是这些分析工具背后的本质原理就不见得理解深刻了,而且有的时候面对一系列 backtrace 或者 stack 日志处于懵逼的状态。今天和大家一起看下面对 crash 日志的时候,如何利用 stack 来分析其变化的来龙去脉。原创 2022-10-12 10:15:55 · 1725 阅读 · 3 评论 -
[crash分析1]C语言在ARM中函数调用时,栈是如何变化的?
可以看到,上述所说的流程没有遵循ATPCS规范,根据反汇编的代码看到也没有遵循ATPCS规则的寄存器使用规则。1.在这里函数的传参一律使用栈传参,因此不涉及寄存器的保存。2.callee的返回地址没有使用LR寄存器,而是使用caller的栈保存子函数返回地址。3.FP寄存器在这里叫栈底寄存器,用来标识当前函数的栈底。每次进入一个子函数时,子函数一开始FP和SP相同,SP随着该子函数的栈变化而变化。原创 2022-10-12 10:15:12 · 565 阅读 · 0 评论 -
建立一个 git 本地仓库
本地创建一个远程仓库,管理自己的实验代码,自娱自乐。原创 2022-07-19 22:50:46 · 6108 阅读 · 0 评论 -
QEMU + ARMv8 环境搭建
使用qemu 模拟ARMv8 平台运行,进行ARMv8代码实验。原创 2022-06-29 18:29:51 · 4075 阅读 · 0 评论