国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

嵌入式的學(xué)習(xí)方法

發(fā)布時(shí)間:2015-5-3 16:03    發(fā)布者:嵌入式之家

近些年來(lái),嵌入式體系的開展在國(guó)內(nèi)可謂如火如荼,許多公司都急需嵌入式體系方面的開發(fā)人員。可是,在高校中,嵌入式體系的教育卻較為滯后,許多高年級(jí)的本科生和剛?cè)雽W(xué)的研討生都苦于不知從何學(xué)起。在這篇文章中,筆者將依據(jù)自個(gè)的嵌入式體系開發(fā)和教育經(jīng)歷,簡(jiǎn)要介紹嵌入式體系的學(xué)習(xí)辦法,力求能協(xié)助初學(xué)者找到一條入門之路。

啥是嵌入式體系?                     
         學(xué)習(xí)嵌入式體系,首要大概清晰啥是嵌入式體系,不然吃力去學(xué),卻不知所學(xué)為何物,豈不惘然?嵌入式體系的界說(shuō)許多,這也是困擾嵌入式體系學(xué)習(xí)的一個(gè)要素。筆者依據(jù)自個(gè)開發(fā)和教育進(jìn)程中的曉得,以及對(duì)各種嵌入式體系的運(yùn)用進(jìn)行總結(jié),提出了嵌入式體系的簡(jiǎn)略界說(shuō):嵌入式體系是嵌入式核算機(jī)體系的簡(jiǎn)稱,這個(gè)界說(shuō)杰出嵌入式核算機(jī)體系和一般核算機(jī)體系的共性。下表列出了嵌入式體系的一些典型的運(yùn)用:
                  智能機(jī)器人(S D R 4,火星登入車)
                  文娛和花費(fèi)電子(Gameboy Advance,SonyPSP)
                  網(wǎng)絡(luò)通信商品(Smartphone)
                  軍用設(shè)備(軍用PDA )
                  轎車(車載導(dǎo)航,自動(dòng)駕駛,文娛體系)
                  智能儀器(虛擬儀器
                  安全防護(hù)(防火,防盜)
                  環(huán)境保護(hù)(探空氣球)
                  銀行和商業(yè)花費(fèi)(ATM)
         以火星登入車為例來(lái)剖析一下嵌入式體系的界說(shuō)。火星登入車盡管聽起來(lái)感受在技能上有些高不可測(cè),可是實(shí)質(zhì)即是嵌入式核算機(jī)體系的運(yùn)用,其間心即是一個(gè)核算機(jī)體系,而這個(gè)核算機(jī)體系的構(gòu)成同傳統(tǒng)的核算機(jī)體系在實(shí)質(zhì)上沒(méi)有啥不一樣。兩者的明顯不一樣之處就在于,用于火星登入車的核算機(jī)體系被裝置到了火星登入車上。當(dāng)然,一個(gè)核算機(jī)體系能夠被裝置在火星登入車上,是需求進(jìn)行許多格外規(guī)劃的。可是從實(shí)質(zhì)上講,嵌入式體系的中心概念還在核算機(jī)體系。嵌入式體系學(xué)習(xí)的要點(diǎn)也在核算機(jī)體系上。一方面,學(xué)習(xí)者需求牢固把握核算機(jī)體系自身的概念,更重要的是學(xué)習(xí)嵌入體系的開發(fā)進(jìn)程同傳統(tǒng)核算機(jī)體系開發(fā)進(jìn)程的不一樣。這兒需求指出的是,許多學(xué)習(xí)者本來(lái)就沒(méi)有從事過(guò)完好核算機(jī)體系的開發(fā),高校的教育是以程序規(guī)劃為中間的,核算機(jī)體系的構(gòu)成,操作體系的原理,編程言語(yǔ)等課程都是為了能夠讓學(xué)生非常好的運(yùn)用核算機(jī)體系進(jìn)行程序規(guī)劃,在現(xiàn)有的核算渠道上來(lái)規(guī)劃完結(jié)各種運(yùn)用,學(xué)生一般沒(méi)有時(shí)機(jī)學(xué)習(xí)一個(gè)完好的核算機(jī)體系是怎樣構(gòu)建,并親身參加到構(gòu)建的每一個(gè)進(jìn)程。而關(guān)于嵌入式體系而言,從事渠道開發(fā)的人即是要親身去開宣布一個(gè)完好的核算機(jī)體系,這個(gè)進(jìn)程包括

           1. 需求剖析
                  2 硬件規(guī)劃
                  3 驅(qū)動(dòng)程序
                  4 Bootloader & BSP (板級(jí)支撐包)
                  5 操作體系的移植
                  6 運(yùn)用程序的開發(fā)
                  7 功用查看
         嵌入式體系教育的意圖即是教會(huì)學(xué)生怎樣依據(jù)需求去樹立滿意某種格外職業(yè)需求的嵌入式核算機(jī)體系。讓學(xué)生學(xué)會(huì)怎樣構(gòu)件硬件渠道,進(jìn)行硬件規(guī)劃,挑選能夠滿意運(yùn)用需求的最佳的嵌入式操作體系,并完結(jié)Bootloader,BSP和驅(qū)動(dòng)程序的編寫,移植,調(diào)試等進(jìn)程。為了滿意職業(yè)需求,終究要在所樹立的體系上編寫調(diào)試相應(yīng)的運(yùn)用程序,并進(jìn)行功用的測(cè)驗(yàn)和查看。

你是誰(shuí),你需求學(xué)習(xí)哪些東西?
          假如你的作業(yè)僅僅需求在PC 機(jī)上編寫一個(gè)圖像閱覽程序,那么你就沒(méi)有必要去曉得當(dāng)體系收到一個(gè)ARP懇求包后大概怎樣回答。一樣的道理,嵌入式體系的學(xué)習(xí)也是有許多方面的。就嵌入式體系的規(guī)劃和完結(jié)而言,根本上需求四種不一樣的作業(yè):體系規(guī)劃作業(yè),硬件規(guī)劃作業(yè),驅(qū)動(dòng)程序和操作體系移植作業(yè)和運(yùn)用程序規(guī)劃開發(fā)作業(yè)。
         1.體系規(guī)劃作業(yè)                     
         在體系的規(guī)劃階段,體系剖析師將依據(jù)需求斷定體系的硬件的根本構(gòu)成,依據(jù)體系的需求挑選運(yùn)用那種處置器,運(yùn)用哪種操作體系,運(yùn)用那些軟件開發(fā)東西。體系剖析師一般是較為完好的參加過(guò)嵌入式體系規(guī)劃的全進(jìn)程,關(guān)于體系運(yùn)用的職業(yè)較為曉得,關(guān)于嵌入式體系自身的開發(fā)流程非常理解的人。

2.硬件規(guī)劃作業(yè)      

體系硬件規(guī)劃人員需求依據(jù)體系剖析師的規(guī)劃成果,進(jìn)行硬件原理圖的規(guī)劃。一般需求硬件規(guī)劃人員曉得嵌入式體系的硬件構(gòu)成。硬件規(guī)劃人員需求曉得常用的嵌入式體系處置器,存儲(chǔ)器(Flash,SDRAM),以太網(wǎng)MAC芯片,音頻/視頻編解碼芯片,電源辦理芯片,總線接口電路 (USB,PCI),液晶顯示模塊,可編程邏輯器材(FPGA/CPLD),無(wú)線網(wǎng)絡(luò)通信模塊(Bluetooth,WLAN,GPRS)等硬件電路構(gòu)成元素的根本作業(yè)原理,銜接運(yùn)用辦法,運(yùn)用注意事項(xiàng),根本調(diào)試辦法等內(nèi)容。在網(wǎng)絡(luò)上能找到許多公司的評(píng)價(jià)板的原理圖,關(guān)于這些原理圖要細(xì)心研討,摸清處置器同存儲(chǔ)器,網(wǎng)卡,液晶模塊等器材的銜接辦法和緣由。經(jīng)過(guò)對(duì)這些電路的研討,能夠較快地曉得悉數(shù)嵌入式體系的構(gòu)成,這些電路同實(shí)習(xí)商品中的電路雖有必定不一樣的,格外是關(guān)于手持設(shè)備,但這些不一樣不影響初學(xué)者學(xué)習(xí)嵌入式體系的硬件規(guī)劃根本構(gòu)成。

以上這些常識(shí),一般需求較長(zhǎng)時(shí)刻的學(xué)習(xí)和堆集,需求親身參加實(shí)習(xí)的時(shí)機(jī)。關(guān)于剛剛觸摸嵌入式體系硬件開發(fā)的學(xué)生來(lái)講,一般不能夠悉數(shù)曉得這些常識(shí),但也不會(huì)是統(tǒng)統(tǒng)一無(wú)所知。筆者聯(lián)絡(luò)自個(gè)開發(fā)和教育的經(jīng)歷以為:首要大概選定一款干流且較為簡(jiǎn)略的嵌入式體系處置器,比方依據(jù)ARM7TDMI 內(nèi)核的AT91M40800,S3C44B0 等嵌入式體系處置器,學(xué)習(xí)32 位RISC處置器的編程模型,指令集。高校教育中,單片核算機(jī)課程一般以8051系列單片為中心解說(shuō),由于現(xiàn)代32位處置器的構(gòu)造和開發(fā)辦法同8位單片機(jī)有著較大的不一樣,學(xué)習(xí)者仍是需求花一點(diǎn)力氣來(lái)研討以下32位處置器的。以ARM處置器為例,學(xué)習(xí)者就需求曉得處置器的多種作業(yè)形式,備份寄存器,RISC 指令集的特色,MMU 和虛擬地址,中止處置進(jìn)程等內(nèi)容。在學(xué)習(xí)指令集的進(jìn)程中,最佳能夠每學(xué)習(xí)幾條指令,就運(yùn)用這幾條指令在模仿器上實(shí)驗(yàn)以下,調(diào)查處置器履行的成果。這個(gè)進(jìn)程一方面是學(xué)習(xí)者關(guān)于指令自身的學(xué)習(xí)能夠獲得一個(gè)對(duì)比好的作用,別的也是對(duì)開發(fā)東西自身的一種學(xué)習(xí)。接著,就能夠開端學(xué)習(xí)片上資源的運(yùn)用和裝備辦法。這時(shí)就需求一個(gè)便利運(yùn)用的開發(fā)板,學(xué)習(xí)者能夠經(jīng)過(guò)JTAG仿真器將開發(fā)板同調(diào)試PC機(jī)相連,進(jìn)行程序的下載,調(diào)試。格外是要細(xì)心研討體系的初始化進(jìn)程和中止處置的進(jìn)程。在開發(fā)進(jìn)程中假如遇到疑問(wèn),應(yīng)自個(gè)剖析疑問(wèn)產(chǎn)生的緣由,經(jīng)過(guò)剖析減小疑問(wèn)能夠產(chǎn)生的規(guī)劃,終究找到疑問(wèn)的地點(diǎn)。最重要的即是要堅(jiān)持一種解決疑問(wèn)的信心,面臨艱難怎樣處置,一般能夠決議終究體系是不是能夠調(diào)試成功。然后,學(xué)習(xí)者能夠開端細(xì)心學(xué)習(xí)處置器同存儲(chǔ)器的銜接,存儲(chǔ)空間的裝備,各種外擴(kuò)器材,如網(wǎng)卡,AC97聲卡的作業(yè)原理和運(yùn)用辦法。嵌入式體系硬件規(guī)劃中一般需求運(yùn)用可編程器材,學(xué)習(xí)者還需求必定的時(shí)刻來(lái)學(xué)習(xí)運(yùn)用常用的可編程器材(CP L D / F P G A),常用的有XilinxAltera公司的商品。進(jìn)行體系硬件原理圖規(guī)劃,就需求運(yùn)用原理圖規(guī)劃的EDA東西,常用的EDA 原理圖規(guī)劃東西首要包括Cadence公司的Capture,Protel公司的Protel99SE等。接下來(lái)就能夠參照評(píng)價(jià)板的電路圖,依據(jù)體系的規(guī)劃需求,開端進(jìn)行原理圖的制作了。在原理圖制作進(jìn)程中,必定要搞清評(píng)價(jià)板電路銜接的緣由,關(guān)于一時(shí)沒(méi)有搞理解的疑問(wèn)切不可蒙混過(guò)關(guān)。例如,有些處置器的地址線是以字節(jié)位單位的,而另一些處置器的地址線則是以兩個(gè)字節(jié)為單位的,當(dāng)銜接16位的存儲(chǔ)器的時(shí)分,切不可想當(dāng)然的把處置器的A 0 直接銜接到存儲(chǔ)器的A 0 上面。別的,學(xué)生還應(yīng)具有必定的PCB板圖制作才能,由于在現(xiàn)階段,許多公司還不能徹底把原理圖的規(guī)劃作業(yè)和PCB 的制作作業(yè)分開,一般需求硬件規(guī)劃人員既能進(jìn)行原理圖規(guī)劃又能進(jìn)行板圖規(guī)劃。即使是PCB規(guī)劃和原理圖規(guī)劃分開的公司,也需求原理圖規(guī)劃者能為PCB 的規(guī)劃者關(guān)于不一樣的信號(hào)提出布板需求。

3.驅(qū)動(dòng)程序和操作體系移植作業(yè)
        現(xiàn)代嵌入式體系的開發(fā)同傳統(tǒng)8位單片機(jī)體系的開發(fā)對(duì)比,一個(gè)明顯的區(qū)別即是嵌入式操作體系的廣泛運(yùn)用。在拿到焊接完畢的電路板,并進(jìn)行根本的測(cè)驗(yàn)后,就要進(jìn)行驅(qū)動(dòng)程序和操作體系的移植作業(yè)了。首要要進(jìn)行的Bootloader的編寫和移植作業(yè)。Bootloader相當(dāng)于PC體系的BIOS。關(guān)于有些嵌入式操作體系,如uc/OSII沒(méi)有bootloader一樣能夠開發(fā)調(diào)試。可是關(guān)于WindowsCE和嵌入式linux體系而言Bootloader即是有必要的了。這篇文章以Windows CE 為例,做一個(gè)簡(jiǎn)要的闡明。
        Windows CE 體系的移植作業(yè)首要即是BSP(板級(jí)支撐包)的開發(fā)進(jìn)程。BSP將詳細(xì)的硬件區(qū)別同操作體系的中心阻隔開來(lái),首要由Bootloaer ,OAL(OEMAbstraction Layer)和設(shè)備驅(qū)動(dòng)程序三有些構(gòu)成。WindowsCE體系中Bootloader叫做Eboot。Eboot被寫入體系的引導(dǎo)Flash。體系啟動(dòng)時(shí)運(yùn)轉(zhuǎn)Eboot,完結(jié)經(jīng)過(guò)網(wǎng)卡將調(diào)試PC 機(jī)中WindowsCE 操作體系映像下載到方針體系的SDRAM中并開端履行的功用。關(guān)于一個(gè)體系移植人員,首要需求閱覽文檔,曉得WindowsCE體系Bootloader和BSP的根本概念和開發(fā)進(jìn)程。(呵,還要做這作業(yè)啊,我還沒(méi)想到(初學(xué)^_^))Windows CE的開發(fā)體系Platform Builder供給了詳細(xì)的文檔和例程,開發(fā)人員需求細(xì)心的閱覽文檔和例程。搞理解各個(gè)函數(shù)之間的調(diào)用聯(lián)絡(luò)。在開發(fā)進(jìn)程中的一個(gè)重要的進(jìn)程即是打通串口,使得方針板能夠經(jīng)過(guò)PC機(jī)串口向調(diào)試PC 機(jī)發(fā)送數(shù)據(jù)。由于ARM體系的仿真器對(duì)比昂貴,并且操作體系的調(diào)試一般不運(yùn)用JTAG調(diào)試器進(jìn)行單步調(diào)試。所以能從串口調(diào)查程序的履行進(jìn)程和成果關(guān)于調(diào)試就顯得非常重要了。串口打通以后一個(gè)對(duì)比扎手的疑問(wèn)即是網(wǎng)卡芯片的調(diào)試。剛剛觸摸嵌入式體系開發(fā)的人一般沒(méi)有直接在寄存器級(jí)上運(yùn)用網(wǎng)卡芯片的經(jīng)歷,而網(wǎng)卡芯片的闡明一般都較為簡(jiǎn)略,這就需求開發(fā)者學(xué)習(xí)一些以太網(wǎng)的根底常識(shí),對(duì)以太網(wǎng)的MAC 層有一個(gè)根本的曉得。別的,各種網(wǎng)絡(luò)調(diào)試(抓包)東西的運(yùn)用也能大大下降體系調(diào)試的難度。體系的OAL需求依據(jù)詳細(xì)硬件的不一樣做出相應(yīng)的修改,這個(gè)有些可參照文檔進(jìn)行,在調(diào)試進(jìn)程中依據(jù)串口的信息剖析犯錯(cuò)的當(dāng)?shù)亍R渑姘l(fā)揮跨文件字符串查找東西的功用,在汗牛充棟的源文件中找到犯錯(cuò)的位置。當(dāng)然,跟著開發(fā)者對(duì)體系文件目錄構(gòu)造的曉得和曉得,過(guò)錯(cuò)定位的速度會(huì)不斷加速。WindowsCE 的驅(qū)動(dòng)程序相對(duì)而言是對(duì)比好寫的。想體系學(xué)習(xí)嵌入式的兄弟可聯(lián)絡(luò)郭教師QQ754634522
