问题标签 [armv8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
466 浏览

c - ARMv8 非法指令

我为 ARMv8 编写了以下程序集:

该函数permute从一个常规 C 程序调用,其中两个字节指针长度为 128 作为输入。这编译得很好,但是当我运行它时,我得到Illegal instruction. 如果我注释掉zip1指令,它也运行良好。

关于可能出现什么问题以及如何进行Illegal instruction一般调试的任何提示?

0 投票
1 回答
1756 浏览

raspberry-pi3 - ARMv8 从 el3 更改为 el1 安全

我正在尝试从 el3 更改为 el1 安全,但我一直让处理器挂在某个地方。我的代码在 Cortex-A53(树莓派 3)上运行。目前我只能从 EL3 降到 EL2。

读核心:

有人能指出我这里可能有什么问题吗?

提前致谢

0 投票
1 回答
224 浏览

assembly - 在汇编ARMv8中符号扩展后逻辑左移丢失位

我正在使用符号扩展将 32 位变量更改为 64 位变量。但是,当我在 64 位变量上使用逻辑左移时,它会丢失位,就好像它仍然是 32 位一样。

我希望最终能够将所有内容从我的原始变量转移到 64 位变量的上侧。(0xFFFFFFFF00000000 是我期待的结果)

下面的代码显示了 8 位的移位,以演示丢失的位:

输出如下:

字值:0xffffffff 字扩展为 64 位:0x00000000ffffffff LSL:0x00000000ffffff00

我的代码中缺少什么以允许逻辑左移导致 0xFFFFFFFF00000000?

0 投票
0 回答
779 浏览

gcc - ARM legV8 程序接收信号 SIGSEGV,Segmentation fault

我最近在汇编(ARM legV8)中编写了这段代码,它使用递归来计算 64 位随机数之间的 gcd。首先,我使用 random() 生成 2 个随机数,然后检查它们是否是相对素数( gcd(num1,num2) == 1)。如果没有,则生成新号码。重复直到找到相对素数。random() 和 gcd() 函数工作正常(检查)。当我尝试在堆栈上存储更新的值时,我遇到了堆栈问题(分段错误)。我在第三次调用该行str x22,[x29,24]上的循环时遇到错误 这是我的代码:

0 投票
1 回答
267 浏览

data-distribution-service - Connext DDS Pro 是否支持 Nvidia Jetson TX2?

我在我的项目中使用带有 Ubuntu 16.04 aarch64 的 Nvidia Jetson TX2。我需要使用在 Windows x86 或 x64 上运行的 Connext DDS Pro v5.2 从其他系统订阅数据。

但是 RTI Connext DDS Pro 没有提供官方的 ARMv8 ubuntu 预构建包,并且从“RTI_Connext...PlatformNotes.pdf”手册中,也没有对 ARMv8 的支持。

是否可以通过从源代码构建来支持 ARMv8 CPU?

TX2的CPU信息如下:

nvidia@tegra-ubuntu:~$ lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 6 On-line CPU(s) list: 0,3-5 Off-line CPU(s) list: 1,2 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 Model name: ARMv8 Processor rev 3 (v8l) CPU max MHz: 2035.2000 CPU min MHz: 345.6000 L1d cache: 32K L1i cache: 48K L2 cache: 2048K gcc信息:

nvidia@tegra-ubuntu:~$ gcc --version gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

0 投票
1 回答
539 浏览

assembly - 汇编子程序不返回

所以我正在使用子程序编写一个 ARMv8 汇编程序。我正在使用“bl”命令跳转到特定子程序并从其返回,但在子程序结束时它没有返回。

该程序还有更多内容我没有包括在内,但其余的一切都很好。基本上,它在 main 中运行 newPyr 子例程,完成后返回,然后运行 ​​print 子例程。newPry 工作正常,但 print 不行。它将显示适当的消息,但是当它到达 ret 时,什么也没有发生。我对汇编和子程序很陌生。有任何想法吗?

0 投票
0 回答
384 浏览

debugging - (Armv8 汇编)如何修复打印语句?

调试以下代码时遇到问题:

printPyramid 标签中的 printf 语句会出现问题:也就是说,当以下行运行时:

第一个 printf 语句可以很好地打印出原点,输出“Pyramid first origin: (0, 0)”。

然而,第二个 printf 语句在参数中打印出一个随机的整数字符串,我不知道为什么会这样,因为我提供了与 w1、w2 中的参数相同的确切地址。

任何帮助将不胜感激。谢谢。

0 投票
1 回答
301 浏览

c - 汇编中的递归插入排序

我正在尝试在 Assembly ARMV-8A 中实现插入排序。更具体地说,我尝试在 C 中翻译以下代码:

我试图按原样翻译它,但我的实现在函数 loop_insertion 中进入无限循环,如调试器所示:

我做了一些修改,例如在 insert_loop 函数中加载和存储 n-2 的值,但这并没有做任何改变。

0 投票
0 回答
80 浏览

java - 解决 armv8 中的数独问题,该数独打印数字直到 13 而不是 9

下面是我试图转换成 armv8 的 java 代码。他的 armv8 代码是我的工作。它似乎不能正常工作,因为它目前使用 1 到 13 的数字,而数独应该只使用数字 1-9。

我有一个静态表,它用 1 到 9 的随机数和一些零初始化。当程序正在玩游戏时,应该替换这些零。

我创建的汇编代码版本:

数独的结果:

在此处输入图像描述

0 投票
0 回答
76 浏览

file - 从文件分段读取程序集

我正在尝试编写一个从文件“input.bin”读取并显示文件内容的程序。它正确读取文件并以应有的方式显示数据,但最终由于分段错误而崩溃。不知道发生了什么。输入包含数字 0.5 到 100,每次递增 0.5。它正确打印出来,然后在最后崩溃。