这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 当前进程(Linux Devices Driver)

共3条 1/1 1 跳转至

当前进程(Linux Devices Driver)

高工
2019-03-06 08:36:35     打赏

 尽管内核模块不像应用程序一样顺序执行,内核做的大部分动作是代表一个特定进程的,内核代码可以引用当前进程,通过存取全局项current,它在asm/current.h中定义,它产生一个指针指向结构task_struct,在linux/sched.h定义,current指针指向当前在运行的进程,在一个系统调用执行期间,例如open 或者read,当前进程是发出调用的进程,内核代码可以通过使用current来使用进程特定的信息,如果它需要这样,这种技术的一个例子在第六章展示。 

实际上, current 不真正地是一个全局变量. 支持 SMP 系统的需要强迫内核开发者去开发一种机制, 在相关的 CPU 上来找到当前进程. 这种机制也必须快速, 因为对 current 的引用非常频繁地发生. 结果就是一个依赖体系的机制, 常常, 隐藏了一个指向task_struct 的指针在内核堆栈内. 实现的细节对别的内核子系统保持隐藏, 一个设备驱动可以只包含linux/sched.h 并且引用当前进程. 例如, 下面的语句打印了当前进程的进程 ID 和命令名称, 通过存取结构 task_struct 中的某些字段.printk(KERN_INFO “The process is \”%s\” (pid %i)\n”, current->comm, current->pid);存于 current->comm 的命令名称是由当前进程执行的程序文件的基本名称( 截短到 15 个字符, 如果需要 ). 

代码修改如下:


--- a/mediatek/custom/mid713l_lp_lvds/kernel/touchpanel/GSLX680/mtk_gslX680.c

+++ b/mediatek/custom/mid713l_lp_lvds/kernel/touchpanel/GSLX680/mtk_gslX680.c

@@ -687,8 +687,8 @@ static void record_point(u16 x, u16 y , u8 id)


 void tpd_down( int id, int x, int y, int p) 

 {

-       print_info("============tpd_down id: %d, x:%d, y:%d============ \n", id, x, y);

-

+       printk("============tpd_down id: %d, x:%d, y:%d============ \n", id, x, y);

+       printk("weiqifa The process is -%s pid -%i\n",current->comm,current->pid);

        input_report_key(tpd->dev, BTN_TOUCH, 1);

        input_report_abs(tpd->dev, ABS_MT_TOUCH_MAJOR, 1);

        input_report_abs(tpd->dev, ABS_MT_POSITION_X, x);

:~/weiqifa/new_tm100/tm100$ 


日志打印如下:


<6>[   92.546337]-(2)[[FH]] dis ok

<6>[   92.546353]-(2)[Power/clkmgr] [mt_disable_clock]: id=50, names=MFG

()mknt[oetsce_ls[84 <4>[   92.605413] (3)============tpd_down id: 1, x:683, y:210============ 

<4>[   92.605443] (3)weiqifa The process is -mtk-tpd pid -104

223 1slc i.rnsolr 94,omsoeaj10,omaj1,sz 43 okl

4[ 9.227 1Klig'dpitpoe'(8) o_cr_d 00(o_d 8,<>  2650]() t re272Bo eafo dodluce3 98 e  92.650]() cce622Bi eo ii 91k o o_cr_d 00<>  2651]() Fe eoyi 70k bv eevd[f(x0d)

>  2654]()98dodluce3 i  o[8:dpitpoe]<>  2655]()98G]ei


MTk平台的不好之处在于,你什么操作都没有,都会打印一大堆日志出来,我是真心搞





院士
2019-03-06 09:35:54     打赏
2楼

找一个日志分类与解析的辅助工具


管理员
2019-03-07 08:42:55     打赏
3楼

涨姿势


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]