问题标签 [cortex-a8]

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 投票
1 回答
3231 浏览

arm - ARM和NEON可以并行工作吗?

这是参考问题: Intrinsics 中 Neon 的校验和代码实现

打开链接中列出的子问题作为单独的单独问题。由于多个问题不应作为单线程的一部分提出。

无论如何来这个问题:

ARMNEON(就 arm cortex-a8 架构而言)实际上可以并行工作吗?我怎样才能做到这一点?

有人可以指点我或分享一些使用ARM-NEON的互操作的示例实现(伪代码/算法/代码,而不是理论实现论文或演讲)吗?(使用内在函数或 inline-asm 实现都可以。)

0 投票
2 回答
550 浏览

embedded - ARM-NEON 如何同步?

就 ARM Cortex-A8 而言,当 NEON 执行其指令时,ARM 模块是等待还是继续其操作?这种同步是如何实现的?如果 ARM 和 NEON 处理相同的数据/代码段,ARM 和 NEON 内核如何同步?

0 投票
2 回答
7095 浏览

embedded - 哪个更好,gcc 或 armcc 用于 NEON 优化?

在此处参考@auselen 的答案:使用 ARM NEON 内在函数添加 alpha 和 permute,看起来 armcc 编译器比 gcc 编译器的 NEON 优化要好得多。这是真的吗?我还没有真正尝试过 armcc 编译器。但是我使用带有 -O3 优化标志的 gcc 编译器得到了相当优化的代码。但是现在我想知道armcc是否真的那么好?那么,考虑到所有因素,这两个编译器哪个更好?

0 投票
1 回答
943 浏览

linux - 为 iMX.53 交叉编译的 DirectFB - 启动时崩溃

试图让一个工作的 directfb 用于基于运行 Linux 2.6.35.3(由飞思卡尔提供)的 i.MX53 处理器(这是一个 ARM Cortex-A8 内核)的嵌入式系统。

我在 i686 debian 主机系统上安装了一个交叉编译器。交叉编译器来自 embedian.org 存档,是 gcc-4.3-arm-linux-gnueabi 包 ( arm-linux-gnueabi-gcc (Debian 4.3.2-1.1) 4.3.2)。这是随 glibc 2.7 提供的。这是与我的目标系统上的版本不同的版本,即 glibc 2.11,尽管我的阅读表明它们应该是兼容的。

在对系统映像上已经存在的库进行了大量实验之后,我成功地编译了 directfb 1.6.2。由于我没有已安装的库的工作 pkg-config 信息这一事实使情况变得复杂,但我最终设法说服它使用以下配置命令行进行编译:

这成功构建,我可以基于http://directfb.org/docs/DirectFB_Tutorials/simple.html上的简单教程应用程序编译和链接示例应用程序- 不幸的是,当在目标系统上运行时,应用程序崩溃SIGSEGV。directfb 中包含的一些工具也是如此,例如 dfbinfo。

这是我的测试应用程序崩溃的堆栈跟踪(使用命令行参数“--dfb:fbdev=/dev/fb0”运行时):

作为参考,在崩溃之前在应用程序中执行的唯一与directfb相关的代码是直接从教程代码中复制的:

这是直接从我的 main 函数调用的,传递原始未修改的 argc 和 argv。

我已经在目标系统上的 /usr/local/lib 和 /usr/local/bin 中的二进制文件中安装了 directfb 库,并创建了 /usr/local/share/directfb-1.6.2(包含 cursor.dat 和 decker.dgiff ) 以及文档中建议的 /etc/fb.modes 。

关于我做错了什么有什么建议吗?

0 投票
3 回答
4663 浏览

arm - Beaglebone 上的 Jazelle

我需要在我的 Beaglebone 上的 Linux 上运行 Java 应用程序。我知道 ARM 内核确实支持 Jazelle 技术以在硬件中执行 Java 字节码。无论如何,我不清楚利用这项技术需要什么。我需要以某种方式“激活” Jazelle 吗?我需要一个能识别 Jazelle 的 Java 虚拟机吗?部署和运行利用 Jazelle 技术的 Java 软件的流程是什么?使用 Jazelle 是否需要许可证?

谢谢。

0 投票
3 回答
2702 浏览

linux - NEON 进行操作时,ARM 是否处于空闲状态?

可能看起来类似于:ARM 和 NEON 可以并行工作吗?,但不是,我还有其他问题(我的理解可能有问题):

在协议栈中,当我们计算校验和时,这是在 GPP 上完成的,我现在将该任务作为函数的一部分交给 NEON:

这是我作为 NEON 的一部分编写的校验和函数,发布在 Stack Overflow:Intrinsics 中 Neon 的校验和代码实现

