linux程序读写uboot env变量

http://jiangjqian.blog.51cto.com/1040847/404097

 

 

分析发现uboot env的存储格式是,开始4个字节是crc32,后面是一个接一个\0结束的字符串,每个串都是envname=enavalue的格式。
挪用uboot部分的相关代码,实现以下函数:
int set_env_ptr(unsigned char * ptr);
char *get_env (char *name);
int set_env (char *varname, char *varvalue);
int printenv(void);
使用时,我们读取env分区的数据到内存;
调用set_env_ptr(数据指针),该函数会进行crc校正确保env分区正确,并且返回0;
get_env, set_env, printenv相应uboot 中的echo $envname; setenv envname envstr; printenv

Usage: ./uboot_env read|set [envname] [value] -i envimage -o outimage

posted on 2011-06-14 23:07  katago  阅读(791)  评论(0编辑  收藏  举报