对于复杂的 Linux 驱动及 HAL 等程序库,需要使用各种方法对其进行调试,例如,设置断点、逐步跟踪代码、输出调试信息等。 Printk 函数运行在内核空间, printf 函数运行在用户空间。使用 printk 函数可以很方便地将消息写入日志文件或控制台,但大量使用 printk 函数操作日志文件或控制台设备文件会严重影响 Linux 驱动的性能,因此,这就要求 Linux 驱动只在开发阶段使用 printk 函数输出消息。 Printk 函数在控制台显示消息是通过 /dev/console 设备文件实现的,该设备文件只在字符界面的控制台下才起作用,所以 printk 函数只有用在字符界面的控制台上才能正常输出消息。在 Linux 文件系统中, /proc 经常被用来作为内核空间与用户空间进行数据交互的工具。 /proc 是虚拟文件系统,所以读写 /proc 文件系统的速度要远比读写 /dev 文件系统的速度快。因此, /proc 文件系统也可作为 Linux 驱动与用户空间程序交互的工具。在 Linux 驱动程序中可以使用内核函数在 /proc 目录中创建和删除虚拟文件,也可以建立和删除虚拟目录。 /proc 文件系统和 /dev 文件系统一样,也需要设置访问文件的动作处理函数, /dev 文件系统通过 file_operations.read file_operations.write 函数指针变量读写设备文件的读写动作处理函数。 Proc_dir_entry 结构体代表一个虚拟目录或文件。

更多相关文章

  1. Linux学习第二天-文件系统和简单文件操作命令
  2. linux 下的时间获取函数
  3. linux c 网络编程, 常用网络函数,范例
  4. TQ210 —— 嵌入式Linux根文件系统的设计与实现
  5. Inotify: 高效、实时的Linux文件系统事件监控框架
  6. brk()和sbrk()函数的使用
  7. Linux协议栈(3)——接收流程及函数
  8. 如何查看linux命令源代码和函数源代码
  9. Linux C 字符串输入函数 gets()、fgets()、scanf() 详解

随机推荐

  1. 分享PHP5.5在windows安装使用memcached服
  2. 解析php性能分析之php-fpm慢执行日志slow
  3. 示例PHP购物车类Cart.class.php定义与用
  4. 最简洁的PHP生成指定长度随机数的方法
  5. PHP如何使用Redis?(常见使用场景介绍)
  6. 谈谈PHP中的 ->、=> 和 :: 符号
  7. 详解在PHP模板引擎smarty生成随机数的方
  8. 基于PHP-FPM进程池的探索
  9. 示例php实现保存周期为1天的购物车类
  10. 详解PHP序列化和反序列化