0

我们使用的是皮质 A15 和内核 3.8。如果我编译 arm-gcc-4.7.3 test.c -o test_thumb -mthumb

在内核中,如果我设置了 CONFIG_ARM_THUMB 或未设置。我的 THUMB(用户空间)总是运行,

所以我无法理解这种行为。

4

1 回答 1

1

好的,所以,我看不出有充分的理由去做你想做的事情......所以我假设你是出于纯粹的好奇而问的。

无法(在处理器中)禁用解码 Thumb 指令或切换到 Thumb 状态。CONFIG_ARM_THUMB 选项是关于在应用程序中安全使用 Thumb 代码,以确保操作系统的行为。这意味着,在理论上,不禁用此功能可能意味着在某些情况下程序将无法正常工作 - 并不是说​​它会阻止主动执行 Thumb 代码。

实际上,它曾经产生的主要影响是 OABI,它使用 SWI(现在的 SVC)指令中的嵌入值来识别它正在请求的系统调用。我认为最新版本的 GCC/binutils 甚至都不支持 OABI...任何 4.7 工具链都极有可能是 EABI。

于 2013-06-14T12:28:11.477 回答