• Android深度探索读书笔记 第十章


         对于复杂的linux驱动及HAL等程序库,需要使用各种方法对其进行调试。首先接介绍使用printk函数,该函数与printf函数类似,printk函数运行在内核空间,printf函数运行在用户空间。Printk函数的原型:asmlinkage int printk(const char *fmt, ...)第一个参数表示个格式字符串,后面是可变参数,也就是说,printk函数至少要有1个参数,如果格式字符串包含有占位符,后面必须跟与占位符相等数量的参数,以便一一对应传入 printk函数。使用printk函数可以方便的将消息写入日志文件和控制台,但大量使用printk函数频繁操作日志文件或控制台设备文件会严重影响linux驱动的性能,为了防止此事发生,要求linux驱动只在开发阶段使用printk函数输出消息。在linux文件系统中,/proc经常被用来作为内核空间与用户空间进行数据交互的工具。/proc文件系统的行为方式与设备文件系统/dev类似,/proc是虚拟文件系统,所有读写/proc的操作都是对内存的读写。/proc文件系统与/dev文件系统一样也需要设置访问文件的动作处理函数,/dev文件系统通过file_operations.readfile_operations.write函数指针变量设置读写设备文件的读写动作处理函数。而/proc文件系统主要通过proc_dir_entry.read_procproc_dir_entry.read_write函数指针来设置读写/proc目录中的虚拟文件的动作处理函数。Proc_dir_entry代表一个虚拟目录或文件。

                                                                                                                                                 http://www.cnblogs.com/sam0304/

  • 相关阅读:
    Openstack API 开发 快速入门
    virtualBox虚拟机到vmware虚拟机转换
    使用Blogilo 发布博客到cnblogs
    Openstack Troubleshooting
    hdoj 1051 Wooden Sticks(上升子序列个数问题)
    sdut 2430 pillars (dp)
    hdoj 1058 Humble Numbers(dp)
    uva 10815 Andy's First Dictionary(快排、字符串)
    sdut 2317 Homogeneous squares
    hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
  • 原文地址:https://www.cnblogs.com/sam0304/p/5642179.html
Copyright © 2020-2023  润新知