草庐IT

open_gapps-arm

全部标签

linux - Linux ARM 上程序寄存器和堆栈的初始状态

我目前正在Linux上玩ARM汇编作为学习练习。我正在使用“裸”程序集,即没有libcrt或libgcc。谁能告诉我在调用第一条指令之前堆栈指针和其他寄存器在程序开始时的状态信息?显然pc/r15指向_start,其余似乎都初始化为0,但有两个异常(exception);sp/r13指向一个远离我的程序的地址,而r1指向一个稍微高一点的地址。所以对于一些可靠的问题:r1中的值是多少?sp中的值是否是内核分配的合法栈?如果不是,分配堆栈的首选方法是什么?使用brk还是分配静态.bss部分?如有任何指点,我们将不胜感激。 最佳答案 既然

linux - Linux ARM 上程序寄存器和堆栈的初始状态

我目前正在Linux上玩ARM汇编作为学习练习。我正在使用“裸”程序集,即没有libcrt或libgcc。谁能告诉我在调用第一条指令之前堆栈指针和其他寄存器在程序开始时的状态信息?显然pc/r15指向_start,其余似乎都初始化为0,但有两个异常(exception);sp/r13指向一个远离我的程序的地址,而r1指向一个稍微高一点的地址。所以对于一些可靠的问题:r1中的值是多少?sp中的值是否是内核分配的合法栈?如果不是,分配堆栈的首选方法是什么?使用brk还是分配静态.bss部分?如有任何指点,我们将不胜感激。 最佳答案 既然

Ubuntu20.4配置arm交叉编译环境

Ubuntu20.4配置arm交叉编译环境我是在虚拟机中配置的,如果你的嵌入式设备足够完成自己的编译,可以不考虑虚拟机的。新安装的Ubuntu20.04系统请先执行以下代码sudoaptupdatesudoaptupgrade到aarch64下载对应的aarch64的base镜像。之后执行如下命令,创建armsys文件夹,之后将刚下载的镜像拷贝到该文件夹下并且解压cd/mkdir/armsys安装一些必要的软件sudoaptinstallqemuqemu-user-staticbinfmt-supportdebootstrap注册aarch64的运行环境sudoupdate-binfmts--

linux - arm-linux-gnueabi 工具链与 arm-linux-androideabi 工具链。

我可以使用arm-linux-gnueabi-*工具链为我的android设备编译文件(例如C或C++源代码)吗?我的问题可能看起来有点傻,但我会得到与使用arm-linux-androideabi-*工具链编译相同的结果吗? 最佳答案 编译可能不仅仅意味着将源代码转换为二进制文件。像GCC这样的编译器也提供某些库,在本例中为libgcc用于处理硬件无法处理的问题。当编译器成为工具链时,它还提供与目标系统中提供的类似的编程语言标准化的运行时库。在arm-linux-gnueabi-的情况下可能是libc对于arm-linux-and

linux - arm-linux-gnueabi 工具链与 arm-linux-androideabi 工具链。

我可以使用arm-linux-gnueabi-*工具链为我的android设备编译文件(例如C或C++源代码)吗?我的问题可能看起来有点傻,但我会得到与使用arm-linux-androideabi-*工具链编译相同的结果吗? 最佳答案 编译可能不仅仅意味着将源代码转换为二进制文件。像GCC这样的编译器也提供某些库,在本例中为libgcc用于处理硬件无法处理的问题。当编译器成为工具链时,它还提供与目标系统中提供的类似的编程语言标准化的运行时库。在arm-linux-gnueabi-的情况下可能是libc对于arm-linux-and

c++ - gdb 说 "cannot open shared object file"

我有一个二进制文件和一个共享库。共享库编译为:all:g++-g-shared-fpic$(SOURCES)-olibmisc.so二进制文件编译为:LIBS=-L../../misc/srcLDFLAGS=-lmiscall:g++-g-omainx$(INCLUDE)$(SOURCE)$(LIBS)$(LDFLAGS)我设置在~/.bashrcexportLD_LIBRARY_PATH=/mnt/sda5/Programming/misc/src/到libmisc.so输出路径。从控制台调试工作正常:gdbmainx但是在Emacs22中,启动gdb失败并显示以下消息:Starti

c++ - gdb 说 "cannot open shared object file"

我有一个二进制文件和一个共享库。共享库编译为:all:g++-g-shared-fpic$(SOURCES)-olibmisc.so二进制文件编译为:LIBS=-L../../misc/srcLDFLAGS=-lmiscall:g++-g-omainx$(INCLUDE)$(SOURCE)$(LIBS)$(LDFLAGS)我设置在~/.bashrcexportLD_LIBRARY_PATH=/mnt/sda5/Programming/misc/src/到libmisc.so输出路径。从控制台调试工作正常:gdbmainx但是在Emacs22中,启动gdb失败并显示以下消息:Starti

python - 在哪些系统/文件系统上 os.open() 是原子的?

This文章指出,fd=os.open('foo.lock',os.O_CREAT|os.O_EXCL|os.O_RDWR)“在大多数文件系统上是原子的”。这是真的吗(在Unix和Windows上)?在哪些文件系统上?docs声明提到的标志在Unix和Windows上可用,因此它看起来像是一种诱人的跨平台文件锁定方法(标志O_CREAT和O_EXCL确保调用进程创建文件)。 最佳答案 对于符合UN*X(根据OpenGroup认证的POSIX/IEEE1003.1)的系统,该行为作为open(2)的OpenGroups规范得到保证。强

python - 在哪些系统/文件系统上 os.open() 是原子的?

This文章指出,fd=os.open('foo.lock',os.O_CREAT|os.O_EXCL|os.O_RDWR)“在大多数文件系统上是原子的”。这是真的吗(在Unix和Windows上)?在哪些文件系统上?docs声明提到的标志在Unix和Windows上可用,因此它看起来像是一种诱人的跨平台文件锁定方法(标志O_CREAT和O_EXCL确保调用进程创建文件)。 最佳答案 对于符合UN*X(根据OpenGroup认证的POSIX/IEEE1003.1)的系统,该行为作为open(2)的OpenGroups规范得到保证。强

android - arm-linux-androideabi编译器使用方法

我想知道如何使用arm-linux-androideabi编译器。该编译器在android-ndk工具上。android-ndk工具上有ndk-build工具。要编译ethercat堆栈,我只需要arm-linux-androideabi编译器。但是,我看到了这条消息。root@ubuntu:/opt/android/android-ndk-r9c/jni#arm-linux-androideabi-gcc-otesttest.c/opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linu