Articles of arm

ARM的Android BSP(Source)示例

我正在寻找一个ARM处理器版本的Android BSP来为我的一个实验板移植它。 我在哪里下载这个?

为ARM构建的二进制文件能否在英特尔处理器上运行? 产品

使用NDK我为ARM处理器构建了二进制文件,但由于某些依赖关系,我无法为x86构建它们。 有没有机会在x86或MIPS架构上使用这个二进制文件?

NDK:如何构建一个lib,以便app可以在arm,s86,x86等上运行?

我之前从未使用过c ++ for android和NDK。 当我使用它 – 比如 – image processing时,我想确保应用程序可以在所有Android 2.2及更高版本的设备上运行。 当我为iPhone编写时,xcode为arm7和arm7s架构编译了2个二进制文件,并将它们打包到同一个包中。 现在我已经编写了一个示例NDK应用程序,它不想在我的Nexus 7上运行良好的x86 android模拟器上运行。我认为很明显应该是让它在arm和x86上运行的方式,但仍然可以找不到它。 有人知道吗? 谢谢!

无法写入ARM寄存器R4:function还是bug?

我最近在使用Assembly编程时遇到了ARM Cortex-A8的奇怪行为。 每当我将任何内容移入R4时,我的程序崩溃(下面的堆栈转储) 10-14 09:48:43.117: INFO/DEBUG(3048): Build fingerprint: ‘google/soju/crespo:2.3.6/GRK39F/189904:user/release-keys’ 10-14 09:48:43.121: INFO/DEBUG(3048): pid: 7082, tid: 7082 >>> neontests <<< 10-14 09:48:43.121: INFO/DEBUG(3048): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000001 10-14 09:48:43.125: INFO/DEBUG(3048): r0 00000001 r1 afa025b6 r2 00000000 r3 bec77051 10-14 09:48:43.128: INFO/DEBUG(3048): r4 00000001 r5 bec7704c r6 00000001 r7 00000004 10-14 09:48:43.128: […]

Android OS仅用于ARM CPU吗?

如果没有,Android的APK文件可以在ARM CPU或非ARM CPU上运行吗? 抱歉我的英语不好。

PANIC:缺少’arm’CPUS的模拟器引擎程序

我得到了与下面链接中提到的相同的问题。但是这个问题已被搁置,我仍在寻求解决方案。 https://stackoverflow.com/questions/27146511/panic-missing-emulator-engine-program-for-arm-cpus-eclipse 所以我想提出这个问题并在这里问一下。 直到昨天,模拟器工作正常。 但是从今天起,我在尝试打开模拟器时收到以下错误 PANIC: Missing emulator engine program for ‘arm’ CPUS 我的AVD: 这是我收到的错误: 我已经通过SDK Manager更新并安装了组件,我甚至尝试重启eclipse和我的电脑。 我尝试创建新的AVD但这里没有任何作用。 先谢谢你。

如何使用ARM NEON优化循环4D矩阵向量乘法?

我正在使用ARM NEON Assembler优化4D(128位)矩阵向量乘法。 如果我将矩阵和矢量加载到NEON寄存器并对其进行转换,我将无法获得极佳的性能提升,因为切换到NEON寄存器需要20个周期。 此外,我为每次乘法重新加载矩阵,尽管它没有改变。 有足够的寄存器空间可以在更多的向量上执行转换。 这是在提高性能。 但.. 我想知道如果我在汇编程序中对所有顶点(增加指针)进行循环,这个操作会有多快。 但我现在处于霓虹汇编程序的最开始,虽然不知道如何做到这一点。 有人能帮我一把吗? 我想要实现的目标: 加载矩阵和第一个向量 存储循环计数“计数”和.. – LOOP_START – 执行乘法 – 添加(执行转换) 将q0写入vOut 将指针vIn和vOut增加4(128位) LOAD vIn到q5。 – LOOP_END – 现有的C版循环: void TransformVertices(ESMatrix* m, GLfloat* vertices, GLfloat* normals, int count) { GLfloat* pVertex = vertices; int i; // iterate trough vertices only one at a time for (i […]

如何在linux内核中定义和触发我自己的新softirq?

我想在linux内核中创建自己的softirq。 这是正确的方法: 在模块的init中,我想触发softirq ,我将添加一个调用: 394 void open_softirq(int nr, void (*action)(struct softirq_action *)) 395 { 396 softirq_vec[nr].action = action; 397 } 在片段中我想提高softirq我将添加一个对raise_softirq函数的调用: 379 void raise_softirq(unsigned int nr) 380 { 381 unsigned long flags; 382 383 local_irq_save(flags); 384 raise_softirq_irqoff(nr); 385 local_irq_restore(flags); 386 } 并添加我的新softirq : 411 /* PLEASE, avoid to allocate new softirqs, if you need not […]

使用Android NDK使用-fsigned-char构建是否安全?

为了与其他平台保持一致,我需要在我正在使用的一些本机代码中使用signed char 。 但默认情况下,Android NDK上的chartypes是unsigned 。 我曾尝试显式使用signed chartypes,但是当涉及字符串常量/库函数时,它会产生太多differ in signedness警告,因此我希望使用-fsigned-char构建我的代码。 我现在正试图在使用-fsigned-char时预测Android ARM ABI和API的问题,但我还没有发现任何问题。 在ARM体系结构的过程调用标准ABI(AAPCS) ,7.1.1算术types和ARM体系结构的C库ABI ,5.6 inttypes.h中, char被认为是unsigned 。 在Android NDK中启用-fsigned-char时,您是否知道在使用C库(Android上可用的其他库)时是否会出现问题?

ARM组件回溯PC偏移

ARM手册提到: 在执行期间,PC不包含当前正在执行的指令的地址。 当前正在执行的指令的地址通常是ARM的PC-8或Thumb的PC-4。 这是否也适用于崩溃回溯中的PC值? 例如,如果我有以下backtrace(来自使用ARM指令的Android armv7设备): libSomeLib.so!SomeClass::someMethod [someFile.cpp : 638 + 0x4] r0 = 0x00000001 r1 = 0xffffffff r2 = 0x00000000 r3 = 0xd4fcd71c r4 = 0xd39b9284 r5 = 0xd39b927c r6 = 0xd39b9278 r7 = 0xc7025520 r8 = 0xc5e1d7b0 r9 = 0xe01136a8 r10 = 0x00000012 r12 = 0xd39b9268 fp = 0xd39b92d4 sp = 0xd39b9268 lr […]