zoukankan      html  css  js  c++  java
  • 第十章

    第9章 嵌入式Linux 的调试技术

    打印内核调试信息:printk

    printk函数的用法和printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间。也就是说,像Linux 驱动这样的linux肉核程序只能使用printk函数输出调试信息。

    printk 函数的原型:

    asmlinkage int printk(const char * fmt, ... )

    1个参数表示格式字符串,后面是可变参数。也就是说,旦printk 函数至少要有1个参数〔格式字符串),如果格式字符串中包含在占位符(%d%s 等), 后面必须跟与占位符相等数量的参数,以便一一对应传入printk 函数

    #define KERN_EMERG “<0 >'’ 紧急事件,-般是系统崩溃前显示的信息

    #define RN ALERT “<1>" 必须立即处理的行为

    #define KERN_CRIT “<2>” 商界状态,通常涉及严重的硬件或软件操作失败

    #define KERN ERR <3>” 用于报告错误状态,设备驱动程序会经常使用KERN_ERS报告来自硬件的问题

    #define KERN_WARNING “<4>” 对可能出现问题的情况进行警告,这里类问娼通常不会对系统造成严重的影响

    #define KERN NOTICE “<5>" 有必要进行提示的正常情况,许多与安全相关的情况用这个级别进行汇报

    #define KERN INFO “<6>" 内核提示位信怠,很多驱动程序在启动时,以这个级别打印出找到的硬件信怠

    #define KERN DEBUG “<7>”用于调试信息、

    4 个数字的含义如下。

    6 : 将消息输出到控制台的级别。只有高于该级别的输出信息才会输出到控制台。

    4 :默认的消息日志级别。如果不在printk 函数中指定日志级别,就会使用该值作为默认的级别。

    1 :控制台日志级别可被设置的最小值〈最高优先级别〉。

    7 : 控制台日志级别的默认值.

    防止printk函数降低linux驱动性能

    利用C 语言中的编译指令(#iif#else 、#endif ,防止printk函数降低linux驱动性能。

    查看/proc/meminfo 文件的内容。

    #cat/proc/meminfo

    http://i.cnblogs.com/EditPosts.aspx?opt=1

  • 相关阅读:
    APIO2019游记
    ZJOI2019赛季回顾
    「HNOI 2019」白兔之舞
    LOJ #6539 奇妙数论题
    BZOJ4314 倍数?倍数!
    伯努利数学习笔记&&Luogu P3711 仓鼠的数学题
    BZOJ 5093[Lydsy1711月赛]图的价值 线性做法
    AtCoder Grand Contest 030题解
    Codeforces Round #542 (Div. 1) 题解
    Codeforces Round #541 (Div. 2)题解
  • 原文地址:https://www.cnblogs.com/Wqian/p/5643523.html
Copyright © 2011-2022 走看看