u-boot
做了些什麼
:通俗來說就是設定函式開始存放的位置
根據鏈結程式確定了
程式主入口
接下來的文字段的排列順序(這將是啟動
最重要的部分)
最先執行
start.s
cpu最初始的操作!!!
放在最前面的最開始執行。正常情況下直接跳轉到
start code
執行,但是在這條語句後面緊跟著中斷向量表,這些是
cpu硬體決定的,必須定義在固定的位址。首先讓
cpu進入
svc模式(管理員模式),關看門狗,關所有的中斷。
設定時鐘。直接操作時鐘暫存器,設定時鐘的分頻比
跳入cpu init crit
函式,對系統匯流排進行初始化,只有經過初始化,
norflash sdram
才能被使用
檢查現在是否在記憶體中執行,否則,要將**拷貝到
sdram
的text base
位置中執行。從
norflash
或者nandflash
中拷貝需要另行判斷。
經過以上的**,現在
uboot
肯定是在
sdram
上執行了,然後分配堆疊位址大小。
跳轉到start armboot
執行(這是第二階段**,定義在
lib_arm/board.c
中)。lib_arm/board.c
中做了些什麼,就是做了一些板載的外設的初始化工作,為接下來程式執行做準備。比如初始化網絡卡,串列埠,
lcd,
sd卡等等外設。
網上關於
uboot
的移植已經講得很詳細,我這裡就僅僅只是談談我做了幾天的認識,不一定對。
紙上得來終覺淺,絕知此事要躬行。
軟體測試基本流程之我見
軟體測試基本流程可以分為以下幾個階段 需求分析階段 測試計畫階段 測試用例編寫 測試用例評審 測試用例執行 輸出測試報告。一 需求分析階段 這個階段主要閱讀和理解需求,了解需求的測試點,參與需求評審會議。二 測試計畫階段 這個階段的主要任務就是制定測試計畫,根據軟體需求規格說明書,進行專案的總體計畫...
U BOOT啟動流程之三
u boot 啟動 的第二階段 在 u boot 啟動的 第二階段 主要初始化一些與硬體相關的資訊 比如串列埠 lcd,flash,timer等。這些硬體是根據自己的需要來初始化的 過程如下 從這個圖中,可以看出第二階段的執行流程,裡面的函式也比較多。在lib arm board.c 1 board...
Android 4 0 訊息處理的流程之我見
最近本人想通過截獲觸控螢幕的訊息,從來能夠用來進行相關的操作。但是目前的android系統並不能夠提供對這些事件的支援,因此本人採取了圍魏救趙的方式試圖對此問題能夠進行很好的解決。輸入訊息的處理從本質上來講的話 將得到的輸入訊息經過特殊的方式處理後分發到相應的地方而做出正確的動作。而在乙個實際的系統...