问题标签 [arm]
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.
linux - Linux 嵌入式 (ARM) 中的低内存吞吐量
我正在使用 ARM926EJS。在没有 Linux 的情况下,我在内存复制测试中的内存速度提高了 20%(就像入门可执行文件一样)。但在 linux 中,相同的代码运行速度要慢 20%。
代码是
我确认没有其他进程在 linux 上占用 CPU 时间。(我使用 time 命令检查了这一点,它显示实时与usr time相同 )
请告诉我linux可能有什么问题?
感谢和问候。
添加:
我的测试代码是
Getting Started 可执行文件是一个 bin 文件,它使用串行端口发送到 RAM,并通过跳转到 RAM 中的该地址直接执行。(无需操作系统)
添加。
我没有在其他处理器上看到这样的性能差异。他们使用的是 SD RAM,这个处理器使用的是 DDR Ram。可以是一个理由吗?
添加。入门代码中未启用数据缓存,并且在 Linux 模式下启用了数据缓存,因此理想情况下,所有数据都应被缓存并在没有任何 RAM 延迟的情况下进行访问,但 Linux 仍然慢 20%。
补充:我的微控制器是 LPC3250。两项测试均在相同的外部 DDR RAM 上进行了测试。
communication - 关于基于中断的通信
我们有一个简单的架构:
- 主芯片(基于arm9)
- PIC控制器
PIC 通过基于中断的 I2C 通信协议与 ARM 通信以传输数据。在中断内部,我们发出一个从 I2C 层(总线)读取数据的任务。
如果数据有限,我们通常不会有太大的问题来读取数据并将其发送到上层。如果这个数据非常大,中断将被捆绑很长时间。
第一个问题是:
我对吗?
如果我是对的,如何避免同样的情况?...或者我们可以采取不同的解决方案吗?
image-processing - 使用 ARM 进行图像处理?
我正在做一个使用ARM进行图像处理的项目。我有一个移植了 Linux的AT91SAM9263 。我想知道可以使用哪些图像处理库?还需要哪些其他工具集?
我是这个领域的新手。
android - 如何将 android 移植到 ARM9 处理器上的设备?
我想在支持 ARM9 200Mhz 和无 fpu 支持的设备上移植 Android,这可能吗,谷歌是否透露了所有 android 代码,或者它只提供给合作伙伴?
谢谢并恭祝安康,
晴天。
gcc - Ubuntu:交叉编译 STM32 (Cortex-M3) 时使用什么 gcc?
我正在尝试开始使用 STM32 (Cortex-M3),我的计划是从 Ubuntu (9.04 / AMD64) 开始工作。
首先,我得到了Olimex stm32-h103头板和Olimex ARM-USB-OCD jtag,然后我可能会使用 OpenOCD、gcc 和 Eclipse。
但现在我正在研究使用什么版本的 gcc 以及如何设置它以便能够交叉编译代码。
那里似乎有一些手臂项目,但我不知道从什么开始,有人可以把我推向正确的方向吗?
谢谢约翰
更新: codesourcery似乎几乎是我想要的,但他们似乎专注于 IA32 而不是 AMD64。
但是在支持的设备中,我找到了 Cortex-M3
- ARM EABI、ARM M-profile 模拟器 -mcpu=cortex-m3 -mthumb
更新:有可能在 AMD64 上安装 IA32,所以标记的答案可能已经过时了。
更新:找到这个关于 Cortex-M3 交叉编译的链接。
hardware - 臂板启动
谁能告诉我在哪里可以找到与如何启动任何手臂板相关的信息?我正在寻找概述,因为我是 ARM 相关内容的新手。任何链接/文档都可以......如果我可以寻找案例研究,这将是 gr8 的帮助
可以考虑任何基于手臂的电路板..我正在寻找一个案例研究...只需几个步骤即可?
linux - 在 ARM 处理器上运行嵌入式 Linux 的最低配置?
我需要制作一个嵌入式 ARM 设计,它需要做嵌入式 Linux 会做的许多事情。然而,该设计对成本敏感,不需要大量马力。大多数情况下将与串行接口交谈。理想情况下,我想使用其中一种低端 ARM。您已成功使用嵌入式 Linux 的 ARM 的最低配置是什么。
编辑:
应用程序需要某种闪存设备上的文件系统以及运行应用程序来处理数据的能力。有些应用程序可能是由我以外的其他人编写的。我还需要能够使用串行端口加载新应用程序或更新旧应用程序以接受应用程序。
当我查看其他嵌入式操作系统时,它们似乎更像是一种实时线程解决方案,而不是能够运行应用程序。我对完成工作的任何事情持开放态度。
arm - 适用于任何 ARM 处理器的工具链
任何 ARM 处理器的工具链都可以用于编译任何操作系统吗?工具链对操作系统的依赖是什么?
我的问题可能听起来微不足道……我对 ARM 的工具链一无所知。
debugging - 使用劳特巴赫 (Trace32) 进行调试
在使用跟踪时,我发现一些函数没有在源代码中列出,而试图找到它们以便放置断点。这些功能似乎只有在我以汇编格式查看源代码时才会出现。
我和我的前辈谈过,他们告诉我如果任何函数只被调用一次,它将被 Trace 优化并显示为内联,因此可以在汇编中看到。
我的问题是:
- 这种优化是如何通过劳特巴赫发生的?
- 这有好处吗??
optimization - 针对 ARM 进行优化:为什么不同的 CPU 会以不同的方式(并且剧烈地)影响不同的算法
我正在对 Windows 移动设备上的代码性能进行一些基准测试,并注意到某些算法在某些主机上的性能明显更好,而在另一些主机上则明显更差。当然,考虑到时钟速度的差异。
供参考的统计数据(所有结果均由同一个二进制文件生成,由面向 ARMv4 的 Visual Studio 2005 编译):
英特尔 XScale PXA270
- 算法 A:22642 毫秒
- 算法 B:29271 毫秒
ARM1136EJ-S 内核(嵌入在 MSM7201A 芯片中)
- 算法 A:24874 毫秒
- 算法 B:29504 毫秒
ARM926EJ-S 内核(嵌入在 OMAP 850 芯片中)
- 算法 A:70215 毫秒
- 算法 B:31652 毫秒(!)
我检查了浮点作为可能的原因,虽然算法 B 确实使用了浮点代码,但它没有从内部循环中使用它,而且似乎没有一个内核具有 FPU。
所以我的问题是,什么机制可能导致这种差异,最好是关于如何修复/避免有问题的瓶颈的建议。
提前致谢。