zoukankan      html  css  js  c++  java
  • 读书笔记第十章

    第十章

    打印内核的调试信息printk

    printkprintf区别:

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

    其次应该防止printk函数可以很方便地将消息写入日志文件或控制台,但是大量使用printk函数频繁操作日志文件或控制台设备文件会严重影响Linux驱动的性能,因此这就要求Linux驱动只在开发阶段使用printk函数输出消息,在正式发布Linux驱动时将可能影响性能的printk函数去掉。

    然后通过虚拟文件系统进行数据交互。

    嵌入式调试方法:

    1.模拟器。比如Qtopia Core可以用奇趣提供的Frame Buffer模拟工具qvfbARM硬件模拟可以用SkyEye开源项目。

    2.远程调试。调试器还在PC上,调试器与被调试的程序通过网络通信。

    3.通过LOGCore Dump等文件事后分析。

    stdprm 标准打印机 LPT1端口

    stdaux 标准串行设备 COM1端口

    stdin并不一定来自键盘,stdoutstderr也并不一定显示在屏幕上,可以将它们重定向到其他设备或磁盘文件上。

    使用fprintf()时,第一参数推荐使用stderr而不要使用stdout,因为stderr的运行级要高一些,程序在异常退出时stderr可以输出,而stdout就不行

    对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试,例如,设置断点、逐步跟踪代码、输出调试信息等。Printk函数运行在内核空间,printf函数运行在用户空间。

    初始化Linux驱动

    Static int _init printk_demo_init(void)

    卸载Linux驱动

    Static void _exit printk_demo_exit(void)

  • 相关阅读:
    redis sentinel搭建以及在jedis中使用
    redis入门指南书中概要
    mysql crash cource 书中实例
    图片服务器域名选择
    自行实现一个简易RPC框架
    webservice基础
    maven实战
    类似◇形的图形,四边都是对应的行数的数字。
    C 中随机数
    给特定的寄存器赋值,读特定的寄存器
  • 原文地址:https://www.cnblogs.com/spurlash/p/5651708.html
Copyright © 2011-2022 走看看