小编lxu*_*usr的帖子

#if defined(x)|| (y); 这有效吗?

在一次审查中,我遇到了一段代码,如下所示:

#if defined(x) || y
Run Code Online (Sandbox Code Playgroud)

上述陈述是什么意思?条件是否正确执行?

c

21
推荐指数
3
解决办法
5万
查看次数

ioctl vs netlink vs memmap在内核空间和用户空间之间进行通信

当用户要求在Linux用户空间中使用命令时,可以显示我们的自定义硬件的一些统计信息.此实现目前使用PROC接口.我们开始添加更多的统计信息然后我们遇到了一个问题,其中特定的统计命令必须执行两次才能获得整个数据,因为PROC接口被限制为1页.

如上所述,内核和用户空间之间的数据传输并不重要,但根据数据,用户可能会做出一些决定.我们对这种接口设计的要求是它应该能够传输大于8192字节的数据量并且命令需要使用最少的内核资源(如锁等),并且它需要快速.

使用ioctl可以解决问题,但由于命令完全不是控制设备而是收集一些统计信息,因此不确定它是否是一个很好的机制,可以按照Linux使用.我们目前正在使用3.4内核; 不确定Netlink在这个版本中是否有损(以前的版本我遇到的问题就像队列变满,socket开始丢弃数据).mmap是另一种选择.任何人都可以建议我使用什么是最好的界面

linux linux-device-driver

9
推荐指数
1
解决办法
6613
查看次数

在Buildroot中BR2_JLEVEL = 2做了什么?

我已将BR2_JLEVEL设置为2; 不确定此选项在buildroot中如何工作?有人可以提供有关它如何在buildroot中工作的细节,因为我没有看到我的构建时间的改进.

buildroot

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

objdump -S 不显示Linux内核模块的源代码列表

我正在尝试调试我的内核模块之一的崩溃;我正在尝试获取源代码列表以及 objdump 的输出,但它没有列出。我缺少什么吗?

 mips-linux-objdump -S <filename.o> > temp
Run Code Online (Sandbox Code Playgroud)

linux assembly gcc disassembly linux-device-driver

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

Linux内核设备驱动程序中的filp_open

filp_open允许我们在文件系统中打开一个文件.但是从内核空间使用是否安全?如果使用了需要注意的事项.这也将在未来的Linux内核版本中得到支持.

目前使用2.6.28 Linux内核版本.

linux linux-device-driver linux-kernel

4
推荐指数
1
解决办法
2560
查看次数

UBIF中UBI的腐败

我们在系统中使用Linux-2.6.28和2 Gb NAND Flash; 经过一些动力循环测试后,我们观察到以下错误:

Volume operational found at volume id 3
read 21966848 bytes from volume 3 to 80400000(buf address)
UBI error: ubi_io_read: error -77 while reading 126976 bytes from PEB 1074:4096, read    126976 bytes
UBI: force data checking
UBI error: ubi_io_read: error -77 while reading 126976 bytes from PEB 1074:4096, read 126976 bytes
UBI warning: ubi_eba_read_leb: CRC error: calculated 0xa7cab743, must be 0x15716fce
read err ffffffb3
Run Code Online (Sandbox Code Playgroud)

这些错误不是硬件错误,就像我们删除有问题的分区一样,我们能够正常启动硬件; 也许UBIFS没有纠正坏的UBI块.

在最新的内核中添加了任何UBI补丁来解决这个问题?谢谢.

linux linux-kernel ubifs

3
推荐指数
1
解决办法
8828
查看次数

undef和define <MACRO> 0有什么区别?

想要了解undef之间的区别,并将宏定义为0.谢谢.

macros c-preprocessor

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

request_irq- irq标志设置为0; 这有效吗?

在浏览2.6.35时的一些驱动程序中,观察到request_irq传递了0irq标志的值.当看到interrupt.h- 0对应IRQ_TRIGGER_NONE;

这相当于IRQ_NONE以前内核中的情况吗?

谢谢.

linux linux-device-driver linux-kernel

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

在memcmp中我们可以使用数组而不是指针

我遇到了以下代码:

              memcmp(mac, (char []){0x01,0x00,0x5E}, 3)
Run Code Online (Sandbox Code Playgroud)

也许它会起作用; 以上述方式编写memcmp是否可以?谢谢.

c

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