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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

该用户从未签到

2#
发表于 2021-11-4 13:34 | 只看该作者
                               修改uboot使之能保存环境变量
) u4 W4 H! c/ ^* q8 V思路与步骤:% i' g5 p7 b: E+ n
) Q2 s  y3 ]1 k& }/ {( u. k4 b- o9 E
        1.想要保存环境变量,就要使用saveenv命令1 N& X3 f  x9 \: F* n

% ]* R# A8 d# j5 l        2.由uboot的命令体系可推测saveenv命令对应的函数是do_saveenv,可以在sourceinsight工程直接搜索此函数
5 X& ]$ I7 Y+ L1 S* y      
' E! K% x& o% H0 z% R; L3 A        3.找到函数int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]),发现真正做事的函数是saveenv()函数" t8 Z" i: m3 M) ^
       # m5 K* \. }7 b$ t" ~
        4.继续找saveenv()函数,发现有很多个,真正的在env_auto.c中0 m5 N, M$ `" o- j" a5 a$ O
       / _0 x% e) [, T7 Z+ v7 e7 B
        5.分析uboot,可知INF_REG3_REG的值,如果没记错INF_REG3_REG = 7的,所以走的是else这条路
9 W) r6 p# c( j4 V      
% \, ~7 g, N+ C        6.你会发现这里什么都没有做,只有 printf("Unknown boot device\n");( K! o. k: U, q9 e
       ) l* R! h6 J+ C) g% b/ ~4 u
        7.那我们就添加保存的函数,函数哪里来,就在前面,saveenv_movinand(),这个就是我们需要的函数" h0 f' _3 r( P3 a8 O
      
) T( X! X) c! F0 M        8.你以为这就完了,不存在的,进去看看它做了什么3 N$ y4 y7 d2 U3 ?5 B
       $ }9 l! T( Z( ~2 k6 H* ~8 T
        9. mmc_init(find_mmc_device(0));检查mmc设备是否存在  k$ p/ o( O- V2 ~% \- y; X# ?
       movi_write_env(virt_to_phys((ulong)env_ptr));把要保存的环境变量写进去,没毛病,这是我们想要的,可是这函数里面有个致命的错误
3 r6 T7 }% S0 f, g8 i; R      
* H# W7 m! \, O4 N# @        10.movi_write(raw_area_control.image[2].start_blk,3 Q' E3 J/ x# W
                raw_area_control.image[2].used_blk, addr);我们源码中把要保存的环境变量保存到raw_area_control.image[2]中,但实际上uboot的分区是
# R0 Y- O% j9 S# v- A' E                raw_area_control.image[3]保存的才是环境变量
3 V  V6 q+ Q1 Y* j4 t0 U       - S) m8 f( c1 e; P7 v6 V! J
        11.在哪看分区信息?init_raw_area_table()函数中,可以直接由raw_area_control的定义间接找到
  @. C2 x3 y& |3 p5 J( {         R0 K: y. f& P$ Z: e
        12.把raw_area_control.image[2]改成raw_area_control.image[3],大功告成。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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