zoukankan      html  css  js  c++  java
  • norflash移植及uboot 保存环境变量实验

    一、实验环境

    实验板:TQ2440开发板

    SDRAM:64M

    norflash:EN29LV160AB(2M)

    nandflash:(256M)

    二、移植

        本文不详谈从smdk2410移植到TQ2440的详细过程,只把涉及本文的norflash移植详细阐述。

    1、norflash移植

    /*-----------------------------------------------------------------------
     * FLASH and environment organization
     */
    
    #define CONFIG_AMD_LV800    1    /* EN29LV160AB与AMD_LV800相似 */
    #if 0
    #define CONFIG_AMD_LV400    1    /* 不使用AMD_LV400 */
    #endif
    
    #define CFG_MAX_FLASH_BANKS    1    /* flash就一块 */
    #ifdef CONFIG_AMD_LV800
    #define PHYS_FLASH_SIZE        0x00200000 /* flash为2MB */
    #define CFG_MAX_FLASH_SECT    (35)    /* EN29LV160AB有35个扇区*/
    #define CFG_ENV_ADDR        (CFG_FLASH_BASE + 0x0E0000) /* addr of environment */
    #endif
    #ifdef CONFIG_AMD_LV400
    #define PHYS_FLASH_SIZE        0x00080000 /* 512KB */
    #define CFG_MAX_FLASH_SECT    (11)    /* max number of sectors on one chip */
    #define CFG_ENV_ADDR        (CFG_FLASH_BASE + 0x070000) /* addr of environment */
    #endif
    
    /* timeout values are in ticks */
    #define CFG_FLASH_ERASE_TOUT    (5*CFG_HZ) /* Timeout for Flash Erase */
    #define CFG_FLASH_WRITE_TOUT    (5*CFG_HZ) /* Timeout for Flash Write */
    
    #define    CFG_ENV_IS_IN_FLASH    1    /*环境变量存在flash中,而非其他*/
    #define    CFG_ENV_SIZE        0x10000    /* 通常取一个norflash扇区的大小 */

    2、增加调试功能

        在include/common.h中添加“#define DEBUG //调试模式”

    3、说明:倘若保持原程序的“#define CFG_MAX_FLASH_SECT (19) "也即扇区数目不正确,将出现以下问题

    三、实验

    1、编译下载,第一次启动

    现象:可以看到在执行完env_init()后,env_valid=0x0;在执行env_relocate()函数时,打印警告信息,选择了默认          环境变量。

    原因:从flash中读取的环境变量crc校验错误(第一次上电flash中并没有保存环境变量)

    2、查看flash信息并保存环境变量(把内存中环境变量保存到flash中)

    现象:EN29LV160AB的39个扇区信息如图所示;saveenv命令成功被执行

    3、重启(第二次启动)

    现象:可以看到在执行完env_init()后,env_valid=0x1;在执行env_relocate()函数时,不再打印警告信息。

    原因:从flash中读取的环境变量通过了crc校验

  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3450302.html
Copyright © 2011-2022 走看看