4.運(yùn)用程序的開發(fā)
        嵌入式體系的運(yùn)用程序開發(fā)同在PC 機(jī)上開發(fā)運(yùn)用程序的區(qū)別不是很大。關(guān)于Windows CE體系而言,Microsoft現(xiàn)已供給了較為完善的開發(fā)東西。格外是.NET Compact work的運(yùn)用,使得依據(jù)Windows CE.NETCompactwork的運(yùn)用程序有了跨渠道性。開發(fā)人員能夠運(yùn)用Windows 的C# 言語(yǔ)直接在PC 上進(jìn)行CE.NET運(yùn)用程序的開發(fā)和模仿調(diào)試,也可將方針體系同PC 機(jī)相連,進(jìn)行聯(lián)機(jī)調(diào)試。如今有許多體系支撐J2ME(JAVA的嵌入式體系版別) ,這使得JAVA 在嵌入式體系運(yùn)用開發(fā)中占有較大的優(yōu)勢(shì)。別的,作為專業(yè)的嵌入式體系軟件開發(fā)人員,還需求充沛曉得面向?qū)ο蠹寄芎鸵?guī)劃形式等方面的常識(shí),當(dāng)然作為初學(xué)者能夠先不深入研討這方面的內(nèi)容。內(nèi)容太多,下次共享常用嵌入式體系處置器和操作體系。期望對(duì)初學(xué)者有協(xié)助


        常用嵌入式體系處置器和操作體系
         處置器
         常用嵌入式體系處置器首要包括ARM 處置器,Power PC 處置器,依據(jù)MIPS 內(nèi)核的嵌入式處置器,軟核處置器(如Altera 的Nios和Xilinx的MicroBlaze等)和DSP(數(shù)字信號(hào)處置器)等。
         ARM 處置器的首要特色是具有較高的功用功耗比。ARM處置器被廣泛的運(yùn)用在手機(jī),PDA等范疇,其間較為聞名的有Intel 公司出產(chǎn)的依據(jù)ARM 內(nèi)核的XScale系列處置器。由于一切公司出產(chǎn)的依據(jù)ARM內(nèi)核的處置器具有一樣的編程模型,在手持和電池供電的體系中,依據(jù)ARM的嵌入式體系處置器一般被首要選用。PowerPC(簡(jiǎn)稱PPC)處置器具有較強(qiáng)的運(yùn)算功用和數(shù)據(jù)吞吐才能,在網(wǎng)絡(luò)和數(shù)據(jù)通信范疇依據(jù)PPC的嵌入式體系處置器有著廣泛的運(yùn)用。其間Motorola公司出產(chǎn)的MPC860/MPC8260被大量地運(yùn)用在嵌入式網(wǎng)絡(luò)商品中。MIPS 處置器的特色表如今非常強(qiáng)壯的處置才能上。作為高功用處置器,MIPS處置器適用于網(wǎng)絡(luò)、企業(yè)及高檔花費(fèi)類電子運(yùn)用,格外是在機(jī)頂盒體系中,MIPS處置器具有較高的市場(chǎng)占有率。跟著可編程器材的規(guī)劃不斷擴(kuò)大,使得人們能夠依據(jù)需求定制處置器,并便利的將關(guān)于某種格外運(yùn)用定制的處置器便利的在可編程器材內(nèi)部完結(jié)。除了處置器外,核算機(jī)體系還需求許多其他構(gòu)成有些,比方在多通道媒體數(shù)據(jù)處置體系中,常常需求運(yùn)用可編程器材來(lái)完結(jié)高速的數(shù)據(jù)處置功用,運(yùn)用軟核DSP來(lái)完結(jié)雜亂的數(shù)字信號(hào)處置算法,一起還需求處置器進(jìn)行事務(wù)處置,軟核處置器將可編程器材,DSP同處置器聯(lián)絡(luò)在一起,為體系級(jí)規(guī)劃供給了極大的靈活性。DSP(數(shù)字信號(hào)處置器)有別于通用處置器,會(huì)集表如今其強(qiáng)壯的數(shù)字信號(hào)處置才能上。在DSP 內(nèi)部供給了硬件乘累加器,處置器在規(guī)劃上關(guān)于格外的尋址辦法做了優(yōu)化,一些DSP 還支撐零耗循環(huán)(Zero OverheadLoop)。為了便利嵌入式體系規(guī)劃,干流DSP 一般也都供給了豐厚的外設(shè)。格外值得一提的是ADI 公司的Blackfin 系列DSP和TI 公司的DM64X系列DSP,兩種處置器都供給了豐厚的片上外設(shè),非常適用嵌入式體系運(yùn)用。      


