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

binary - 如何在内存中找到字符串的位置(具有物理偏移量)?

我需要找到str[possibly n]cmp一个敌对的二进制文件。问题是拆卸中有十亿。

我知道它的存在是因为字符串的帮助。我正在反汇编一个没有“otx”的二进制文件(为您放入字符串的反汇编程序。

一旦程序加载,我需要知道如何找到该字符串的内存偏移量,以便我可以使用 gdb 等。

如果你能给我一个算法(我以前记得另一种方式:phys off = virtual off * segment adress + segment offset--或类似的东西)(ps是正确的吗??:))

或者,如果您能告诉我这在 ida pro 中如何变得无比简单,我将不胜感激

谢谢 :)

0 投票
6 回答
42464 浏览

binary - 在 IDA Pro 中编辑(修补)二进制文件

我想知道如何在 ida pro 中编辑二进制文件(我只需要更改一条指令!)

(它的 ARM 二进制文件)

谢谢

0 投票
11 回答
102494 浏览

arm - FIQ和IRQ中断系统有什么区别?

我想知道任何微处理器中FIQ和IRQ中断系统的区别,例如:ARM926EJ。

0 投票
2 回答
862 浏览

c++ - Nintendo DS 平铺图形中出现奇怪的条纹

我正在为 Nintendo DS 开发一款乒乓球游戏。我正在使用 libnds 进行设置,但遇到了一种非常奇怪的行为。到目前为止,我只在模拟器中尝试过,但我使用了三种不同的,它们都表现出这种行为,所以我怀疑我做错了什么。

实际问题是,当我为平铺图形使用背景层 1 或更高层时,我会在该层上出现奇怪的条纹。如果我使用背景层 0,问题就会消失,但由于它是最后渲染的,我实际上无法在我想要的另一层中绘制它。

我的设置代码:

在上面的代码中,我将第 1 层用于 bg0,这是我的平铺图形层。这使得奇怪的条纹出现;如果我像这样将其更改为 0,它将按预期显示:

任何想法是什么导致了问题,解决方案是什么?

奇怪条纹的图像

0 投票
2 回答
1222 浏览

arm - 旧 ARM7TDMI (ARMv4T) 的 objdump 显示新架构的指令?

我非常关心 GNU 的成功,并希望得到一些关于如何处理 ARM 的 objdump 中的潜在错误的反馈......

我正在检查“objdump -D --target=binary -m arm7tdmi”的输出,并看到古代 ARM7TDMI 内核上不存在的指令。

(我正在查看一个随机位文件并将其视为原始二进制文件而不是 ELF 文件。)

例如,mrcc、blx 和 ldc2 只出现在 ARMv5 或更高版本中,但我在上面的命令行开关的输出中看到它们。

(我看到与“-m armv4t”相同的问题。)

我正在使用来自 Ubuntu 9.04 的 2.19.1-multiarch 版本。

这是一个真正的错误还是我必须使用不同的开关?

真挚地,

克里斯

0 投票
1 回答
595 浏览

qt - Qt 构建错误

配置后

我在制作时得到这个输出,但不知道为什么:

../../src/corelib/arch/qatomic_arm.h: 在函数char q_atomic_swp(volatile char*, char)': ../../src/corelib/arch/qatomic_arm.h:125: warning: address requested forret' 中,声明为register' global/qlibraryinfo.cpp: In functionvoid qt_core_init_boilerplate()': global/qlibraryinfo.cpp:581: __builtin_exit' undeclared (first use this function) global/qlibraryinfo.cpp:581: (Each undeclared identifier is reported only once for each function it appears in.) global/qlibraryinfo.cpp:573: warning: statement with no effect global/qlibraryinfo.cpp:573: warning: statement with no effect global/qlibraryinfo.cpp:574: warning: statement with no effect global/qlibraryinfo.cpp:574: warning: statement with no effect global/qlibraryinfo.cpp:575: warning: statement with no effect global/qlibraryinfo.cpp:576: warning: statement with no effect global/qlibraryinfo.cpp:576: warning: statement with no effect global/qlibraryinfo.cpp:577: warning: statement with no effect global/qlibraryinfo.cpp:578: warning: statement with no effect global/qlibraryinfo.cpp:578: warning: statement with no effect global/qlibraryinfo.cpp:579: warning: statement with no effect global/qlibraryinfo.cpp:580: warning: statement with no effect global/qlibraryinfo.cpp:580: warning: statement with no effect make[1]: *** [.obj/release-shared-emb-arm/qlibraryinfo.o] Error 1 make[1]: Leaving directory/home/bsalmi/Desktop/qt-embedded-linux -opensource-src-4.5.1/src/corelib' make: *** [sub-corelib-make_default-ordered] 错误 2

谁能告诉我可能是什么问题或要调查什么?

谢谢你布莱斯

0 投票
2 回答
1677 浏览

linux - Console_init 导致内核恐慌

系统详情:

操作系统:Debian/5.0 内核 2.6.26-2 i686 SMP

硬件:IBM Thinkpad T40 Type 2373 Pentium M 1.5GHz,512MB RAM

