uboot 中 env相關問題

2021-07-08 12:05:30 字數 502 閱讀 9378

根據uboot 2011,env的初始化主要是用env_relocate來實現。它的實現主要有:

1、如果gd->env_valid等於1,那麼,從dataflash中讀出資料,呼叫env_relocate_spec。

2、如果gd->env_valid等於0,那麼,直接使用default的env,這是直接編進code中的,呼叫set_default_env。

3、獲得資料要先建立env的hush table,然後匯入表中。

env_reloc,實現與env有關的命令的命令表的遷移,移動gd->reloc_off

環境變數在flash中的位址和大小是編譯時define的,因此,更新code之後環境變數不變。

get_env的實現

default_environment,是一張表,每行資料分別是環境變數和值

struct  hsearch_data  env_htable,hush表中的環境變數

get_env就是通過name查詢hush表得到value

uboot中新增FIQ中斷及相關問題

本文主要說明了在uboot中新增fiq中斷時遇到的問題以及對應的解決辦法。問題 一 發生fiq中斷之後處理器做了哪些事情?發生中斷之後arm處理器需要處理完當前的指令,然後自動完成以下事情 1.將當前程式狀態暫存器cpsr儲存到fiq模式下的備份程式狀態暫存器spsr fiq之中 執行中斷返回時其逆...

env相關的系統介面

描述c 庫函式 char getenv const char name 搜尋 name 所指向的環境字串,並返回相關的值給字串。宣告下面是 getenv 函式的宣告。char getenv const char name 引數name 包含被請求變數名稱的 c 字串。返回值該函式返回乙個以 null...

關於U boot中命令相關的程式設計

main loop 這個函式裡有太多編譯選項,對於smdk2410,去掉所有選項後等效下面的程式 複製內容到剪貼簿 void main loop int len int rc 1 int flag char s int bootdelay s getenv bootdelay 自動啟動核心等待延時 ...