arm相关内容

ARM Assembly SOS 中的 64 位除法

我正在计算 16 个 64 位数字相加的平均值,我认为我已经正确完成了所有的加法,但现在我需要弄清楚如何将 64 位数字除以 16,我被卡住了!任何帮助都会非常感谢你.到目前为止,这是我的代码. tableSize EQU 16总和 EQU 0x40000000平均 EQU 0x40000008MOV r8,#14ADR r0,表LDR r9, = 总和LDR r10,=平均值LDR r1, [ ..
发布时间:2021-11-25 06:57:03 C#

ARM AArch64 堆栈管理

ARMv8 是否没有 64 位堆栈的能力?我知道 AArch64 上没有推送和弹出指令,因此堆栈管理是否留给 AArch32 进行参数传递等?我们如何传递 48 位地址?我对在 AArch64 中运行时函数调用的工作方式感到困惑. 解决方案 很像 32 位*,SP 是 任何加载/存储指令,所以机制并没有什么不同.不同的是,SP 不再是一个通用寄存器,你可以随心所欲,不再有变量加载/存储多个 ..
发布时间:2021-11-25 05:42:14 C#

在预处理器中检测 ARM-64?

根据微软 (这里 和此处),该公司将在即将发布的 Windows 10 版本中支持 ARMv8/Aarch64 (ARM-64).此外,微软还有 已经提供了预览,所以我猜工具支持已经到位. 对于那些不知道的人,文章提供的图片清楚地显示了高通骁龙 410.这是一个 A-53 内核,它的 Aarch64/ARM-64. Microsoft 为 ARM-32 定义了 _M_ARM,我们目前使 ..
发布时间:2021-11-25 05:38:34 C#

我怎样才能让 ARM MULL 指令在 gcc 的 uint64_t 中产生它的输出?

我想在 c99 代码库中引入一些汇编代码.我想用ARM CPU的UMULL指令乘以2个uint32_t,结果马上变成uint64_t. 现在 uint64_t 需要 2 个寄存器,那么如何指定 asm 块的输出和约束? 解决方案 好问题! 以下代码使用 GCC -O 或更高版本输出您想要的内容,而无需求助于汇编程序:uint32_t a, b;uint64_t c;...c = ..
发布时间:2021-11-25 00:16:20 C#

ARM Assembly SOS 中的 64 位除法

我正在计算 16 个 64 位数字相加的平均值,我认为我已经正确完成了所有的加法,但现在我需要弄清楚如何将 64 位数字除以 16,我被卡住了!任何帮助都会非常感谢你.到目前为止,这是我的代码. tableSize EQU 16总和 EQU 0x40000000平均 EQU 0x40000008MOV r8,#14ADR r0,表LDR r9, = 总和LDR r10,=平均值LDR r1, [ ..
发布时间:2021-11-25 00:11:52 C#

如何修复“分段错误"?运行“dotnet"时出错在 RasPi 上命令?

我正在尝试在我的旧 Raspberry Pi B+ 第一代上安装“.NET Core 3.0"运行时,但由于运行 的 分段错误,我无法运行它dotnet 命令. 首先,我使用的是 arm32 版本的二进制文件,在屏幕会话上运行所有命令(根本不应该出现问题),运行 Raspbian buster lite 操作系统,并使用 RasPi 作为 lite 的微服务器-加载开发目的.这是为了提供一些 ..
发布时间:2021-11-24 20:37:44 C#

ARM Chromebook 上的 Android 开发环境?

我曾多次尝试在 Android Studio 上安装和使用 a href="https://archlinuxarm.org/platforms/armv7/rockchip/asus-chromebook-flip-c100p" rel="nofollow noreferrer">ARM Chromebook (C100P),但安装总是失败并显示无法运行 mksdcard 工具 错误.我读到这是 ..
发布时间:2021-11-21 21:08:19 Android

Android Studio:缺少条带工具

我在使用终端命令gradle clean assembleRelease构建我的android studio代码时不断收到这个警告: 由于缺少 ABI 'ARMEABI' 的剥离工具,无法剥离库 'lib.so'.按原样打包. 请帮助我解决此警告. 注意:我知道这不会影响我的应用程序的行为,但是我的 APK 太大了,这肯定会帮助我减少 APK 的大小.所以我需要解决这个问题. ..
发布时间:2021-11-21 20:27:31 Android

在 Android Studio 上使用 ARM64-v8a 的汇编语言

