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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

该用户从未签到

2#
发表于 2021-11-4 13:34 | 只看该作者
                               修改uboot使之能保存环境变量3 |0 ~5 W* g" \1 Q7 |
思路与步骤:9 E6 H( |( b  M6 F8 n0 ]
& @: s& ~1 t/ }9 s# T( H& U. ]
        1.想要保存环境变量,就要使用saveenv命令
( u6 j+ ~* u) W2 M% U) }
- z2 _1 X& \# M3 s/ g3 _        2.由uboot的命令体系可推测saveenv命令对应的函数是do_saveenv,可以在sourceinsight工程直接搜索此函数
7 Y* [2 [4 @- D$ p! n* u/ ^       8 I% e$ C' L9 d3 i
        3.找到函数int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]),发现真正做事的函数是saveenv()函数. f; l2 f5 S9 n: L( m7 {6 `
      
' U7 l# T. w; {        4.继续找saveenv()函数,发现有很多个,真正的在env_auto.c中9 M3 ^# E/ m1 ?' M6 B' ?
       ' q% d5 m  _& W& v( E/ Z
        5.分析uboot,可知INF_REG3_REG的值,如果没记错INF_REG3_REG = 7的,所以走的是else这条路
4 V0 W: H, M8 j* @       : p. F1 n* Y0 q$ ~/ a" x, |% a
        6.你会发现这里什么都没有做,只有 printf("Unknown boot device\n");1 w9 T- u/ z- G" L* K  i
       2 P$ b3 @3 E* x) e/ k
        7.那我们就添加保存的函数,函数哪里来,就在前面,saveenv_movinand(),这个就是我们需要的函数' H# b& P8 R4 p% ]
       6 Y- y8 v( r9 ^( q
        8.你以为这就完了,不存在的,进去看看它做了什么* _- E$ j! u/ N1 ~+ U
       % Q- x5 S* V0 ^  u% M* a/ k8 }1 u
        9. mmc_init(find_mmc_device(0));检查mmc设备是否存在2 l# G7 H0 x. x: x
       movi_write_env(virt_to_phys((ulong)env_ptr));把要保存的环境变量写进去,没毛病,这是我们想要的,可是这函数里面有个致命的错误
/ N: w( B$ U2 Z( d, u/ C       # P& l* d5 C  Q# I3 J
        10.movi_write(raw_area_control.image[2].start_blk,
, |/ w  h2 n  t1 {) w                raw_area_control.image[2].used_blk, addr);我们源码中把要保存的环境变量保存到raw_area_control.image[2]中,但实际上uboot的分区是
7 m  Z; y: K" C, s5 D, B. N) X, e                raw_area_control.image[3]保存的才是环境变量5 K" h: x- ~+ z) \; y, q6 V
       0 s+ l" y; j# ]2 j% P
        11.在哪看分区信息?init_raw_area_table()函数中,可以直接由raw_area_control的定义间接找到6 x% x. B3 V* }9 }
       * X8 G# p) D; }( S2 k8 [1 V
        12.把raw_area_control.image[2]改成raw_area_control.image[3],大功告成。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 17:01 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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