四十二 移植bootm命令

2021-06-27 21:01:47 字數 3055 閱讀 1920

(2)加上了原版u-boot裡dm9000傳送函式裡傳送前後都要清除傳送標誌

(3)取消了老師說的要對包進行判斷,實際上不判斷效果還要好一點,那一部分,要求只要在空讀前後有20微妙的時間間隔就好了,經我實際測試,我的開發板確實只用空讀一次就滿足該條件。

(4)取消了中斷處理函式裡之前為了驗證進的是什麼中斷的列印部分。時的不容易丟包,不然一直在中斷,當下乙個包來的時候還未跳出中斷,會有丟包現象,最後導致傳輸失敗。

1.在uboot中參考cmd_bootm.c,它主要是檢查資訊頭。在

2.uimage和zimage的區別是uimage比後者多了乙個頭部資訊,裡面包含了os型別,幻數,檔案型別,壓縮方式(從而進行解壓縮),

3.找到核心的起始位址

4.設定啟動引數

一開始都要先設定hdr的兩個成員,在針對不同的引數型別(flag),去填寫其他引數

struct tag_header ;
struct tag  u;

};

4.1 核心引數

struct tag_core ;

void setup_start_tag()

4.2記憶體引數

struct tag_mem32 ;

void setup_memory_tags()

4.3命令列引數

struct tag_cmdline ;
void setup_commandline_tag()

4.4結束標誌

void setup_end_tag()

5.將cpu機器碼和啟動引數位址傳給核心,啟動核心

kernel_entry(0,2520,atags_start_addr);
這個函式原型和實現在linux核心,所以只要給這個函式指標指定啟動引數起始位址,linux就會一句這些引數啟動核心。

6.總的啟動函式

輸入數字2啟動核心

核心啟動完成

@@tiny6410裸機下學期**

@網絡卡測試檔案

@author:小君君

@****************************/

#include "common.h"

int main(void)

} return 0;

}

隨筆(四十二)

recyclerview 效能優化 安卓 offer 收割基 2.recyclerview 資料預取 3.androidofferkiller 4.android效能優化第 七 篇 strickmode嚴苛模式檢測耗時與記憶體問題 5.accessibilityservice 幫你實現 androi...

Lua程式設計(四十二)

lua語言還提供了一種改變表在兩種正常情況下的行為的方式,即訪問和修改表中不能存在的字段。index 元方法 當訪問乙個表中不存在的字段時會得到nil。實際上,這些訪問會引發直譯器查詢乙個名為 index的元方法。如果沒有這個元方法,那麼像一般情況下一樣,結果就是nil 否則,則由這個元方法來提供最...

effective C 條款四十二解讀

了解typename的雙重意義 1.template 與template 沒有區別。typename 的另一種用法,我們以乙個 來解釋 templatevoid print2nd const c container if container.size 2 c const iterator iter ...