Linux NAND FLASH驱动代码分析
作者:范一航,华清远见深圳高级讲师
FLASH驱动在嵌入式系统中有着举足轻重的位置,而目前市场上NAND FLASH的价格又要便宜与NOR FLASH,随着越来越多的平台支持从NAND FLASH中启动,掌握NAND flash的驱动编写有着重要的现实意义,由于内核已经完成了大部分的工作,实际工作中大部分工程师对NAND FLASH驱动只是简单的修改,对其工作原理并不太清楚,下面我们来分析一下NAND FLASH的代码流程,从中体会块设备的代码之美。
在学习NAND FLASH驱动之前,我们需要对块设备中下面的重要2点有个认识:
1.gendisk: 描述块设备实体(一整个nandflash芯片)的结构体
整个块设备的注册过程都是围绕gendisk来开展的
2. add_disk() // 将一个分区信息(如/dev/mtdblock3)注册到内核列表中
下面我们来分析具体的驱动:
一、s3c2410nandflash控制器初始化步骤:
s3c2410_nand_init(&s3c2410_nand_driver)
-> driver_register->bus_add_driver()->driver_attach->bus_for_each_dev(__driver_attach)->driver_probe_device()->dev->probe() [最后这个函数实质是s3c2410_nand_probe()]
-> s3c2410_nand_probe()
-> s3c24xx_nand_probe()
-> s3c2410_nand_inithw() // 初始化nandflash控制器
-> s3c2410_nand_init_chip()// 初始化s3c2410 nandflash驱动最底层的访问控制函数
&nbs
相关文档:
s
hell是用户和Linux操作系统之间的接口。Linux中
有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。
什么是shell
Linux系统的shell作为操作系统的外壳,为用户提
供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
s ......
ifconfig
ifconfig是Linux系统中最常用的一个用来显示和设置网络设备的工具。其中“if”是“interface”的缩写。它可以用来设备网卡的状
态,或是显示当前的设置。
下面我们简单地说明常用的命令组合:
1) 将第一块网卡的IP地址设置为19 ......
在linux中grep命令是非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用
‘grep’命令。‘grep’在文本中搜索指定的字符串。
假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:
$ gre ......
sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际
上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
Sort命令将逐行对文件中的内容进行排序,如果 ......
env setup
linux(ubuntu)下ruby开发环境搭建,包括一些常见问题解决
注意,本文只是我在搭建ruby学习环境时的一些笔记,因为是用gedit编辑的,所以格式化不是很好,另外,只是备忘而已。
2010.1.19
1. install ruby
$ tar xzf ruby-1.8.7-p248.tar.gz
$ mv ruby-1.8.7-p248 ruby187
$ cd ruby187/
$ ./configure
......