(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 ...