linux嵌入式開發(fā)怎樣入手 如何基于X86開發(fā)板構(gòu)建嵌入式LINUX系統(tǒng)?
如何基于X86開發(fā)板構(gòu)建嵌入式LINUX系統(tǒng)?不咋樣啊,首先你要有一個模擬器或開發(fā)板主要是用于運(yùn)行最終形成好的二進(jìn)位映像,然后再你得有相關(guān)的知識,或者知道咋構(gòu)建體系工具鏈,如何能在工具鏈上構(gòu)建體系和裁
如何基于X86開發(fā)板構(gòu)建嵌入式LINUX系統(tǒng)?
不咋樣啊,首先你要有一個模擬器或開發(fā)板主要是用于運(yùn)行最終形成好的二進(jìn)位映像,然后再你得有相關(guān)的知識,或者知道咋構(gòu)建體系工具鏈,如何能在工具鏈上構(gòu)建體系和裁退內(nèi)核,要如何形成完整都差不多工具包等等,這是個奇怪的系統(tǒng)工作,是需要用一本厚厚的書來介紹。又比如,你還得有很強(qiáng)的動手能力和百折不饒的學(xué)習(xí)態(tài)度,刻苦學(xué)習(xí)吧,騷年。
請問學(xué)習(xí)ARM嵌入式開發(fā)應(yīng)該準(zhǔn)備些什么開發(fā)工具和要求?
多謝了邀請。
這個問題完全相信是困擾所有嵌入式初學(xué)者的難題,下面課內(nèi)容是嵌入式自學(xué)必學(xué)的:C語言C操作系統(tǒng)計算機(jī)組成原理linux編程51單片機(jī)arm硬件編程語言(FPGA)模擬電路amp數(shù)字電路。
1、cc語言,這是計算機(jī)行業(yè)的必修課,前提是找扎實(shí)實(shí)地能學(xué)好,可以不安裝好turboc編譯器為開發(fā)環(huán)境,交流C語言編程按裝vc6.0去學(xué)習(xí)C編程。
2、操作系統(tǒng),先在電腦上直接安裝一個vmwareworkstation,接著在vmwareworkstation里安裝好一個linux(redhat企業(yè)版)虛擬機(jī)。怎么學(xué)習(xí)一下操作系統(tǒng)的基本原理,熟悉linux環(huán)境下的開發(fā)環(huán)境,然后把你就可以照著《自己動手寫操作系統(tǒng)》寫個操作系統(tǒng)試試。
3、計算機(jī)組成原理,熟得不能再熟計算機(jī)的基本原理,看下一個計算機(jī)的基本都組成及軟件在里面是如何跑的。
4、《unix/linux編程實(shí)踐教程》也算是linux編程的必修課,很確實(shí)不錯的一本書,初學(xué)嵌入式的朋友也可以看下。
5、單片機(jī),反正是一臺電腦,像現(xiàn)在的汽車完全控制、led控制、屏幕亮光程度完全控制,它都這個可以實(shí)現(xiàn),自己買塊開發(fā)板弄一下,你能學(xué)到很多的別人學(xué)過了的。
6、arm,現(xiàn)在流行的微機(jī),說白了是32位的單片機(jī),還可以不跑操作系統(tǒng)哦,自己想辦法移植一個操作系統(tǒng)上去吧
7、硬件編程語言(FPGA),芯片到底是怎么可以做成的,學(xué)這門課,你就清楚了
8、模擬電路amp數(shù)字電路,硬件的基礎(chǔ),如果可以不的話,自學(xué)下protel99,自己做個硬件pcb板試下。
計算機(jī)這行也是比較擅長于實(shí)踐的課程,所以我要特別注重動手能力,學(xué)習(xí)嵌入式這基本上課程的時候,你可以不明確的這樣的順序來自學(xué):
1:C語言、計算機(jī)組成原理、模擬電路amp數(shù)字電路
2:匯編語言、單片機(jī)、操作系統(tǒng)、C
3:硬件編程語言、arm
嵌入式開發(fā)大抵分四個方向,硬件、驅(qū)動、內(nèi)核、應(yīng)用,如果沒有是我希望向嵌入式軟件方向經(jīng)濟(jì)的發(fā)展的話,目前最常見的是
嵌入式LinuxARM方向,麻煩問下這個方向,大致分3個階段:
1、嵌入式linux上層應(yīng)用,以及QT的GUI開發(fā)
2、嵌入式linux系統(tǒng)開發(fā)
3、嵌入式linux驅(qū)動程序開發(fā)嵌入式目前主要注意面向的幾個操作系統(tǒng)是,LINUX,WINCE、VxWorks等等Linux是開源能免費(fèi)的,而且其源代碼是開放的,更適合我們怎么學(xué)習(xí)嵌入式。
沒基礎(chǔ)的話你可以嘗試以下路線:
(1)C語言是所有編程語言中的強(qiáng)者,單片機(jī)、DSP、類似于ARM的諸多芯片的編程都可以用C語言幫你搞定),并且需要非常比較熟練的掌握到。我推薦書籍:清華出版社的很還好,《The C Programming Language》那本書超經(jīng)典的教材是老外寫的,也有中譯版本。
(2)操作系統(tǒng)原理,是必須隨身攜帶的,假如你是計算機(jī)專業(yè)畢業(yè)那也就沒什么了,如果是非計算機(jī)專業(yè)的就必須找一本比較比較淺顯的計算機(jī)原理書籍看看那,把啥叫“進(jìn)程”“線程”“系統(tǒng)調(diào)度”等等基本都問題搞清。
(3)Linux操作系統(tǒng)應(yīng)該是用C語言c語言程序的,因?yàn)槟阋矐?yīng)該先學(xué)下Linux方面的編程,只有你會運(yùn)用了,才能近一退去所了解其內(nèi)核的精髓。我推薦書籍:《UNIX環(huán)境高級編程》(第2版)
(4)打聽一下ARM的架構(gòu),原理,在內(nèi)其匯編指令,我們在嵌入式開發(fā)中,象大多去寫匯編,不過最少的要求是也能看得懂a(chǎn)rm匯編。
(5)系統(tǒng)移植到的時候,就要你從下層的bootloader開始,然后再內(nèi)核移植,文件系統(tǒng)移植等。而移植技術(shù)這部分對硬件的依賴是太大的,其配置好不好步驟也低些急切,也也沒少詳細(xì)資料。
(6)驅(qū)動程序的新linux驅(qū)動程序設(shè)計你乃個極具有挑戰(zhàn)性的領(lǐng)域,又是一個淵源流傳的內(nèi)容。linux驅(qū)動程序設(shè)計本質(zhì)是都屬于linux內(nèi)核編程范疇的,再加之是對linux內(nèi)核和內(nèi)核編程是有要求的。在怎么學(xué)習(xí)前你要想清楚linux內(nèi)核的組成,是因?yàn)槊恳徊糠忠敿?xì)研究的話充足可以擴(kuò)大成一本厚書。
給大家把一個嵌入式開發(fā)學(xué)習(xí)大方面的學(xué)習(xí)框架搭出了
。
結(jié)果呢祝大家能夠在怎么學(xué)習(xí)的路上鵬程萬里。