文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发其他语言The Linux MTD, YAFFS Howto
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·程序八卦:胡子决定编程语言运势
·EZ-USB 68013A开发指南
·AIX 5L 学习大纲/简易教程(3)(未经许可,请勿COPY)
·Static和Final修饰类属性变量及初始化
·Servlet和Filter的url匹配url-pattern
·Flex挑战Java和.NET Adobe能否再度崛起?
·Java编程思想:面向对象的逻辑思维方法
·How to cross-compile OpenSSL for ARM
·在Pocket PC上编写游戏之十
·设计Pocket PC短消息服务简介

The Linux MTD, YAFFS Howto

日期:2008年6月4日 作者: 查看:[大字体 中字体 小字体]


1 The Linux MTD, YAFFS Howto
User ProgramSystem Call InterfaceBlock Device InterfaceFIle System(jffs,yaffs)Virtual File SystemMTD Driver ModuleNAND FLASH MEMORYMTD ModuleUser ModuleDriver Module
Picture 1-1 MTD System Organization
1.1 MTD Nand Device Driver
Modify drivers/mtd/nand/nand.c and eos_nand.c(Copy spia.c).
int __init eosnand_init (void)
{
struct nand_chip *this;
*(volatile unsigned char *) 0x1ff00010 = 0x82; // Pin Mux Control Register set
eos_writel(0x33002, NFMCON); // Nand Flash Memory Control Register set

this = (struct nand_chip *) (&eosnand_mtd[1]);

this->hwcontrol = eosnand_hwcontrol; // Device I/O Set
this->chip_delay = 15; // delay set
this->eccmode = NAND_ECC_SOFT; // ECC Use Set.
// target nand flash ID search
if (nand_scan (eosnand_mtd)) {
kfree (eosnand_mtd);
return -ENXIO;
}
// initialized eosnand_mtd registration
add_mtd_partitions(eosnand_mtd, partition_info, NUM_PARTITIONS);
return 0;
}
Code 1-1 eosnand_init()
EOS Nand Flash Device I/O Setup Function
Void eosnand_hwcontrol(int cmd)
{
switch(cmd){
case NAND_CTL_CLRNCE: // Nand Flash Enable
eos_writel(eos_readl(NFMCON) & ~0x02, NFMCON);
case NAND_CTL_SETNCE: // Nand Flash Disable
eos_writel(eos_readl(NFMCON) 0x02, NFMCON);
case NAND_CTL_CHKRB: // Nand Flash busy check
{
int temp;
while(1) {
temp = eos_readb(NFMSTAT);
temp &= 0x01;
if (temp) break;
}
}
}
}
#define nand_select() this->hwcontrol(NAND_CTL_SETNCE);
#define nand_deselect() this->hwcontrol(NAND_CTL_CLRNCE);
#define nand_busy() this->hwcontrol(NAND_CTL_CHKRB);
Code 1-2 eosnand_hwcontrol()
Next, Manufacture ID read and additional hardware initializing function.
int nand_scan (struct mtd_info *mtd)
{
int i, nand_maf_id, nand_dev_id;
struct nand_chip *this = mtd->priv;
// check for proper chip_delay setup, set 20us if not
if (!this->chip_delay) this->chip_delay = 20;
// check, if a user supplied command function given
if (this->cmdfunc == NULL)
this->cmdfunc = nand_command;

nand_select(); // Nand Chip Enable
// Function to read Device ID.
this->cmdfunc (mtd, NAND_CMD_READID, 0x00, -1);
// Manufacture ID and Device ID read.
nand_maf_id = eos_readb (NFMDATA);
nand_dev_id = eos_readb (NFMDATA);
// Save Device information.
for (i = 0; nand_flash_ids[i].name != NULL; i++) {
if (nand_dev_id == nand_flash_ids[i].id && !mtd->size) { … }

[1] [2] [3] [4] 下一页 




上一篇:编程使用系统热键{演示RegisterHotKey()和UnregisterHotKey()}

下一篇:14.6.5 Prefix in- and decrement operators

相关文章:
·腾讯QQ首次官方支持Linux操作系统
·重装XP后无法启动linux怎么办?
·日内瓦学校将全面换用Linux系统
·Linux系统安全机制进阶分析
·Linux root密码丢失后的解决
·Linux下限制Root用户进行远程登陆
·Linux和Windows系统升级的最大不同
·Linux系统下VPN服务器配置方法
·提高Linux操作系统网速的方法
·Linux操作系统内存磁盘初始化技术详细解析
相关软件:
·鸟哥的linux私房菜:基础学习篇
·understanding the linux kernel
·红帽子Red Hat Linux 8.0(3G,5CD)
·Linux 系统命令及其使用详解(大全)
·LINUX设备驱动程序(内核2.2)
·第三方RedHat Linux认证学习指导资料
·LINUX命令整理 磁盘管理
·Linux环境数据库管理员指南
·phpMyAdmin v2.6.2 For Linux
·LINUX内核情景分析(二)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot