问题标签 [thumb]

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 投票
1 回答
121 浏览

c++ - 是否可以为 ARM 和 THUMB 生成单独的 .exe 文件?

我有一个用于 WM6 的嵌入式 c++ 项目。在某些设备中,我使用与链接器设置“MACHINE:ARM”不兼容的打印机库。所以我必须构建 2 个 .exe 文件。一个用于 THUMB 机器,另一个用于 ARM 机器,必须注释某些代码行以避免编译错误。是否可以生成 2 个 .exe 文件并将它们构建在 2 个单独的文件夹中,一个用于 ARM,另一个用于 THUMB?

谢谢,

0 投票
1 回答
54115 浏览

arm - 什么是 ARM Thumb 指令集?

在“ARM11TechnicalRefManual”第 1-34 节的“Thumb 指令集”下,它说:

“Thumb 指令集是最常用的 32 位 ARM 指令的子集。Thumb 指令的长度为 16 位,对应的 32 位 ARM 指令对处理器型号的影响相同。”

任何人都可以解释更多关于这个特别是第二句话的内容,并说处理器是如何执行它的吗?

0 投票
2 回答
375 浏览

arm - 反汇编时如何分离ARM指令和数据

我正在编写/(使用 binutils)一段代码来手动反汇编 thumb2(16 位和 32 位)指令。我在区分真正的 ARM 指令和 DATA 部分时遇到了问题。

最大的问题是指令不是字对齐的。所以当我尝试阅读 32 位指令时,很多时候它实际上与下一条指令重叠。

请提供任何帮助。

谢谢,VJ

0 投票
1 回答
2415 浏览

ios - 混合 ARM 和 THUMB 指令

我正在尝试在我的汇编代码中混合使用 ARM 和 THUMB 指令。例如,在下面的代码中,我尝试使用这两种模式:

现在,根据我的理解,当我将此代码编译到库中并通过 nm 运行时,mysymbol1应该显示为 arm 并且mysymbol2应该显示为 thumb,即

但两者都显示为手臂。我在这里想念什么?我的汇编命令是:

0 投票
1 回答
597 浏览

arm - 如何强制 thumb2 指令集的功能从 32 位对齐地址开始?

thumb2指令集中有16位和32位指令。函数可以从 16 位或 32 位对齐地址开始。有没有办法让所有函数都从 32 位对齐地址开始?

0 投票
1 回答
519 浏览

c - AT91SAM7x:可能由链接器引起的 DisASM 混乱

我使用 Eclipse 和 Yagarto 工具链(非 eabi,GCC 4.7.1)对 ARM 7 芯片(Atmel 的 AT91SAM7X256)进行编程,该项目的目标是将引导加载程序放置在定义的 ROM 范围内,稍后将其复制到 RAM 中(见下图,用于应用程序代码启动的 ROM 地址 0x104000 已修复)。按预期工作......直到您调试程序(SEGGER J-Link 和 GDB)。

内存结构图片显示在这里:http: //i47.tinypic.com/2vb6f7o.jpg(抱歉,不能在这里发布图片)。

问题从链接的 .text 部分开始,主要使用以下方法,该方法启动整个 .text 部分(正确):(通过objdump -e -h common/exhandler.o > exhandler.lst反汇编 C 代码)

反汇编链接的ELF文件时,代码输出为:(错误

虽然字节序列保持不变,但这些 ASM 命令的解释不同。我的假设是 Thumb 和 ARM 代码在链接过程中出现问题。

我的链接器文件:

谁能发现链接器文件中的错误或给我提示,下一步该去哪里看?

谢谢你的阅读,保尔

PS:这是 ELF 文件部分标题的一些输出,因此很明显没有重叠部分。

0 投票
0 回答
1034 浏览

xcode - -mno-thumb 和 GCC_THUMB_SUPPORT = NO 有什么区别

似乎有两种方法可以在 Xcode 4.5 中关闭 Thumb 支持:

  1. 在中指定-mno-thumb标志Build Settings/Other C Flags

  2. 设置GCC_THUMB_SUPPORTNO_Build Settings/User-Defined

这两种方法有区别吗?

0 投票
2 回答
242 浏览

assembly - 16 位 Thumb-2 汇编指令集中的“更新条件标志”S 是如何编码的?

所以我需要为类编写一个非常基本的反汇编程序,我很难弄清楚可以附加到 Thumb 指令的 S 是如何编码的。

例如,指令 0x0011 对应如下汇编代码:

为什么不只是一个普通的mov?

同样,0x1889 对应于:

据我通过阅读参考手册可以看出,这与没有 S 的常规 add 指令的编码相同。是这样吗?更新条件标志的指令是如何发送的?

0 投票
0 回答
538 浏览

binary - ARM“仅限拇指”二进制文件

网上是否有仅使用拇指(拇指 1,无拇指 2)指令的 ARM ELF 二进制文件的来源?

(是的,我读到 Linux 无法在仅限拇指的处理器上运行。)

二进制文件的内容应该尽可能“正常”,我想将它们用作分类器的训练数据。

0 投票
1 回答
1128 浏览

gcc - 仅编译 thumb1

我如何告诉 gcc 编译成仅限 Thumb1 的指令?

大家都知道helloworld.c:

这是我的命令行:

user@debian-armel:~$gcc -mcpu=cortex-m3 -mthumb helloworld.c && objdump -d a.out

瞧:大多数指令都是 32 位宽的,而不是我预期的 16 位。

那么,我做错了什么?