<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 嵌入式學(xué)習(xí)的正確步驟

          嵌入式學(xué)習(xí)的正確步驟

          作者:寂寞的褲衩 時間:2013-12-03 來源:電子產(chǎn)品世界 收藏

            門檻雖然較高,但也跟其他事物一樣,并不是牢不可破。只要我們用心去對待,冬雪終將化去,春風(fēng)定會吹來。

          本文引用地址:http://www.ex-cimer.com/article/198141.htm

          具體步驟如下:

            1、《》第二版 譚浩強(qiáng) ; 《C程序設(shè)計語言》第二版 徐寶文譯 機(jī)械工業(yè)出版社
            你能區(qū)分開指針數(shù)組和數(shù)組指針嗎?你知道函數(shù)指針嗎?
            你能區(qū)分開定義一個變量時系統(tǒng)給它分配的空間與用malloc()函數(shù)給一個變量分配的空間有什么不一樣嗎?

            2、《數(shù)據(jù)結(jié)構(gòu)》版  黃國愉、葉乃青編 清華大學(xué)出版社
            你能合上書本,用實現(xiàn)書中的單鏈表、雙鏈表數(shù)據(jù)結(jié)構(gòu)嗎?

            3、《實用C++程序設(shè)計》第二板 中國電力出版社 Steve_Oualline著
            此階段主要是學(xué)習(xí)其面向?qū)ο蟮木幊趟枷耄由顚語言和數(shù)據(jù)結(jié)構(gòu)的理解。

            4、學(xué)習(xí),最好能找個前輩帶一帶。
            你能用51做出一樣實際的東西嗎?即使它再簡單!
            要注意加深對中斷的理解。

            5、學(xué)習(xí)。
            (1)、細(xì)讀《微控制器基礎(chǔ)與實戰(zhàn)》周立工編寫(注:即使你不用書中的開發(fā)板)
            (2)、細(xì)讀相關(guān)芯片的原版英文文檔。如:arm920TE.pdf  S3C2410_1.2.pdf

            6、學(xué)習(xí)uCOS!!操作系統(tǒng)。
            (1)、細(xì)讀《實時操作系統(tǒng)uC/OS-!!》第二版 召貝貝譯
            你能把uCOS!!移植到自己的平臺上嗎?
            (2)、能編寫在uCOS!!操作系統(tǒng)環(huán)境下運(yùn)行的針對具體硬件的驅(qū)動程序

            7、熟悉環(huán)境,學(xué)習(xí)環(huán)境編程,學(xué)習(xí)交叉編程
            (1)、細(xì)讀《linux命令大全.pdf》
            (2)、細(xì)讀《GNU Make 使用手冊(中譯版).pdf》
            (3)、學(xué)習(xí)創(chuàng)建交叉編程環(huán)境.

            8、學(xué)習(xí)操作系統(tǒng)。
            (1)、《UNIX環(huán)境高級編程》
            (2)、可以到一些好的網(wǎng)站下載一些比較好的書籍
            (3)、細(xì)讀《linux內(nèi)核完全注釋》
            (4)、細(xì)讀《understanding the linux kernel 2》
            (5)、利用源代碼閱讀利器工具"Source Insight"進(jìn)行真正的linux內(nèi)核原碼刨析
            (6)、最后進(jìn)行內(nèi)核移植,并能編寫在linux操作系統(tǒng)環(huán)境下運(yùn)行的針對具體硬件的驅(qū)動程序

            9、學(xué)習(xí)Linux設(shè)備驅(qū)動編寫。可參考《Linux設(shè)備驅(qū)動程序》

            10、復(fù)習(xí)C++,學(xué)習(xí)用QT進(jìn)行圖形界面編程
            (1)、細(xì)讀《QT編程寶典》
            (2)、學(xué)會通過查看QT電子文檔進(jìn)行QT GUI實地編程
            (3)、學(xué)習(xí)交叉編程.(其實就是把命令qmake變?yōu)閠make)

            11、當(dāng)然,你也可學(xué)習(xí)一下PCB的制作和設(shè)計一個自己的CPU(即軟殼)

          軟件方面最重要的課程包括:

            (1) 嵌入式微處理器結(jié)構(gòu)與應(yīng)用:

            這是一門嵌入式硬件基礎(chǔ)課程,我們說過,嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省內(nèi)存又運(yùn)行高速的最優(yōu)代碼(嵌入式軟件設(shè)計特別講究時空效率),怎么能寫出驅(qū)動程序(驅(qū)動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,將來若同學(xué)到公司中從事嵌入式軟件開發(fā),公司都會給你一本該設(shè)備的硬件規(guī)格說明書 (xxx Specification),你必須能看懂其中的內(nèi)存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設(shè)計軟件。有些同學(xué)覺得嵌入式處理 器課程較枯燥,這主要是硬件課程都較抽象的原因。還有同學(xué)對ARM匯編不感興趣,以為嵌入式開發(fā)用C語言就足夠了。其實不應(yīng)僅是將匯編語言當(dāng)成一個程序設(shè)計語言,學(xué)匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎么能在該處理器寫出最優(yōu)的C語言代碼。在嵌入式開發(fā)的一些關(guān)鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前還會用到匯編寫程序的,盡管用到的機(jī)會相對C要小得多。當(dāng)你在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的,這是因為很多硬件設(shè)計人員只會寫或者喜歡用匯編描述,此時你就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。

            [小知識] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire (冷火)等,但ARM占據(jù)了絕對主流(有資料說手機(jī)中幾乎90%都是ARM處理器)。ARM是一個只賣知識產(chǎn)權(quán)的公司,目前獲得購買了ARM CPU核授權(quán)許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎(chǔ)上進(jìn)行了一些外圍擴(kuò)展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是采用ARM 9內(nèi)核,指令一級是相同的)。而眾多中小公司又購買了這些處理器,設(shè)計了各種各樣的開發(fā)板,如華恒等國內(nèi)很多著名嵌入式公司都生產(chǎn)基于SamsungS3C2410的開發(fā)板,供最終用戶使用或供教學(xué)實驗。在ARM這個食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,而華恒等則是蝦米,最終用戶(我們這些要采購嵌入式開發(fā)板的)則是喂蝦米的。Intel早期生產(chǎn)的是低端ARM(Strong ARM,相當(dāng)于ARM 7),現(xiàn)在轉(zhuǎn)向主要生產(chǎn)高端ARM(即Intel Xscale處理器,屬于ARMv5家族,主要用在高端PDA上,如HP和DELL生產(chǎn)的PDA都采用Intel Xscale,價格較高)。目前應(yīng)用最多的是ARM 7和ARM 9兩類處理器。 ARM 7較便宜,可跑uclinux(是一個不支持高級內(nèi)存管理功能的嵌入式Linux系統(tǒng)統(tǒng))、Vxworks、uc/os II等實時操作系統(tǒng),但因處理器不帶內(nèi)存管理單元MMU(無內(nèi)存分頁和地址映射機(jī)制,所以不能使用虛擬內(nèi)存),所以不能跑Windows CE,另外通用Linux中的某些內(nèi)存管理功能也不能用在ARM 7上。ARM 9大都是一個帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數(shù)功能。ARM7和ARM9的區(qū)別是在與體系結(jié)構(gòu)上,前者是馮?諾伊曼結(jié) 構(gòu),后者是哈佛結(jié)構(gòu)——指令和數(shù)據(jù)總線是分開的。以上是我的一點(diǎn)了解,可能有不對的地方。我們學(xué)院有十幾套ARM 7開發(fā)系統(tǒng)(采用Samsung S3C44b0x開發(fā)板,主要用于嵌入式處理器結(jié)構(gòu)、實時操作系統(tǒng)等課程實驗用),ARM 9的系統(tǒng)好象也已經(jīng)到了(采用的芯片我不知道也沒去問),還有以前的十幾套MPC860開發(fā)板(聽說價格都很貴,很容易損壞),同學(xué)應(yīng)愛護(hù)使用和珍惜這樣 的實驗機(jī)會。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          可控硅相關(guān)文章:可控硅工作原理


          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          c語言相關(guān)文章:c語言教程


          linux相關(guān)文章:linux教程


          比較器相關(guān)文章:比較器工作原理


          c++相關(guān)文章:c++教程



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();