现在,假设从 linux 调用这个函数,

在这种情况下.. 当 NEON 进行计算时,ARM 会发生什么?ARM 闲着吗?还是继续进行其他操作?

如您所见, do_csum 被调用,我们正在等待该结果(或者这就是它的样子)..

笔记:

  1. 说到Cortex-A8
  2. 从链接中可以看到 do_csum 是用内在函数编码的
  3. 使用 gnu 工具链编译
  4. 如果您还采用多线程或任何其他涉及或在这些交互操作发生时出现的概念,那将会很好。

问题:

  1. NEON 进行操作时,ARM 是否处于空闲状态?(在这种特殊情况下)
  2. 还是搁置当前与 ip_csum 相关的代码,并占用另一个进程/线程直到 NEON 完成?(我对这里发生的事情几乎一无所知)
  3. 如果它闲置,我们怎样才能让 ARM 在其他事情上工作,直到 NEON 完成?
0 投票
1 回答
3989 浏览

arm - ARM Cortex-A8 流水线是 13 级还是 14 级?

如果您在 ARM演示文稿中看到这个流行的 ARM Cortex-A8 流水线图。很明显,取指令阶段需要 3 个周期,但第一个周期有点折扣。但为什么?有什么想法吗?

谢谢...

在此处输入图像描述

0 投票
1 回答
991 浏览

arm - PLD指令的使用

我对 ARM cortex A8 中 PLD 指令的使用有一些疑问。当我在循环内使用指令时,可能会出现超出范围的内存访问。我怀疑这是否会导致分段错误。我在ARM 手册中读到,其中指出

由于所有级别的高速缓存都将 PLD 指令作为任何其他加载指令来处理,因此 PLD 指令遵循标准的数据依赖规则和逐出程序。在 PLD 执行的任何阶段,如果发生地址转换错误、高速缓存命中或中止,PLD 指令将被忽略。

因此,如果进行了越界内存访问,相应的 PLD 指令是否会被忽略是我的疑问。

0 投票
1 回答
2593 浏览

assembly - 关于“Cortex-A8 勘误表”的 asm 对象的 NDK r8c 警告——我应该担心吗?

问题:这个警告的含义是什么?如果没有现实生活中的后果,我可以忍受一段时间......但我担心如果我们的程序被加载到一个有故障的芯片上会发生什么。

背景:使用 NDK r8c,X264 编码器的链接会发出警告:

...对于 libx264 中的所有程序集文件都有相同的警告。

libx264.a 本身是在同一台机器上使用从 NDK 获取的相同 4.6 工具链进行交叉编译的。

以下是轻松重现问题的说明(Ubuntu 或 MacOS):

  1. 从ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2下载 x264-snapshot-20121203-2245

  2. ./configure --enable-pic --enable-strip --enable-static --cross-prefix=~/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi- --sysroot=~/android-ndk-r8c/platforms/android-14/arch-arm --host=arm-linux

  3. ~/android-ndk-r8c/prebuilt/linux-x86/bin/make

它将构建静态库,然后在链接 x265 可执行文件时显示 Cortex-A8 警告。我不担心编译器警告,因为构建 libx264.a 是离线完成的,它不是我们官方日常构建的一部分。

我已将此报告为http://code.google.com/p/android/issues/detail?id=40794

我尝试按照ARM.com 说明手动添加映射符号,但这没有效果。dct-a.S

0 投票
1 回答
1756 浏览

arm - ARM Cortex-A8 处理器中的程序执行时间

我正在使用 ARM Cortex-A8 并尝试通过汇编代码从 CCNT 时间计数器中​​读取值。我正在关注这篇文章如何测量 ARM Cortex-A8 处理器中的程序执行时间? . 根据它,在我可以从定时器读取值之前,我必须启用计数器,启用 64 位分频器并清除溢出。这些操作是通过写入适当的寄存器(例如,PMCR(性能单硝基控制寄存器))来执行的。因此,我在循环中打印计数器值以跟踪溢出是如何发生的,并且我有这种行为:

因此,我有一组问题:

a) Linux 内核使用了哪些或上述寄存器?(更多内核版本的信息有多可靠)。改变他们的价值观有多安全?

b) CCNT 频率的准确值是多少,如何获得?不幸的是,我在处理器规格中找不到价值。但是,dmesg 说

但是根据clock_gettime手动识别它给了我7 MHz。那么,为什么它不是预期的 24 MHz?

c)根据我的第一个输出,为什么在溢出后它不是从零开始,而是从大约 1 百万开始?

d) 为什么没有 64 分频器我会得到错误的结果?值开始以这种方式跳跃:

我会很感激任何帮助。谢谢