问题标签 [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.

0 投票
7 回答
15042 浏览

c++ - 学习嵌入式 C/C++ 开发的最佳评估套件是什么?

我正在尝试改进我在 ARM 架构上的嵌入式 C/C++ 开发。我最近从 68K 开发转到 ARM,想利用我的一些空闲时间深入研究该平台并学习最佳实践,尤其是针对移动平台的开发。

最好 32 位架构将有助于支持开发工具。学习过程中的一点乐趣可能会增强我对平台的理解

0 投票
10 回答
4409 浏览

embedded - 对嵌入式系统编程最合适(最佳)语言的建议?

我正在考虑为大约 20MHz、6mb 内存、ARM32 处理器的设备进行嵌入式编码。任何人都可以建议最好/最合适的嵌入式系统编程语言吗?我正在考虑:

  • 卢阿
  • 小派
  • C
  • 爪哇我
  • C#
  • 有人建议使用 JavaScript

有什么建议么?谢谢

编辑 - 看起来 C 和 Lua 是赢家。大家干杯!

编辑 - 实时不是问题,它更多的是有限的 ram/cpu 指示的东西。

0 投票
1 回答
2154 浏览

c++ - “POR”在嵌入式开发中是什么意思?

我们有一个第三方设备正在尝试集成到我们的系统中,我们的代码应该做的一件事是通过断言一个复位引脚来启动硬件复位。其中一份文件提到了在 POR 结束之前释放的 pin。我有点谷歌给了我这个,但我只是想确认并了解我是否在正确的页面上。

0 投票
3 回答
1846 浏览

c++ - What is the workaround for unaligned memory access exception on ARM9 using C?

Architecture ARM9. Programming Language C.

We have a third-party stack and one of the calls takes a pointer(pBuffer) to a memory location. Within the stack, they are free to move around the pointer passed and access it as they wish. Unfortunately, they offset the passed in pointer and passed it into a another function that tried to do this from an odd/unalighed memory location

where value is of type uint16 and index is bounds checked and indexes pBuffer. This causes a unaligned memory access exception. pBuffer points to char * on the heap.

As mentioned, even though we can peek into the third-party stack, we can not update the code officially. So we notify the provider and they provide the update in the next release.

I want to understand if there is a work around for this. How do I perform the above assignment without violating the unaligned access? What is the best approach to resolving such problems.

0 投票
7 回答
24872 浏览

arm - 如何为 ARM 处理器的算法计算 MIPS

最近有人要求我为我们开发的算法生成 MIPS(每秒百万条指令)。该算法由一组 C 风格的函数公开。我们已经在戴尔 Axim 上运行了代码,以对不同输入下的性能进行基准测试。

这个问题来自我们的硬件供应商,但我主要是一个 HL 软件开发人员,所以我不知道如何回应这个请求。也许具有类似硬件/软件背景的人可以提供帮助...

  1. 由于我们的算法不是实时的,我认为我们不需要将其量化为 MIPS。是否可以简单地引用汇编指令的总数?

  2. 如果 1 为真,那么一般或专门针对 ARM/XScale,您如何执行此操作(即如何测量汇编指令的数量)?

  3. 2 可以在 WM 设备上执行还是通过 VS2005 中提供的 Device Emulator 执行?

  4. 3可以自动化吗?

非常感谢你的帮助。查尔斯


感谢你的帮助。我认为 S.Lott 击中了钉子。作为后续行动,我现在有更多问题。

5 关于如何测量 MIPS 的任何建议?我听说有人建议运行我们的算法并将其与 Dhrystone/Whetstone 基准进行比较以计算 MIS。

6 既然算法不需要实时运行,那么MIPS真的是一个有用的度量吗?(例如阶乘(N))还有哪些其他方法可以量化处理要求?(我已经测量了运行时性能,但这不是一个令人满意的答案。)

7 最后,我假设 MIPS 是一个粗略的估计,并且会是依赖的。关于编译器、优化设置等?

0 投票
4 回答
501 浏览

c - 如何在 C 中跨线程进行动态数据传输和内存管理?

平台:ARM9

编程语言 C

要求 - 纯 C,没有外部库,也没有提升。

操作系统 - REX 实时操作系统

我有两个线程在嵌入式平台上运行 -

  1. 一种是在驱动程序级别处理所有与硬件的通信和数据传输。
  2. 第二个线程运行应用程序,该应用程序使用来自/来自硬件的数据。

这个想法是将应用程序线程与驱动程序线程分离,这样我们就可以在硬件驱动程序线程中更改硬件和实现,但对应用程序线程的影响最小。

我的挑战是从硬件接收的数据可能是动态的,即我们不知道应用程序线程应该为每个发往/来自硬件的请求预留多少内存,因为这是在运行时确定的。

我在想驱动程序线程可以通知应用程序线程有太多数据要读取。然后应用程序线程分配内存并请求驱动程序线程读取数据。然后由应用程序线程相应地处理数据。这样,所有内存管理都在应用程序线程内。

0 投票
1 回答
6018 浏览

java - 您对 ARM Jazelle 有何体验?

我正在评估 ARM 的开源和闭源 JVM。特别是,闭源 JVM 可以利用 Jazelle(用于较新 ARM 的 Java 加速)。

您对这项技术有任何经验吗?

(顺便说一句,您使用哪个操作系统?)

0 投票
3 回答
33981 浏览

linux - 如何从共享库中导出符号

我使用 Windows 主机上的 RVDS 编译器使用目标代码文件(C 源代码)创建了一个共享库 ( *.so) 。*.o

我将此共享对象与一个应用程序(gcc用于 Linux 主机上的 ARM 目标)链接并获得一个可执行文件,该可执行文件在运行时会产生分段错误。(我知道我必须调试它!)

如果我创建一个具有相同源文件的静态库,而不是创建共享库,然后与应用程序链接,然后执行应用程序,它可以按预期正常工作。

所以我的问题是:

  1. 我是否需要使用某些结构在我的源文件中显式导出符号(导出到应用程序的函数)或任何其他符号,以便在与应用程序链接时正常工作?需要什么,我该怎么做?

  2. 共享库是如何工作的?即,函数将被加载和运行的地址,将在创建库时在库中给出。应用程序(main())如何解析要执行库函数的地址?

  3. 静态库是如何工作的,即在静态库的情况下,这个地址规范和解析是如何发生的?

0 投票
2 回答
1377 浏览

c++ - 使用 RVCT 为 WinCE/Window Mobile 编译 AMR-nb 编解码器

我正在研究 amr 语音编解码器(移植/优化) 我有一个来自 voiceage 的 arm(用于 WinCE)优化版本,我将它用作性能测试的参考。到目前为止,使用我的 lib 生成的二进制文件比另一个文件高 20-30%!我使用 Vs2008,但我只能使用 Microsoft 编译器生成的 ARM 指令集。所以我试图寻找替代编译器,看看会有什么性能差异。我有 RVCT 编译器,但它会生成 elf 二进制文件/目标文件。但是,我在 wince 手机 (TyTn 2) 上运行我的测试,所以我需要找到一种方法在 WinCE 上运行使用 RVCT 编译的代码。一些选项是 1) 生成汇编列表(armcc 的 -S 选项),

