uboot中為什么不需要應用程序 我想學習嵌入式系統(tǒng),都需要些什么基礎?
我想學習嵌入式系統(tǒng),都需要些什么基礎?現(xiàn)在互聯(lián)網(wǎng)IT發(fā)展的很快,嵌入式系統(tǒng)可謂是當前最熱門最有發(fā)展前途的IT應用領域之一。因為很多人都想學習嵌入式開發(fā),為大家講解自學嵌入式開發(fā)需清楚的一些基礎知識。1
我想學習嵌入式系統(tǒng),都需要些什么基礎?
現(xiàn)在互聯(lián)網(wǎng)IT發(fā)展的很快,嵌入式系統(tǒng)可謂是當前最熱門最有發(fā)展前途的IT應用領域之一。因為很多人都想學習嵌入式開發(fā),為大家講解自學嵌入式開發(fā)需清楚的一些基礎知識。
1.知道一點C語言基礎知識。C語言是一門基礎語言,無論對嵌入式軟件那就硬件開發(fā)編程,都有吧很重要的是的作用。
2.打聽一下操作系統(tǒng)。對操作系統(tǒng)所所了解也很重要的是,再者進程、線程,系統(tǒng)是咋分配資源的,咋系統(tǒng)管理硬件的等等,這些都能幫你對硬件和軟件有個很好的理解。
3.了解Linux或是wince下的編程。
4.具備單機片或是ARM或則MIPS等去相關基礎。
5.其他知識的擴充。我們還可以不是從泛讀一些杰出的代碼,打聽一下UBOOT的源代碼,或則是學下linux的源代碼等等。不過嵌入式也可以零基礎學習的,因此如果你認真用心學是可以不掌握嵌入式開發(fā)這門技術的。
Linux內(nèi)核開發(fā)與Linux驅(qū)動開發(fā)有什么關系?
還沒能學驅(qū)動,大概的說幫一下忙吧,驅(qū)動是確立在內(nèi)核之上來旗下的,比如說你寫了一個驅(qū)動的代碼,那就要把驅(qū)動讀取到內(nèi)核中去,然后再內(nèi)核去先執(zhí)行,為什么不必須內(nèi)核,我個人的理解那是,內(nèi)核是來系統(tǒng)管理硬件資源的,你寫的驅(qū)動代碼是來驅(qū)動硬件的,內(nèi)核不可能去驅(qū)動硬件的,不過以及管理進程,這部分的事情由驅(qū)動做個,驅(qū)動可以不理解為一個進程,內(nèi)核你們負責來管理呀,結(jié)構(gòu)就是:應用程序-rlm內(nèi)核(比如說io操作write,read等等)-rlm驅(qū)動程序(比如說write來驅(qū)動磁盤來寫)。
是說那就是這對驅(qū)動安裝開發(fā)完畢,可不知道樓主是否學過單片機,可以明白驅(qū)動那就是一個驅(qū)動硬件的過程,那像單片機差不多,當然了再發(fā)過程中應該有比較大的區(qū)別的。
內(nèi)核開發(fā),這個工作還真又不是就像的人能旗下的,要不linux內(nèi)核的維護就肯定不會給linux之父了,內(nèi)核的開發(fā)那是用一種方法來合不合理的管理并怎么分配硬件資源,諸如內(nèi)存的管理就都用到分頁的方法,還有一個一些磁盤的管理,進程的管理,cpu的調(diào)度算法(比如最簡單FIFO,時間片)等等,在自學內(nèi)核前做到把操作系統(tǒng)原理看一下,這本書還也可以:
我怎么學習的時候結(jié)合了國外的操作系統(tǒng)原理第七版,因為這兩本書詳細介紹的側(cè)重點所不同,上圖的書理論聯(lián)系實踐性(兩者相比后一本),后一本注重實際算法方面。
額。。說偏了哈,再說終有一天樓主肯定是想開發(fā)內(nèi)核的,因此個人建議先把原理學會,有最基本的計算機科學基礎知識最很好學的打扎實點,否則去學習內(nèi)核就并非而且疲憊,當然是相比什么都不懂的情況下。