1.增长系统日志消息缓冲最大数量网络
在使用printk的时候,常常会碰到已经加了打印语句,可是终端上却并无显示出来信息这种状况,缘由是系统默认的缓冲大小有限,而打印信息又比较多,从而致使后面的打印信息覆盖了前面的信息,形成打印丢失。app
解决方法是修改base中的LW_CFG_MAX_LOGMSGS这个宏,系统默认的值是20,其所在的文件路径为“libsylixos/SylixOS/config/system/system_cfg.h”,以下图所示:函数
2.printk输出定向到文件调试
本操做主要用于x86平台驱动调试,由于x86平台主板通常没有串口输出,printk的信息是输出到屏幕的,当有大量调试信息时,经过屏幕不能查看完整的调试信息,这时能够将printk的信息输出到文件中,而后查看,方法以下所示:日志
int log_init (void)同步
{it
int fd;登录
int width;file
fd_set fdset;终端
fd = open("/apps/log1.txt", O_RDWR | O_CREAT | O_TRUNC);
if (fd < 0) {
printf("open /apps/log1.txt fail\n");
return -1;
}
logFdGet(&width, &fdset);
FD_SET(fd, &fdset);
logFdSet(max(fd,width)+1, &fdset);
return 0;
}
只要在驱动初始化的时候调用上面函数,就能够将调试信息记录到log1.txt中。
2.printk输出输出到网络终端
a.telnet登陆到系统;
b.输入files命令查看当前系统打开的文件描述符,以下图所示:
c.查看/dev/pty/xx.hst对应的fd,如上图中是12;
d.输入logfileadd 12;
e.在驱动中使用printk输出的信息就会同步输出到网络终端上;