SylixOS下基于NUC970的NAND驱动

本文档详细介绍了在SylixOS操作系统下,基于NUC970的NAND Flash驱动开发过程,包括开发环境、NAND控制器结构、技术实现等。重点讨论了驱动框架、控制器初始化、ECC配置以及相关操作函数的实现,如cmd_ctrl、cmdfunc等,并展示了文件系统挂载YAFFS的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境

  1. 开发环境

    宿主机: Windows7 64bits 系统

    开发板: 安米MDK972

    软件环境: RealEvo-IDE3.0

    NAND Flash: S34ML02G100TF100

  2. S34ML02G100TF100芯片参数

  • Density:2 Gbit
  • Input / Output Bus Width: 8-bits
  • Page Size:2112 (2048 + 64) bytes; 64 bytes is spare area
  • Block Size: 64 Pages;128k + 4k bytes
  • Plane Size: 1024 Blocks per Plane;128M + 4M bytes
  • Device Size: 2 Planes per Device or 256 Mbyte

NAND控制器结构

NUC970的NAND控制器包含在FMI中。FMI分为DMA单元和FMI单元。对于NAND,支持单一DMA通道和硬件ECC,如图 2-1所示。

2-1   NUC970 NAND控制器

 

技术实现

  1. 驱动框架

    SylixOS中NAND Flsh的驱动框架如图 3-1所示。NAND通用驱动主要在fs/mtd/nand/nand_base.c中,该文件包含了NAND的通用操作。驱动工程师需要在NAND通用驱动的基础上实现与硬件相关的驱动层的结构体(nand_chip),该结构体包含了对具体硬件相关的控制和操作函数,以及相关硬件参数和配置信息。MTD层与文件系统,SylixOS已经完全实现,不需要驱动工程师实现。

    3-1   NAND驱动框架

  2. 框架实现

    NAND驱动需要完成NAND控制器、ECC的配置以及NAND的相关操作函数及文件系统挂载,如果使用硬件ECC一般自己定义OOB布局。NUC970驱动实现的操作如程序清单 3-1所示。

    程序清单 3-1   NAND

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值