操作體系
        WindowCE.NET/5.0
        作為Microsoft的商品,WindowCE.NE/5.0供給了功用齊備的渠道開發(fā)東西Platform  Builder和運(yùn)用開發(fā)東西Embedded Visual C++/Visual Studio 2003。WindowsCE由于具有廣闊運(yùn)用者所曉得的windows界面,體系供給了許多驅(qū)動(dòng)程序,并且有齊備的文檔支撐。關(guān)于運(yùn)用開發(fā)而言,曉得Windows體系開發(fā)的程序員很簡(jiǎn)單轉(zhuǎn)到WindowsCE 運(yùn)用程序的開發(fā)。Windows CE將會(huì)是一個(gè)非常有出路的嵌入式操作體系。
        VxWorks
        VxWorks是由Windriver(風(fēng)河)公司出品的嵌入式實(shí)時(shí)操作體系,大名鼎鼎的火星登入車即是運(yùn)用了VxWorks。Windriver為VxWorks供給了集成開發(fā)環(huán)境tornado。
        υC/OSII
        υC/OS是由Jean Labrosse規(guī)劃編寫的開放源代碼的嵌入式實(shí)時(shí)操作體系,筆者最早觸摸的嵌入式操作體系即是它。閱覽并深入曉得υC/OS的源代碼關(guān)于曉得實(shí)時(shí)體系是大有裨益的。
        ARM Linux
        ARM linux是由Russell King和其他開發(fā)者開發(fā)移植的用于ARM 處置器的linux操作體系。ARM Linux體系在GNU GPL下發(fā)布。

    υCLinux
        υClinux 是適用于沒(méi)有MMU 的嵌入式處置的LinuxOS 版別。υ Clinux 一樣在GNU GPL發(fā)布。

     嵌入式體系開發(fā)進(jìn)程中的常見疑問(wèn)和解決辦法
          Bootloader怎樣寫入Flash ?
          初學(xué)者一般都會(huì)遇到怎樣將程序?qū)懭胩幹闷鞯囊蓡?wèn)。關(guān)于不一樣的處置器,能夠選用不一樣的辦法。例如Intel的Xscale處置器能夠用Intel公司供給的JFlash東西燒寫。關(guān)于具有JTAG調(diào)試東西軟件的處置器,能夠運(yùn)用如下思路:編寫一段程序,這段程序能將坐落SDRAM/SRAM 固定地址中的數(shù)據(jù)寫入Flash中。燒寫時(shí),首要,將這段軟件下載到SDRAM 中,然后經(jīng)過(guò)調(diào)試軟件即將寫入Flash的數(shù)據(jù)下載到SDRAM/SRAM的某個(gè)固定地址開端的緩沖區(qū),然后經(jīng)過(guò)調(diào)試器開端履行程序,將數(shù)據(jù)寫入Flash。除此以外,網(wǎng)絡(luò)上還供給了許多專用的寫Flash的東西,開發(fā)者能夠依據(jù)自個(gè)的需求選用。(如今理解了我在學(xué)的那個(gè)BF533為啥先下個(gè)flashProgramer.dxe先了)
        啥是arm-elf-gcc?
        arm-elf-gcc是一個(gè)穿插C言語(yǔ)編譯器。咱們?cè)赑C渠道下編譯程序,編譯器運(yùn)轉(zhuǎn)的處置器同生成的代碼即將運(yùn)轉(zhuǎn)的處置器一樣。可是,在PC
