自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 597

原创 TDD基站中为什么要用GPS为时钟源

以GPS为各个基站的时钟源是保证所有基站能够同步

2014-06-18 12:55:55 5009

转载 回调函数通俗解释

你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。

2014-06-09 09:54:59 444

转载 down_interruptible函数

深入浅出down_interruptible函数int down_interruptible(struct semaphore *sem)这个函数的功能就是获得信号量,如果得不到信号量就睡眠,此时没有信号打断,那么进入睡眠。但是在睡眠过程中可能被信号打断,打断之后返回-EINTR,主要用来进程间的互斥同步。下面是该函数的注释:/*** down_interruptible

2014-06-06 18:10:22 734

转载 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 862

转载 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 358

转载 linux内存映射

linux内存映射内存映射对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。  进程的4GB内存空间被人为的分为两个部分--用户空间和内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中他等于0xC0000000),3GB到4GB为内核空间,如下

2014-06-04 15:10:29 284

转载 Linux内存管理

前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。我比较喜欢搞清楚一个技术本身的发展历程,简而言之就是这个技术是怎么发展而来的,在这个技术之前存在哪些技术,这些技术有哪些特点,为什么会被目前的技术所取代,而目前的技术又解决了之前的技术所存在的哪

2014-06-04 11:27:20 207

转载 ioctl函数

一、ioctl的简介:虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。 出于这样的原因,ioctl就有它的用处了————一些没办法归类的函数就统一放在ioctl这个函数操作中,通过指定的

2014-06-03 16:13:02 421

转载 字符设备代码详解

【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 808

转载 字符设备驱动分析

前言只看了两天的源码,分析的过程是源码加想象,可能与实际实现有一定差别。因为目的只是为了大致了解字符设备的实现原理。更重要的是,要彻底分析,必须要对文件系统有深入了解才行,显然不是我目前能力可以办到的。kernel作为一个整体,单独学任何一块都比较困难。文件系统等很难绕过去,而单独分析文件系统又会因为涉及到太多东西而无法完成。只能采用这种农村包围城市的方法,先从外围下手。第一节 如

2014-05-28 21:16:35 512

转载 驱动程序调试方法printk解析

在头文件 中定义了 【8种可用的日志级别字符串】KERN_EMERG    用于紧急事件消息,它们一般是系统崩溃之前提示的消息。KERN_ALERT    用于需要立即采取动作的情况。KERN_CRIT     临界状态,通常涉及严重的硬件或软件操作失败。KERN_ERR      用于报告错误状态;设备驱动程序会经常使用KERN_ERR来报告来自硬件的问题。KERN_WAR

2014-05-28 21:06:43 664

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除