<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 嵌入式學(xué)習的正確步驟

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

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

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

本文引用地址:http://dyxdggzs.com/article/198141.htm

具體步驟如下:

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

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

  3、《實(shí)用C++程序設計》第二板 中國電力出版社 Steve_Oualline著(zhù)
  此階段主要是學(xué)習其面向對象的編程思想,加深對C語(yǔ)言和數據結構的理解。

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

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

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

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

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

  9、學(xué)習Linux設備驅動(dòng)編寫(xiě)??蓞⒖肌禠inux設備驅動(dòng)程序》

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

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

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

  (1) 嵌入式微處理器結構與應用:

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

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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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


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


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


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


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


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



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>