- 博客(8)
- 问答 (1)
- 收藏
- 关注
原创 ARM Development Studio 2021 FVP调试Linux内核代码
如何使用ARM DS2021 FVP调试Linux内核代码,包含内核源码构建、环境配置、代码调试等相关内容。
2022-10-08 10:29:30
2397
原创 arm交叉编译器添加环境变量
在为ARM交叉编译器添加环境变量时,要注意是添加的是用户环境变量,还是root环境变量。添加用户环境变量//修改环境变量,使用 VI打开 /etc/profile文件,命令如下sudo vi /etc/profile//打开 /etc/profile以后,在最后面输入如下所示内容:export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin注意要使用自已的文件路径添加root环
2022-01-11 11:20:24
1128
原创 ARM LDR和ADR指令
讲的比较好的一篇帖子,ADR和LDR区别的比较清除:LDR和ADR的区别Load/Store指令ARM属于RISC指令集,CPU无法对内存的数据进行直接操作,只能通过Load/Store指令来实现:当我们需要对内存中的数据进行操作时,首先将这个数据从内存中加载到寄存器,在寄存器中进行数据处理,最后将结果重新存储到内存中。使用指令:LDR X1,[X0] //将x0的值作为地址,将该地址的数据保存到寄存器x1LDR X1,LOOP //将LOOP地址上的数据送给X1STR X1,[X0]
2021-12-22 16:06:30
1216
原创 ARMv8处理器异常处理
本章重点分析处理器产生异常的原因、在发生异常时的动作以及异常返回时的动作。ARMv8有四种异常等级EL0/1/2/3,以及两种安全模式,这部分的内容我会在下一章节详细讲解,本章针对于异常的通用概念。1、AArch64异常和中断处理的定义异常是指需要特权软件(异常处理程序)执行某些操作以确保系统顺利运行的条件或系统事件。它们会导致执行流程中断。区分异常和中断的一种方法是:异常是一个事件(分支或跳转指令除外),它会导致指令的正常顺序执行被修改;而中断是一种非直接由程序执行引起的异常,通常用处理器内核外部
2021-12-21 10:50:51
2693
原创 ARMV8_AARCH64裸机启动流程分析
本篇针对于ARMV8架构下64位模式的裸机启动代码流程分析,重点介绍裸机启动代码bootcode.s。重点了解ARM处理器从上电到跳转到main函数的过程!!!1、寄存器初始化首先我们需要初始化相关寄存器:通用寄存器;SP寄存器(stack pointer);System control registers.(控制寄存器)。1.1、初始化通用寄存器ARM处理器使用一些非复位触发器。这可能会导致模拟中出现X传播问题。寄存器初始化有助于减少问题的可能性。寄存器的低32位用w来表示。注:由于
2021-12-20 20:06:15
3156
1
原创 Ubuntu平台通过QEMU模拟ARM多核CPU教程
1 环境及软件包准备本教程是在ubuntu系统上进行的模拟,ubuntu系统可以安装在物理机或虚拟机上,考虑性能问题,优先选择物理机安装。本教程ubuntu系统选用软件版本如下表所示:在进行模拟之前,需提前将软件包下载并上传至ubuntu目录(可选任意目录,本教程选择/home/xt目录),如下所示:2 ubunut 操作系统更换国内源为了提高下载速度,建议将ubuntu源更换成国内源,本教程选择更换成阿里源。更换步骤如下:2.1 登录ubuntu后台,并切换成root用户2.2 依次执行如
2021-12-20 19:05:15
5308
原创 ARMGCC-C语言函数内嵌汇编
前言最近在写ARMV8架构下的测试代码,对于CORTEX-A76核的测试代码避免不了C语言函数内嵌汇编的编写,此文就对C语言函数内嵌汇编的规则进行说明,并配有实例。运行环境:IDE:ARM-DS5,编译器:ARM C Compiler6,target:ARMV8-AARCH64ATPCS规则在汇编程序调用C语言函数、C语言函数调用汇编程序和C语言函数内嵌汇编中,都会涉及到子程序的调用、子程序的返回和参数传递等问题。在ARM体系结构中,使用ATPCS规则来约束这些参数的传递,规则内容如下:子程序
2021-12-20 09:52:11
2668
空空如也
神经网络运行时配置技术,编译技术,切换技术?
2021-05-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人