上QQ阅读APP看书,第一时间看更新
3.9 实验3-3:“helloworld计时”模块
这个新的内核模块会在卸载时显示从驱动被加载以来经过的时间(以秒为单位)。
你将使用位于kernel/time/keeping.c
文件中的do_gettimeofday()
函数来实现该任务。该函数在被调用时会在timeval
数据结构中填充秒和微秒信息。timeval
数据结构定义如下:
该驱动的主要代码段描述如下:
1. 包含定义了do_gettimeofday()
函数原型的头文件:
2. 在#include
语句之后,声明一个timeval
数据结构用于保存模块加载和卸载的时间。
3. 当模块被卸载时,计算时间差。
在接下来的代码清单3-4中查看针对i.MX7D处理器的“helloworld计时”驱动源代码(helloworld_imx_with_timing.c
)。
注意:针对SAMA5D2(helloworld_sam_with_timing.c
)和BCM2837(helloworld_rpi_with_timing.c
)的驱动源代码可以从本书的GitHub仓库下载。