移植Linux内核到norflash

移植Linux内核到norflash

ID:42675810

大小:36.66 KB

页数:21页

时间:2019-09-19

移植Linux内核到norflash_第1页
移植Linux内核到norflash_第2页
移植Linux内核到norflash_第3页
移植Linux内核到norflash_第4页
移植Linux内核到norflash_第5页
资源描述:

《移植Linux内核到norflash》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、开发板上只有Nor Flash,所以为了实现层次文件系统,需要为Linux2.6.20增加Nor Flash MTD驱动支持。其实工作量并不大,因为已经有现成的程序可供参考。     MTD的驱动程序都集中在drivers/mtd里面。我们需要做的,仅仅是在drivers/mtd/maps下增加自己的分区表。因为有参考的代码,所以比较容易。 (1)构建配置选项     首先,根据edb7312.c构建自己的mtd分区表驱动(根据cfi_flagadm.c这个文件也可以奥,看情况吧!)。 $cd drivers/mtd/m

2、aps/$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 

3、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实际上还是

4、edb7312.c的内容,所以需要根据自己的开发板nor flash的配置做一下修改。 #include #include #include #include #include #include #include #ifdef CONFIG_MTD_PARTITIONS#include 

5、titions.h>#endif#define WINDOW_ADDR 0x10000000 /* physical properties of flash */#define WINDOW_SIZE 0x00800000 /* intel 28F640J3A 8MB */#define BUSWIDTH 2 /* data bus width 16bits *//* can be "cfi_probe", "jedec_probe", "map_rom", NULL }; */#define PROBETYPES { 

6、"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",   

7、     .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 

8、= "U-boot",                .size = 0x20000,                .offset = 0        },        {                // uImage 2MB                .name = "Kernel",        

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。