2014年1月16日
摘要: 第二章 驱动程序调测方法与技巧驱动程序开发的一个重大难点就是不易调试。本文目的就是介绍驱动开发中常用的几种直接和间接的调试手段,它们是:利用printk查看OOP消息利用strace利用内核内置的hacking选项利用ioctl方法利用/proc 文件系统使用kgdb一、利用printk这是驱动开发中最朴实无华,同时也是最常用和有效的手段。scull驱动的main.c第338行如下,就是使用printk进行调试的例子,这样的例子相信大家在阅读驱动源码时随处可见。338 // printk(KERN_ALERT "wakeup by signal in process %d\n&quo 阅读全文
posted @ 2014-01-16 18:40 眼里的圈圈 阅读(3871) 评论(0) 推荐(1) 编辑
摘要: 1 使用kthread_create创建线程: struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char *namefmt, ...);这个函数可以像printk一样传入某种格式的线程名 线程创建后,不会马上运行,而是需要将kthread_create() 返回的task_struct指针传给wake_up_process(),然后通过此函数运行线程。2. 当然,还有一个创建并启动线程的函数:kthread_run struct task_struc... 阅读全文
posted @ 2014-01-16 17:08 眼里的圈圈 阅读(5491) 评论(0) 推荐(0) 编辑