相关疑难解决方法(0)

内核空间和用户空间有什么区别?

内核空间和用户空间有什么区别?内核空间,内核线程,内核进程和内核堆栈是否意味着相同的事情?另外,为什么我们需要这种区别?

operating-system kernel terminology linux-kernel

134
推荐指数
7
解决办法
11万
查看次数

操作系统中的用户和内核模式有什么区别?

用户模式和内核模式之间有什么区别,为什么以及如何激活它们中的任何一个,以及它们的用例是什么?

operating-system

94
推荐指数
5
解决办法
18万
查看次数

在操作系统的上下文中,Ring 0和Ring 3是什么?

我一直在学习Windows中驱动程序开发的基础知识我一直在寻找Ring 0Ring 3这两个术语.这些是指什么?它们与内核模式用户模式相同吗?

operating-system driver

35
推荐指数
2
解决办法
4万
查看次数

ARM 汇编中的立即值是否需要哈希?

我一直在阅读 gcc 生成的一些不同的arm汇编代码,并且遇到了一些我在规范中找不到的东西。

movw    r0, #39784
movt    r0, 1
Run Code Online (Sandbox Code Playgroud)

显然,第一个是将值 39784 移动到底部 16 位或 r0,但 movt 的操作数“1”很奇怪,因为它前面没有哈希,而且我的印象是立即值需要哈希。在某些情况下它是可选的吗?或者我错过了一些神奇的东西?

assembly gcc arm gnu-assembler

9
推荐指数
2
解决办法
2851
查看次数

交叉编译 - 错误:所选处理器在 ARM 模式下不支持 `fmrx r3,fpexc' - Beaglebone

我正在尝试交叉编译一个文件以闪入 Beaglebone Black。一切正常,但如果我尝试启用 FPU

#define set_en_bit_in_fpexc() do { \
    int dummy; \
    __asm__ __volatile__ ("fmrx %0,fpexc\n\t" \
                         "orr  %0,%0,#0x40000000\n\t" \
                         "fmxr fpexc,%0" : "=r" (dummy) : :); \
} while (0)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Error: selected processor does not support `fmrx r3,fpexc' in ARM mode
Error: selected processor does not support `fmxr fpexc,r3' in ARM mode
Run Code Online (Sandbox Code Playgroud)

我也尝试过thumb mode,但我遇到了同样的错误。当然,如果我删除初始化 FPU 的代码部分,它就可以正常工作。

为什么我会收到这些错误?

生成文件

[...]
CROSSPATH?=/usr/bin
CROSSPFX=$(CROSSPATH)/arm-none-eabi-
CC=$(CROSSPFX)gcc
AS=$(CROSSPFX)as
LD=$(CROSSPFX)ld
NM=$(CROSSPFX)nm
OBJCOPY=$(CROSSPFX)objcopy
OBJDUMP=$(CROSSPFX)objdump
CFLAGS=-Wall -Wextra -O2 -ffreestanding
ARCHFLAGS=-mcpu=cortex-a8 -march=armv7-a -mfpu=neon
CCARCHFLAGS=$(ARCHFLAGS) -marm …
Run Code Online (Sandbox Code Playgroud)

gcc arm cross-compiling newlib beagleboneblack

8
推荐指数
1
解决办法
7276
查看次数

如何在ARM中实现ptrace

我发现ptrace将在__ptrace.S中使用__ptrace及其代码,如下所示:

ENTRY(__ptrace)
.save   {r4, r7}
stmfd   sp!, {r4, r7}
ldr     r7, =__NR_ptrace
swi     #0
ldmfd   sp!, {r4, r7}
movs    r0, r0
bxpl    lr
b       __set_syscall_errno
END(__ptrace)
Run Code Online (Sandbox Code Playgroud)

我不知道的是这个过程如何继续在swi#0和r7在这里做什么?

谢谢你的任何提示.

android arm

0
推荐指数
1
解决办法
2356
查看次数