小编Kri*_*oks的帖子

对ARM指令感到困惑

我无法弄清楚这条ARM指令的作用:

strd.w          r0, r1, [r2]
Run Code Online (Sandbox Code Playgroud)

我知道这是一个商店指令,存储的东西,*r2但我不完全确定.为什么有两个源寄存器(r0r1)以及d.w后缀是什么意思?

arm

5
推荐指数
1
解决办法
1761
查看次数

Android 4.0内核源代码?

我在哪里可以获得Android 4.0(Ice Cream Sandwich)内核源代码?

虽然这可能是一些人之前提出过的愚蠢问题,但我似乎无法在任何地方找到合适的答案,因为:

  • 谷歌决定是非常有用的和重定向android.kernel.orghttp://source.android.com/source/downloading.html,其中包括Android系统的每一个部分从内核分开.我不明白这背后的逻辑.

  • git clone https://android.googlesource.com/kernel/common.git做一些奇怪的事情并创建一个巨大的(600 MB +) .git文件夹而不创建源树.关于git repo,没有给出两个问题,我只需要源代码树.

  • GitHub上的所有内核分支都非常过时.

android linux-kernel android-source android-kernel

5
推荐指数
2
解决办法
1万
查看次数

在Qemu中仿真基于NAND的存储设备?

我想测试我编写的第一阶段引导加载程序,以便引导加载未完成的内核,所以我可以调试它,看它是否有效.是否有可能使Qemu模拟NAND存储设备,从中复制引导加载程序并执行它?如果是这样,我将如何去做呢?

基本上,Qemu需要初始化虚拟CPU和虚拟NAND,将其中一大块加载到RAM中,然后让CPU跳转到它.加载器在内存中之后,它将能够加载文件系统,查找内核,解压缩,解密,解码,重定位和执行它.

arm qemu emulation

5
推荐指数
1
解决办法
2197
查看次数

Android 上的完全原生应用程序?

是否可以开发一个不依赖 Dalvik 运行时和任何 Java 库而运行的本机应用程序?

基本上,我想制作一个可以通过 shell 运行的本机二进制文件,该 shell 可以在没有system_server进程运行的情况下运行。理想情况下,我希望能够通过 OpenGL 系统渲染内容来创建自己的 Window Server,而不是依赖 SurfaceFlinger(SurfaceFlinger 也会因为未system_server运行而失效)。

我问这个问题的原因是我想尝试用 C/C++ 进行较低级别的 Android 开发,而 Java 根本不需要。基本上,我正在尝试开发一个独立的应用程序,可以通过OpenGL+Cairo渲染事物并接收 HID 输入。

PS:我知道NDK是什么,但这不是我要找的。我想创建独立的二进制文件,而不是创建在 Dalvik VM 内运行的东西。

android

5
推荐指数
1
解决办法
1994
查看次数

mmap()返回EINVAL

我无法让mmap函数工作.它返回EINVAL错误代码.

void* mapped = 
        mmap((void*)(map_addr + slide),
             map_size,
             PROT_WRITE | PROT_READ,
             MAP_PRIVATE | MAP_ANON,
             bprm->file,
             map_offset);
Run Code Online (Sandbox Code Playgroud)

我在我的平台(达尔文)上检查了这个功能的文档,似乎没有任何错误.mmap的手册页介绍了返回EINVAL的四种情况.

 [EINVAL]           MAP_FIXED was specified and the addr argument was not page
                    aligned, or part of the desired address space resides out of the
                    valid address space for a user process.
Run Code Online (Sandbox Code Playgroud)

未指定MAP_FIXED,因此不是这个.

 [EINVAL]           flags does not include either MAP_PRIVATE or MAP_SHARED.
Run Code Online (Sandbox Code Playgroud)

MAP_PRIVATE存在.

 [EINVAL]           The len argument was negative.
Run Code Online (Sandbox Code Playgroud)

调用时的len(map_size)参数是8192.

 [EINVAL]           The offset argument was not page-aligned based on …
Run Code Online (Sandbox Code Playgroud)

c mmap

5
推荐指数
1
解决办法
2580
查看次数

Libm针对ARM进行了优化?

是否存在针对ARM(v6)处理器优化的libm(libmath)?

我正在研究GNU实现,它似乎没有被优化(但它确实有x86).似乎libm的大多数实现都没有ARM特定的优化.

math arm libm

5
推荐指数
1
解决办法
630
查看次数

在 Linux 上强制从用户区进行上下文切换?

是否可以建议内核绕过调度程序逻辑,立即执行上下文切换到不同的线程?

例如,如果我刚刚创建了一个线程/进程,并且clone我想立即开始执行它,立即放弃当前上下文,而不是等待内核下次重新安排内容。

理想情况下,我正在寻找与thread_switchMach 内核上的调用相同的东西。

linux scheduling

5
推荐指数
1
解决办法
3281
查看次数

在Linux内核中进行COW复制?

所以,我想知道 - 我将如何在内核中实现复制内存页面(struct page)并利用写时复制机制而不是立即传输数据.

现在,我通过将用户地址转换为页面来allocate_pages复制页面,使用内核分配所需的页面数量,使用它们进行复制copy_pages,然后最终使用它们将它们映射到所需的区域install_special_mapping.这有效,但我觉得这可以使用写时复制机制进行优化.

linux memory copy-on-write

5
推荐指数
0
解决办法
649
查看次数

找到四个中的两个最小值?

所以,我有四个整数,我需要找出这四个中最低的两个.用C(或任何其他语言)这样做最有效的方法是什么?

编辑:为了提高效率,我需要一个固定的实现,因为这是一个非常关键的操作,将要执行数千次.

c algorithm

5
推荐指数
1
解决办法
271
查看次数

用于寻找两个2D四边形的交点的AC算法?

我有一个quad类型,定义为:

typedef struct __point {
    float x;
    float y;
} point_t;

typedef struct __quad {
    point_t p1;
    point_t p2;
    point_t p3;
    point_t p4;
} quad_t;
Run Code Online (Sandbox Code Playgroud)

如果我在同一平面上有两个这样的四边形,我希望能够计算出这些四边形的交点.例如,如果我们有四A四B,如果B的任何一个点落在A之外,那么该算法应该产生一个带有点的四边形,如下图所示(A为红色,B为紫色):

例

编辑:点的排序并不重要,因为我稍后会使用这些点构建一个将在A中绘制的四边形.

c algorithm geometry computational-geometry

5
推荐指数
1
解决办法
1582
查看次数