Articles of arm

适用于Python和Java的Android Tablet IDE

是否有任何基于ARM的Android平板电脑编程环境(IDE)未被模拟? (最好是Python或Java) 平板电脑正在成为学校中更受欢迎的器具,稳定的环境将在计算机科学计划中发挥作用。

Android ARMv6 / v7和VFP / NEON

我想了解更多Android手机上使用的CPU。 原因是我们正在构建C库,它具有我们可以设置的某些CPU /数学处理器架构标志。 到目前为止,我们发现所有Android设备的CPU都是ARM设计,并且是ARMv6 (旧设备,低端,华为,中兴,小型SE)或ARMv7 (Honeycomb平板电脑和所有更昂贵的设备,几乎都具有WVGA和更高的分辨率)我检查了~20台设备,并且都有这种types的处理器。 那是对的吗? 还有其他人吗? 现在谈到多媒体和数学运算时,我认为两个单元很重要 – 用于浮点运算的VFP和SIMD- NEON 。 在测试了上面提到的一组设备后,我发现几乎所有设备都支持VFP,而NEON则不支持。 对此有何评论? 我不知道ARMv6和ARMv7的区别究竟是什么(除了速度之外)。 现在我们正在构建一个多媒体C库,它有几个用于构建的标志。 我的问题是如何在一侧定位最大数量的设备以及如何允许更好设备的用户使用他们的硬件。 我的建议是准备3个不同的版本:ARMv6 / VFP,ARMv7 / VFP和ARMv7 / VFP / NEON。 其他提案? 我认为ARMv6 / VFP应该在所有配置上运行,除了缺少VFP的设备(例如旧的HTC Wildfire) – 但这些仍然不受支持。 这是一个好方法吗? 欢迎提出任何意见。 此致,STeN

Android NDK使用哪种编译器?

我正在为Android应用程序编写基于ARM NEON的代码,而我正在努力解决某些编译器标志无法识别的问题。 我后来意识到这些标志的支持最近才添加,而且我的GCC版本更旧了。 我正在Windows上做整件事,并受到Cygwin提供的版本的限制。 这是我的问题:在我尝试在我的Windows机器上构建GCC 4.6.0并让Cygwin喜欢它之前,它会对我有用还是NDK使用自己版本的GCC,我的升级根本不会影响它? 如果是,是否可以告诉它使用不同的编译器?

是否可以将LLVM库编译为android / ARM

我对Pure代数/函数语言着迷。 Pure解释器使用LLVM JIT编译器作为其后端。 我想编译 Pure以便它在Android(ARM)上运行。 Pure依赖于LLVM JIT。 所以我需要为Pure运行编译LLVM源代码。 是否可以为Android(ARM)设备编译LLVM 源 ? 网上似乎没有关于此的信息。 也许我的搜索条件有误。 搜索Android LLVM也没有带来很多好的点击。

如何使用一个应用程序制作嵌入式Android操作系统?

我想在Android(ARM)上构建我自己的嵌入式系统,只使用Android发行版但没有启动器的设备。 要么 我希望启动Android,我的应用程序在顶部启动,并拒绝关闭它并从我的应用程序关闭Android。

arm64和aarch64之间的差异

我有两个“解锁”设备,一个iPad mini 3和一个Galaxy Edge 6,它们都有一个终端和一组简单的unix命令。 我认为这两款设备都配备了arm64处理器,但是当我运行时 uname -a 在两台设备上我都得到了以下内容: 对于iPad mini 3: xxxxs-iPad:/var/mobile root# uname -a Darwin xxxx-iPad 14.0.0 Darwin Kernel Version 14.0.0: Wed Jun 24 00:50:15 PDT 2015; root:xnu-2784.30.7-30/RELEASE_ARM64_S5L8960X iPad4, **arm64**, J85mAP 对于三星Galaxy s6 Edge: u0_a203@zerolte:/ $ uname -a Linux localhost 3.10.61-4497415 #1 SMP PREEMPT Thu Apr 9 15:06:40 KST 2015 **aarch64** GNU/Linux 如果我没有错,那么J85mAP和GNU […]

想要编译本机Android二进制文件我可以在手机终端上运行

