2016.09.01版u-boot问题

2019-07-16 07:55发布

U-Boot 2016.09.01 (Jul 19 2018 - 20:34:36 -0700)

CPUID: 32440001
FCLK:      400 MHz
HCLK:      100 MHz
PCLK:       50 MHz
DRAM:  64 MiB
WARNING: Caches not enabled
Flash: 0 Bytes
NAND:  256 MiB
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
Net:   dm9000
Hit any key to stop autoboot:  0
JZ2440 # save
Saving Environment to NAND...
env_valid = 1

saveenv函数原型在common/env_nand.c文件 第一行是我加的打印没有执行


int saveenv(void)
{
        printf("saveenv() ");
        int     ret = 0;
        ALLOC_CACHE_ALIGN_BUFFER(env_t, env_new, 1);
        int     env_idx = 0;
        static const struct env_location location[] = {
                {
                        .name = "NAND",
                        .erase_opts = {
                                .length = CONFIG_ENV_RANGE,
                                .offset = CONFIG_ENV_OFFSET,
                        },
                },
#ifdef CONFIG_ENV_OFFSET_REDUND
                {
                        .name = "redundant NAND",
                        .erase_opts = {
                                .length = CONFIG_ENV_RANGE,
                                .offset = CONFIG_ENV_OFFSET_REDUND,
                        },
                },
#endif
        };
        if (CONFIG_ENV_RANGE < CONFIG_ENV_SIZE)
                return 1;
        ret = env_export(env_new);
        if (ret)
                return ret;


#ifdef CONFIG_ENV_OFFSET_REDUND
        env_new->flags = ++env_flags; /* increase the serial */
        env_idx = (gd->env_valid == 1);
#endif

        ret = erase_and_write_env(&location[env_idx], (u_char *)env_new);
#ifdef CONFIG_ENV_OFFSET_REDUND
        if (!ret) {
                /* preset other copy for next write */
                gd->env_valid = gd->env_valid == 2 ? 1 : 2;
                return ret;
        }

        env_idx = (env_idx + 1) & 1;
        ret = erase_and_write_env(&location[env_idx], (u_char *)env_new);
        if (!ret)
                printf("Warning: primary env write failed,"
                                " redundancy is lost! ");
#endif

        return ret;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
liujinyi016
1楼-- · 2019-07-16 10:33
没有打印说明没有执行这个函数
liujinyi016
2楼-- · 2019-07-16 15:07
还有,你可以试试命令saveenv,而不是save命令
bxd_linux
3楼-- · 2019-07-16 17:04
 精彩回答 2  元偷偷看……
liujinyi016
4楼-- · 2019-07-16 22:24
应该不是 printf函数吧,试试 print呢
或是处处源码中的实现方式
超级开发板
5楼-- · 2019-07-17 02:35
试试保存改为saveenv,或者直接调用看看

一周热门 更多>