来源:sudo apt-get install linux-source-2.6.18 linux-patch-debian-2.6.18 linux-support-2.6.18-5

工具链:由 scratchbox 安装的 arm-linux-gcc3.4.cs-uclibc0.9.27

arm-linux-uclibc-gcc/-g++ -v:

qemu 系统臂:v0.9.1

qemu命令行:qemu-system-arm -m 32 -M integratorcp -kernel zImage -serial stdio -S -s

gdb 命令行: arm-uclibc-gdb --command=gdb_commands.vim --symbols /usr/src/linux-source-2.6.18/vmlinux

内核配置:

我正在尝试在 qemu 中运行交叉编译的内核。我正在尝试在 integratorcp 板上模拟 ARM9 系列处理器。这在 qemu-system-arm 下得到支持,并且这个设置出现在上面的命令行中。虽然我使用的是 scratchbox 提供的交叉构建工具链,但我并没有在 scratchbox 中编译。这是因为交叉支持为内核开发的非常好,实际上建议不要在scratchbox中完成。一切都编译到这个内核中。尽管启用了可加载模块支持,但没有构建任何模块。我能够成功生成压缩二进制文件(zImage)。当 qemu-system-arm 将其作为内核插入时,它成功地解压缩了 Linux 并几乎立即挂起。将未压缩的内核二进制文件 (/usr/src/linux-2.8.16-source/vmlinux) 提供给 arm-uclibc-gdb 以进行符号提取似乎也可以。设置断点和单步执行指令似乎是准确的。我能够使用 arm-uclibc-gdb 来捕获违规行。崩溃发生在驱动程序/视频/控制台/vgacon.c:462 中,在 vgacon_startup(void) 函数内。在尝试进入第 462 行上的指令 inb_p(VGA_IS1_RC) 后,它把床弄得一团糟。在__do_kernel_fault处设置断点,调用栈如下:`

我最终放弃了寻找正在召唤的东西__dabt_svc

几个兴趣点:

  • 似乎不可能检查和设置某些变量/函数的中断,即使它们在范围内(inb_p例如)。
  • 我尝试在没有优化的情况下进行编译,-O 和 -O2 并没有成功启动这个问题
    • , inb_pman 文档明确指出您需要使用 -O 或 -O2 进行编译;否则,您将面临子例程未被内联的风险
  • 虽然它会在屏幕上打印“Uncompressing Linux ..... Ok, Booting the kernel”消息,但一旦它开始初始化控制台,你就会失明。内核不会将其他任何内容打印到屏幕上。没有漂亮打印的恐慌消息 - 您必须闯入__show_regs()并手动窥探所有相关寄存器(pc、fsr 等)。这并不像听起来那么困难。这和听起来一样乏味。
  • 我相信我已经为 ARM 和 Debian 应用了所有相关的补丁。
  • 我准备好像一个膝盖被剥皮的小女孩一样哭泣。

我会很感激有一双新鲜的眼睛,或者至少是朝着正确的方向点头。提前感谢您阅读本文以及您可以提供的任何帮助。

0 投票
1 回答
10112 浏览

android - 在 Android 上安装预构建的二进制文件:“未找到”

我正在尝试在自定义 Android 映像中安装预构建的二进制文件。为此,我已将其复制到一个新目录中prebuilt/android-arm/,其中包含Android.mk与此类似的文件:

因此,如果我运行make system_image binary_name,二进制文件将被复制到/bin/系统映像中。如果我运行模拟器,我可以在/system/bin. 权限与其他可执行文件 ( -rwxr-xr-x) 相同,根据file,这是一个 ARM 二进制文件 ( ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped)。

但是当我在模拟器上运行它时,它说:

我已经跟踪了它,这就是我所看到的:

但是文件在那里,strace 能够找到它。

知道会发生什么吗?

更新:正如 Kristof 所说,这可能是动态链接的问题,但我没有适用于 Android ARM 的 ldd ......

0 投票
1 回答
2465 浏览

iphone - 在 Xcode 中设置 GCC 4.2.1 选项

我有几个关于 Xcode 和与 GCC 4.2.1 交互的问题:

  1. Xcode Target Properties 检查器似乎没有公开所有可能的 GCC 选项。这个对吗?

  2. 更具体地说,我对设置“mfpu”选项感兴趣,如 arm_neon.h 内在函数头中所述。这是可能的还是支持的?或者可能设置为其他 Xcode 设置的副作用?

如果有人尝试过或可以发布一些资源,那将有很大帮助。

0 投票
3 回答
1940 浏览

c# - 在 Windows CE for ARM 上从 C# 调用的 C++ DLL 始终返回 0

我目前正在 TI OMAP 处理器(一个 ARM 处理器)上为 Windows CE 开发应用程序。我试图简单地从 C# 调用 C++ DLL 文件中的函数,并且无论我使用哪种数据类型,我总是得到一个 0 的值。这很可能是某种调用约定不匹配吗?我正在从同一个 Visual Studio 解决方案编译 DLL 和主 EXE。

C# 代码片段:

C++ DLL 代码片段: