- 博客(12)
- 收藏
- 关注
转载 strotol用法
相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include 定义函数: long int strtol(const char *nptr, char **endptr, int base)函数说明: strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式
2015-07-01 11:22:03 629
转载 回调函数通俗解释
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。
2014-06-09 09:54:59 470
转载 down_interruptible函数
深入浅出down_interruptible函数int down_interruptible(struct semaphore *sem)这个函数的功能就是获得信号量,如果得不到信号量就睡眠,此时没有信号打断,那么进入睡眠。但是在睡眠过程中可能被信号打断,打断之后返回-EINTR,主要用来进程间的互斥同步。下面是该函数的注释:/*** down_interruptible
2014-06-06 18:10:22 834
转载 struct cdev结构体以及相关函数
内核中每个字符设备都对应一个 cdev结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev {struct kobject kobj; // 每个 cdev都是一个 kobjectstruct module *owner; //指向实现驱动的模块const struct file_operations *ops;
2014-06-06 17:25:13 928
转载 cdev_alloc与cdev_init的区别
[cpp] view plaincopystruct cdev *cdev_alloc(void) { struct cdev *p = kzalloc(sizeof(struct cdev), GFP_KERNEL); if (p) { INIT_LIST_HEAD(&p->list);
2014-06-06 17:08:06 369
转载 linux内存映射
linux内存映射内存映射对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间和内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中他等于0xC0000000),3GB到4GB为内核空间,如下
2014-06-04 15:10:29 306
转载 Linux内存管理
前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。我比较喜欢搞清楚一个技术本身的发展历程,简而言之就是这个技术是怎么发展而来的,在这个技术之前存在哪些技术,这些技术有哪些特点,为什么会被目前的技术所取代,而目前的技术又解决了之前的技术所存在的哪
2014-06-04 11:27:20 218
转载 ioctl函数
一、ioctl的简介:虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。 出于这样的原因,ioctl就有它的用处了————一些没办法归类的函数就统一放在ioctl这个函数操作中,通过指定的
2014-06-03 16:13:02 444
转载 字符设备代码详解
【1.系统环境】该驱动程序在UBUNTU10.04LTS编译通过,系统内核为linux-2.6.32-24(可使用uname -r 命令来查看当前内核的版本号)由于安装UBUNTU10.04LTS时,没有安装LINUX内核源码,因此需要在www.kernel.org~~下载LINUX源码,下载linux-2.6.32.22.tar.bz2(与系统运行的LINUX内核版本尽量保持一致
2014-05-28 21:34:47 835
转载 字符设备驱动分析
前言只看了两天的源码,分析的过程是源码加想象,可能与实际实现有一定差别。因为目的只是为了大致了解字符设备的实现原理。更重要的是,要彻底分析,必须要对文件系统有深入了解才行,显然不是我目前能力可以办到的。kernel作为一个整体,单独学任何一块都比较困难。文件系统等很难绕过去,而单独分析文件系统又会因为涉及到太多东西而无法完成。只能采用这种农村包围城市的方法,先从外围下手。第一节 如
2014-05-28 21:16:35 546
转载 驱动程序调试方法printk解析
在头文件 中定义了 【8种可用的日志级别字符串】KERN_EMERG 用于紧急事件消息,它们一般是系统崩溃之前提示的消息。KERN_ALERT 用于需要立即采取动作的情况。KERN_CRIT 临界状态,通常涉及严重的硬件或软件操作失败。KERN_ERR 用于报告错误状态;设备驱动程序会经常使用KERN_ERR来报告来自硬件的问题。KERN_WAR
2014-05-28 21:06:43 679
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人