NANDflash 的驱动的添加
来源:互联网 发布:新版淘宝地址怎么修改 编辑:程序博客网 时间:2024/06/11 19:40
Linux-2.6.22.6内核移植-- NandFlash驱动的添加
【实验目的】
本实验通过在上个实验结果的linux2.6.22.6内核上移植NAND Flash驱动,使其可以设别到NAND Flash分区,并可以管理相应的Flash设备。从而进一步完善系统结构,并通过移植的过程来了解nandflash的移植方法。
【实验环境】
1、Ubuntu10.10发行版
2、FS2410平台以及开发板中移植好的u-boot-1.3.1
3、交叉编译器 arm-linux-gnu-gcc (ver:3.4.5)
【实验步骤】
在linux2.6.22.6内核中已经包含了s3c2410的nand flash控制器驱动,但需要做一些配置工作才能正常使用。
(1)指明分区信息,建立分区表
在arch/arm/plat-s3c24xx/common-smdk.c文件中,修改分区信息(自己可以根据情况修改分区大小):
#vim arch/arm/plat-s3c24xx/common-smdk.c
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "uboot",
.size = 0x40000,
.offset = 0,
},
[1] = {
.name = "kernel",
.offset = 0x40000,
.size = 0x200000,
},
[2] = {
.name = "rootfs(read only)",
.offset = 0x240000,
.size = 0x800000,
},
[3] = {
.name = "user fs",
.offset = 0xa40000,
.size = 0x600000,
}
};
(5)配置MTD,具体操作如下
root@farsight:/source/kernel/linux-2.6.22.6#make menuconfig
Device Drivers --->
Memory Technology Devices (MTD) --->
NAND Flash Device Drivers --->
<*> NAND Device Support
<*> NAND Flash support for S3C2410/S3C2440 SoC
这些选项代表对NANDFLASH的操作。
(6)编译内核,并将arch/arm/boot/zImge拷贝到/tftpboot目录中
在linux源码的顶层目录执行
#make uImage
[注意: 事先要把u-boot/tools/mkimage拷贝到/usr/bin目录下,并把/usr/bin/mkimage通过sudo 改变权限为777]
#cp arch/arm/boot/zImage /tftpboot
(7)启动系统(登陆用户名:root, 密码:123456)
温馨提示:
如果启动过程中出现类似下面的提示:
Empty flash at 0x005dbbd0 ends at 0x005dbbf8
Empty flash at 0x005dbd28 ends at 0x005dbdcc
Empty flash at 0x005dbdd0 ends at 0x005dbdf8
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005dc000: 0x622f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005dc004: 0x612f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005dc008: 0x696c instead
这是因为我们的网络文件系统在挂载我们还按照上面分区表去烧录一个JFFS2的镜像而导致,这时候我们可以编辑主机/opt/filesystem目录下的etc/init.d/rcS,把/bin/mount /dev/mtdblock3 /data -t jffs2这一行前面加上#注释掉:
#/bin/mount /dev/mtdblock3 /data -t jffs2
在目标板串口终端输入:
# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00004000 "uboot"
mtd1: 00200000 00004000 "kernel"
mtd2: 00800000 00004000 "rootfs(read only)"
mtd3: 00600000 00004000 "user fs"
可以看到系统已经可以支持nand flash了。
- NANDflash 的驱动的添加
- Nandflash的驱动加载
- WINCE6.0的NANDFLASH驱动
- NandFlash驱动和Yaffs文件系统的移植
- NandFlash驱动和Yaffs文件系统的移植
- NandFlash驱动和Yaffs文件系统的移植
- nandflash驱动的读写操作实现过程
- NandFlash驱动和Yaffs文件系统的移植
- nandflash驱动分析以及与norflash的比较 (转)
- nandflash驱动分析以及与norflash的比较//来源不详
- 基于WINCE6.0的nandflash驱动(基于K9F1G08U0B)
- 基于WINCE6.0的nandflash驱动(基于K9F1G08U0B)
- 9G-STM32-移植FATFS的NANDFLASH驱动
- nandflash驱动编写 与 busybox 的bug 修改
- 基于MTD的NANDFLASH设备驱动底层实现原理分析
- Linux下NandFlash的驱动编写(1)
- Linux下NandFlash的驱动编写(2)
- 基于MTD的NANDFLASH设备驱动底层实现原理分析 .
- 转载:Ubuntu 的 apt-get 代理设置
- LCD驱动的移植
- 解决Extjs传参到action中文乱码和jsp之间传值的中文乱码问题
- 我的技术面经(二)
- Android Activity生命周期
- NANDflash 的驱动的添加
- 树-完全二叉树
- Android中c/c++程序的调试(eclipse)
- java使用ant部署邮件发送
- 关于jquery获取表单中一下简单的元素的值
- Android 的编译系统
- 有关系统性能优化技巧 - Windows磁盘性能优化技巧
- 为 Android添加底层核心服务
- “What is the location of the directory of C header files that match your running kernel?” On Ubuntu