機(jī)上編譯ARM程序時(shí),編譯器運(yùn)轉(zhuǎn)的處置器同生成的代碼運(yùn)轉(zhuǎn)的處置器不一樣,這種編譯器叫做穿插編譯器中的elf是指編譯器生成的方針文件格局。(其實(shí)咱們平常用的單片機(jī)編譯器如GCC—AVR等已是穿插編譯器了,我到如今才弄理解啥是穿插編譯器)
       走了哪條編譯途徑?
       體系程序和驅(qū)動(dòng)程序一般包括許多的編譯選項(xiàng),許多選項(xiàng)都是在編譯時(shí)經(jīng)過(guò)命令行界說(shuō)的,假如想曉得編譯的是那一段程序能夠運(yùn)用如下的辦法:
                  #ifdef PLAT_AAA
                  #error Code for Platform AAA

                 #else
                  #error Code NOT for Platform AAA

                 #endif

這樣在編譯的時(shí)分就曉得,編譯的是哪一條路經(jīng)了。關(guān)于支撐#pragma message( “I am here”)的編譯器也可運(yùn)用#pragma message預(yù)編譯指令。
        我怎樣曉得那段代碼在那個(gè)文件中?
        體系編程中常常需求運(yùn)用在多個(gè)文件中查找字符串,在windows渠道下能夠運(yùn)用渠道供給的多文件字符串查找東西。在linux渠道下,能夠運(yùn)用grep來(lái)查找字符串。Grep的查找功用非常強(qiáng)壯,支撐正則表達(dá)式查找,嫻熟運(yùn)用grep關(guān)于閱覽體系和驅(qū)動(dòng)程序代碼是很有協(xié)助的。
        體系是從那個(gè)文件開端運(yùn)轉(zhuǎn)的?
         關(guān)于Windows CE體系,一般從WINCE420\PLATFORM\YourPlatform\KERNEL\HAL目錄的某個(gè)匯編文件中。關(guān)于Linux體系版別不一樣會(huì)存在必定區(qū)別,以arm處置器為例,一般會(huì)在linux2.4.x\arch\arm\kernel的head-armv.S中。
        程序履行到了那里?
        能夠在程序中刺進(jìn)如下代碼來(lái)完結(jié)
                  printf( “I am here %s, %d\n”,__FILE__,__LINE__);

