嵌入式系統(tǒng)開發(fā)需要學(xué)習(xí)什么?
嵌入式系統(tǒng)開發(fā)就是對于除了電腦之外的所有電子設(shè)備上操作系統(tǒng)的開發(fā),開發(fā)對象有手機,掌上電腦,機電系統(tǒng)等。
嵌入式系統(tǒng)開發(fā)流程:
第一步:建立開發(fā)環(huán)境
操作系統(tǒng)一般使用RedhatLinux,選擇定制安裝或全部安裝,通過網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進行安裝(比如,arm-linux-g、arm-uclibc-g),或者安裝產(chǎn)品廠家提供的相關(guān)交叉編譯器;
第二步:配置開發(fā)主機
配置MINICOM,一般的參數(shù)為波特率115200Baud/s,數(shù)據(jù)位8位,停止位為1,9,無奇偶校驗,軟件硬件流控設(shè)為無。在Windows下的超級終端的配置也是這樣。MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò)主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過程。
第三步:建立引導(dǎo)裝載程序BOOTLOADER
從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)具體芯片進行移植修改。有些芯片沒有內(nèi)置引導(dǎo)裝載程序,比如,三星的ARV17、ARM9系列芯片,這樣就需要編寫開發(fā)板上FLASH的燒寫程序,可以在網(wǎng)上下載相應(yīng)的燒寫程序,也有Linux下的公開源代碼的J-FLASH程序。如果不能燒寫自己的開發(fā)板,就需要根據(jù)自己的具體電路進行源代碼修改。這是讓系統(tǒng)可以正常運行的第一步。如果用戶購買了廠家的仿真器比較容易燒寫FLASH,雖然無法了解其中的核心技術(shù),但對于需要迅速開發(fā)自己的應(yīng)用的人來說可以極大提高開發(fā)速度。
第四步:下載已經(jīng)移植好的Linux操作系統(tǒng)
如MCLiunx、ARM-Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統(tǒng)那是再好不過,下載后再添加特定硬件的驅(qū)動程序,然后進行調(diào)試修改,對于帶MMU的CPU可以使用模塊方式調(diào)試驅(qū)動,而對于MCLiunx這樣的系統(tǒng)只能編譯內(nèi)核進行調(diào)試。
第五步:建立根文件系統(tǒng)
下載使用BUSYBOX軟件進行功能裁減,產(chǎn)生一個最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他的程序。由于默認的啟動腳本一般都不會符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfsgenromfs等工具產(chǎn)生燒寫映像文件。
第六步:建立應(yīng)用程序的FLASH磁盤分區(qū)
一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動,有的系統(tǒng)使用一個線性FLASH(NOR型)512KB~32MB,有的系統(tǒng)使用非線性FLASH(NAND型)8MB~512MB,有的兩個同時使用,需要根據(jù)應(yīng)用規(guī)劃FLASH的分區(qū)方案。
第七步:開發(fā)應(yīng)用程序
可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計在一起,這有點類似于μC/OS-II的方式。
第八步:燒寫內(nèi)核
根文件系統(tǒng)和應(yīng)用程序,發(fā)布產(chǎn)品。
....................................................................................................................................................
................................................................
還有怎么學(xué)習(xí)嵌入式呢,我剛才看到一篇很不錯的文章,是一個專科生介紹自己如何自學(xué)嵌入式,并找到嵌入式的工作,里面介紹了他的學(xué)習(xí)方法和學(xué)習(xí)過程,希望對你有幫助。
先做個自我介紹,我07年考上一所很爛專科民辦的學(xué)校,學(xué)的是生物專業(yè),具體的學(xué)校名稱我就不說出來獻丑了。09年我就輟學(xué)了,我在那樣的學(xué)校,一年學(xué)費要1萬多,但是根本沒有人學(xué)習(xí),我實在看不到希望,我就退學(xué)了。
退學(xué)后我也迷茫,大專都沒有畢業(yè),我真的不知道我能干什么,我在糾結(jié)著我能做什么。所以輟學(xué)后我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應(yīng)聘做業(yè)務(wù)。我想應(yīng)聘做技術(shù)的,可是處處碰壁。
一次偶然的機會,我才聽到嵌入式這個行業(yè)。那天我去新華書店,在計算機分類那邊想找本書學(xué)習(xí)。后來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學(xué)習(xí)嵌入式,然后給我介紹了一下嵌入式現(xiàn)在的火熱情況,告訴我學(xué)嵌入式多么的有前景,給我了一份傳單,嵌入式培訓(xùn)的廣告。聽了她的介紹,我心里癢癢的,確實我很想去學(xué)會一門自己的技術(shù),靠自己的雙手吃飯。
回家后,我就上網(wǎng)查了下嵌入式,確實是當今比較熱門的行業(yè),也是比較好找工作的,工資也是相對比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓(xùn)的相關(guān)信息,說真的,我也很迷茫,我不知道培訓(xùn)是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
后來,我在百度知道看到一篇讓我很鼓舞的文章,是一個嵌入式高手介紹沒有基礎(chǔ)的朋友怎么自學(xué)入門學(xué)嵌入式,文章寫的很好,包含了如何學(xué)習(xí),該怎么學(xué)習(xí)。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什么別人都能自學(xué)成才,我也可以的!我要相信自己,所以我就想自學(xué),如果實在學(xué)不會我再去培訓(xùn)。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統(tǒng),我是想找一個能夠告訴我該怎么學(xué)的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教,不懂可以請教的。
后來我又找到一份很好的視頻,是在IT學(xué)習(xí)聯(lián)盟網(wǎng)站推出的一份視頻《零基礎(chǔ)嵌入式就業(yè)班》(喜歡《零基礎(chǔ)嵌入式就業(yè)班》的可以復(fù)制sina.lt/qKh粘貼瀏覽器地址欄按回車鍵即打開)。里面的教程還不錯,很完整,可以讓我從基礎(chǔ)的開始學(xué)起。視頻比較便宜。
下面介紹下我的學(xué)習(xí)流程,希望對和我一樣完全沒有基礎(chǔ)的朋友有所幫助。
收到他們寄過來的光盤后,我就開始學(xué)習(xí)了,由于我沒有什么基礎(chǔ),我就從最簡單的C語言視頻教程學(xué)起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學(xué)了一個禮拜,接下來我就學(xué)了linux的基本命令,我在他們提供linux虛擬機上都有做練習(xí),敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月后我基本掌握了C和linux的基本操作。
接下來我就去學(xué)習(xí)了人家的視頻的培訓(xùn)教程,是整套的,和去參加培訓(xùn)沒有多大的區(qū)別,這一看就是兩個月,學(xué)習(xí)了ARM的基本原理,學(xué)習(xí)嵌入式系統(tǒng)的概念,也掌握了嵌入式的環(huán)境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應(yīng)用到底是怎么做的,但是驅(qū)動我只是有一點點的了解,這個相對難一點,我想以后再慢慢啃。
這兩個月,除了吃飯睡覺,我?guī)缀醵荚趯W(xué)習(xí)。因為我知道幾乎沒有基礎(chǔ),比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養(yǎng)活自己,必須學(xué)好這門技術(shù),然后我就把不懂的問題總結(jié)記下來,這樣慢慢積累了一段時間,我發(fā)現(xiàn)自己真的有點入門了。
最后的一個月,我就去看關(guān)于實踐部分的內(nèi)容,了解嵌入式項目具體的開發(fā)流程,需要什么樣的知識,我就開始準備這方面的知識,也就是學(xué)習(xí)這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以后找工作做準備。我就到網(wǎng)上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多準備了20天左右
我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡歷,因為我學(xué)歷的問題,專科沒有畢業(yè),說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過后,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了準備,但是他們的要求比較嚴格,需要有一年的項目經(jīng)驗,所以我沒有被選中。
后來陸續(xù)面試了幾家公司,終于功夫不負有心人。我終于面試上的,是在閔行的一家民營的企業(yè),公司規(guī)模比較小,我的職務(wù)是嵌入式linux應(yīng)用開發(fā),做安防產(chǎn)品的應(yīng)用的。我想我也比較幸運,經(jīng)理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500只能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養(yǎng),我自己也能養(yǎng)活自己的。我想只要我繼續(xù)努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎(chǔ)的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
假如你喜歡嵌入式的話就努力學(xué)習(xí)吧。
嵌入式系統(tǒng)開發(fā)需要學(xué)習(xí)什么?
③核心操作與算法:Linux系統(tǒng)編程,Linux網(wǎng)絡(luò)編程核心技術(shù),UI編程,Java核心編程,安卓核心技術(shù);④ARMLinux底層開發(fā):數(shù)字電路,ARM編程核心,Linux系統(tǒng)開發(fā),嵌入式Linux驅(qū)動開發(fā);⑤大型項目實踐:每期安排各類型真實的項目,詳細可以找我要資料。互聯(lián)網(wǎng)行業(yè)目前還是最熱門的行業(yè)之一,學(xué)習(xí)IT技能之后足夠優(yōu)秀是...
學(xué)嵌入式從哪里入手?
學(xué)習(xí)嵌入式系統(tǒng)開發(fā)需要具備一定的電子、計算機和編程等方面的基礎(chǔ)。以下是一些可能有用的學(xué)習(xí)建議:學(xué)習(xí)計算機科學(xué)基礎(chǔ)知識:了解計算機組成原理、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)和算法等基礎(chǔ)知識,可以為學(xué)習(xí)嵌入式系統(tǒng)開發(fā)打下堅實的基礎(chǔ)。掌握相關(guān)編程語言:熟悉C\/C++語言,這兩種語言是嵌入式系統(tǒng)開發(fā)中最常用的編程語言...
嵌入式開發(fā)要學(xué)哪些課程
更系統(tǒng)全面的學(xué)習(xí)資料,點擊查看1、編程基礎(chǔ)Linux相關(guān)操作:linux開源,嵌入式產(chǎn)品離不開linux;C語言:嵌入式產(chǎn)品中大多用編程語言是C語言;數(shù)據(jù)結(jié)構(gòu):學(xué)習(xí)任何語言都離不開它,鍛煉我們的編程思維。2、應(yīng)用開發(fā)學(xué)習(xí)linux系統(tǒng)提供的接口如何使用,能夠使用linux的接口開發(fā)出實用性的APP;IO:輸入輸出,比如讀...
學(xué)習(xí)嵌入式開發(fā)需要什么樣的基礎(chǔ)?
學(xué)習(xí)嵌入式開發(fā)需了解的基礎(chǔ)知識 1.了解C語言基礎(chǔ)知識。C語言是一門基礎(chǔ)語言,無論是對嵌入式軟件還是硬件開發(fā)編程,都有很重要的作用。2.了解操作系統(tǒng)。對操作系統(tǒng)有所了解也很重要,比如說進程、線程,系統(tǒng)是怎么分配資源的,怎么管理硬件的等等,這些都能幫助你對硬件和軟件有個很好的理解。3.了解Lin...
嵌入式系統(tǒng)開發(fā)學(xué)什么?
1、學(xué)習(xí) Linux系統(tǒng)安裝、 常用命令、應(yīng)用程序安裝。2、學(xué)習(xí) Linux 下的 C 編程、這本書必學(xué)《UNIX 環(huán)境高級編程》、《UNIX網(wǎng)絡(luò)編程》,Rechard Stevens 寫的,C 高手大都學(xué)習(xí)過 《C 和指針》、《C 缺陷與陷阱》、《高質(zhì)量C\/C++編程指南》、《C 專家編程》、《The C programming Language》。3、...
學(xué)嵌入式系統(tǒng)需要什么基礎(chǔ)知識?怎么學(xué)?
當你的C語言(包括數(shù)據(jù)結(jié)構(gòu))等有了一定的知識積累,那么你就可以學(xué)習(xí)系統(tǒng)編程和網(wǎng)絡(luò)編程了,這是日后應(yīng)用類程序開發(fā)公司比較常用的知識點;然后就是學(xué)習(xí)匯編語言、C++、內(nèi)核、嵌入式系統(tǒng)開發(fā)等,當然,你的操作平臺首先是需要你了解的,基本上常用的是linux平臺,而你對linux的熟悉程度,也需要時間的積累...
嵌入式軟件開發(fā)需要學(xué)習(xí)哪些課程
嵌入式軟件開發(fā)需要學(xué)習(xí)的課程:嵌入式軟件開發(fā)涵蓋了多個領(lǐng)域,包括硬件和軟件。以下是在學(xué)習(xí)嵌入式軟件開發(fā)時可能涉及的一些關(guān)鍵課程:1.計算機組成原理:了解計算機硬件體系結(jié)構(gòu)、指令集架構(gòu)、中央處理器(CPU)、存儲器等基本概念,為嵌入式系統(tǒng)的設(shè)計提供基礎(chǔ)。2.操作系統(tǒng)原理:學(xué)習(xí)操作系統(tǒng)的基本原理,...
嵌入式系統(tǒng)開發(fā)需要學(xué)習(xí)什么?
MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò)主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過程。 第三步:建立引導(dǎo)裝載程序BOOTLOADER 從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)具體芯片進行移植...
嵌入式軟件工程師需要學(xué)什么
嵌入式軟件工程師需要學(xué)習(xí)的主要內(nèi)容有:嵌入式系統(tǒng)開發(fā)基礎(chǔ)、編程語言、軟件開發(fā)工具與平臺以及軟硬件結(jié)合應(yīng)用等。一、嵌入式系統(tǒng)開發(fā)基礎(chǔ) 嵌入式系統(tǒng)是現(xiàn)代電子設(shè)備及智能產(chǎn)品的核心,了解其基本原理和結(jié)構(gòu)至關(guān)重要。嵌入式軟件工程師應(yīng)具備基本的電子技術(shù)知識,了解常見的嵌入式系統(tǒng)架構(gòu)和處理器原理。此外,...
請問嵌入式系統(tǒng)主要學(xué)的是什么?
學(xué)習(xí)嵌入式系統(tǒng)必須學(xué)習(xí)以下內(nèi)容:1、C語言 條件:Linux 方法:主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發(fā))2、網(wǎng)絡(luò)、操作系統(tǒng)、體系結(jié)構(gòu) 條件:Linux,各種書,算法、例程。方法:通過C編程實現(xiàn)簡單的網(wǎng)絡(luò)等知識的算法和過程。3、嵌入式系統(tǒng)概念 條件:各個嵌入式網(wǎng)站,討論組,書籍 方法:少...
相關(guān)評說:
洛南縣蝸桿: ______ 看你是做嵌入式平臺上的應(yīng)用程序開發(fā) 還是嵌入式平臺本身的開發(fā).如果是應(yīng)用級別的開發(fā),現(xiàn)在主要是C語言和C++語言,不過手機游戲現(xiàn)在大量是用java.如果是平臺本身的開發(fā)你就需要好好學(xué)習(xí)匯編語言和操作系統(tǒng).因為要自己寫平臺的驅(qū)動和小型的操作系統(tǒng).驅(qū)動大部分是匯編代碼.其他 數(shù)據(jù)結(jié)構(gòu)必需學(xué)好,然后就是單片機原理,高數(shù),線數(shù).要想寫的代碼效率高 數(shù)學(xué)很關(guān)鍵.建議先學(xué)C,然后數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),匯編,單片機原理.以上學(xué)好已經(jīng)足夠開發(fā).
洛南縣蝸桿: ______ 學(xué)習(xí)嵌入式系統(tǒng)的必備知識與學(xué)習(xí)方法如下: 1、C開發(fā)經(jīng)驗 條件:Linux 方法:主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發(fā)) 2、網(wǎng)絡(luò)、操作系統(tǒng)、體系結(jié)構(gòu) ...
洛南縣蝸桿: ______ 涉及到什么知識,該往哪個方向?qū)W習(xí).但是在看了這篇文章以后感覺收獲不小. 這是一個初學(xué)者常問的問題,也是初學(xué)者問嵌入式該如何入門的根源.我感覺有兩個方面,偏硬和偏軟.我不認為嵌入式開發(fā)軟件占絕對比重,相反,軟硬件都懂,...
洛南縣蝸桿: ______ 1、C開發(fā)經(jīng)驗 條件:Linux 方法:主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發(fā)) 2、網(wǎng)絡(luò)、操作系統(tǒng)、體系結(jié)構(gòu) 條件:Linux,各種書,算法、例程. 方法:通過C編程實現(xiàn)簡單的網(wǎng)絡(luò)等知識的算法和過程. 3、嵌入式系統(tǒng)概念 ...
洛南縣蝸桿: ______ 首先要學(xué)習(xí)下基礎(chǔ)課程單片機,匯編和C語言等等,然后再學(xué)習(xí)嵌入式,如果說你要想水平高的話,最好學(xué)習(xí)下操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),算法及一些硬件方面的知識等等.看你是想在什么方面發(fā)面,你的說明比較不具體,是在硬件方面還是軟件方...
洛南縣蝸桿: ______ 嵌入式,有很多要嵌入的(底層開發(fā),應(yīng)用編程),很多地方(單片機,arm)可以嵌入的.主要還是一些編程基礎(chǔ)問題,自己買個開發(fā)板,先學(xué)這來,會比較快,c編程是主要的用到的,其次是一些電路問題,pcb啊什么的要要看些.有主次的,看你想學(xué)成什么樣,想入門的話,就開發(fā)板》 做實驗..這樣比價好,純粹個人意見
洛南縣蝸桿: ______ 學(xué)習(xí)嵌入式開發(fā)要學(xué)習(xí)C語言,匯編,數(shù)據(jù)結(jié)構(gòu),linux高級編程,ARM系統(tǒng),嵌入式內(nèi)核,嵌入式驅(qū)動等課程.詳細的嵌入式系統(tǒng)學(xué)習(xí)要到專業(yè)的嵌入式培訓(xùn)機構(gòu),你可以到我畢業(yè)的粵嵌培訓(xùn)去看看,十分不錯的,那里的講師都出書了.
洛南縣蝸桿: ______ 嵌入式開發(fā)要學(xué)哪些?在這個技術(shù)瞬息萬變的年代,嵌入式技術(shù)毫無疑問也得緊跟技術(shù)發(fā)展,這對于初涉行業(yè)的新人而言,擺在面前的問題很明顯,嵌入式開發(fā)我得學(xué)習(xí)哪些技術(shù)點才能跟隨企業(yè)的腳步呢?我愿意談?wù)勎医咏陮η度胧介_發(fā)的...
洛南縣蝸桿: ______ 我曾記得華清遠見嵌入式培訓(xùn)機構(gòu)的曹忠明寫了一篇文章,當時非常火,就是關(guān)于嵌入式要學(xué)什么的文章.我記得至少有10幾個媒體的網(wǎng)站轉(zhuǎn)發(fā)了.我今天給大家扒出來.只因為初學(xué)者實在很迷茫,想自學(xué)又不知道從哪學(xué)起.此貼為雷鋒帖. ...
洛南縣蝸桿: ______ 1、必須掌握C/c++2、ASM匯編3、常用嵌入式操作系統(tǒng)4、掌握用Linux模擬開發(fā)平臺如:skyeye 最簡單嵌入式開發(fā),就是GBA,可以GBA本身就是一個嵌入式的應(yīng)用,建議初學(xué)者先由編寫GBA應(yīng)用開始