移植Linux内核到norflash.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
移植Linux内核到norflash

开发板上只有Nor?Flash,所以为了实现层次文件系统,需要为Linux2.6.20增加Nor?Flash?MTD驱动支持。其实工作量并不大,因为已经有现成的程序可供参考。??MTD的驱动程序都集中在drivers/mtd里面。我们需要做的,仅仅是在drivers/mtd/maps下增加自己的分区表。因为有参考的代码,所以比较容易。?(1)构建配置选项??首先,根据edb7312.c构建自己的mtd分区表驱动(根据cfi_flagadm.c这个文件也可以奥,看情况吧!)。?$cd?drivers/mtd/maps/$cp?edb7312.c?at91rm9200.c??然后,修改drivers/mtd/maps/Kconfig,增加自己的配置选项。?//拷贝过EDB7312稍作修改即可config?MTD_AT91RM9200?tristate?CFI?Flash?device?mapped?on?AT91RM9200?depends?on?ARM??MTD_CFI?help?This?enables?access?to?the?CFI?Flash?on?the?ATMEL?AT91RM9200DK?board.?If?you?have?such?a?board,?say?Y?here.??最后,修改Makefile,增加编译项目。obj-$(CONFIG_MTD_EDB7312)?+=?edb7312.oobj-$(CONFIG_MTD_AT91RM9200)?+=?at91rm9200.o??这样,自己建立的MTD分区表驱动就可以编译进内核了。?(2)修改分区表信息??因为第一步的工作中,at91rm9200.c实际上还是edb7312.c的内容,所以需要根据自己的开发板nor?flash的配置做一下修改。?#include?/base/linuxLinux/module.h#include?linux/types.h#include?linux/kernel.h#include?linux/init.h#include?asm/io.h#include?linux/mtd/mtd.h#include?linux/mtd/map.h#ifdef?CONFIG_MTD_PARTITIONS#include?linux/mtd/partitions.h#endif#define?WINDOW_ADDR?0/*?physical?properties?of?flash?*/#define?WINDOW_SIZE?0/*?intel?28F640J3A?8MB?*/#define?BUSWIDTH?2?/*?data?bus?width?16bits?*//*?can?be?cfi_probe,?jedec_probe,?map_rom,?NULL?};?*/#define?PROBETYPES?{?cfi_probe,?NULL?}#define?MSG_PREFIX?AT91RM9200-NOR:?/*?prefix?for?our?printk()s?*/#define?MTDID?at91rm9200-%d?/*?for?mtdparts=?partitioning?*/static?struct?mtd_info?*mymtd;struct?map_info?at91rm9200nor_map?=?{?.name?=?NOR?flash?on?AT91RM9200DK,?.size?=?WINDOW_SIZE,?.bankwidth?=?BUSWIDTH,?.phys?=?WINDOW_ADDR,};#ifdef?CONFIG_MTD_PARTITIONS/*?*?MTD?partitioning?stuff?*/static?struct?mtd_partition?at91rm9200nor_partitions[5]?={?{?//?U-boot?128KB?.name?=?U-boot,?.size?=?0x20000,?.offset?=?0?},?{?//?uImage?2MB?.name?=?Kernel,?.size?=?0x200000,?.offset?=?0x20000?},?{?//?RootFS?3MB?.name?=?RootFS,?.size?=?0x300000,?.offset?=?0x220000?},?{?//?UserFS?.name?=?Jffs2,?.size?=?0x2C0000,?.offset?=?0x520000?},?{?//?Parameters?.name?=?Parameters,?.size?=?0x20000,?.o

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档