zoukankan      html  css  js  c++  java
  • linux镜像空间

    硬件采用nandflash,nandflash为8位数据宽度,没有dataflash和norflash。

    Nandflash空间分配为 bootstrap + u-boot + env + linux 。

    |

    |  bootstrap  |          | u-boot    |  env  |             |     linux    |

    |______________________________________________________________________________

    0x0       0x1000    0x20000   0x60000  0x80000   0x200000

    0          4K        128K     384K    512K        2M

    uboot的启动参数中定义linux内核镜像在Nandflash中的位置。

    uboot的CFG_NAND_BASE定义Nand起始地址。(起始地址为0x40000000,结束地址0x4FFFFFFF,共256M)

    uboot的CFG_NAND_DBW_8定义数据宽度。

    内存空间分配(起始地址0x2000 0000,结束地址0x2400 0000,共64M)

    |

    |              | env |           |  linux      |                   |     u-boot    |

    |

    0x2000 0000   0x100     0x2040 0000                         0x23F0 0000

    0                                                                                                                                                                                                                      63M

    uboot中CFG_LOAD_ADDR定义RAM中linux的load address。

    CFG_ENV_OFFSET定义env在NandFlash的起始地址,CFG_ENV_OFFSET_REDUND定义env在NandFlash的结束地址,CFG_ENV_SIZE定义env在Nandflash中的空间大小。

    board/atmel/at91sam9260ek/config.mk定义TEXT_BASE,其为u-boot在内存中的起始地址。

    待解决:env在内存中位置????

    (board/atmel/at91sam9260ek/at91sam9260ek.c--àboot_params)

    答:env在内存中的空间是由malloc分配的(env_common.c中的env_relocate()),因此其在内存中的位置是一直变化的。每次系统启动时,env在内存中位置可能都不一样。

    K9F2G08U0B大小为256MB,2048块(0-2047),每块大小为128KB。

    起始地址:0。

      

    启动区:mtd0       占4块

    参数区1:mtd1        占1块

    内核区:mtd2       占64块

    固件备份区:mtd5     实际应用8M即可,占用64块

    需确保NandFlash空间无坏块:0~69  165~230(两块区间)

  • 相关阅读:
    自学java--5
    自学java--4
    自学java--3
    自学java--2
    自学java--1
    java中的IO操作---File类
    TCP/UDP编程实例
    什么是服务端与客户端详解
    【提高组】并查集
    【ToDoList】自己选择的路跪着也要走下去
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/5391440.html
Copyright © 2011-2022 走看看