- 博客(17)
- 资源 (18)
- 收藏
- 关注
原创 RAID
RAID 01、RAID 0又称为Stripe(条带化)或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。2、系统向三个磁盘组成的逻辑硬盘(RADI 0 磁盘组
2015-04-28 14:08:44 645
转载 NAND Flash 读、写、擦除原理
以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。1. 概述 MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令。5个命令脚(CLE、ALE、CE#、WE#)实现NAND命令总线接口规程。3个附加的脚用作: 控制硬件写保护(WP#)、监视芯片状态(R/B#),和发起上电自动读特征(PRE-仅3V芯片支持)。
2015-04-24 09:26:21 34624 3
转载 下降沿触发与电平触发的区别
下降沿触发下降沿检测的是电平变化,高电平转低电平时,触发一次中断。下降沿触发是锁存中断信号的,由D触发器记忆,意即:即使当时CPU来不及响应中断,外部中断信号撤消后,由于D触发器的记忆作用,消失的中断信号仍然有效,直到中断被响应并进入中断ISR,记忆的中断信号才会由硬件清除。电平触发电平触发是一个时间段,需要一直触发中断的,就用电平触发。比如低电平触发,只要检测到是
2015-04-20 12:20:50 6954
原创 s3c2440 杂项驱动实现蜂鸣器
这个驱动本来是非常简单的,但是我就是想做个杂项驱动。Linux驱动中把无法归类的五花八门的设备定义为混杂设备(用miscdevice结构体表述)。miscdevice共享一个主设备号MISC_MAJOR(即10),但次设备号不同。其实从上面的结构体可以知道,杂项设备驱动只能驱动一个设备,因为杂项驱动主设备号固定为10(不同杂项设备通过次设备号来区分),而结构体中只有一个次设备号,所以可以看出杂项驱动只能驱动一个设备;如果要驱动多个设备,则不能用杂项驱动;(同类设备要靠次设备来区分)
2015-04-19 19:14:31 2427
原创 s3c2440 LED驱动分析
这个开发板已经很久没有动了,这一次辞职后想来想去还是选择去做驱动吧。以前写的那些驱动代码早就不知道哪里去了,当然更不记得了。所以现在从头开始学习,也顺便记录下笔记;原理 首先看看LED的电路图: 不难看出,LED1==GPB5 LED2==GPB6 LED3==GPB7 LED4==GPB8 然
2015-04-18 20:36:10 2287
原创 errno 错误码说明
#include 包含这个头文件就可以使用errno这个错误码了,一般在库调用或者系统调用时,当出错就会把相应的错误码写到errno中。如果没错的话就不会去修改errno。所以可以根据errno来判断究竟是在哪一步出问题了。#ifndef _SYS_ERRNO_H_#define _SYS_ERRNO_H_#define EPERM 1 /* Operation
2015-04-17 21:30:56 7379
原创 s3c2440系统自带的管脚宏和函数
S3C2410_GPF(4) #define S3C2410_GPF(_nr) (S3C2410_GPIO_F_START + (_nr)) ==》变成:S3C2410_GPIO_F_START+4S3C2410_GPIO_F_START = S3C2410_GPIO_NEXT(S3C2410_GPIO_E) ==》变成:S3C2410_GPIO_NEXT(S3C241
2015-04-17 13:53:34 1737
原创 驱动的两种编译方法
静态编译 就是直接把驱动放到内核中,成为内核中的一部分。把写好的驱动源代码(led.c文件)放到,内核的字符驱动中(路径为:linux-2.6.32.2/drivers/char ),然后修改下配置; 第一部分要修改的是:Kconfig(vim linux-2.6.32.2/drivers/char/Kconfig) 往里面添加: config MY
2015-04-16 23:50:49 5572
转载 为什么在Kconfig添加了MODULE,然后在make menu
原文地址:menuconfig中找不到选项" style="text-decoration:none; color:rgb(33,128,36)">为什么在Kconfig添加了MODULE,然后在make menuconfig中找不到选项作者:Fisher在kernel-2.6.13driverscharKconfig中添 加了一个MODULE,config QQ2440_HE
2015-04-16 19:45:45 1081
转载 如何把自己的驱动编译进内核或模块(Kconfig和Makefile)
2.6内核的源码树目录下一般都会有两个文文:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.
2015-04-16 19:19:48 2976
原创 加载模块报错:version magic '2.6.32-504.el6.i686 SMP mod_unload 686 ' should
hello: module_layout: kernel tainted.Disabling lock debugging due to kernel tainthello: version magic '2.6.32-504.el6.i686 SMP mod_unload 686 ' should be '2.6.32-504.el6.i686 SMP mod_unload modversions 686 '第一步、看看你运行内核的版本:ls /usr/src/kernels/2.6.32-504.
2015-04-11 10:46:00 3824
转载 file_operations中各项解析
linux设备驱动中file_operations结构体分析 struct module *owner第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针. 这个成员用来在它的操作还在被使用时阻止模块被卸载. 几乎所有时间中, 它被简单初始化为 THIS_MODULE, 一个在 中定义的宏.loff_t (*llseek)
2015-04-07 15:49:23 573
原创 NFS服务器简单配置
虚拟机,开发板,主机都要在同一个局域网中;开发板可以用网线直接链接在主机中,也可以通过链接路由器(如果连在路由器上会方便点,可以上网);如果你主机链接的是无线网的话,把虚拟机和 主机和开发板都设置为同一个局域网都有可能ping不通。可能你虚拟机和主机能ping通(桥接模式),但是你开发板ping不通主机和虚拟机;因为其实他们三个不是在同一个局域网中,虽然你设置的ip和网关都在同一个局域网中(192.168.1.1),但是其实质是虚拟机和主机在同一局域网中。解决的办法是先把主机的无线网禁止掉,然后重启虚拟机中
2015-04-06 21:26:33 1562
原创 Linux环境编程之信号处理(三、利用alarm()和pause()函数实现sleep()函数)
sleep()是执行挂起一段时间,而alarm()函数是定时器,pause()函数则是挂起进程,当出现信号打断时,才会继续往前执行; 先来分享下alarm()函数,alarm()函数用来设置一个定时器,当时间超时时,会产生SIGALRM信号,该信号默认是终止该进程; #include unsigned int alarm(unsigne
2015-04-03 14:51:48 4573
原创 Linux环境编程之信号处理(二、kill()函数)
前一篇有关信号的blog Linux中信号处理(一)中已经大概的分析了信号基本处理方法,已经signal的解析和绑定处理函数;这一篇blog来复习下信号中常用到的几个函数; kill函数将信号发射给指定进程或者进程组,raise函数则把信号发送给自己;raise函数比较好理解,raise(int signo);kill(pid_t pid, int signo)函数就有点复杂了。其实这个函数很类似前面进程中涉及到的 waitpid()函数 Linux中进程控制函数:wait()和wait
2015-04-02 14:32:32 4182
原创 多目录下多文件 makefile编写
前面已经分享了单目录项下多文件的makefile的编写,现在来看看多目录下多文件makefile的编写; 在做项目时,一般文件都会分几个目录来存放;基本的是 include/ bin/ src/ obj/ lib/ tools/,这几个文件;我先说下我的文件存放目录,用ls -R可以查看到所有文件:./include/common.h ./src/main.c .
2015-04-01 17:40:23 10220 1
原创 单目录下多文件 makefile编写
makefile很久就接触过了,但是一直没怎么深入的去学习和总结;在项目中我也只是看看makefile或者修改部分语句,全部自己动手写的话还真没有;知识在于沉淀,这句说的非常好,所以现在把自己理解的东西,记录下来,以便后面查阅; 这篇blog要分享的是在单目录下多文件的makefile编写,首先说明当前目录下有多少文件:fun.h fun.c main.c makefil
2015-04-01 16:04:15 2769
嵌入式Linux之我行系列
2015-07-20
Oracle VM VirtualBox 桥接模式驱动
2015-03-10
软件开发电子书百宝箱
2014-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人