ktime使用例子【原创】
2016-04-13 15:41
288 查看
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
static void time_get(ktime_t *start);
static void time_get(ktime_t *start)
{
*start = ktime_get();
}
static int time_print(const char *name, ktime_t starttime)
{
ktime_t rettime;
s64 usecs64;
int usecs;
unsigned long my_s, my_us;
rettime = ktime_get();
usecs64 = ktime_to_us(ktime_sub(rettime, starttime));
usecs = usecs64;
my_s = usecs / USEC_PER_MSEC;
my_us = usecs % USEC_PER_MSEC;
if (usecs == 0)
usecs = 1;
printk("time: %ld.%03ld \r\n", my_s, my_us);
return 0;
}
static int hello_init(void)
{
ktime_t my_time;
printk(KERN_ALERT "Hello, world ver=%s\n", "1.0");
time_get(&my_time);
time_print(NULL, my_time);
mdelay(100);
time_print(NULL, my_time);
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual BSD/GPL");
[80492.470000] Hello, world ver=1.0
[80492.480000] time: 0.000
[80492.580000] time: 102.299
#include <linux/init.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
static void time_get(ktime_t *start);
static void time_get(ktime_t *start)
{
*start = ktime_get();
}
static int time_print(const char *name, ktime_t starttime)
{
ktime_t rettime;
s64 usecs64;
int usecs;
unsigned long my_s, my_us;
rettime = ktime_get();
usecs64 = ktime_to_us(ktime_sub(rettime, starttime));
usecs = usecs64;
my_s = usecs / USEC_PER_MSEC;
my_us = usecs % USEC_PER_MSEC;
if (usecs == 0)
usecs = 1;
printk("time: %ld.%03ld \r\n", my_s, my_us);
return 0;
}
static int hello_init(void)
{
ktime_t my_time;
printk(KERN_ALERT "Hello, world ver=%s\n", "1.0");
time_get(&my_time);
time_print(NULL, my_time);
mdelay(100);
time_print(NULL, my_time);
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual BSD/GPL");
[80492.470000] Hello, world ver=1.0
[80492.480000] time: 0.000
[80492.580000] time: 102.299
相关文章推荐
- VB Open 函数详解 打开、关闭、读、写文件
- UIKit框架-基础控件Swift版本: 6.UITextField方法/属性详解
- struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)_forever
- 数学之美番外篇:平凡而又神奇的贝叶斯方法
- 解决代理服务器拒绝连接或者连接失败的方法
- JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
- Mysql数据库设计总结
- 姜大神推荐的书
- 获取嵌入的资源
- POJ 2063 Investment(完全背包)
- 利用vc实现数据表格导出到CSV文件
- 巧夺天工的kfifo
- java_thread
- 最近案子的总结
- IPC(五)——浅谈AIDL的架构原理
- 从数据库读取和写入图片(包含调用相册和相机)
- 国际象棋
- lua中的函数
- Linux系统中/dev/mtd与/dev/mtdblock的区别
- JS 异步纵向编程