我有一个关于linux设备驱动程序的一般性问题。更常见的情况是,我弄不清楚在linux设备驱动程序中允许或不允许执行哪些操作?
是否有任何规则或查找列表可遵循?
例如,下面的例子是不允许的?
msleep(1000);
al = kmallock(sizeof(val));
printk(KERN_ALERT "faild to print\n";
ret = adc_get_val()*0.001;
最近我开始开发linux设备驱动程序,
当我想使用内核代码进行调试并在内核文件中添加一些printk调试消息时,我将面临一个问题。
例如,最近我在驻留在printk()中的__debug_locks_off()中添加了一些include/linux/debug_locks.h和dump_stack()。
然后我执行以下步骤,这是非常耗时的。
make clean
make bzImage
make modules
make modules_install
mkinitrfmfs -o /boot/initrd.img 3.12.6[my kernel version]
cp arch/x86