问题标签 [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.
c - ARMv8 非法指令
我为 ARMv8 编写了以下程序集:
该函数permute
从一个常规 C 程序调用,其中两个字节指针长度为 128 作为输入。这编译得很好,但是当我运行它时,我得到Illegal instruction
. 如果我注释掉zip1
指令,它也运行良好。
关于可能出现什么问题以及如何进行Illegal instruction
一般调试的任何提示?
raspberry-pi3 - ARMv8 从 el3 更改为 el1 安全
我正在尝试从 el3 更改为 el1 安全,但我一直让处理器挂在某个地方。我的代码在 Cortex-A53(树莓派 3)上运行。目前我只能从 EL3 降到 EL2。
读核心:
有人能指出我这里可能有什么问题吗?
提前致谢
assembly - 在汇编ARMv8中符号扩展后逻辑左移丢失位
我正在使用符号扩展将 32 位变量更改为 64 位变量。但是,当我在 64 位变量上使用逻辑左移时,它会丢失位,就好像它仍然是 32 位一样。
我希望最终能够将所有内容从我的原始变量转移到 64 位变量的上侧。(0xFFFFFFFF00000000 是我期待的结果)
下面的代码显示了 8 位的移位,以演示丢失的位:
输出如下:
字值:0xffffffff 字扩展为 64 位:0x00000000ffffffff LSL:0x00000000ffffff00
我的代码中缺少什么以允许逻辑左移导致 0xFFFFFFFF00000000?
gcc - ARM legV8 程序接收信号 SIGSEGV,Segmentation fault
我最近在汇编(ARM legV8)中编写了这段代码,它使用递归来计算 64 位随机数之间的 gcd。首先,我使用 random() 生成 2 个随机数,然后检查它们是否是相对素数( gcd(num1,num2) == 1)。如果没有,则生成新号码。重复直到找到相对素数。random() 和 gcd() 函数工作正常(检查)。当我尝试在堆栈上存储更新的值时,我遇到了堆栈问题(分段错误)。我在第三次调用该行str x22,[x29,24]上的循环时遇到错误 这是我的代码:
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
assembly - 汇编子程序不返回
所以我正在使用子程序编写一个 ARMv8 汇编程序。我正在使用“bl”命令跳转到特定子程序并从其返回,但在子程序结束时它没有返回。
该程序还有更多内容我没有包括在内,但其余的一切都很好。基本上,它在 main 中运行 newPyr 子例程,完成后返回,然后运行 print 子例程。newPry 工作正常,但 print 不行。它将显示适当的消息,但是当它到达 ret 时,什么也没有发生。我对汇编和子程序很陌生。有任何想法吗?
debugging - (Armv8 汇编)如何修复打印语句?
调试以下代码时遇到问题:
printPyramid 标签中的 printf 语句会出现问题:也就是说,当以下行运行时:
第一个 printf 语句可以很好地打印出原点,输出“Pyramid first origin: (0, 0)”。
然而,第二个 printf 语句在参数中打印出一个随机的整数字符串,我不知道为什么会这样,因为我提供了与 w1、w2 中的参数相同的确切地址。
任何帮助将不胜感激。谢谢。
c - 汇编中的递归插入排序
我正在尝试在 Assembly ARMV-8A 中实现插入排序。更具体地说,我尝试在 C 中翻译以下代码:
我试图按原样翻译它,但我的实现在函数 loop_insertion 中进入无限循环,如调试器所示:
我做了一些修改,例如在 insert_loop 函数中加载和存储 n-2 的值,但这并没有做任何改变。
file - 从文件分段读取程序集
我正在尝试编写一个从文件“input.bin”读取并显示文件内容的程序。它正确读取文件并以应有的方式显示数据,但最终由于分段错误而崩溃。不知道发生了什么。输入包含数字 0.5 到 100,每次递增 0.5。它正确打印出来,然后在最后崩溃。