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

c - 在 ARM C 调用约定中要保存哪些寄存器?

自从我上次编写 arm assembler 以来已经有一段时间了,我对细节有点生疏了。如果我从 arm 调用 C 函数,我只需要担心保存 r0-r3 和 lr,对吗?

如果 C 函数使用任何其他寄存器,它是否负责将这些寄存器保存在堆栈上并恢复它们?换句话说,编译器会为 C 函数生成代码来执行此操作。

例如,如果我在汇编函数中使用 r10,我不必将其值压入堆栈或内存,并在 C 调用后弹出/恢复它,对吗?

这适用于 arm-eabi-gcc 4.3.0。

0 投票
7 回答
3895 浏览

assembly - 在 1 条 ARM 指令中清除高 16 位

在 ARM 汇编中,立即数由 8 位旋转值编码,这意味着我们只能编码

现在我的问题是我想清除 r0 的高 16 位并将其替换为存储的半字 r1。但是由于立即数的范围有限,我必须做:-

是否可以用一条指令替换 2 条 bic 指令?0xffff0000 是不可编码的。也许我应该使用另一个逻辑操作来清除高 16 位?

谢谢

编辑:对不起,我忘了说 r1 的前 16 位是空的,我使用的是 ARM7TDMI

0 投票
2 回答
4485 浏览

gcc - 在 ubuntu gcc 上为 arm 编译 darwin 的步骤

有没有人有在 ubuntu 上为 arm 编译 gcc 上的 darwin 库的步骤?

0 投票
3 回答
10100 浏览

linux - 如何将 Linux 内核编译并安装到 ARM 套件中

我身边有一个 ARM 套件,我的机器上有一个用 Xenomai 修补的 Linux 内核源代码。我知道我可以通过 USB 电缆和(当然是基于 Windows 的)软件将数据发送到套件,但我不知道我应该发送什么才能使套件运行 Linux。

(评论澄清:这是一个 Atmel AT91SAM9260-EK 套件。它使用 SAM-BA 和 SAM-PROG 通过串行或 USB 电缆加载和卸载数据。)

0 投票
1 回答
1540 浏览

windows-ce - WinCE 6.0 在 ARM 目标上的典型中断延迟是多少?

ARM 目标上 WinCE 6.0 的典型中断延迟是多少?

(只是寻找性能估计的大概值)

0 投票
2 回答
2978 浏览

iphone - 使用 GDB 从崩溃中检查 Objective C 类(HandleDelegateSource 错误访问)

我正在尝试调试 iPhone 上的间歇性错误,崩溃的痕迹如下所示:

当 GDB 停止时,我希望能够确定有关系统尝试调用哪个选择器的详细信息 - 我现在在 [NSInvocation Invoke] 周围设置了一个断点,但从那时起无法弄清楚如何检查详细信息我停止的 NSInvocation 对象。

0 投票
2 回答
3686 浏览

arm - OMAP SPI 控制器

有没有人开发过一些应用程序来控制 OMAP3 上的 spi 设备?我可以加载 spi 驱动程序“mcspi”,但我不知道如何使用它。

0 投票
2 回答
6664 浏览

arm - 手臂。从超级用户模式访问用户 R13 和 R14

如何访问进入管理员模式时保存的用户 R13 和 R14?我正在使用 ARM7TDMI。

IE 我不想访问现在包含用户模式返回地址的主管 R14,而是想要用户模式的链接寄存器的值。这是我正在编写的调试器的一部分。

这些寄存器有特殊的别名吗?

谢谢

0 投票
3 回答
2187 浏览

gcc - 从源代码构建 Gnuarm 工具链

我想从 gnuarm.org 从源代码构建一个工具链。我不想使用二进制版本,因为我正在运行 x64 linux。你能指点我一些教程吗?

0 投票
5 回答
20127 浏览

assembly - 如何屏蔽 ARM 程序集中的字节?

我有一个 32 位(十六进制)字 0xaabbccdd 并且必须交换 2. 和 3. 字节。最后它应该看起来像 0xaaccbbdd

我如何“屏蔽”第二个和第三个字节以首先将它们加载到寄存器 r1 和 r2 并交换它们。我也知道我必须使用 lsl 和 lsr 命令,但不知道如何开始。

对不起我的英语不好。希望有人能帮助我!

问候,塞巴斯蒂安