转自:http://blog.chinaunix.net/uid-26403844-id-3361770.htmlhttp://blog.csdn.net/ryfjx6/article/details/7064854刚刚接触内核,在调试过程中用printk打印信息当然是直接有效的办法,但当我们不知到...
分类:
其他好文 时间:
2015-08-17 13:31:11
阅读次数:
226
如实现一个简单的打印:printk1.vim printk.cvoid sys_pk(){printk("this is a new sys call");}cd arch/arm/kernel2.vim calls.S在最后面加上Call(sys_pk)3.cd arch/arm/include在...
分类:
系统相关 时间:
2015-08-13 21:44:15
阅读次数:
131
在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:
#define pr_debug(fmt,arg...) printk(KERN_DEBUG fmt,##arg)
用可变参数宏(variadic macros)传递可变参数表
你可能很熟悉在函数中使用可变参数表,如:
void printf(const char* format, …);
直到...
分类:
其他好文 时间:
2015-08-11 21:35:54
阅读次数:
198
awk数组无须实现定义ckl[abc]=6ckl[xyz]=9abc为下标名称9则为下标对应的值BEGIN为模式前匹配,即为匹配之前操作END为模式匹配后,即为匹配后操作如常用的统计TCP状态的awk命令#netstat-ant|awk‘/^tcp/{STA[$NF]++}END{for(kinSTA){printk,STA[k]}}‘TIME_WAIT4CLOSE_WAIT19FIN_W..
分类:
编程语言 时间:
2015-08-06 18:42:11
阅读次数:
169
带颜色打印:printk("\033[1;33;40m misc.c InterIoctl() action=%d\033[0m\r\n", action);方法一、 1 #ifndef _PMU_DUMMY_ 2 3 #define _PMU_DUMMY_ 4 5 6 7 #define...
分类:
其他好文 时间:
2015-08-06 12:56:37
阅读次数:
330
今天尝试自己加载第一个驱动模块,根据惯例hello word 然后失败了,现在说明我的操作过程,请个位看看。
首先我的内核版本:
模块代码与MAKEFILE
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk("hello,world\n")...
分类:
其他好文 时间:
2015-07-16 22:20:59
阅读次数:
248
busybox 默认读取内核printk信息长度256, 通过CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE宏可调整, 如下:#cd busybox-1.21.1#make menuconfig找到:System Logging Utilities ---> [*] ...
分类:
其他好文 时间:
2015-07-16 11:11:44
阅读次数:
250
前两篇blog已经基本熟悉了块设备的相关结构,这里来总结下ldd3中提到的一些块设备驱动例题;
注册:
sbull_major = register_blkdev(sbull_major, "sbull");
if (0 >= sbull_major){
printk(KERN_WARNING "sbull: u...
分类:
系统相关 时间:
2015-07-13 00:50:48
阅读次数:
160
在kernel包中有几个重要的文件夹和文件,他们各司其职,处理着有关内核的一些功能操作。其中文件夹有三个:blk_drv(块设备驱动),chr_drv(字符设备驱动),math(数学协处理器) 文件中asm.s fork.c mktime.c panic.c printk.c sched.c sig...
分类:
系统相关 时间:
2015-06-15 18:12:39
阅读次数:
440
问题描述:最近这两天再调试 platform 驱动,程序老是有点小问题,得不到自己想要的结果,突然意识到内核调试重要性,重新整理一下 printk 基本用法。内核通过 printk() 输出相关信息,在调用 printk() 函数时必须要指定日志级别。
1、printk 日志等级
在 include/linux/kernel.h 中定义了如下几个日志级别
#define KERN_EMERG "" /* 系统崩溃 */
#define KERN_ALERT "" /* 必须紧急处理 */
...
分类:
系统相关 时间:
2015-06-09 21:59:11
阅读次数:
318