找回密码
 注册
关于网站域名变更的通知
查看: 306|回复: 1
打印 上一主题 下一主题

如何itop修改uboot使之能保存环境变量

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-11-4 13:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何itop修改uboot使之能保存环境变量,希望各位能指点指点,谢谢!!

该用户从未签到

2#
发表于 2021-11-4 13:34 | 只看该作者
                               修改uboot使之能保存环境变量
6 S3 _4 U8 U4 `( B8 G) l思路与步骤:
7 [0 N9 S3 C7 D4 d& E8 A  e+ @7 f: P: u% w- M1 v
        1.想要保存环境变量,就要使用saveenv命令. U9 q3 X- x# T& [

. k; J; Q+ ]/ P( V4 s        2.由uboot的命令体系可推测saveenv命令对应的函数是do_saveenv,可以在sourceinsight工程直接搜索此函数
( C0 m! y; }6 \4 A/ [      
5 l2 e0 J, o$ u- Q/ }6 V        3.找到函数int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]),发现真正做事的函数是saveenv()函数# v' S* g- _; s3 A# f
         ]6 e% v1 a1 y9 S/ U: A" W
        4.继续找saveenv()函数,发现有很多个,真正的在env_auto.c中6 a- k, x: I* E3 S9 H: f/ E
      
0 k- v- \" l- |2 L# T        5.分析uboot,可知INF_REG3_REG的值,如果没记错INF_REG3_REG = 7的,所以走的是else这条路0 e/ ~( O' j! h
       . ?5 s; Z; `$ ~8 P3 B& A2 s
        6.你会发现这里什么都没有做,只有 printf("Unknown boot device\n");
2 L. I1 S# S3 P' e: t      
) q: O1 _: X9 e& h0 g; ?        7.那我们就添加保存的函数,函数哪里来,就在前面,saveenv_movinand(),这个就是我们需要的函数: f* f) Z) L, ]2 C! X9 Z
      
5 X( y' C' I- }/ Z4 G# s        8.你以为这就完了,不存在的,进去看看它做了什么
! ]. S% t* w2 Y  o; ?: x       9 M% @+ n$ m: O, G. I* ^# L
        9. mmc_init(find_mmc_device(0));检查mmc设备是否存在
5 u) |2 \7 |. G, |& N       movi_write_env(virt_to_phys((ulong)env_ptr));把要保存的环境变量写进去,没毛病,这是我们想要的,可是这函数里面有个致命的错误
0 k+ F6 d+ P1 B9 p% J) ]      
! b1 y: G" k4 T0 J4 {; E* j7 @& N& r. \        10.movi_write(raw_area_control.image[2].start_blk,
- d! {4 R8 n5 K$ o                raw_area_control.image[2].used_blk, addr);我们源码中把要保存的环境变量保存到raw_area_control.image[2]中,但实际上uboot的分区是
& \) f! S$ n' v                raw_area_control.image[3]保存的才是环境变量
/ T6 Q6 B1 d# h/ W+ ~$ J( g      
: v1 K7 l% |$ {; a; z1 Y: J/ p        11.在哪看分区信息?init_raw_area_table()函数中,可以直接由raw_area_control的定义间接找到
' H" B' S8 }. y) F( A$ u8 `; i      
& f# Y$ A2 e% z; P& ?. }: w) O7 M        12.把raw_area_control.image[2]改成raw_area_control.image[3],大功告成。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-9-11 07:57 , Processed in 0.125000 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表