linux-device-driver

    0热度

    2回答

    我正在写一个内核模块,设置一个定时器,在某些时期后在模块中调用回调函数。 的代码是这样的: static struct timer_list test_timer; static void timeout_cb(unsigned long data) { printk("cb called\n"); } static int __init timer_module_init(v

    -1热度

    1回答

    我在嵌入式平台上使用4.9 Linux内核,并注意到即使我没有像watchdog documentation提到的那样运行用户空间守护程序,看门狗定时器也会自动刷新。

    2热度

    1回答

    假设我们从iSCSI LUN引导Linux,即使在加载操作系统中的设备驱动程序之前的阶段,HBA也可以连接到iSCSI目标并读取LUN。但是,在启动过程的某个阶段,开放式iscsi启动器将接管并将iSCSI处理再次卸载到HBA。这需要特殊的驱动程序(例如: - broadcom的bnx2i)我的问题是现在需要设备驱动程序,尤其是在初始引导阶段HBA可以在没有设备驱动程序的情况下工作吗?操作系统不能

    0热度

    1回答

    我在dragonboard410c工作具有内核模块wcn36xx哪些寄存器是这样的: static const struct of_device_id wcn36xx_of_match[] = { { .compatible = "qcom,wcnss-wlan" }, {} }; MODULE_DEVICE_TABLE(of, wcn36xx_of_match); s

    5热度

    1回答

    我的代码中有一个自旋锁,它在两个线程之间共享。当一个线程持有锁而另一个线程试图获得锁时,第二个线程将继续在处理器上旋转。那么如果在线程正在旋转锁的处理器上发生中断,会发生什么? 我已经使用spin_lock()来取锁而不是spin_lock_irqsave(),因为我不想在本地处理器上禁用中断。 当我在内核中检查spin_lock()函数的代码时,我发现默认情况下禁用抢占并且没有任何IRQ。所以我

    1热度

    1回答

    我正在编写内核驱动程序drivers/char/new_driver.c。 此新驱动程序通过调用misc_register() api注册两个新设备/dev/device1和/dev/device2。 error = misc_register(&device1); error = misc_register(&device2); static struct miscdevice devic

    1热度

    2回答

    在目标板的启动过程中,我们看到uboot(bootloader)在控制台上打印一些信息,如图像名称,图像类型,加载地址,验证校验和等。它使用哪种打印机制?它是否使用类似printk的东西,或者甚至在内核启动之前它有自己的打印信息定义?我在哪里可以找到它的打印实施代码?

    -1热度

    3回答

    我有一个内核驱动程序,它正在从传感器读取数据。 现在我必须编写一个用户空间应用程序,它将调用内核的sensor_read() API并将数据发送到云。 如何将内核的sensor_read()调用暴露给用户空间并从用户空间读取此数据?数据大约是10个字节。

    1热度

    1回答

    我知道了"magic ring buffer"把戏,涉及镜像基础缓冲区的进程的地址空间,让数据块与单个memcpy()入队,而不必担心回绕的。 我想完成同样的事情,但在Linux内核模块。假设我有dma_alloc_coherent()创建的缓冲器,其虚拟地址为V其长度为N。如何创建映射,使其虚拟地址[V+N,V+2N)映射到与[V,V+N)相同的底层页面? 注:这是在32位ARM Linux操作

    0热度

    1回答

    我正在尝试构建一个linux驱动程序,并且希望在其中包含一个应使用yasm构建的.asm文件。 我应该如何在Makefile中指定它? 目前它说“没有规则制定目标”,因为这是一个asm文件而不是S文件。 如果我将其后缀更改为.S,它会尝试使用默认汇编器构建它,并且由于它们具有不同的语法而失败。 我该怎么做才能使它工作?