代碼將打出printf句子地點(diǎn)的文件名和行號(hào)。

      推薦書目
        Jean J.Labrosse MicroC/OS-II The Real-TimeKernel,Second Edition這本書是筆者觸摸嵌入式實(shí)時(shí)體系的入門書,在國(guó)內(nèi)能夠買到中文版。這本書較為理解地?cái)⑹隽藢?shí)時(shí)體系的概念,各個(gè)構(gòu)成有些的作業(yè)原理,格外是公開了實(shí)時(shí)體系內(nèi)核的源代碼,細(xì)心研討定會(huì)收獲頗豐。有個(gè)小的提示,關(guān)于初學(xué)者,這本書能夠先不看第一章,直接從第二章看起。

     Abraham Silberschatz, Peter Baer Galvin,GregGagne Operating System Concepts筆者在教育進(jìn)程中發(fā)現(xiàn),無(wú)論是核算機(jī)仍是電子工程專業(yè)都有許多學(xué)生關(guān)于操作體系的根本概念都沒(méi)有搞清,很少有學(xué)生有完好的體系編程經(jīng)歷。Operating System Concepts這本書對(duì)操作體系的概念敘述只能用經(jīng)典來(lái)形容。關(guān)于嵌入式體系有愛好深入研討的同學(xué),首要要把根底打好,這本書就成了必讀之物了。
       Andrew S. Tanenbaum Computer Networks 提起Andrew S. Tanenbaum 學(xué)習(xí)核算機(jī)的同學(xué)必定都曉得OPERATINGSYSTEMsesignand
