问题标签 [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 投票
4 回答
6965 浏览

windows-mobile - ARMV4i (Windows Mobile 6) 本机代码反汇编程序

有人知道ARMV4i可执行文件和 DLL 的反汇编程序吗?

我有一个插件 DLL,我正在编写一个非常罕见data abort(<5% 的时间)的插件 DLL,我已将其缩小到一个特定的函数(通过 dumpbin 和由data abort. 但是,它是一个相当大的功能,我想将其缩小一点。我知道这是在一个memset()调用中发生的,但是那个特定的函数有大约 35 个,所以我希望通过查看反汇编,我可以找出问题到底出在哪里。

0 投票
11 回答
1450 浏览

c - Is GCC broken when taking the address of an argument on ARM7TDMI?

My C code snippet takes the address of an argument and stores it in a volatile memory location (preprocessed code):

I used an SVN version of GCC for compiling this code. At the end of function foo I would expect to have the value 1 stored in the stack and, at 0x40000d4, an address pointing to that value. When I compile without optimizations using the flag -O0, I get the expected ARM7TMDI assembly output (commented for your convenience):

It clearly stores the argument first on the stack and from there stores it at 0x40000d4. When I compile with optimizations using -O1, I get something unexpected:

This time the argument is never stored on the stack even though something from the stack is still stored at 0x40000d4.

Is this just expected/undefined behaviour? Have I done something wrong or have I in fact found a Compiler Bug™?

0 投票
3 回答
4529 浏览

audio - 免费的波表合成器?

我需要在 ARM Cortex-M3 内核中实现波表合成器。我正在寻找任何代码或工具来帮助我入门。

我知道这个 AVR implementation。实际上,我不久前将其转换为图片。现在我正在寻找类似的东西,但听起来更好一些。

ANSI C 代码会很棒。任何代码片段(C 或 C++)、示例、工具或一般信息都将不胜感激。

谢谢。

0 投票
2 回答
3320 浏览

linux - 在哪里可以找到在 linux 2.6.21.5-cfs-v19 上运行的 arm 目标的 gdb

我有一个基于 ARM11 的硬件板,它运行 Linux 内核版本。2.6.21.5-cfs-v19。我的应用程序在这个 ARM-LINUX 板上运行。为了进行源代码级调试,我曾经在 linux 板的命令提示符下使用 gdb 的应用程序,这是与板 linux 版本的一些早期版本一起使用的。

使用这个版本 2.6.21.5-cfs-v19,我没有用于板子的相关版本的 gdb。我试图四处寻找这个版本的 linux 的 gdb 和它的 arm 端口,但没有多大成功。谁能指出我可以在哪里获得用于上述操作系统和板配置的 gdb 的独立可执行文件或相同的源,我可以尝试为该目标编译。

-广告。

0 投票
4 回答
5442 浏览

c++ - ARM 上的预取指令

较新的 ARM 处理器包括 PLD 和 PLI 指令。

我正在编写紧密的内部循环(在 C++ 中),它具有非顺序内存访问模式,但我的代码自然可以完全理解这种模式。如果我可以在处理当前内存位置的同时预取下一个位置,我预计会大大加快速度,并且我希望这足够快,值得尝试!

我正在使用来自 ARM 的新的昂贵编译器,它似乎没有在任何地方包含 PLD 指令,更不用说在我关心的这个特定循环中了。

如何在我的 C++ 代码中包含显式预取指令?

0 投票
21 回答
12708 浏览

embedded - 学习嵌入式编程的最佳平台?

我正在寻找学习嵌入式编程(主要是 C,但我也希望复习我的 ASM),我想知道最好的平台是什么。我在使用 Atmel AVR 并使用 stk500 对其进行编程方面有一些经验,并且发现这相对容易。我特别喜欢 AVR Studio 和可让您查看寄存器状态的调试器。

但是,如果我要花时间学习,我宁愿学习工业中流行的东西。我在想ARM,除非有人有更好的建议。

我还会寻找一些参考资料,我在 ARM 网站上找到了书籍部分,如果其中一本在技术上比另一本更好,我将不胜感激。

我要寻找的最后一件事是原型/编程板,例如具有一些按钮等的 STK500。

谢谢=]

0 投票
4 回答
5411 浏览

arm - ARM Cortex-M3 内核上的 .NET 微框架

我有一个来自Luminary Micro的RDK-IDM。该板具有 32 位 ARM® Cortex™-M3 内核。有没有人尝试在这样的设备上运行 .NET Micro Framework 应用程序?

0 投票
8 回答
18009 浏览

embedded - 减小可执行文件大小的过程

我正在生成一个十六进制文件以在我希望保持在 32K 以下的 ARM 处理器上运行。它目前比这大得多,我想知道是否有人可能对瘦身的最佳方法有一些建议?

这是我到目前为止所做的

  1. 所以我在它上面运行了'size'来确定十六进制文件有多大。
  2. 然后再次“大小”以查看每个目标文件有多大,该链接用于创建十六进制文件。似乎大部分大小来自外部库。
  3. 然后我使用'readelf'来查看哪些函数占用的内存最多。
  4. 我搜索了代码,看看是否可以消除对这些函数的调用。

这就是我卡住的地方,有些函数我不直接调用(例如_vfprintf),我找不到调用它的函数,所以我可以删除调用(因为我认为我不需要它)。

那么接下来的步骤是什么?

对答案的回应:

  • 正如我所看到的,调用了一些占用大量内存的函数。但是我找不到它的名字。
  • 我想省略那些函数(如果可能的话),但我找不到调用它们的东西!我猜可以从任意数量的库函数中调用。
  • 链接器按需要工作,我认为,它只包含相关的库文件。你怎么知道是否只包含相关功能?你可以为此设置一个标志或其他东西吗?
  • 我正在使用 GCC
0 投票
2 回答
1873 浏览

gcc - ARM STR7xx 的加载程序脚本

我正在尝试使用 Eclipse + CDT + yagarto (gnu toolchain) + OpenOCD 对 ARM 进行编程。在几个示例项目(例如来自 yagarto 站点)中,我发现了链接器脚本 (*.ld),其中指定了许多链接信息(以及节定义)。实际上我以前没有遇到过这些文件(IAR 不需要它们),我发现它们乍一看有点难以理解。所以我的问题是我是否可以在我的所有项目中为我的目标处理器(STR710FZ2T6)使用一个这样的脚本文件,或者我必须熟悉编写这些脚本并为每个项目编写它们。如果我可以为特定目标处理器的所有项目使用单个文件,请您建议我在哪里可以找到这样的通用文件。

0 投票
2 回答
7181 浏览

c++ - 用于 gcc-arm 工具链的 Boost C++ 库

我在 timesys arm-gcc 工具链上构建 1.35.0 和 1.36.0 都没有问题,无论是静态(链接静态)还是动态(.so,默认选项)。

但是,当我尝试链接一个简单的示例文件系统应用程序时:

我收到以下链接器错误:

有谁知道我怎样才能让 Boost 为 gcc-arm 工具链构建?