我的第一次尝试是使用一个导出函数创建一个简单的 c++ 文件,使用 RVCT 对其进行编译,然后尝试在智能手机上运行该函数。发出的程序集无法由 ms 汇编器组装(不仅它们不兼容,而且 ms 汇编器拒绝使用 RVCT 编译器生成的一些指令;在我的情况下为 ASR 操作码)然后我尝试将 ELF 对象转换为 coff 格式,我找不到任何相关信息。有一个用于 ce 的 gcc 端口,并且该工具集中的 objcopy 应该能够完成该任务。但是,我无法让它工作。我尝试了不同的开关,但我不知道我需要为输入和输出格式指定什么作为 bfdname。所以,我也无法让它工作。使用 fromelf 转储并使用生成的 bin 文件似乎有点过头了,所以我决定问你们是否有什么我应该尝试做的,或者也许有人已经完成了类似的任务并且可以帮助我。基本上,我想做的就是用 RVCT 编译器编译我的代码,看看性能差异是什么。我的代码对任何 c 运行时函数的依赖性为零。

谢谢!

0 投票
5 回答
1621 浏览

iphone - 内联汇编错误

我正在为 iphone 使用内联汇编,我在设备调试模式下工作。

指令如下:

我收到一个错误:

错误:tokedn '(' 之前的预期 ')' 错误:'asm' 中的未知寄存器名称 'r'

我正在使用 X-code 3.0 和 gcc 4.0。有任何想法吗?