Implementation這本書,筆者關(guān)于Tanenbaum這樣的教授由衷佩服。網(wǎng)絡(luò)協(xié)議棧是嵌入式體系中的支柱性構(gòu)成有些。情愿致力于網(wǎng)絡(luò)深層技能研討的同學(xué),這本書將為你們樹立一個(gè)堅(jiān)實(shí)的網(wǎng)絡(luò)根底。
       Karim Yaghmour Building Embedded Linux Systems本書翔實(shí)的介紹了嵌入式linux體系的構(gòu)成,根本概念和怎樣去樹立各個(gè)有些。全書篇幅較小,可謂短小精悍。即能夠作為嵌入式linux體系的入門讀物,又是開發(fā)進(jìn)程各個(gè)有些的攻略。
       Advanced RISC Machines Ltd (ARM) ARM7 TDMI DataSheet     Advanced RISC Machines Ltd (ARM) ARM920TTechnical Reference Manual學(xué)習(xí)嵌入式體系不曉得當(dāng)時(shí)運(yùn)用最廣泛的嵌入式處置器怎樣行?ARM7 TDMI 的 data  sheet是學(xué)習(xí)ARM編程模型,指令集的好東西。在嵌入式體系中,MMU(內(nèi)存辦理單元)是很重要的有些,又是較難曉得和把握的有些。ARM920TTechnical Reference Manual 正巧能夠幫你解說(shuō)這方面的內(nèi)容。
       Perter Van Der LinDen Expert C Programming嵌入式體系級(jí)編程最常用的言語(yǔ)仍是C 。許多同學(xué)都自以為自個(gè)的C言語(yǔ)學(xué)的極好,那好,就看看這本書吧,找找自個(gè)和Experts差距。

    嵌入式開發(fā)與桌面開發(fā)既有不一樣,又有非常大的聯(lián)絡(luò),并且非常重視實(shí)習(xí)操作才能。搞桌面開發(fā)的人在一開端觸摸嵌入式的時(shí)分,一般變換不過(guò)來(lái),這首要體如今定位上。如文中所說(shuō),你是誰(shuí),你要做啥?我對(duì)硬件的曉得僅限于編程范疇,PCB規(guī)劃一無(wú)所知,但并不能說(shuō)你不明白硬件就不能從事嵌入式開發(fā)。一個(gè)體系的開發(fā)規(guī)劃方方面面,在自個(gè)感愛好和曉得的范疇做出自個(gè)的奉獻(xiàn)才是最首要的。想體系學(xué)習(xí)嵌入式的兄弟可聯(lián)絡(luò)李教師QQ982288214
             1。硬件規(guī)劃: 需求有硬件規(guī)劃的經(jīng)歷,對(duì)各種嵌入式器材有極好的曉得。
               2。體系移植:需求匯編經(jīng)歷,操作體系原理以及底層驅(qū)動(dòng)的曉得
               3。運(yùn)用程序:需求桌面編程經(jīng)歷           

