JZ2440學習筆記,第四部分,移植uboot2015支援JZ2440的DM9000
Chili
2015.5
第四部分,移植uboot2015支援JZ2440的DM9000
7,修改uboot支援DM9000
Uboot 核心已經支援DM9000網口,先開啟DM9000的驅動看看,因為我們看電路圖知道DM9000通過記憶體介面連到了JZ2440上,在Dm9000x.c (u-boot-2015.04-rc4\u-boot-2015.04-rc4-my2440\drivers\net)中也有對記憶體進行操作,從而控制DM9000,但是DM9000.c中並沒有任何關於DM9000_IO以及DM9000_DATA的定義。
圖 1
由於記憶體介面的定義跟硬體息息相關,所以驅動並沒有定義,使用者實際用到該驅動時,需要自己根據實際連線情況自己定義。
這種屬於配置定義,所以我們就去smdk2410.h新增:
[email protected]:~/uboot/u-boot-2015.04-rc4$ vim include/configs/smdk2410.h
圖 2
在板級初始化函式中新增dm9000的初始化函式:
[email protected]:~/uboot/u-boot-2015.04-rc4$ vim board/samsung/smdk2410/smdk2410.c
圖3
儲存,編譯燒寫,啟動,列印如下
圖 4
根據列印提示,我們知道Dm9000a驅動成功,但是MAC地址未進行設定,下面去smdk2410.h中繼續新增配置修改配置檔案
[email protected]:~/uboot/u-boot-2015.04-rc4$ vim include/configs/smdk2410.h
新增
#define CONFIG_ETHADDR 00:02:03:04:05:06
圖5
儲存,燒寫啟動,列印如下表示我們網絡卡工作正常:
圖 6
或者直接在uboot命令列中設定ethaddr環境變數,並儲存
SMDK2410 # set ethaddr 00:02:03:04:05:06
SMDK2410 # set ipaddr 192.168.1.111
SMDK2410 # set serverip 192.168.1.1
SMDK2410 # saveenv
8,總結
本文通過實際log提示以及現象得出分析,一步步的修改uboot,直到完成整個移植工作,移植不是目的,希望大家在一步步的修改過程中能夠學習到:
1,uboot的執行流程,知道什麼東西去哪裡更改(當然這需要有一定的程式碼閱讀能力,並且對uboot原始碼有過仔細認真的閱讀分析,程式碼還是要看的,這可不能偷懶哦)
2,遇到問題,分析問題和解決問題的思路方法。
其實越新的uboot做的東西就越多,我們需要更改的就越少,但是本質都一樣,只要大家能夠了解uboot的執行流程,知道什麼東西去哪裡改就很簡單了。之前大家可能都寫過微控制器,arm程式,知道如何寫暫存器設定不同的外設,那麼uboot移植其實類似的,畢竟uboot只是一個裸機程式,操作方式跟普通微控制器,arm一樣,只是程式碼量大了許多,還有就是程式碼封裝的比較深,但只要大家耐心多看幾遍程式碼,理清uboot的控制思路,也就也沒什麼困難了。真的有困難也不要緊,現在是網際網路時代,把你的問題放到網上求助,或者你有心得也放到網上供大家學習,這樣大家通過知識的共享,就都獲得了進步,世界因共享而變得美好,也讓我們共同獻出自己的一份綿薄之力,有問題有心得多分享!
轉載:http://bbs.csdn.net/topics/391037139
相關推薦
JZ2440學習筆記,第四部分,移植uboot2015支援JZ2440的DM9000
JZ2440學習筆記Chili2015.5第四部分,移植uboot2015支援JZ2440的DM90007,修改uboot支援DM9000Uboot 核心已經支援DM9000網口,先開啟DM9000的驅動看看,因為我們看電路圖知道DM9000通過記憶體介面連到了JZ2440
Linux Unix shell 編程指南學習筆記(第四部分)
fcm 驗證 () only arguments line div 反饋 sed 第十六章 shell腳本介紹 此章節內容較為簡單,跳過。 第十七章 條件測試 test命令 expr命令 test 格式 test condition 或者 [
Linux Unix shell 程式設計指南學習筆記(第四部分)
第十六章 shell指令碼介紹 此章節內容較為簡單,跳過。 第十七章 條件測試 test命令 expr命令 test 格式 test condition 或者 [ condition ] (注意: condition兩側有空格) 檔案狀態測試:
《Oracle PL/SQL開發指南》學習筆記31——原始碼除錯——函式和過程(第四部分,物件表函式,result_cache子句)
建立一個物件表函式有三個步驟: 1. 定義記錄結構為物件型別 2. 定義集合 3. 定義一個函式來展示如何從PL/SQL上下文向SQL上下文返回集合 1. 建立基本的SQL使用者自定義型別(UDT) 注意:發現竟然不能使用distinct關
《Oracle PL/SQL開發指南》學習筆記30——原始碼除錯——錯誤管理(第四部分,utl_call_stack包中的函式)
utl_call_stack包中的函式整理如下: Package Function Description backtrace_depth Returns the number of backtrace items in
【MySQL】《高性能MySQL》學習筆記,第四章,Schema與數據類型優化
MySQL優化 MySQL表設計 MySQL開發規範 MySQL數據類型 【MySQL】《高性能MySQL》學習筆記,第四章,Schema與數據類型優化 良好的邏輯設計和物理設計是高性能的基石,應該根據系統將要執行的查詢語句來設計schema。 反範式的設計可以加快某些類型的查詢,單同時可能使
Python學習筆記(第三天,文件操作、函數)
input 釋放空間 打開方式 只需要 不能 解決 信息 無法查看 一個 一、文件處理 1、文件打開模式 打開文本的模式,默認添加t,需根據寫入或讀取編碼情況添加encoding參數。 r 只讀模式,默認模式,文件必須存在,不能存在則報異常。 w
編寫你的第一個Django應用程序,第四部分
次數 用戶 進行 訪問 觀點 ken span .py return 本教程從隨筆三停止的地方開始。這裏將重點放簡單的表單處理和削減我們的代碼。 寫一個簡單的表單 更新模版文件polls/detail.html,以便包含一個html<form>元素:
.Net基礎篇_學習筆記_第四天_關系運算符和邏輯運算符
不能 main 運算 ram true con 是否 names 關系 1.關系運算符 包含:> < <= >= == != 以及bool類型中的true和false。 2.邏輯運算符 與 &
python 3.5學習筆記(第四章)
ping 函數返回值 使用 family __next__ 什麽 san 直接 all 本章內容: 一、、裝飾器 二、生成器 三、叠代器 四、python中的內置方法 五、json & pickle 的數據序列化及反序列化 六、程序目錄結構規
java-web學習筆記(第四章)
解決方案 重寫 區別 學習 java 占用 表單 服務 安全 第四章:會話跟蹤 1,什麽是會話跟蹤技術 會話跟蹤技術是一種在客戶端和服務器端保持HTTP狀態的解決方案,是使上一次請求所傳遞的數據能夠維持狀態到下一次請求,並且辨認出是否是相同的客戶端所發送出來的。主要
Introduction to 3D Game Programming with DirectX 12 學習筆記之 --- 第四章:Direct 3D初始化
學習目標 對Direct 3D程式設計在3D硬體中扮演的角色有基本瞭解; 理解COM在Direct 3D中扮演的角色; 學習基本的圖形學概念,比如儲存2D影象、頁面切換,深度緩衝、多重紋理對映和CPU與GPU如何互動; 學習如何使用效能計數函式讀取高精度時間;
php學習筆記:第四節--php中的運算子和流程控制
PHP的運算子、流程控制和其他語言的運算子一樣,沒什麼特別的,這裡不再累贅。 特別的運算子: .= $a.=$b
Deep Learning.ai學習筆記_第四門課_卷積神經網路
目錄 第一週 卷積神經網路基礎 第二週 深度卷積網路:例項探究 第三週 目標檢測 第四周 特殊應用:人臉識別和神經風格轉換 第一週 卷積神經網路基礎 垂直邊緣檢測器,通過卷積計算,可以把多維矩陣進行降維。如下圖: 卷積運算提供了一個方便的方法來發
Tensorflow學習筆記(第四天)—遞迴神經網路
一、首先下載來源於 Tomas Mikolov 網站上的 PTB 資料集 http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz 二、需要的程式碼: 這裡只簡單的放了一些程式碼
javascript高階程式設計學習筆記(第四章)
-基本型別和引用型別的值 ECMAScript變數可能包含兩種資料型別的值:基本型別值指簡單的資料段,引用型別值指可能由多個值構成的物件。對於5種基本型別值,可以直接操作儲存在變數中的值;而javascript不允許直接訪問物件的記憶體空間,只能通過操作物件的
Redis從入門到熟練使用之測試哨兵及主從高可用(詳解,第四篇,共五篇)
測試驗證 首先檢視哨兵監控情況 然後嘗試關閉主機 再檢視剩餘2個從機,這裡會自動選舉產生新的主機 然後,我們再次將剛才停止的主機啟動起來,發現啟動後其自動成為從機 停掉master_redis主資料庫後重啟後變成從資料庫。隨機推選。 至此,
【C#學習筆記】第四章總結
《C#入門經典第七期》第四章流程控制書後總結 布林邏輯 布林邏輯使用布林值(true和false)計算條件。布林運算子用於比較數值,返回布林結果。一些布林運算子也用於對數值的底層位結果執行按位操作,還有一些專門的按位運算子。 分支 可使用布林邏輯控制程式流。可以使用i
模式識別 學習筆記:第四章 線性分類器 (持續更新中。。。)
1 引言 基於樣本直接設計分類器需要三個基本要素: 1. 分類器即判別函式的型別,也就是從什麼樣的判別函式類中去求解; 2. 分類器設計的目標或準則,確定函式類中的某些待定引數; 3. 如何設計演算法利用樣本資料搜尋到最優的函式引數。 判別函式
python學習筆記(第四章 python物件 & 第五章 數字)
第四章 python物件 python的任何型別的值都是一個物件,擁有三個特性:身份(唯一標識,id()可以得到,是該物件的記憶體地址),型別,值(資料項) type()可以得到物件的型別,type的型別是type。isinstance()的用途與type()相似,用法舉