久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
itop修改uboot使之能保存環境變量
[打印本頁]
作者:
dgy6
時間:
2018-5-24 14:01
標題:
itop修改uboot使之能保存環境變量
修改uboot使之能保存環境變量
思路與步驟:
1.想要保存環境變量,就要使用saveenv命令
2.由uboot的命令體系可推測saveenv命令對應的函數是do_saveenv,可以在sourceinsight工程直接搜索此函數
3.找到函數int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]),發現真正做事的函數是saveenv()函數
4.繼續找saveenv()函數,發現有很多個,真正的在env_auto.c中
5.分析uboot,可知INF_REG3_REG的值,如果沒記錯INF_REG3_REG = 7的,所以走的是else這條路
6.你會發現這里什么都沒有做,只有 printf("Unknown boot device\n");
7.那我們就添加保存的函數,函數哪里來,就在前面,saveenv_movinand(),這個就是我們需要的函數
8.你以為這就完了,不存在的,進去看看它做了什么
9. mmc_init(find_mmc_device(0));檢查mmc設備是否存在
movi_write_env(virt_to_phys((ulong)env_ptr));把要保存的環境變量寫進去,沒毛病,這是我們想要的,可是這函數里面有個致命的錯誤
10.movi_write(raw_area_control.image[2].start_blk,
raw_area_control.image[2].used_blk, addr);我們源碼中把要保存的環境變量保存到raw_area_control.image[2]中,但實際上uboot的分區是
raw_area_control.image[3]保存的才是環境變量
11.在哪看分區信息?init_raw_area_table()函數中,可以直接由raw_area_control的定義間接找到
12.把raw_area_control.image[2]改成raw_area_control.image[3],大功告成。
2018年5月23
DGY(編)
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
极品尤物一区二区三区
|
www久久
|
欧美日韩黄
|
久久精彩
|
亚洲视频一区二区三区四区
|
性色av网站
|
99久久综合
|
三级视频网站
|
在线免费观看黄
|
久久久久国产精品夜夜夜夜夜
|
成人在线免费观看视频
|
av手机天堂网
|
97色婷婷
|
91狠狠综合
|
国产精品久久久久久中文字
|
99中文字幕
|
国产a视频
|
成人在线免费视频观看
|
免费国产精品视频
|
亚洲欧美一区二区三区在线
|
99re在线观看视频
|
国产精品久久久一区二区三区
|
www一级片
|
国产理论在线观看
|
亚洲国产精品一区二区三区
|
天堂va蜜桃一区二区三区
|
国产区一区
|
欧美一级片在线播放
|
青草久久久
|
久久人人爽人人爽人人片
|
亚洲免费视频一区
|
伊人成人在线视频
|
亚洲第二页
|
亚洲激情在线播放
|
91网在线
|
四虎在线免费视频
|
成人爱爱
|
www.九九热
|
97视频在线观看免费
|
国产日韩欧美
|
日韩一区二区三区四区
|