更多C語(yǔ)言 C++、JAVA、數(shù)電模電、51單片機(jī)PIC stm32 ARM Linux驅(qū)動(dòng) 嵌入式、安卓系統(tǒng) FPGA、DSP Cortex-M3學(xué)習(xí)

請(qǐng)咨詢李工:騰訊QQ3052791816 中國(guó)移動(dòng)全球通13500505486 深圳南山、民治、龍崗、西鄉(xiāng)、長(zhǎng)沙、鄭州、南寧同步學(xué)習(xí)中! 

理論與實(shí)踐相結(jié)合 一線工程師項(xiàng)目經(jīng)理教學(xué) 結(jié)合真實(shí)的產(chǎn)品案列 讓你感受前所未有的電子產(chǎn)品的開發(fā)流程

2015給自己一個(gè)決心,只為自己!高薪就業(yè)不是夢(mèng),有想法你就來(lái) IT達(dá)人等著你!!!


本文地址:http://www.4huy16.com/thread-148802-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 常見深度學(xué)習(xí)模型介紹及應(yīng)用培訓(xùn)教程
  • Microchip第22屆中國(guó)技術(shù)精英年會(huì)——采訪篇
  • Microchip第22屆中國(guó)技術(shù)精英年會(huì)上海首站開幕
  • 技術(shù)熱潮席卷三城,2025 Microchip中國(guó)技術(shù)精英年會(huì)圓滿收官!
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表