标签: arm

如何为ARM编译java程序?

我正在尝试从命令行交叉编译ARMv7目标的简单java示例.

我需要为交叉编译添加哪些javac选项?

这是在主机上编译的标准javac命令:

javac -d bin -sourcepath src src/TextPanel.java
Run Code Online (Sandbox Code Playgroud)

java arm javac armv7

0
推荐指数
1
解决办法
3626
查看次数

将32位ARM代码迁移到64位开发环境

我有一个基于GTK的ARM项目,历史上是在32位Ubuntu虚拟机上开发的.目前,我正在尝试将其迁移到新的64位Arch Linux开发盒.我不知道如何处理我所采取的两条路线所产生的错误.

如果我告诉链接器使用/ usr/lib,编译将停止告诉我

/usr/lib/librt.so: file not recognized: File format not recognized
Run Code Online (Sandbox Code Playgroud)

因此,假设这是一个32位vs 64位的问题,我将gcc指向/ usr/lib32并收到以下内容

/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/librt.so when searching for -lrt
/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/librt.a when searching for -lrt
/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/libpthread.so when searching for -lpthread
/usr/bin/arm-linux-gnueabi - ld: skipping incompatible /usr/lib32/libpthread.a when searching for -lpthread
/usr/bin/arm-linux-gnueabi - ld: cannot find -lz
/usr/bin/arm-linux-gnueabi - ld: cannot find -lsqlite3
/usr/bin/arm-linux-gnueabi - ld: cannot find -lusb-1.0
/usr/bin/arm-linux-gnueabi - ld: cannot find -lssl
Run Code Online (Sandbox Code Playgroud)

等等.我尝试从Arch存储库安装lib32-sqlite无济于事. …

c linux arm

0
推荐指数
1
解决办法
721
查看次数

是否有更适合CISC或RISC的算法或编程风格?

似乎两者都是出于各种原因使用,ARM用于功耗,x86用于扩展功能.

我仍然很好奇,因为我的计算机科学文化有点空洞,像x86(或其前辈)这样的CISC芯片的真正目的是什么.

如果他们使用RISC,我们的计算机会更好吗(例如,如果微软将其内核和工具链移植到RISC,如MIPS或ARM)?或者作为一项任务完成任务是不可能的?

我正在阅读CISC的目的是能够接近更高级别的语言,我觉得这很奇怪.英特尔和微软之间是否有交易专注于x86?

algorithm x86 arm processor mips

0
推荐指数
1
解决办法
152
查看次数

如何比较同一算法的两个实现?(通过检查他们的汇编代码)

假设我在汇编中有两个相同算法的实现.我想通过检查一个更快的两个代码片段代码来了解.

我认为可以考虑的参数是:操作码的数量,分支的数量,功能帧的数量.

我的问题是:

  1. 我可以假设每个操作码执行是一个周期吗?
  2. 打破管道的分支的开销是多少?
  3. 调用函数有什么影响和开销?
  4. ARM和x86之间的分析有区别吗?

问题是理论性的,因为我有两个实现; 一个130指令长,一个是184指令长.

我想知道130指令长片段是否比184指令长实现速度更快是否正确?

"更好= =更快"

algorithm optimization x86 assembly arm

0
推荐指数
2
解决办法
384
查看次数

解释ARM霓虹图像采样

我正在尝试编写一个更好的版本的OpenCV的cv :: resize(),我来了一个代码在这里:https://github.com/rmaz/NEON-Image-Downscaling/blob/master /ImageResize/BDPViewController.m 该代码用于将图像下采样2但我无法获得算法.我想首先将该算法转换为C然后尝试修改它以用于学习目的.是否也可以将其转换为任何尺寸的缩减示例?

功能是:

static void inline resizeRow(uint32_t *dst, uint32_t *src, uint32_t pixelsPerRow)
{
    const uint32_t * rowB = src + pixelsPerRow;

    // force the number of pixels per row to a multiple of 8
    pixelsPerRow = 8 * (pixelsPerRow / 8);

    __asm__ volatile("Lresizeloop: \n" // start loop
                     "vld1.32 {d0-d3}, [%1]! \n" // load 8 pixels from the top row
                     "vld1.32 {d4-d7}, [%2]! \n" // load 8 pixels from the bottom row
                     "vhadd.u8 q0, q0, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv arm computer-vision neon

0
推荐指数
1
解决办法
1552
查看次数

如何在ARM中实现ptrace

我发现ptrace将在__ptrace.S中使用__ptrace及其代码,如下所示:

ENTRY(__ptrace)
.save   {r4, r7}
stmfd   sp!, {r4, r7}
ldr     r7, =__NR_ptrace
swi     #0
ldmfd   sp!, {r4, r7}
movs    r0, r0
bxpl    lr
b       __set_syscall_errno
END(__ptrace)
Run Code Online (Sandbox Code Playgroud)

我不知道的是这个过程如何继续在swi#0和r7在这里做什么?

谢谢你的任何提示.

android arm

0
推荐指数
1
解决办法
2356
查看次数

使用pthreads裸机的交叉编译程序

好的,这可能是一个非常笼统的问题,但是我不熟悉该主题,也很高兴获得任何提示。

我有一个来自SoucereyCodeBench的ARM交叉编译工具链(arm-xilinx-linux-gnueabi-)。我交叉编译了一个使用编译器选项的库:-DSC_INCLUDE_FX -DSC_USE_PTHREADS -pthreads -fPIC -DPIC

因此,如果我想将库用于裸机程序,那么我会为裸机编译器(arm-xilinx-eabi-)需要pthreads吗?

否则我的程序可能首先不会运行或编译。那么可以为裸机编译pthread吗?

embedded arm bare-metal xilinx

0
推荐指数
1
解决办法
6022
查看次数

x86程序集和其他版本的程序集有什么区别?

我知道汇编程序语言有很多版本,例如x86,ARM,MIPS,Motorola等,它们可以在各种体系结构上运行。但是,为什么呢?组装如何工作?为什么不能在不同体系结构上使用一个版本的程序集。在最简单的层次上,我们当然只是在处理电流,那么为什么会有这种限制,这些架构甚至有什么不同?

此外,假设我想制作一个运行在自定义体系结构上的操作系统-这是我创建的。然后,我将不得不创建自己的汇编语言吗?创建操作系统是否需要汇编语言吗?

x86 assembly arm instruction-set cpu-architecture

0
推荐指数
1
解决办法
731
查看次数

关于手臂霓虹灯编译

我的一些代码引用了一个使用arm_neon.h的库; 当我尝试使用"模拟器"编译时,我收到了一堆错误.

我正在使用LLVM 4.2编译器,我该怎么做才能用arm neon编译它?

xcode arm neon ios

0
推荐指数
1
解决办法
1173
查看次数

有没有人知道如何使用Neon内在函数uint8x8_t vclt_s8(int8x8_t,int8x8_t)

我想比较2 int8x8_t,从http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html 我们可以得到描述vclt_s8,但它没有告诉我们太多的细节.

`uint8x8_t vclt_s8 (int8x8_t, int8x8_t)`
Run Code Online (Sandbox Code Playgroud)

预期指令的形式:vcgt.s8 d0,d0,d0

返回值uint8x8_t,它让我感到困惑,因为我无法 if(vclt_s8(a, b))决定第一个是否更小.

那么假设我们有两个int8x8_t:int8x8_t a而且int8x8_t b,我们怎么知道它是否a更小?

arm simd intrinsics neon

0
推荐指数
1
解决办法
1570
查看次数