我正在 ARM64-v8a 上使用 Android studio 构建一个 Android 应用程序,它可以要求汇编函数.网上查了很多资料,还是解决不了这个问题. 我的CMakeList.txt如下: cmake_minimum_required(VERSION 3.4.1)enable_language(ASM)设置(can_use_assembler 真)设置(CMAKE_VERBOS ..
发布时间:2021-11-21 20:20:14 Android

切换实现;手臂;汇编器;aarch64;arm64

我对在 aarch64 汇编器上实现“switch"运算符的方法很感兴趣.在 arm32 平台上,我使用了类似 ldr pc, [pc, ta, LSL#2]nop//对齐.int .L.case1.int .L.case2....int .L.caseN 但由于 64 位版本对 'pc' 寄存器的使用有很多限制,这样的实现不再起作用. 似乎最简单的方法是使用对比较和分支操作,如 c ..
发布时间:2021-11-17 22:48:05 其他开发

AArch64 上 sqrt 函数的性能

出于学术原因,我将在 AArch64 上测试 sqrt 函数的性能.单浮点sqrtf函数的代码: fsqrt s0, s0退 双浮点sqrt函数的代码: fsqrt d0, d0退 我指的是此处 FSQRT 的理论延迟:http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Software_Optimiza ..
发布时间:2021-11-17 22:47:56 其他开发

了解 ARM 重定位(例如:str x0, [tmp, #:lo12:zbi_paddr])

我在 锆石内核启动.S str x0, [tmp, #:lo12:zbi_paddr] 用于 ARM64.我还发现 zbi_paddr 是在 C++ 中定义的: extern paddr_t zbi_paddr; 所以我开始研究 #:lo12: 是什么意思. 我发现 https://stackoverflow.com/a/38608738/6655884 看起来不错,但是它没有解释最 ..
发布时间:2021-11-17 22:47:11 其他开发

Linaro g++ aarch64 编译导致未对齐错误

我使用 linaro g++ for ARM arch64 来编译一个简单的 cpp 文件: int main(){char *helloMain = "主模块 (crm.c)";长期教职员工,人数 = 12;int 停止,mainLoop = 1;字符字[80] = "";} 经过objdump生成的elf文件,我得到了它的asm代码: 0000000000001270 :int main ..
发布时间:2021-11-17 22:46:53 其他开发

将 ARM NEON 代码移植到 AARCH64,很多问题

我正在将一些 ARM NEON 代码移植到 64 位 ARM-v8,但我找不到关于它的好的文档. 很多功能好像都没有了,同样的功能不使用也不知道怎么实现. 所以,一般的问题是:我在哪里可以找到新 SIMD 实现的完整参考,包括如何执行许多 ARM-NEON 教程中解释的相同简单任务的说明? 关于特定功能的一些问题: 1 - 如何在 Dx 寄存器的所有通道中加载值?旧代码是 ..
发布时间:2021-11-17 22:46:45 其他开发

可以从 EL0 刷新 arm64 缓存吗?

我正在阅读一篇学术论文,其中指出“ARM 架构还包括驱逐缓存行的指令.但是,这些指令只能在处理器处于提升特权模式时使用." 这是真的吗?我一直在搜索 ARM 文档,但在“ARM Cortex-A 系列程序员指南 for ARMv8-A"第 11.5 章 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/B ..
发布时间:2021-11-17 22:46:42 其他开发

Aarch64 上同时存在不同大小的页面

根据架构概览文档 Aarch64 支持 4k 和 64k 页面.一些 CPU 还支持 16k 页.查看地址转换方案的详细信息,我得出的结论是,此类 CPU 不支持同时存在不同大小的页面(与 x86_64 不同,它允许这样做).我说得对吗? 解决方案 您将两种不同但相关的事物混为一谈 - 页面大小与粒度. 在 AArch64 中,您有 3 种可能的翻译粒度可供选择,每一种都会产生一组不 ..
发布时间:2021-11-17 22:46:39 其他开发

ARM STLR 内存排序语义

我正在为 ARM STLR 的确切语义而苦苦挣扎. 根据文档,它具有发布语义.所以如果你有 STLR 存储,你会得到: [StoreStore][LoadStore]X=r1 其中 X 是内存,r1 是一些寄存器. 问题在于发布存储和获取加载,无法提供顺序一致性: [StoreStore][LoadStore]X=r1r2=Y[加载加载][加载存储] 在上述情况下,允许重新排序 ..
发布时间:2021-11-17 22:46:36 其他开发

ARMv8 - 在 64 位操作系统上运行传统的 32 位应用程序

通过阅读 ARMv8 手册,我有以下问题可以帮助理解大局. 可以使用旧版 32 位应用程序.(ARMv7 或更早版本)在 ARMv8 操作系统上按原样运行? 如果遗留应用程序需要为 ARMv8 重建并假设我将应用程序重建为 32 位 (Aarch32),这是否需要 32 位操作系统底层支持?(了解这里的寻址机制如何工作很有趣.) 请尽可能提供参考. PS:我的目标是支持 A ..
发布时间:2021-11-17 22:46:19 其他开发

在 aarch64 上运行 32 位精灵

我已经在 qemu 64 位 ARM 上安装了 Debian (遵循本教程) uname -a Linux 测试 4.9.0-7-arm64 #1 SMP Debian 4.9.110-1 (2018-07-05) aarch64 GNU/Linux 我正在尝试在其上运行 32 位 elf 文件,但有些工作不能: bash: ./file_2: 无法执行二进制文件:Exec 格式错 ..
发布时间:2021-11-17 22:45:46 其他开发

使用单个 aarch64 指令获取余数?

我正在为 ARM8 (aarch64) 编写一些汇编代码.我想做一个除法并使用获得的余数进行进一步计算.在 x86 中,当我使用'div',我知道我的剩余部分保存在 RDX 中.我的问题是 - 是否有与 aarch64 指令集中相同的指令?我知道 'udiv' 和 'sdiv' 做无符号和有符号的除法,并得到商数.是否有一条指令可以给我余数?(我想要 c 中的 % 模运算符).我知道我可以使用代数 ..
发布时间:2021-11-17 22:45:38 其他开发