64位ARM体系结构,也称为AArch64。
在选择按值传递与按常量传递时,我试图理解并利用 ARMv8 ABI。特别是我有一个“同质浮点”结构
构建失败,因为<yourproject>.swiftmodule不是为arm64构建的,请尝试使用不同架构的运行目标
当我只是尝试运行测试时遇到此错误。我的项目设置为通过 Arm 64 架构运行。
为什么LDP在使用w寄存器时会崩溃,而使用x寄存器时不会崩溃
在Apply M1的Aarch64程序集上,当将LDP与w 32位寄存器一起使用时,我收到EXC_BAD_ACCESS错误。当我使用 x 64 位寄存器时,不会发生同样的问题。 使用 x 的示例有效
执行文件时出错:bash: ./Test.elf: 无法执行:找不到所需文件
今天我用C做了一个测试程序,就是一个简单的“Hello world.”, #包括 int main(){ printf("你好,世界! ”); 返回0; } 但我想编译它
为什么Linux5.15 Arm64 `cpu_context_switch`将`sp_el0`设置为下一个task_struct基址
我在Linux5.15中的arch/arm64/kernel/entry.S处阅读了下面的代码 /* * AArch64 的注册开关。需要保存被调用者保存的寄存器 * 并恢复。入场时: * x0 = 上一个任务_str...
为什么使用 ADRP、ADD 和 LDR 指令加载的数据比预期的要大?
我正在学习 Apple M1 arm64 的汇编,并注意到尝试从数据段上的标签加载数据时出现一些奇怪的情况。它似乎正在加载内容而不仅仅是我要求的标签......
关于arch/arm64/include/asm/atomic.h的atomic_add函数的问题
我对基于 Linux 内核的 C 编码风格非常陌生。我试图理解“arch/arm64/include/asm/atomic.h”中“atomic_add”函数的以下实现 fi...
设备:Macbook M1 Pro(arm64) 注意:我使用的是 zsh。我查看了之前提供的相关问题的解决方案,但仍然遇到相同的错误。 我尝试使用 miniconda pkg ins 中的安装程序...
在 Ubuntu 上使用 VS Code 交叉编译时如何导航到目标架构的结构定义?
我正在Ubuntu上交叉编译Android arm64二进制文件。我定义了一个名为 user_regs_struct old_regs 的结构。当我在 VS Code 中按 ctrl + 单击时,它会将我带到...中的结构定义
我有一个在 amd64 上运行的 Dockerfile,但想在 arm64 上运行。由于 go build 工具采用 GOARCH=arm64 作为参数,因此我不需要任何其他交叉编译工具来制作二进制文件。 # 运行构建
Unity Firebase iOS 构建未定义符号:_OBJC_CLASS_$_FIRApp
我正在尝试按照官方文档将 Firebase 集成到我的 iOS 平台 Unity 项目中。然而,当我尝试从 XCode 编译 Unity 版本时,我面临以下问题: 未定义
我一直在互联网上搜索在 MacOs 苹果硅芯片(基于 Arm 的处理器)中安装 sqlplus 的最佳方法。 请指导我一些最简单的方法来做到这一点。 我看到很多关于
我是 ARM NEON 内在函数的新手,正在查看它的文档。他们提供了一组很棒的示例,其中包括一个矩阵乘法示例,该示例使用他们的向量 FMA 指令...
无法在 Raspberry Pi 3 Model B 上分配 256TB 虚拟内存
出于教育目的,我正在计算可以在 Linux 上分配多少虚拟内存。在 x86_64 上,结果分配了 128TB 的虚拟内存,如文档中所示。但在...
如何使用内联汇编将ID_AA64MMFR1_EL1寄存器的内容读取到64位变量中?
这是此答案的后续问题。 我正在尝试使用内联汇编将 ID_AA64MMFR1_EL1 寄存器的内容读入 64 位变量: #包括 #包括 这是this答案的后续问题。 我正在尝试使用内联汇编将 ID_AA64MMFR1_EL1 寄存器的内容读取到 64 位变量中: #include <stdio.h> #include <stdint.h> #include <inttypes.h> int main(void) { uint64_t foo; __asm volatile("mov %0, ID_AA64MMFR1_EL1" : "=r"(foo) ::); printf("%"PRIx64"\n", foo); } 注意:我需要读取 ID_AA64MMFR1_EL1 才能知道 AFP 字段的值。 但是,汇编器拒绝此代码: $ gcc t1b.c /tmp/ccTDGH7d.s: Assembler messages: /tmp/ccTDGH7d.s:22: Error: undefined symbol ID_AA64MMFR1_EL1 used as an immediate value 一个简单的问题:如何正确做? 如果您的程序在 EL0 上运行,您应该使用 hwcaps 中提供的 HWCAP_CPUID API - 更多详细信息,请参阅本文 ARM64 CPU 功能寄存器。请参阅此处了解工作示例代码。 mov助记符仅用于在通用和/或 FP/SIMD 寄存器(x0-x30、xzr、sp、q0-q31)之间移动,以及将立即值移动到通用寄存器中。移入和移出系统寄存器分别使用 msr 和 mrs。所以在这里你想要 mrs 而不是 mov。 请注意,从您的标头来看,您似乎是在普通用户空间 C 程序中执行此操作。在典型的操作系统上,用户空间运行在异常级别 0 (EL0)。但ID_AA64MMFR1_EL1名称上的EL1标签表明它只能在EL1及更高版本(即内核模式)下读取。所以执行这条指令会陷入陷阱。 某些操作系统可能通过模拟指令来处理陷阱。我知道 Linux 对某些功能 ID 寄存器执行此操作,但不记得这是否是其中之一。但是,在这种情况下,返回到程序的值不一定等于硬件实际返回的值。例如,操作系统可以屏蔽它不想让您知道的功能位。 在其他操作系统上(例如 MacOS,如果我没记错的话),你的程序会因 SIGILL 而死掉。 通常,操作系统会提供其他类似这样的CPU特性查询机制。例如,Linux 有 /proc/cpuinfo,MacOS 有 sysctl。
AVD 管理器:AVD 模拟器进程已终止 | Android Studio 北极狐 2020.3.1 | MacOS 12 M1 芯片
AVD 管理器未启动模拟器,每当尝试启动模拟器时,它都会在屏幕截图中显示以下错误
在 macOS 上针对 ARM64 架构构建 SQLite.Interop.dll 和 System.Data.SQLite 时遇到问题
我在 macOS 上为 ARM64 架构 (M1 Mac) 构建 SQLite.Interop.dll 和 System.Data.SQLite 库时遇到困难。我正在使用带有 M1 芯片的 MacBook 并尝试构建...
在 aarch64 上使用 asm!("mov...") 编译错误
我正在 Mac/aarch64 上运行书中的代码示例,并收到编译错误。 fn 解引用(ptr: *const usize) -> usize { 让 mut res: 使用; 不安全{ asm!(“移动...
Rust:使用 asm 编译错误!("mov... 在 aarch64 上
我正在 Mac/aarch64 上运行书中的代码示例,并收到编译错误。 fn 解引用(ptr: *const usize) -> usize { 让 mut res: 使用; 不安全{ asm!(“移动...
如何在aarch64的gdb中获取系统寄存器tpidr_el0
我想调试gdb中的TLS变量(线程本地存储变量)。 对于 X86,我可以通过命令 print $fs_base 来获取 TCB。 对于aarch64,对应的寄存器是tpidr_el0。 但是...