我已经尝试了几天来编译一个本机ARM Android二进制文件,它将使用终端应用程序在我的手机上执行。 我想生成与手机上安装的标准Posix二进制文件相同types的二进制文件,如ls,mkdir等。我已经在Mac OS X下载了Android NDK,并且能够无错误地编译简单的ELF二进制文件。 但是,当我将它们转移到手机时,它们总是会出现段错误。 也就是说,在GCC中使用-static编译时会出现段错误。 如果我不使用-static,他们会抱怨没有链接等等。简单地说,它们不起作用。 我的假设是它们没有正确链接到Android标准C库。 即使我将我的二进制文件与NDK提供的libc链接,它们仍然无法正常工作。 我读到Android使用Bionic C库,并试图为它下载源代码,但我不确定如何从它构建一个库(它似乎是所有ARM程序集)。 手机上的Android C库是否与Android NDK提供的库不同? 包含在NDK中的那个不允许我编译我可以通过终端执行的本机二进制文件吗? 非常感谢任何指导! 更新: 我终于在Mac OS X上使用GCC 4.7.0了解它。我下载了Bionic标头,然后使用Android NDK附带的C库编译了一个动态链接的二进制文件。 我能够使用手机的C lib(二进制为33K)获得一个测试应用程序在手机上工作。 我还尝试静态链接NDK的C库,这也有效。 为了使这一切工作,我必须将-nostdlib传递给GCC,然后手动将crtbegin_dynamic.o和crtend_android.o添加到GCC的命令行。 它的工作原理如下: $CC \ $NDK_PATH/usr/lib/crtbegin_dynamic.o \ hello.c -o hello \ $CFLAGS \ $NDK_PATH/usr/lib/crtend_android.o 对于静态二进制文件,请使用“crtbegin_static.o”。 这在crtbegin_dynamic.S / crtbegin_static.S源中进行了解释。 对于这个实验,我只使用普通的’ol GCC 4.7.0和Binutils 2.22。 我还使用newlib编译了GCC,但我实际上并没有将我的ARM二进制文件与newlib链接起来。 我强迫GCC / ld直接链接到随Android NDK提供的libc,或者在动态二进制文件的情况下,链接到手机上的libc。

如何获得Android本机代码中的高分辨率定时器?

我正在寻找一种方法来获得Android上的高分辨率定时器(时钟源)。 这必须在本地代码,并可能是相当不便携的。 我想微秒的分辨率,或更好。 对于我的特殊应用,分辨率比精度更重要,而单调的计时器是最好的。 我已经使用Android 4.0.3在特定的ARMv7芯片组上进行了testing。 我到目前为止所尝试的是: clock_gettime(CLOCK_MONOTONIC) :在目标硬件上以1ms为单位递增( EDIT最初由于我的代码中的错误而被认为是10ms,1ms是正确的,但还不是很好) gettimeofday() :类似于clock_gettime 我还没有尝试过: System.nanoTime() :这不是本地的。 我相信这是基于clock_gettime(),但是我更愿意找出底层的东西,直接使用它。 /dev/rtc 某种ARM指令/工具,可能是SysTick ( http://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARMv7-M_ARM.pdf )或通用计时器(GPT)。 另见(相关问题,但不回答): Android JNI中的高精度定时器 在Android上获得高精度定时

gradle + ndkbuild + android studio 2.2如何设置支持的ABI?

我想使用Android Studio与ndkbuild集成。 我的“本地”项目的一部分只为armeabi-v7a-hard和x86构build,并且如果我只是在jni目录中运行ndk-build ,那么所有的工作都很好。 我在Application.mk有适当的行: APP_ABI := armeabi-v7a-hard x86 要将项目整合到android studio中,我将这些行添加到build.gradle : externalNativeBuild { ndkBuild { path 'src/lib/jni/Android.mk' } } 但由于某些原因, gradle build尝试使用APP_ABI=armeabi构build本机代码并失败,因为我的代码只能用armeabi-v7a-hard构build。 那么如何才能告诉gradle只为armeabi-v7a-hard和x86构build我的代码,或者只是不忽略来自Application.mk APP_ABI行? 我尝试这样的变体: defaultConfig { ndk { abiFilters 'x86', 'armeabi-v7a-hard' } } 但是gradle没有这样的信息: ABIs [armeabi-v7a-hard]不适用于平台,将被排除在build筑和包装之外。 可用的ABI是[armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,mips,mips64]。 请注意,我使用ndk 10,而不是最后一个(ndk 13),其中有armeabi-v7a-hard和ndk.dir在local.properties到正确的值。

Android CPU ARM架构

我们有一个Android的CPU相关的代码,我想看看有多less客户使用的设备是ARMv6 / ARMv7,如果还有ARM v5,有多lessARMv6有VFP,什么是Tegra或Neon百分比。 任何提示可以find这样的统计信息? BR STeN