问题标签 [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.
binary - 如何在内存中找到字符串的位置(具有物理偏移量)?
我需要找到str[possibly n]cmp
一个敌对的二进制文件。问题是拆卸中有十亿。
我知道它的存在是因为字符串的帮助。我正在反汇编一个没有“otx”的二进制文件(为您放入字符串的反汇编程序。
一旦程序加载,我需要知道如何找到该字符串的内存偏移量,以便我可以使用 gdb 等。
如果你能给我一个算法(我以前记得另一种方式:phys off = virtual off * segment adress + segment offset
--或类似的东西)(ps是正确的吗??:))
或者,如果您能告诉我这在 ida pro 中如何变得无比简单,我将不胜感激
谢谢 :)
binary - 在 IDA Pro 中编辑(修补)二进制文件
我想知道如何在 ida pro 中编辑二进制文件(我只需要更改一条指令!)
(它的 ARM 二进制文件)
谢谢
arm - FIQ和IRQ中断系统有什么区别?
我想知道任何微处理器中FIQ和IRQ中断系统的区别,例如:ARM926EJ。
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 版本。
这是一个真正的错误还是我必须使用不同的开关?
真挚地,
克里斯
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 for
ret' 中,声明为register'
global/qlibraryinfo.cpp: In function
void 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
谁能告诉我可能是什么问题或要调查什么?
谢谢你布莱斯
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_p
man 文档明确指出您需要使用 -O 或 -O2 进行编译;否则,您将面临子例程未被内联的风险
- ,
- 虽然它会在屏幕上打印“Uncompressing Linux ..... Ok, Booting the kernel”消息,但一旦它开始初始化控制台,你就会失明。内核不会将其他任何内容打印到屏幕上。没有漂亮打印的恐慌消息 - 您必须闯入
__show_regs()
并手动窥探所有相关寄存器(pc、fsr 等)。这并不像听起来那么困难。这和听起来一样乏味。 - 我相信我已经为 ARM 和 Debian 应用了所有相关的补丁。
- 我准备好像一个膝盖被剥皮的小女孩一样哭泣。
我会很感激有一双新鲜的眼睛,或者至少是朝着正确的方向点头。提前感谢您阅读本文以及您可以提供的任何帮助。
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 ......
iphone - 在 Xcode 中设置 GCC 4.2.1 选项
我有几个关于 Xcode 和与 GCC 4.2.1 交互的问题:
Xcode Target Properties 检查器似乎没有公开所有可能的 GCC 选项。这个对吗?
更具体地说,我对设置“mfpu”选项感兴趣,如 arm_neon.h 内在函数头中所述。这是可能的还是支持的?或者可能设置为其他 Xcode 设置的副作用?
如果有人尝试过或可以发布一些资源,那将有很大帮助。
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 代码片段: