cortex-a8相关内容

手臂 Cortex_A8 上的轮廓分析

我想在 ARM 处理器上对我的应用程序进行分析.我发现 oprofile 不起作用.几年前有人用下面的代码测试过.循环计数器确实有效,性能监视器计数器仍然无效.我又测试了一遍,还是一样.对于下面的代码,我得到了循环计数:2109,性能监视器计数:0.我用谷歌搜索过,到目前为止,我还没有找到解决方案.有人解决了这个问题吗? uint32_t 值 = 0uint32_t 计数 = 0;struct ..
发布时间:2021-11-17 22:39:00 其他开发

为什么u-boot 可以把全局数据的地址放到r9 寄存器中?

当我查看 u-boot 源代码时,我发现它像这样通过 r9 寄存器传递全局数据 注册 volatile gd_t *gd asm ("r9") 所以,我很好奇,u-boot 如何确保进一步的代码不会使用 r9 寄存器并破坏全局数据.有没有告诉编译器不要使用特定寄存器的选项? 解决方案 来自 ARM 架构的过程调用标准: 寄存器 r9 的作用是特定于平台的.虚拟平台可以将任何角色分 ..
发布时间:2021-11-17 22:32:16 其他开发

当 VMA != LMA 时加载 ELF

我有这个问题.我使用 ARM Cortex-A9 和 DS-5 来创建裸机固件.我修改了我的链接器文件,故意将 .data 部分 LMA 与 text 和 Rodata 部分相邻,因为它的默认运行时 VMA 位于 1MB 之外,而 .bin 图像大约为 1MB,但包含 90% 的零.所以我特意制作了 LMA != VMA 以节省空间.我还在 start.S 中添加了一段代码,用于将 .data 部 ..
发布时间:2021-11-17 22:27:00 其他开发

优化neon代码的一些疑惑

我在汇编中编写了一些霓虹灯代码,旨在最大限度地优化.尽管数字看起来令人满意,但我对了解进一步优化它的可能性很感兴趣.然后我遇到了一个在线工具,它有助于计算每条指令的周期. 这是我的代码的链接:http://pulsar.webshaker.net/ccc/样本-115d4c29 它清楚地标记了我关注的领域,但我无法清楚地理解这些陈述包含开销的原因. 代码段在“评论"区分为7个部分 ..
发布时间:2021-11-17 22:24:47 其他开发

使用 NEON 优化 Cortex-A8 颜色转换

我目前正在执行颜色转换例程,以便从 YUY2 转换为 NV12.我有一个非常快的函数,但没有我预期的那么快,主要是由于缓存未命中. void convert_hd(uint8_t *orig, uint8_t *result) {uint32_t 宽度 = 1280;uint32_t 高度 = 720;uint8_t *lineOdd = orig;uint8_t *lineEven = ori ..
发布时间:2021-11-17 22:18:23 其他开发

使用 NEON 优化 Cortex-A8 颜色转换

我目前正在执行颜色转换例程,以便从 YUY2 转换为 NV12.我有一个非常快的函数,但没有我预期的那么快,主要是由于缓存未命中. void convert_hd(uint8_t *orig, uint8_t *result) {uint32_t 宽度 = 1280;uint32_t 高度 = 720;uint8_t *lineOdd = orig;uint8_t *lineEven = ori ..
发布时间:2021-11-17 22:18:04 其他开发

如何使用 gcc 编译代码和 ARM Cortex A8 目标进行调用图分析?

我正在咬牙切齿…… 我需要在 ARM 板上进行分析并需要查看调用图.我尝试使用 OProfile、Kernel perf 和 Google 性能工具.一切正常,但不输出任何调用图信息. 这让我得出结论,我没有正确编译我的代码. 我在编译 C++ 代码时使用以下标志: Arch 特定: -march=armv7-a -mtune=cortex-a8 -mfloat-abi= ..
发布时间:2021-11-17 22:14:09 其他开发

使用 ARM NEON 内在函数添加 alpha 和 permute

我正在开发一个 iOS 应用程序,需要相当快地从 RGB -> BGRA 转换图像.如果可能,我想使用 NEON 内在函数.有没有比简单地分配组件更快的方法? void neonPermuteRGBtoBGRA(unsigned char* src, unsigned char* dst, int numPix){数字像素/= 8;//一次处理8个像素uint8x8_t alpha = vdup ..
发布时间:2021-11-17 22:13:21 其他开发

内在函数中 Neon 的校验和代码实现

我正在尝试使用内在函数为 NEON 实现校验和计算代码(2 的补码加法).当前校验和计算正在 ARM 上进行. 我的实现一次从内存中取出 128 位到 NEON 寄存器中并进行 SIMD(加法),结果从 128 位数字折叠为 16 位数字. 看起来一切正常,但我的 NEON 实现比 ARM 版本花费更多的时间. ARM 版本需要:0.860000 秒NEON 版本需要:1.260 ..
发布时间:2021-11-17 22:02:00 其他开发

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

如果您在 ARM 演示文稿.很明显,取指令阶段需要 3 个周期,但第一个周期有点折扣.但为什么?有什么想法吗? 谢谢... 解决方案 来自 皮质A8: 获取管道从 F0 阶段开始,在该阶段生成新的虚拟地址.这个地址可以是前一个分支预测提供的分支目标地址指令,或者如果本周期没有预测,将计算下一个地址从前一个周期中使用的获取地址开始.请注意,F0 Fetch 阶段不计为 13 阶段 ..
发布时间:2021-11-17 21:54:43 其他开发

如何使用 NEON 比较(大于或等于)指令?

一般如何使用NEON比较指令? 这里有一个案例,我想使用大于或等于指令? 目前我有一个, int x;.........如果(x >= 0){....} 在NEON中,我想以同样的方式使用x,只是这次x是一个向量. int32x4_t x;.........if(vcgeq_s32(x, vdupq_n_s32(0)))//达到这种效果的最佳方法是什么?{....} 解决方案 ..
发布时间:2021-11-17 21:54:22 其他开发

[ARM CortexA]强序和设备内存类型的区别

我真的是 Cortex A 的新手,我知道 ARM 应用弱序内存模型,并且存在三种互斥的内存类型: 严格有序 设备 正常 我大致理解了Normal是什么,Strongly-ordered和Device是什么意思.然而,强序和设备之间的差异让我感到困惑. 根据 Cortex-A 系列程序员指南,唯一的区别是: 对强有序存储器的写入只有在到达写入操作访问的外设或存储器组件时 ..
发布时间:2021-11-17 21:51:47 其他开发

使用硬件计数器测量 ARM Cortex-A8 上的执行时间

我使用的是 Exynos 3110 处理器(1 GHz 单核 ARM Cortex-A8,例如用于 Nexus S)并尝试测量特定功能的执行时间.我在 Nexus S 上运行 Android 4.0.3.我尝试了 中的方法 [1] 如何在 ARM Cortex-A8 处理器中测量程序执行时间? 我加载了内核模块以允许在用户模式下读取寄存器值.我正在使用以下程序来测试计数器: stati ..
发布时间:2021-11-17 21:50:34 其他开发

如何在 ARM 上进行整数(有符号或无符号)除法?

我正在研究 Cortex-A8 和 Cortex-A9.我知道有些架构没有整数除法,但是除了转换为浮点数、除法、转换为整数之外,最好的方法是什么?或者这确实是最好的解决方案? 干杯!=) 解决方案 编译器通常在其库中包含一个除法,例如 gcclib 我从 gcc 中提取它们并直接使用它们: https://github.com/dwelch67/stm32vld/ 然后是 st ..
发布时间:2021-11-17 21:43:15 其他开发

ARM 和 NEON 可以并行工作吗?

这是参考问题:Neon Intrinsics 的校验和代码实现 将链接中列出的子问题作为单独的单独问题打开.因为不能在单线程中提出多个问题. 无论如何都要回答这个问题: ARM 和 NEON(就 arm cortex-a8 架构而言)真的可以并行工作吗?我怎样才能做到这一点? 有人可以指点我或分享一些使用ARM-NEON互操作的示例实现(伪代码/算法/代码,而不是理论实现论 ..
发布时间:2021-11-17 21:42:45 其他开发

ARM Cortex-A8:VFP 和 NEON 有什么区别

在ARM Cortex-A8处理器中,我理解NEON是什么,它是一个SIMD协处理器. 但是VFP(Vector Floating Point)单元,它也是一个协处理器,是一个SIMD处理器吗?如果是这样,使用哪个更好? 我阅读了一些链接,例如 - Link1 Link2. 但不是很清楚它们的意思.他们说 VFP 从未打算用于 SIMD,但在 Wiki 上,我阅读了以 ..
发布时间:2021-11-17 21:42:16 其他开发

如何测量 ARM Cortex-A8 处理器中的程序执行时间?

我使用的是名为 i.MX515 的基于 ARM Cortex-A8 的处理器.有 linux Ubuntu 9.10 发行版.我正在运行一个用 C 编写的非常大的应用程序,我正在使用 gettimeofday(); 函数来测量我的应用程序花费的时间. main(){获取时间(开始);............获取时间(结束);} 这种方法足以查看我的应用程序的哪些块占用了多少时间.但是,现在,我 ..
发布时间:2021-11-17 21:37:06 其他开发

如何使用NEON比较(大于或等于)指令?

一般如何使用NEON比较说明? 在这种情况下,我想使用大于或等于指令? 目前我有一个 int x; ... ... ... if(x >= 0) { .... } 在NEON中,我想以相同的方式使用x,只是这次x是一个向量. int32x4_t x; ... ... ... if(vcgeq_s32(x, vdupq_n_s32(0))) // Whats the ..
发布时间:2020-09-07 02:32:00 其他开发