首先讓我們比較一下windows平台和嵌入式linux平台下的啟動過程。
windows平台:上電——>bios——>引導作業系統——>識別碟符(c盤、d盤等)——>執行應用程式
嵌入式系統: 上電——>bootloader->linux核心——>掛接根檔案系統——>執行應用程式
從兩者的啟動過程,可以發現boot loader 的作用和bios類似,即初始化硬體裝置、建立記憶體空間的對映圖,將系統的軟硬體環境帶到乙個合適的狀態,最終啟動核心。
由於boot loader對硬體的依賴性很強,而嵌入式系統的硬體又往往大不相同,因此boot loader通常要針對不同的硬體修改原始碼才能正常使用。
u-boot(universal boot loader)正是boot loader中的佼佼者,它是遵循gpl條款的開放原始碼專案,支援多嵌入式作業系統核心也支援多個處理器系列,功能靈活而強大。
下面就進行uboot 的編譯體驗。
uboot版本:u-boot-1.1.6
uboot補丁:u-boot-1.1.6_jz2440.patch
開發平台:jz2440開發板
uboot的編譯過程通常分為以下四步:解壓縮、打補丁、配置、編譯。
使用tar命令將uboot壓縮包解壓縮。
進入uboot目錄,打補丁,因為我們已經進入了uboot目錄,所以打補丁時使用了-p1來讓命令忽略路徑的第乙個引數。
接下來對uboot進行配置。
最後執行make指令進行編譯,編譯的過程會比較長。
至此uboot的編譯已經全部完成,下面把uboot燒寫到開發板上的nor flash進行體驗。
nor啟動上電之後十秒內按空格進入uboot,這個選單是韋東山老師新增的,原版uboot1.1.6並沒有這個選單。
按q退出選單之後,輸入help可以看到uboot的全部命令,在終端輸入命令即可進行相關的操作。
前面提到了uboot是boot loader的一種,最終目的也是啟動核心。為了實現這個目的,uboot要從flash中把核心讀到sdram上去,然後啟動核心。
所以uboot的基本功能有:關看門狗、初始化時鐘、初始化sdram,讀flash等這些硬體相關的操作。這些功能和微控制器程式是一樣的,uboot也因此可以被稱為微控制器程式集大成者。
此外為了開發方便,uboot中還會新增寫flash、閘道器、usb、串列埠等開發功能。
深度學習初步了解
深度學習興起,源於以下3個方面 傳統機器學習在處理原始形態的自然資料方面存在很大的侷限性。它需要技藝高超的工程師和經驗豐富的領域專家設計特徵提取器,將原始資料轉化為合適的中間表示形式或特徵向量,學習子系統,即分類器,然後對輸入模型進行檢測或分類。而深度學習較傳統機器學習的一大優勢是 它不需要人工設計...
機器學習初步了解
重點內容 對機器學習的理解,所謂機器學習,就是機器從資料中學習,機器從資料中學出規律,然後運用到新的資料中,在機器學習中,前者稱為訓練集,後者稱為測試集。學機器學習,我們第乙個往往學的是線性回歸 linear regression 在這裡,我從吳恩達教授講的例子說起,吳恩達講的是乙個房屋 與面積的關...
深度學習初步了解
深度學習是機器學習的一種技術。這裡的 深度 應當是指結構上包含若干順次 連線 的 層 輸入層 輸出層 隱藏層等 輸入層代表外部的輸入,輸出層代表程式的輸出,夾在它們中間在程式執行時不展示的,統稱隱藏層。資料每到達新的 層 都要發生相應的變換,這種輸入和輸出之間關係確定的變換,就是 層 之間 連線 的...