自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (12)
  • 收藏
  • 关注

转载 linux C内存泄露检测实现及内存泄露检测的一般方法

学习,以后对vxworks和linux搞一套通用的,这样同事就方便了!linux中,由于使用malloc或alloc而没有free掉申请的内存,就会造成内存的泄露。通常,来讲为了避免内存泄露的情况出现,一般要求,我们尽量的malloc之后,调用free。但是总会有忘记free的时候啊。一般可以有如下几种方式来避免内存泄露:1)  使用智能指针,这个在C++中较为常见;

2016-03-26 14:46:22 4257

转载 inet_ntoa函数陷阱

今天编程时遇到一个很诡异的问题,是关于inet_ntoa函数的。先看一个测试程序#include stdio.h>#include sys/socket.h>#include netinet/in.h>#include arpa/inet.h>#include string.h>int main(int argc, char* argv[])

2016-03-24 18:17:31 4212

转载 S3C2440开发板LED驱动——ioremap 映射

刚开始学字符设备驱动,感觉最难的是驱动和底层硬件的连接。linux上的驱动程序,是基于操作系统之上的,他并不直接和底层的硬件打交道,但是我们写的驱动必须能使硬件“跑”起来,即与硬件紧密相连。就拿最简单的LED驱动来说,我们的驱动程序是在虚拟的内存上面跑的,但是最终,LED的点亮还是必须靠GPIO管脚的高低电平来控制。那么,我们的虚拟的内存怎么才能和实际的硬件上面的寄存器对应起来呢?

2016-03-23 22:00:36 1732

转载 Linux设备驱动之Ioctl控制

大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。 一、在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int fd,unsigned long cmd,...);/*fd:文件描述符cmd:控制命令...:可选参数:插入*argp,具体内容依赖于cmd*/  用户程序所作的只是通过命令码告诉驱动程序它想做什么,

2016-03-23 21:55:18 1132

转载 /dev/mtd和/dev/mtdblock的区别

这里对于mtd和mtdblock设备的使用场景进行简单总结:mtd-utils工具只能应用与/dev/mtdN的MTD字符设备mount、umount命令只对/dev/mtdblockN的MTD块设备有效/dev/mtdN和/dev/mtdblockN是同一个MTD设备的同一个分区(N一样)一个MTD原始设备可以通过mtd_part分割成数个MTD原始设备注册进 mtd_t

2016-03-11 12:52:43 3877

转载 mdev的使用方法和原理以及实现U盘或SD卡的自动挂载

udev实现U盘或SD卡的自动挂载,在这里我们再说一下怎样用mdev实现这个功能。mdev的使用在busybox中的mdev.txt文档已经将得很详细了。 mdev是busybox中的一个udev管理程序的一个精简版,他也可以实现设备节点的自动创建和设备的自动挂载,只是在实现的过程中有点差异,在发生热插拔时间的时候,mdev是被hotplug直接调用,这时mdev通过环境变量中的

2016-03-10 09:29:00 2750

转载 Linux设备驱动之mmap设备操作

1.mmap系统调用void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);功能:负责把文件内容映射到进程的虚拟地址空间,通过对这段内存的读取和修改来实现对文件的读取和修改,而不需要再调用read和write;参数:addr:映射的起始地址,设为NULL由系统指定;len

2016-03-09 09:21:39 1020

转载 Linux内核驱动自动创建设备节点文件

Linux下生成驱动设备节点文件的方法有3个:1、手动mknod;2、利用devfs;3、利用udev在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点。在2.6.17以前,在/dev目录下生成设备文件很容易,

2016-03-06 08:28:51 5676

转载 Linux系统对IO内存和IO端口的管理

CPU地址空间(一)地址的概念1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。        物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来

2016-03-04 08:43:32 1439 1

转载 Linux下/dev/mem和/dev/kmem及操作gpio实例

目前我所知道的在linux下操作GPIO有两种方法: 1.  编写驱动,这当然要熟悉linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据ioctl命令进行GPIO寄存器的读写,并把结果回送到应用层。这里提供一点程序片断供大家参考:[cpp] view plain copy

2016-03-04 08:36:27 1897

转载 Device Tree常用方法解析

Device Tree常用方法解析Device Tree在Linux内核驱动中的使用源于2011年3月17日Linus Torvalds在ARM Linux邮件列表中的一封邮件,他宣称“this whole ARM thing is a f*cking pain in the ass”,并提倡学习PowerPC等其他架构已经成熟使用的Device Tree技术。自此,Device Tree

2016-03-04 08:34:21 926

TCP-IP详解卷2(17-23)

最经典讲解的TCP-IP协议的资料,TCP-IP的详解卷,共3册,这是一册!其他的我也有上传,分别都是《TCP-IP详解卷1》,《TCP-IP详解卷2》,《TCP-IP详解卷3》

2009-05-10

TCP-IP详解卷2(1-16)

最经典讲解的TCP-IP协议的资料,TCP-IP的详解卷,共3册,这是一册!其他的我也有上传,分别都是《TCP-IP详解卷1》,《TCP-IP详解卷2》,《TCP-IP详解卷3》

2009-05-10

TCP-IP详解卷3

最经典讲解的TCP-IP协议的资料,TCP-IP的详解卷,共3册,这是一册!其他的我也有上传,分别都是《TCP-IP详解卷1》,《TCP-IP详解卷2》,《TCP-IP详解卷3》

2009-05-10

TCP-IP详解卷1

最经典讲解的TCP-IP协议的资料,TCP-IP的详解卷,共3册,这是一册!其他的我也有上传,分别都是《TCP-IP详解卷1》,《TCP-IP详解卷2》,《TCP-IP详解卷3》

2009-05-10

protel DXP 教程

protel DXP 教程,学习DXP的好帮手

2009-05-10

C51+TCPIP源码

51单片机TCPIP协议移植,例程为一个网页的显示

2009-05-10

Linux设备驱动程序第三版

Linux设备驱动程序开发的经典书籍,强烈推荐下载

2009-05-10

ucos+tcpip+arm9

最新ucos带有TCPIP协议栈,运行在ARM9的例子,我试过,可以运行!

2009-05-08

mp3 源码和原理图 KEIL

里面有详细的mp3的原理图和KEIL下的源码,非常详细,有兴趣的朋友可以看看

2009-05-08

51在线升级源码,实现在线升级

51内核的单片机在线升级程序,不再需要JTAG口下载,便于日后升级程序,是成熟产品必不可少的!!

2009-05-08

非常完善TCPIP协议栈源码,写的不错!包括一个ARM上的移植

非常完善TCPIP协议栈源码,写的不错! 里面还有将这个TCPIP协议栈移植到ARM的例程 学习TCPIP协议建议好好看看

2009-05-08

USB_C51源码,建议对USB协议感兴趣的可以下来看看

学习USB协议的好源码,建议对USB感兴趣的可以下来看看

2009-05-05

空空如也

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

TA关注的人

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