欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM.(推薦5篇)

      時(shí)間:2019-05-12 13:50:17下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM.》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM.》。

      第一篇:ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM.

      ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM 一個(gè)電子工程師的ARM學(xué)習(xí)心得 目錄:

      一 首先說說ARM的發(fā)展 二 ARM是硬件還是軟件 三 要不要買開發(fā)板 買哪家

      四 要不要有51 AVR等單片機(jī)基礎(chǔ) 五 開發(fā)都需要學(xué)習(xí)哪些軟件

      七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機(jī)用 八 學(xué)習(xí)要用多長時(shí)間

      九 ARM都玩什么 十 我用的什么板子 十一 開發(fā)流程

      十二 關(guān)于JTAG訪真器 十三 哪個(gè)公司的ARM 我的筆記剛公布就有很多朋友來找我,把我當(dāng)高手,問我“ARM怎么入門”。我不是高手,仍然是菜鳥。

      但是回想起自己當(dāng)時(shí)的迷茫,特意寫了這篇東西,當(dāng)作給和我一樣的兄弟姐妹的幫助吧。問這個(gè)問題的人多半不是已經(jīng)工作的工程師,而是和我一樣是學(xué)生,所以這篇筆記就把看家當(dāng)成我一樣的菜鳥,高手勿怪。

      首先聲明:本人還沒有找工作,事實(shí)上處于研究生剛畢業(yè),還沒開始找工作的空閑時(shí)間,44B0只是興趣所在,打發(fā)時(shí)間。

      所有看法完全是自己的感受,不代表任何他人。錯(cuò)了的觀點(diǎn)各位幫我糾正。再次補(bǔ)充:很多朋友看了上面的話就問我為什么研究生畢業(yè)了還不找工作:)說是打發(fā)時(shí)間,其實(shí)是因?yàn)檠芯可臅r(shí)候帶了一個(gè)項(xiàng)目,申請?zhí)崆爱厴I(yè)以后項(xiàng)目還有塊尾巴,答應(yīng)導(dǎo)師把項(xiàng)目做完再走:)就這么簡單。男人總點(diǎn)負(fù)點(diǎn)責(zé),呵呵 以下問題常被問到,我就想到哪說到哪吧。一 首先說說ARM的發(fā)展

      可以用一片大好來形容,翻開各個(gè)公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。廣義的嵌入式無非幾種:傳統(tǒng)的什么

      51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。

      客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。DSP因?yàn)閿?shù)字處理與通信領(lǐng)域的空前發(fā)展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應(yīng)用面很廣。

      FPGA的兄弟一般做ANSIC(特殊芯片設(shè)計(jì),好象是這么翻譯的)。

      而ARM單純說來并不比一個(gè)單片機(jī)強(qiáng)多少,但是它的獨(dú)特就在于不斷下降的價(jià)格和提升的性能。這完全依靠于ARM公司的戰(zhàn)略,厲害!很佩服他們的戰(zhàn)略眼光!

      值得注意的是:在找工作中,企業(yè)(著名的,小的不算)對單純的ARM硬件開發(fā)工程師并不比單片機(jī)重視,很少有大企業(yè)的職位里寫“從事過ARM開發(fā)優(yōu)先”。

      寫的多的是什么?“嵌入式LINUX”

      到這相信大家看出來了吧,需要的是硬件中的軟件。二 ARM是硬件還是軟件

      很難說,ARM是硬件,LINUX是軟件。

      ARM的硬件多半已經(jīng)模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰(zhàn)略,再次佩服。

      實(shí)際中的LINUX的開發(fā)工作更多,更耗時(shí)。從這方面說ARM應(yīng)該算是軟件了。在找工作中更是這樣,舉個(gè)例子,聯(lián)想里和ARM最接近的是“BIOS工程師”是軟件,MOTO里接近的是嵌入式LINUX工程師是軟件。而其他很多公司把嵌入式產(chǎn)品開發(fā)歸為硬件。所以,不要討論這個(gè),好好玩轉(zhuǎn)自己的板子才是關(guān)鍵。實(shí)在不爽你就把自己叫“嵌入式開發(fā)工程師” 三 要不要買開發(fā)板 買哪家

      我的答案是“在你個(gè)人的學(xué)習(xí)方法”,但是如果看家是需要看這騙筆記的水平,個(gè)人推薦還是買現(xiàn)成的。1 買

      買板子可以把注意力集中在軟件開發(fā)上,軟件開發(fā)(尤其是驅(qū)動)可以不必?fù)?dān)心自己硬件上的問題,我就是以便調(diào)試一邊寫驅(qū)動和程序,每次寫驅(qū)動前就要先確認(rèn)硬件沒問題。

      另外,買板子更省錢和時(shí)間,我自己做的板子,原理圖PCB花了2周以上!制版又15天,回來以后焊接44B0 160個(gè)腳!那叫一個(gè)麻煩~~花了多少錢呢?2層板,制版費(fèi)就300塊!當(dāng)然 我把接口都外引了,還做了個(gè)20X18的LCD背板,板子比較大。

      總體下來 元件+LCD屏+PCB=11XX塊!夠2410的了。

      再有就是買的資料相對來說比較全,但是不要指望有技術(shù)支持!都是騙人的,賣你之后就不會理你。2 做

      自己做可以更了解底層硬件,可以按照自己的要求加?xùn)|西,比如我就加了GPS模塊、GPRS模塊、SD卡模塊,擴(kuò)了個(gè)IIC的35個(gè)鍵子的鍵盤、把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。

      當(dāng)然,你可以有策略的做,比如像我一樣,把RAM和ROM,網(wǎng)絡(luò)都保持和某現(xiàn)成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個(gè)退路。其他的如SD了 什么的自己做。都達(dá)到了~~就是費(fèi)錢,費(fèi)時(shí)間。

      再有就是給做的朋友幾點(diǎn)建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。

      網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫的,再這里對龔俊表達(dá)一下我的敬意!牛人!但是那個(gè)圖有個(gè)小BUG,我指的是03版的,后來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責(zé)!順便譴責(zé)把龔俊板子偷賣 的人。買哪家

      個(gè)人感覺分3類吧

      1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎么開發(fā)ARM,而不是像有的公司自己技術(shù)都沒做好就做個(gè)板子出來賣錢。但是最大的不利就是價(jià)格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是總線不外擴(kuò)的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價(jià)格性能結(jié)合點(diǎn)。ARM7最適合做工業(yè)控制,ARM普及,銷量都是怎么來的?都是ARM7來的,而44B0是典型的商業(yè)片子。但是,這里如果你看中的是為工作做準(zhǔn)備,還是選能跑UCLINUX的吧。但是仍然作為第一個(gè)推薦,因?yàn)椴锁B時(shí)期,合適的資料太重要了!在這里被ZLG的務(wù)實(shí)*感動!你看人家那代碼寫的。

      2)感覺硅谷芯微的2440不錯(cuò)

      硬件沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯(cuò)的~~ 3)找個(gè)最便宜的

      好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時(shí)間搜集資料,至于資料全不全,別計(jì)較了~~硬件肯定好使就行吧。四 要不要有51 AVR等單片機(jī)基礎(chǔ)

      有更好,但沒有也無所謂。

      兩個(gè)月以前,我只是看別人做,耳濡目染~~,本科學(xué)過單片機(jī),從來沒做過。我們這的技術(shù)主干做AVR和51,我就跟他們調(diào)過C語言程序。你看出來了?我是個(gè)不折不扣的菜鳥吧? 但是做這個(gè)之前我特意找了ZLG的兩本書,看了里面的例子和原理圖,這很重要。例程里有匯編有C,都看懂了就OK,不用自己現(xiàn)寫 五 開發(fā)都需要學(xué)習(xí)哪些軟件 總結(jié)起來最主要的有以下幾個(gè)吧 ADS調(diào)試用

      確切的說是ADS+AXD。ADS里包含AXD。原來都用SDT后來ARM公司停止對SDT支持了,改支持ADS了,還是用ADS吧。

      有的人的程序發(fā)布的仍然是SDT版本的,但基本都可以找到相應(yīng)ADS的,新人在這里不要發(fā)蒙。ADS是編譯器,AXD是調(diào)試器。便宜成AXF以后再在ARM的RAM里調(diào)試。2 PLASHPGM FLASH燒寫的軟件。AXD在RAM里調(diào)試,掉電就沒有了,方便程序修改。調(diào)試好的程序再下到FLASH里,上電直接運(yùn)行。

      同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。BANYANT調(diào)試代理(不知道名對不,起這么個(gè)難記的,我一般都叫它“半羊”因?yàn)橹浪菐滋靹偝粤丝狙颍?/p>

      調(diào)試代理就是用它幫你使用更簡單的JTAG(便宜啊)來實(shí)現(xiàn)原本1K才賣的JTAG仿真器的大部分功能。JTAG調(diào)試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅(qū)動就行了。

      調(diào)試代理還有很多種,什么H-JTAG了、ARM7了(不知道具體叫什么,就記得可執(zhí)行文件叫ARM7.EXE)都是,BANYANT比較好。

      需要注意的是,沒種調(diào)試代理安裝方法雖然都簡單 但都不一樣,需要看說明。而且AXD調(diào)試之前都要運(yùn)行。省錢了,就別怕麻煩了。4 ARM-ELF-TOOLS工具鏈

      里面是UCLINUX開發(fā)用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發(fā)布的方便你開發(fā)的東西。具體安裝方法看我另一篇筆記。另外如果你開發(fā)LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。5 U-BOOT 大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)生成的BOOTLOADER燒到FLASH里,然后就可以用BOOTLOADER下載 燒寫其他了 有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當(dāng)然UCOS的不用這個(gè),用什么我不知道:)最新版本是1.1.4 具體使用方法看我另一篇筆記吧。6 UCLINUX包

      UCLINUX的源碼包,不用多說了吧?建議大家用現(xiàn)成的先體會一下,然后再自己編譯,裁剪。因?yàn)閱为?dú)UCLINUX的編輯技術(shù)上比較簡單,但涉及的方面還是比較廣的。7 VMWARE

      老牌的虛擬機(jī)軟件,在一個(gè)機(jī)器上虛擬出一個(gè)機(jī)器裝LINUX(PC上用的),省得你來回開關(guān)機(jī)了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機(jī)用 搞開發(fā),工程設(shè)計(jì),用UCOS,小巧,多進(jìn)程,簡單,體現(xiàn)了ARM7的精髓。2 LINUX 正根的嵌入式系統(tǒng),LINUX消費(fèi)與通信領(lǐng)域用的比較多,但缺點(diǎn)是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板500-1500吧。但是還是推薦選ARM9+LINUX 3 UCLINUX 算投機(jī)嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵 VXWORKS 學(xué)好后可以找到高薪工作,但工作機(jī)會本身并不比LINUX好找。5 當(dāng)單片機(jī)用

      不推薦,雖然我景仰的ZLG一直號召這么干。因?yàn)閷τ趯W(xué)習(xí)來說多進(jìn)程的系統(tǒng)設(shè)計(jì)才是ARM7的玩頭,至少你也要整個(gè)UCOS?。海?/p>

      有朋友問我先學(xué)這個(gè)當(dāng)基礎(chǔ)不行嗎?那當(dāng)然可以~~但我當(dāng)時(shí)就用了1周搞定,就是我先的ADS在RAM中調(diào)試的筆記。后來我清空FLASH用的小段程序還是當(dāng)時(shí)寫的LED閃爍程

      序呢。另外1周里其中還因?yàn)樽约哼^于菜,沒把OM設(shè)置好導(dǎo)致晶陣不陣 哈哈。這個(gè)是必須做的,但一帶而過。目標(biāo)放的遠(yuǎn)一點(diǎn)。

      八 學(xué)習(xí)要用多長時(shí)間

      我從菜鳥到現(xiàn)在兩個(gè)多月,中間被打擾數(shù)次。仍然搞定了PCB設(shè)計(jì)與制版,RAM調(diào)試,F(xiàn)LASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現(xiàn)成的),LCD驅(qū)動。

      再次坦誠的說:我確實(shí)比較菜,說這些不是讓大家羨慕,只是告訴你們“你們應(yīng)該比這個(gè)更好”

      我相信良好的態(tài)度+合適的方法+及時(shí)的總結(jié)=成績 九 ARM都玩什么 就幾點(diǎn) 1 硬件設(shè)計(jì) 2 系統(tǒng)移植 3 驅(qū)動開發(fā) 4 應(yīng)用開發(fā)

      沒了。其中推薦把注意力放在后兩個(gè)上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。十 我用的什么板子

      很多人問我這個(gè)問題,我特意寫過一個(gè)的。再說一次吧。

      我是自己做的,RAM、ROM、8019等比較麻煩而當(dāng)時(shí)的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。1 加了串口通信的GPS模塊、GPRS模塊

      一個(gè)UART0,一個(gè)UART1,當(dāng)與要用超級終端時(shí)用跳線切換。2 SD卡,和7843觸摸屏

      同時(shí)掛在SPI總線上,因?yàn)镾PI只能掛一個(gè)設(shè)備,同時(shí)還做了I/O模擬的準(zhǔn)備,把兩個(gè)設(shè)備又通過跳線掛在4個(gè)IO上。3 擴(kuò)了個(gè)IIC的35個(gè)鍵子的鍵盤

      用的ZLG的7290,不占用CPU,最大支持64個(gè)鍵子,只上了35個(gè),其他留接口。4 把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。

      所以改動雖然多,但真正很移植了,初期調(diào)試有關(guān)的并沒動,就是為了現(xiàn)在不那么菜的時(shí)候做準(zhǔn)備:)十一 開發(fā)流程

      這里是我的開發(fā)流程 設(shè)計(jì)原理圖(含WIGGLER的JTAG訪真器)2 設(shè)計(jì)PCB(含WIGGLER的JTAG訪真器)3 制版 焊接電壓,確定電壓沒問題 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯(cuò)誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題 焊接晶體+RAM+ROM+周邊電路,用BANYANT+仿真器連接,可以顯示正確的44B0了 7 用BANYANT+仿真器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內(nèi)存窗口看RAM地址)RAM就沒問題 可以用這個(gè)命令“setmem 0xc000000,0xffffffff,32”

      我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。8 用我寫的《自己寫了個(gè)C工程模板又寫了個(gè)使用說明 》里的方法調(diào)試程序吧,寫個(gè)簡單的,我當(dāng)時(shí)寫個(gè)LED閃爍的??春檬共弧0殉绦虬凑铡禙LASH燒寫總結(jié) 》里的燒到FLASH里,測試一下 10 按照《UBOOT 移植操作》移植UBOOT 11 按照《UCLINUX下載簡單說明》下個(gè)UCLINUX 12 看看驅(qū)動開發(fā)的方法,自己寫個(gè)驅(qū)動看看 13 還有很多事東西著你玩 呵呵

      十二 關(guān)于JTAG訪真器

      JTAG訪真器現(xiàn)在用的多是簡板的,一個(gè)244那種,用的沒什么不好。

      按照并口定義不同分幾種,建議選WIFFLER定義的,因?yàn)橹С值能浖?。這個(gè)網(wǎng)上多的是,不多說了。

      值得提的是有的JTAG訪真器原理圖上有跳線用來使能復(fù)位信號,這個(gè)一般不跳上。就是不用復(fù)位信號,因?yàn)镴TAG協(xié)議里本身也可以控制44B0復(fù)位。當(dāng)然,板子上的復(fù)位信號跳線也不用跳。十三 哪個(gè)公司的ARM 這個(gè)是問題比較簡單。1 ARM7主要就幾個(gè)公司的

      三星,PHILIP,ATMEL的

      ATMEL的有比較便宜的AT91SAM7S32 和AT91SAM7S64 專為8位應(yīng)用產(chǎn)品量身定做,價(jià)格很便宜好象《3刀吧。和PHILIP的21XX差不多,資料太少,項(xiàng)目中選還不錯(cuò)。其他兩家上面說了的不多說了吧 ARM9 這個(gè)玩2410和2440的多吧,現(xiàn)在2440還比較火啊 可以考慮買個(gè)了 但是2410就比較便宜了,作為學(xué)習(xí)來說反到和不錯(cuò),推薦整一個(gè):)

      其實(shí)ARM9用的最多的領(lǐng)域應(yīng)該是消費(fèi)電子,比如手機(jī)PDA,而這上面用的多的應(yīng)該是INTEL的和TI的吧。

      但是INTEL的TI的入門材料少,價(jià)格高,自己看情況定吧。

      硅谷芯微技術(shù)中心:004km.cn 芯片級IT教育第一品牌 開設(shè)課程:單片機(jī)、嵌入式、ARM、Linux、Android、iphone、PCB設(shè)計(jì) 硅谷芯微推薦:嵌入式ARM9驅(qū)動實(shí)戰(zhàn)開發(fā)班

      本文由JACK轉(zhuǎn)載與網(wǎng)絡(luò),如有版權(quán)問題,請通知本人刪除

      第二篇:ARM學(xué)習(xí)心得

      ARM linux學(xué)習(xí)心得(zt)

      2008-08-13 13:55

      由于很多人總問這個(gè)問題,所以這里做一個(gè)總結(jié)文檔供大家參考。

      這里必須先說明,以下的步驟都是針對Linux系統(tǒng)的,并不面向WinCE。也許你會注意到,現(xiàn)在做嵌入式的人中,做linux研究的人遠(yuǎn)比做WinCE的人多,很多產(chǎn)家提供的資料也是以linux為主。我一直很難理解,其實(shí)WinCE的界面比linux的界面好看多了,使用起來也很方便,更為重要的是,WinCE的開發(fā)和Windows下的開發(fā)基本一樣,學(xué)起來簡單得多,但是學(xué)linux或者使用linux做嵌入式的人就是遠(yuǎn)比WinCE多。在和很多工作的人交流時(shí)我了解到,他們公司從沒考慮使用WinCE,因?yàn)槌杀靖?,都是使用linux進(jìn)行開發(fā)。我讀研究生的的實(shí)驗(yàn)室中也沒有使用WinCE的,大都研究linux,也有少部分項(xiàng)目使用vxwork,但是就沒有聽說過使用WinCE的,原因就是開源!當(dāng)然現(xiàn)在WinCE6.0聽說也開源,不過在成本和資源上linux已經(jīng)有了無人能擋的優(yōu)勢。與此相對應(yīng)的是,越來越多的電子廠商已經(jīng)開始使用linux開發(fā)產(chǎn)品。舉個(gè)例子,Google近期開發(fā)的智能手機(jī)操作系統(tǒng)Android其實(shí)就是使用linux-2.6.23內(nèi)核進(jìn)行改進(jìn)得到的。

      第一,學(xué)習(xí)基本的裸機(jī)編程。

      對于學(xué)硬件的人而言,必須先對硬件的基本使用方法有感性的認(rèn)識,更必須深刻認(rèn)識該硬件的控制方式,如果一開始就學(xué)linux系統(tǒng)、學(xué)移植那么只會馬上就陷入一個(gè)很深的漩渦。我在剛剛開始學(xué)ARM的時(shí)候是選擇ARM7(主意是當(dāng)時(shí)ARM9還很貴),學(xué)ARM7的時(shí)候還是保持著學(xué)51單片機(jī)的思維,使用ADS去編程,第一個(gè)實(shí)驗(yàn)就是控制led。學(xué)過一段時(shí)間ARM的人都會笑這樣很笨,實(shí)際上也不是,我倒是覺得有這個(gè)過程會好很多,因?yàn)闊o論做多復(fù)雜的系統(tǒng)最終都會落實(shí)到這些最底層的硬件控制,因此對這些硬件的控制有了感性的認(rèn)識就好很多了

      學(xué)習(xí)裸機(jī)的編程的同時(shí)要好好理解這個(gè)硬件的構(gòu)架、控制原理,這些我稱他為理解硬件。所謂的理解硬件就是說,理解這個(gè)硬件是怎么組織這么多資源的,這些資源又是怎么由cpu、由編程進(jìn)行控制的。比如說,s3c2410中有AD轉(zhuǎn)換器,有GPIO(通用IO口),還有nandflash控制器,這些東西都有一些寄存器來控制,這些寄存器都有一個(gè)地址,那么這些地址是什么意思?又怎么通過寄存器來控制這些外圍設(shè)備的運(yùn)轉(zhuǎn)?還有,norflash內(nèi)部的每一個(gè)單元在這個(gè)芯片的內(nèi)存中都有一個(gè)相應(yīng)的地址單元,那么這些地址與剛剛說的寄存器地址又有什么關(guān)系?他們是一樣的嗎?而與norflash相對應(yīng)的nandflash內(nèi)部的儲存單元并不是線性排放的,那么s3c2410怎么將nandflash的地址映射在內(nèi)存空間上進(jìn)行使用?或者簡單地說應(yīng)該怎么用nandflash?再有,使用ADS進(jìn)對ARM9行編程時(shí)都需要使用到一個(gè)初始化的匯編文件,這個(gè)文件究竟有什么用?他里面的代碼是什么意思?不要這個(gè)可以嗎?

      諸如此類都是對硬件的理解,理解了這些東西就對硬件有很深的理解了,這對以后更深一步的學(xué)習(xí)將有很大的幫助,如果跳過這一步,我相信越往后學(xué)越會

      覺得迷茫,越覺得這寫東西深不可測。因?yàn)?,你的根基沒打好。

      不過先聲明一下,本人并沒有使用ADS對ARM9進(jìn)行編程,我是學(xué)完ARM7后直接就使用ARM9學(xué)linux系統(tǒng)的,因此涉及使用ADS對ARM9進(jìn)行編程的問題我很難回答^_^,自己去研究研究吧。

      對于這部分不久將提供一份教程,這個(gè)教程中的例程并不是我為我們所代理的板子寫的,是我在我們學(xué)院實(shí)驗(yàn)室拿的,英培特為他們自己的實(shí)驗(yàn)箱寫的,不過很有借鑒意義,可以作為一份有價(jià)值的參考。

      第二,使用linux系統(tǒng)進(jìn)行一些基本的實(shí)驗(yàn)。

      在買一套板子的時(shí)候一般會提供一些linux的試驗(yàn)例程,好好做一段時(shí)間這個(gè)吧,這個(gè)過程也是很有意義的,也是為進(jìn)一步的學(xué)習(xí)積累感性認(rèn)識,你能想象一個(gè)從沒有使用過linux系統(tǒng)的人能學(xué)好linux的編程嗎?好好按照手冊上的例程做一做里面的實(shí)驗(yàn),雖然有點(diǎn)娃娃學(xué)走路,有點(diǎn)弱智,但是我想很多高手都會經(jīng)歷這個(gè)過程。

      在這方面我們深藍(lán)科技目前沒有計(jì)劃提供相應(yīng)的例程,主要是開發(fā)板的提供商會提供很豐富的例程,我們不做重復(fù)工作,只提供他們沒有的、最有價(jià)值的東西給大家。

      第三,研究完整的linux系統(tǒng)的的運(yùn)行過程。

      所謂完整的linux系統(tǒng)包括哪些部分呢?

      三部分:bootloader、linux kernel(linux內(nèi)核)、rootfile(根文件系統(tǒng))。那么這3部分是怎么相互協(xié)作來構(gòu)成這個(gè)系統(tǒng)的呢?各自有什么用呢?三者有什么聯(lián)系?怎么聯(lián)系?系統(tǒng)的執(zhí)行流程又是怎么樣的呢?搞清楚這個(gè)問題你對整個(gè)系統(tǒng)的運(yùn)行就很清楚了,對于下一步制作這個(gè)linux系統(tǒng)就打下了另一個(gè)重要的根基。介紹這方面的資料網(wǎng)上可以挖掘到幾噸,自己好好研究吧。第四,開始做系統(tǒng)移植。

      上面說到完整的linux有3部分,而且你也知道了他們之間的關(guān)系和作用,那么現(xiàn)在你要做的便是自己動手學(xué)會制作這些東西。

      當(dāng)然我不可能叫你編寫這些代碼,這不實(shí)現(xiàn)。事實(shí)上這個(gè)3者都能在網(wǎng)下載到相應(yīng)的源代碼,但是這個(gè)源代碼不可能下載編譯后就能在你的系統(tǒng)上運(yùn)行,需要很多的修改,直到他能運(yùn)行在你的板子上,這個(gè)修改的過程就叫移植。在進(jìn)行移植的過程中你要學(xué)的東西很多,要懂的相關(guān)知識也很多,等你完成了這個(gè)過程你會發(fā)現(xiàn)你已經(jīng)算是一個(gè)初出茅廬的高手了。

      在這個(gè)過程中如果你很有研究精神的話你必然會想到看源代碼。很多書介紹你

      怎么閱讀linux源代碼,我不提倡無目的地去看linux源代碼,用許三多的話說,這沒有意義。等你在做移植的時(shí)候你覺得你必須去看源代碼時(shí)再去找基本好書看看,這里我推薦一本好書倪繼利的《linux內(nèi)核的分析與編程》,這是一本針對linux-2.6.11內(nèi)核的書,說得很深,建議先提高自己的C語言編程水平再去看。

      至于每個(gè)部分的移植網(wǎng)上也可以找到好多噸的資料,自己研究研究吧,不過要提醒的是,很多介紹自己經(jīng)驗(yàn)的東西都或多或少有所保留,你按照他說的去做總有一些問題,但是他不會告訴你怎么解決,這時(shí)就要靠自己,如果自己都靠不住就找我一起研究研究吧,我也不能保證能解決你的問題,因?yàn)槲椅幢赜龅竭^你的問題,不過我相信能給你一點(diǎn)建議,也許有助你解決問題。

      這一步的最終目的是,從源代碼的官方主頁上(都是外國的,悲哀)下載標(biāo)準(zhǔn)的源代碼包,然后進(jìn)行修改,最終運(yùn)行在板子上。

      盜用阿基米德的一句話:“給我一根網(wǎng)線,我能將linux搞定”。

      第五,研究linux驅(qū)動程序的編寫。

      移植系統(tǒng)并不是最終的目的,最終的目的是開發(fā)產(chǎn)品,做項(xiàng)目,這些都要進(jìn)行驅(qū)動程序的開發(fā)。

      Linux的驅(qū)動程序可以說是五花八門,linux2.4和linux2.6的編寫有相當(dāng)大的區(qū)別,就是同為linux2.6但是不同版本間的驅(qū)動程序也有區(qū)別,因此編寫linux的驅(qū)動程序變都不是那么容易的事情,對于最新版本的驅(qū)動程序的編寫甚至還沒有足夠的參考資料。那么我的建議就是使用、移植一個(gè)不算很新的版本內(nèi)核,這樣到時(shí)學(xué)驅(qū)動的編程就有足夠的資料了。

      這部分的推薦書籍可以參考另一篇文章《推薦幾本學(xué)習(xí)嵌入式linux的書籍》。第六,研究應(yīng)用程序的編寫。

      做作品做項(xiàng)目除了編寫驅(qū)動程序,最后還要編寫應(yīng)用程序?,F(xiàn)在的趨勢是圖形應(yīng)用程序的開發(fā),而圖形應(yīng)用程序中用得最多的還是qt/e函數(shù)庫。我一直就使用這個(gè)函數(shù)庫來開發(fā)自己的應(yīng)用程序,不過我希望你能使用國產(chǎn)的MiniGUI函數(shù)庫。盜用周杰倫的廣告詞就是“支持國產(chǎn),支持MiniGUI”。MiniGUI的編程比較相似Windows下的VC編程,比較容易上手,效果應(yīng)該說是相當(dāng)不錯(cuò)的,我曾使用過來開發(fā)ARM7的程序。不過MiniGUI最大的不好就是沒有像qtopia這樣的圖形操作平臺,這大大限制了他的推廣,我曾經(jīng)幻想過與北京飛漫公司(就是MiniGUI的版權(quán)擁有者)合作使用MiniGUI函數(shù)庫開發(fā)像qtopia這樣的圖形操作平臺,不過由于水平有限這只能是幻想了,呵呵。

      完成這一步你基本就學(xué)完了嵌入式linux的全部內(nèi)容了。

      還有一個(gè)小小的經(jīng)驗(yàn)想和大家分享。我在學(xué)習(xí)嵌入式linux的過程中很少問人,客觀原因是身邊的老師、同學(xué)師兄都沒有這方面的高手,主觀原因是我不喜歡問人,喜歡自己研究解決問題。這樣做有個(gè)好處,就是可以提高自己解決問題的能力,因?yàn)樽鲞@些東西總有很多問題你難以理解,別人也沒有這方面的經(jīng)驗(yàn),也不是所有問題都有人給你答案,這時(shí)必須要自己解決問題,這樣,個(gè)人的解決問題能力就顯得非常關(guān)鍵了。因此我的建議就是一般的問題到網(wǎng)上搜索一下,確實(shí)找不到答案了就問問高手,還是不行了就自己去研究,不要一味去等別人幫你解決問題。

      記住,問題是學(xué)習(xí)的最好機(jī)會。

      第三篇:arm心得.

      心得體會(許晶)

      本次實(shí)習(xí)時(shí)間是一周,我們組所選的題目是直流電動機(jī)轉(zhuǎn)速控制設(shè)計(jì),其要求有:硬件部分要求在LPC2100系列ARM的最小系統(tǒng)的基礎(chǔ)上,設(shè)計(jì)通過按鍵控制直流電動機(jī)速度的驅(qū)動電路,要求通過LPC2100內(nèi)置的PWM發(fā)生器控制直流電動機(jī);并將電動機(jī)速度通過串口送至PC機(jī)。軟件部分要求設(shè)計(jì)以上功能的脫機(jī)運(yùn)行程序,并在試驗(yàn)室調(diào)試通過。我負(fù)責(zé)的是硬件部分。首先我將系統(tǒng)分為兩部分。一是電動機(jī)控制驅(qū)動電路;二是ARM最小系統(tǒng)。在電動機(jī)驅(qū)動中,直流電機(jī)控制使用了H橋驅(qū)動電路,控制口線為P0.21、P0.22。在ARM最小系統(tǒng)中,分為5部分:電源電路、復(fù)位電路、JTAG接口電路、RS232串口電路、時(shí)鐘電路。

      在制作原理圖中,我查閱了實(shí)驗(yàn)指導(dǎo)書和課本。我所選用的是2114板子。因?yàn)長PC2114是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-STM CPU的微控制器,并帶有128/256 k字節(jié)(kB)嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。

      在這個(gè)過程中,我注意到了許多問題。通過最小系統(tǒng)的制圖,我對一些問題逐漸了解,不像剛開始學(xué)習(xí)一樣,感覺什么也不懂,硬裝知識。我畫了5部分,這幾個(gè)部分讓我對書上的內(nèi)容更加深了學(xué)習(xí)。如:時(shí)鐘電路中,我就把時(shí)鐘系統(tǒng)和晶體振蕩兩節(jié)課程,重新學(xué)習(xí)。

      而在軟件設(shè)計(jì)中,在我的搭檔編程完之后,我也對程序進(jìn)行了研究。在主程序中,我們用的是i、j表示速度與方向,正轉(zhuǎn)為“+”、反轉(zhuǎn)為“—”;最小速度為1,最大速度為4。先讓電機(jī)正向慢慢的加速,加到正傳的最大速后,在按下就變成反轉(zhuǎn),然后在依次加速,往返循環(huán),直至沒有按鍵按下。所運(yùn)用的是,調(diào)節(jié)PWM的占空比就能達(dá)到電機(jī)的速度調(diào)節(jié)。

      我們組在硬件中遇到的問題并不多,主要是在畫各部分原理圖時(shí)找器件很不熟練,不能很快的找到。這說明我不經(jīng)常用軟件。其實(shí)這個(gè)軟件制圖很方便,各種器件幾乎都能找到,找不到時(shí)也可以在上面畫圖。

      軟件中,程序在編譯正確后,下載方面出現(xiàn)了許多問題,如連接不上;不能生成hex文件等。其實(shí)這些問題,都是因?yàn)槲覀儗浖皇煜に斐傻?。在我們多次調(diào)試、鏈接之后,終于完成。

      經(jīng)過一周實(shí)習(xí),是我對ARM系統(tǒng)有了更深刻的認(rèn)識。因?yàn)榍捌诖蠹叶颊夜ぷ鞯脑?,我并沒有特別認(rèn)真的學(xué)習(xí),而這次的實(shí)習(xí),可以讓我重新再次拿起課本,認(rèn)真學(xué)習(xí)。并且使我感觸最深的是,由于嵌入系統(tǒng)的廣泛應(yīng)用,我應(yīng)該更好的去學(xué)習(xí)它、掌握它。像掌握辦公自動化一樣,成為必不可少的技術(shù)。

      第四篇:ARM學(xué)習(xí)方法

      ARM學(xué)習(xí)方法

      一步一步學(xué)習(xí)uCOS和ARM體系結(jié)構(gòu)的心得

      學(xué)習(xí)必備條件:

      1、一塊開發(fā)板——例如44B0開發(fā)板,建議初學(xué)者不要去購買那些ARM9體系結(jié)構(gòu)的,因?yàn)樽鳛槌鯇W(xué)者來說ARM9體系的東西是很復(fù)雜的,買塊ARM7的就可以了(先入門,然后再提高);

      2、學(xué)習(xí)必備書籍

      《Pointer on C》中文名字叫《C和指針》(美)里科|譯者:徐波 前提你的了解C指針吧(這本書時(shí)非常經(jīng)典的書籍,完全可以看中文版的,作者翻譯的非常到位)

      《嵌入式實(shí)時(shí)操作系統(tǒng)μCOS-II(第二版)》--邵貝貝翻譯的(不能不承認(rèn)邵貝貝是一個(gè)非常好的翻譯者)

      《μC/OS-Ⅱ標(biāo)準(zhǔn)教程》--楊宗德

      對于英文不好的朋友可以購買《ARM體系結(jié)構(gòu)與編程》--杜春蕾(該書其實(shí)還是有很多翻譯錯(cuò)誤的,大家在看的時(shí)候要注意一下,但是不可否認(rèn)的是這本書到目前為止算得上是我見過最好的講解關(guān)于ARM體系結(jié)構(gòu)的書籍了)

      對于英文過關(guān)的兄弟姐妹可以直接看

      《ARM+Architecture+Reference+Manual(2nd+Edition)》

      3、有條件的兄弟姐妹可以選購一個(gè)仿真器 JLINK V8全功能版(這個(gè)的感謝中國的優(yōu)秀工程師,是他們把原價(jià)1999多的JLINK變成了幾十元錢的東西

      4、開發(fā)環(huán)境--MDK350或者IARARM

      如果要熟悉這些開發(fā)環(huán)境,就需要好好讀一些這些開發(fā)環(huán)境的手冊資料,不好意思,這個(gè)就只有英文的了。

      以上4個(gè)條件具備下來,可能也不會超過500元錢。

      下面來講講我的學(xué)習(xí)經(jīng)歷:

      我剛開始學(xué)習(xí)的時(shí)候,自己走了不少彎路,這里就省略不說了。

      第一步:在開發(fā)板上跑跑簡單程序

      因?yàn)槟阌虚_發(fā)板,所以你就先在網(wǎng)上找一下對應(yīng)開發(fā)板上的ARM芯片的datasheet,你都不先搞懂芯片的手冊,又談何讓自己實(shí)現(xiàn)很多功能呢。

      熟讀數(shù)據(jù)手冊后,就盡可能的在開發(fā)板上實(shí)現(xiàn)芯片對應(yīng)的每個(gè)功能,像GPIO實(shí)驗(yàn),UART通訊,I2C,ADC,DAC,PWM,RTC,SPI等等。自己寫自己的程序,然后在開發(fā)板上好好實(shí)踐一下。

      當(dāng)每個(gè)功能模塊都實(shí)現(xiàn)以后,建議你讓你的開發(fā)板實(shí)驗(yàn)一下多個(gè)功能復(fù)合使用,比如用UART打印出ADC的值什么的。

      第二步:學(xué)習(xí)uCOS

      鑒于你已經(jīng)購買了《嵌入式實(shí)時(shí)操作系統(tǒng)μCOS-II(第二版)》,除開以下三個(gè)文件:

      1、OS_CPU_C.c2、OS_CPU.H,3、OS_CPU_A.asm(這個(gè)是MDK環(huán)境下的匯編文件)或OS_CPU_A.a(這個(gè)是IAR開發(fā)環(huán)境下的匯編)

      這三個(gè)文件的處理機(jī)制暫時(shí)可以不用先了解怎么做的,怎么移植的,以后再說

      第一次讀這本書時(shí),搞清楚什么是任務(wù),什么是前后臺,為什么要在系統(tǒng)中加入嵌入式操作系統(tǒng)。

      第二次讀這本書時(shí),詳細(xì)了解他的TCB(Task Control Block)和ECB(Event Control

      Block)的數(shù)據(jù)結(jié)構(gòu),搞清楚整個(gè)uCOS的實(shí)現(xiàn)機(jī)制(這里不要先就去看uCOS的移植,這樣只會讓你云里霧里的)

      第三次讀這本書是,詳細(xì)了解信號量,互斥信號量、消息隊(duì)列、郵箱和時(shí)間標(biāo)志組

      鑒于你又購買了《μC/OS-Ⅱ標(biāo)準(zhǔn)教程》,你 可以想在VC++ 6.0開發(fā)環(huán)境下實(shí)現(xiàn)對信號量,互斥信號量、消息隊(duì)列、郵箱和事件標(biāo)志組的上機(jī)實(shí)驗(yàn)代碼。

      如果還是不能了解uCOS怎么工作的,建議你多看幾遍(我可是足足看了6、7遍了,書都翻得脫頁了。汗說明我很笨,希望各位看官都比我聰明,呵呵)

      第三步:建立對uCOS的初步認(rèn)識

      在網(wǎng)上下載對應(yīng)你的開發(fā)板ARM芯片移植好了文件OS_CPU_C.c,OS_CPU.H,OS_CPU_A.asm(當(dāng)然有的開發(fā)板已經(jīng)提供了這樣的基礎(chǔ)實(shí)驗(yàn))

      在你的開發(fā)板上跑跑uCOS,建立起自己對于uCOS在ARM7開發(fā)板上的認(rèn)識。

      在你所購買的ARM7開發(fā)板上編寫一個(gè)自己跑uCOS得任務(wù)(這里先不要去搞中斷,初學(xué)者對于uCOS下的中斷程序設(shè)計(jì)根本就搞不清楚)

      第四步:熟悉ARM體系結(jié)構(gòu)

      因?yàn)槭腔贏RM7的移植,建議英文不好的去看看這本書《ARM體系結(jié)構(gòu)與編程》(雖然這本書的作者在翻譯時(shí)有很多操作,但是還是建議初學(xué)者去購買來好好看看),對于英文好的直接在網(wǎng)上下載《ARM+Architecture+Reference+Manual(2nd+Edition)》看就可以了

      在看這個(gè)《ARM體系結(jié)構(gòu)與編程》或

      《ARM+Architecture+Reference+Manual(2nd+Edition)》時(shí),務(wù)必注意多看幾次,了解以下幾個(gè)方面的知識:

      1、ARM模式下的指令集

      2、Thumd模式下的指令集

      3、異常模式及進(jìn)入異常時(shí)ARM如何處理

      4、一定能熟悉ARM中的匯編指令

      5、熟悉CPSR,R0-R7,R8-R14,R15及在各個(gè)模式下,這些寄存器的映射。熟悉以后,再來自己做uCOS的移植了。

      第五步:uCOS移植

      當(dāng)然在自己編寫代碼做移植uCOS之前,有必要看看別人的移植代碼。

      其實(shí)對于uCOS的移植,我們只需要編寫關(guān)鍵的三個(gè)文件,文件如下:

      1、OS_CPU_C.c(堆棧初始化操作OSTaskStkInit函數(shù))

      2、OS_CPU.H:完成在該芯片下的數(shù)據(jù)定義,比如什么unsigned char 之類的,注意一下OS_STK和OS_CPU_SR的定義,定義下關(guān)中斷和開中斷的方式,有三個(gè)只能選擇1個(gè),ARM芯片一般是定義為第三種方式

      3、OS_CPU_A.asm(這個(gè)是MDK環(huán)境下的匯編文件)或OS_CPU_A.a(這個(gè)是IAR開發(fā)環(huán)境下的匯編),這個(gè)文件的內(nèi)容就多了,要做以下幾個(gè)函數(shù)的重寫:

      1、OSStartHighRdy函數(shù)

      2、任務(wù)級的任務(wù)切換函數(shù)OSCtxSw,3、中斷級的任務(wù)切換OSIntCtxSw,其實(shí)只要寫好了OSCtxSw,OSIntCtxSw自然就copy一下就完了(copy的時(shí)候記者要把保存當(dāng)前任務(wù)的寄存器去掉就可以了。第六步:測試自己的uCOS移植代碼

      第七步:在自己寫的uCOS移植代碼中跑跑任務(wù)。

      [分享]ARM初學(xué)者學(xué)習(xí)ARM的步驟

      很多人學(xué)完單片機(jī)就想學(xué)arm,但不知如何去學(xué)~現(xiàn)在列出一下學(xué)習(xí)這方面的步驟-----基于linux系統(tǒng)的學(xué)習(xí)步驟如下:(一步步來哦:)

      其實(shí)這也只是個(gè)基礎(chǔ),以后實(shí)際做項(xiàng)目了還要去學(xué)很多

      1、Linux 基礎(chǔ)

      安裝Linux操作系統(tǒng)

      Linux文件系統(tǒng)

      Linux常用命令

      Linux啟動過程詳解

      熟悉Linux服務(wù) 能夠獨(dú)立安裝Linux操作系統(tǒng)

      能夠熟練使用Linux系統(tǒng)的基本命令

      認(rèn)識Linux系統(tǒng)的常用服務(wù) 安裝Linux操作系統(tǒng)

      Linux基本命令實(shí)踐

      設(shè)置Linux環(huán)境變量

      定制Linux的服務(wù) Shell 編程基礎(chǔ)使用vi編輯文件

      使用Emacs編輯文件

      使用其他編輯器

      2、Shell 編程基礎(chǔ)

      Shell簡介

      認(rèn)識后臺程序

      Bash編程熟悉Linux系統(tǒng)下的編輯環(huán)境

      熟悉Linux下的各種Shell

      熟練進(jìn)行shell編程熟悉vi基本操作

      熟悉Emacs的基本操作

      比較不同shell的區(qū)別

      編寫一個(gè)測試服務(wù)器是否連通的shell腳本程序

      編寫一個(gè)查看進(jìn)程是否存在的shell腳本程序

      編寫一個(gè)帶有循環(huán)語句的shell腳本程序

      3、Linux 下的 C 編程基礎(chǔ)

      linux C語言環(huán)境概述

      Gcc使用方法

      Gdb調(diào)試技術(shù)

      Autoconf

      Automake

      Makefile

      代碼優(yōu)化 熟悉Linux系統(tǒng)下的開發(fā)環(huán)境

      熟悉Gcc編譯器

      熟悉Makefile規(guī)則編寫Hello,World程序

      使用 make命令編譯程序

      編寫帶有一個(gè)循環(huán)的程序

      調(diào)試一個(gè)有問題的程序

      4、嵌入式系統(tǒng)開發(fā)基礎(chǔ)

      嵌入式系統(tǒng)概述

      交叉編譯

      配置TFTP服務(wù)

      配置NFS服務(wù)

      下載Bootloader和內(nèi)核

      嵌入式Linux應(yīng)用軟件開發(fā)流程

      熟悉嵌入式系統(tǒng)概念以及開發(fā)流程

      建立嵌入式系統(tǒng)開發(fā)環(huán)境制作cross_gcc工具鏈

      編譯并下載U-boot

      編譯并下載Linux內(nèi)核

      編譯并下載Linux應(yīng)用程序

      4、嵌入式系統(tǒng)移植

      Linux內(nèi)核代碼

      平臺相關(guān)代碼分析

      ARM平臺介紹

      平臺移植的關(guān)鍵技術(shù)

      移植Linux內(nèi)核到 ARM平臺 了解移植的概念

      能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板

      5、嵌入式 Linux 下串口通信

      串行I/O的基本概念

      嵌入式Linux應(yīng)用軟件開發(fā)流程

      Linux系統(tǒng)的文件和設(shè)備

      與文件相關(guān)的系統(tǒng)調(diào)用

      配置超級終端和MiniCOM 能夠熟悉進(jìn)行串口通信熟悉文件I/O 編寫串口通信程序

      編寫多串口通信程序

      6、嵌入式系統(tǒng)中多進(jìn)程程序設(shè)計(jì)

      Linux系統(tǒng)進(jìn)程概述

      嵌入式系統(tǒng)的進(jìn)程特點(diǎn)

      進(jìn)程操作

      守護(hù)進(jìn)程

      相關(guān)的系統(tǒng)調(diào)用了解Linux系統(tǒng)中進(jìn)程的概念

      能夠編寫多進(jìn)程程序編寫多進(jìn)程程序

      編寫一個(gè)守護(hù)進(jìn)程程序

      sleep系統(tǒng)調(diào)用任務(wù)管理、同步與通信 Linux任務(wù)概述 任務(wù)調(diào)度

      管道

      信號

      共享內(nèi)存

      任務(wù)管理 API 了解Linux系統(tǒng)任務(wù)管理機(jī)制

      熟悉進(jìn)程間通信的幾種方式

      熟悉嵌入式Linux中的任務(wù)間同步與通信

      編寫一個(gè)簡單的管道程序?qū)崿F(xiàn)文件傳輸

      編寫一個(gè)使用共享內(nèi)存的程序

      7、嵌入式系統(tǒng)中多線程程序設(shè)計(jì)

      線程的基礎(chǔ)知識

      多線程編程方法

      線程應(yīng)用中的同步問題了解線程的概念

      能夠編寫簡單的多線程程序編寫一個(gè)多線程程序

      8、嵌入式 Linux 網(wǎng)絡(luò)編程

      網(wǎng)絡(luò)基礎(chǔ)知識

      嵌入式Linux中TCP/IP網(wǎng)絡(luò)結(jié)構(gòu)

      socket 編程

      常用 API函數(shù)

      分析Ping命令的實(shí)現(xiàn)

      基本UDP套接口編程

      許可證管理

      PPP協(xié)議

      GPRS 了解嵌入式Linux網(wǎng)絡(luò)體系結(jié)構(gòu)

      能夠進(jìn)行嵌入式Linux環(huán)境下的socket 編程

      熟悉UDP協(xié)議、PPP協(xié)議

      熟悉GPRS 使用socket 編寫代理服務(wù)器

      使用socket 編寫路由器

      編寫許可證服務(wù)器

      指出TCP和UDP的優(yōu)缺點(diǎn)

      編寫一個(gè)web服務(wù)器

      編寫一個(gè)運(yùn)行在 ARM平臺的網(wǎng)絡(luò)播放器

      9、GUI 程序開發(fā)

      GUI基礎(chǔ)

      嵌入式系統(tǒng)GUI類型

      編譯QT

      進(jìn)行QT開發(fā)熟悉嵌入式系統(tǒng)常用的GUI

      能夠進(jìn)行QT編程使用QT編寫“Hello,World”程序調(diào)試一個(gè)加入信號/槽的實(shí)例

      通過重載QWidget 類方法處理事件

      10、Linux 字符設(shè)備驅(qū)動程序

      設(shè)備驅(qū)動程序基礎(chǔ)知識

      Linux系統(tǒng)的模塊

      字符設(shè)備驅(qū)動分析

      fs_operation結(jié)構(gòu)

      加載驅(qū)動程序了解設(shè)備驅(qū)動程序的概念

      了解Linux字符設(shè)備驅(qū)動程序結(jié)構(gòu)

      能夠編寫字符設(shè)備驅(qū)動程序編寫Skull驅(qū)動

      編寫鍵盤驅(qū)動

      編寫I/O驅(qū)動

      分析一個(gè)看門狗驅(qū)動程序

      對比Linux2.6內(nèi)核與2.4內(nèi)核中字符設(shè)備驅(qū)動的不同 Linux 塊設(shè)備驅(qū)動程序塊設(shè)備驅(qū)動程序工作原理

      典型的塊設(shè)備驅(qū)動程序分析

      塊設(shè)備的讀寫請求隊(duì)列了解Linux塊設(shè)備驅(qū)動程序結(jié)構(gòu)

      能夠編寫簡單的塊設(shè)備驅(qū)動程序比較字符設(shè)備與塊設(shè)備的異同編寫MMC卡驅(qū)動程序

      分析一個(gè)文件系統(tǒng)

      對比Linux2.6內(nèi)核與2.4內(nèi)核中塊設(shè)備驅(qū)動的不同

      11、文件系統(tǒng)

      虛擬文件系統(tǒng)

      文件系統(tǒng)的建立

      ramfs內(nèi)存文件系統(tǒng)

      proc文件系統(tǒng)

      devfs 文件系統(tǒng)

      MTD技術(shù)簡介

      MTD塊設(shè)備初始化

      MTD塊設(shè)備的讀寫操作了解Linux系統(tǒng)的文件系統(tǒng)了解嵌入式Linux的文件系統(tǒng)

      了解MTD技術(shù)

      能夠編寫簡單的文件系統(tǒng)為 ARM9開發(fā)板添加 MTD支持移植JFFS2文件系統(tǒng)

      通過proc文件系統(tǒng)修改操作系統(tǒng)參數(shù)

      分析romfs 文件系統(tǒng)源代碼

      創(chuàng)建一個(gè)cramfs 文件系統(tǒng)

      第五篇:ARM命名規(guī)則

      ARM==Advanced RISC Machines

      它開創(chuàng)了一種嶄新的商業(yè)模式,實(shí)現(xiàn)了無廠房式工廠,依靠出售芯片技術(shù)知識產(chǎn)權(quán)的授權(quán)來盈利。

      其次,ARM是一種architecture,同MIPS、PowerPC、X86等并列。談到架構(gòu),這實(shí)際上本身就是一個(gè)很復(fù)雜的概念。就現(xiàn)在的理解來看,架構(gòu)是一種系統(tǒng)設(shè)計(jì)藍(lán)圖,規(guī)劃了方方面面的技術(shù)規(guī)范。應(yīng)該說,架構(gòu)是理論,那么采用同樣的架構(gòu),實(shí)現(xiàn)的形式可以不相同。這也就是為什么同一架構(gòu)會有那么多衍生的處理器實(shí)現(xiàn)。

      ARM可以看作是一種技術(shù),是RISC的代表。應(yīng)該說,ARM公司位于產(chǎn)業(yè)鏈的最上層,盈利也最多。中國國內(nèi)的一些OEM廠商,只是處于下游的小魚,盈利有限。中國的信息產(chǎn)業(yè)要想發(fā)展,就必須有自己的核心技術(shù)。寫到這里,希望龍芯帶給我們的,是夢想的接近,甚至是實(shí)現(xiàn)?。埿臼羌嫒軲IPS架構(gòu))

      二、命名規(guī)則

      這里提到的命名規(guī)則,應(yīng)該分成兩類。

      一類是基于ARM Architecture的版本命名規(guī)則;

      另一類是基于ARM Architecture版本的處理器系列命名規(guī)則。

      Naming of ARM Architecture versions | ARMv | n | variants | x(variants)| 分成四個(gè)組成部分:

      ARMv--固定字符,即ARM Version n--指令集版本號。迄今為之,ARM架構(gòu)版本發(fā)布了7個(gè)系列,所以n=[1:7]。其中最新的版本是第7版,具體看ARM官方網(wǎng)站。variants--變種。

      x(variants)--排除x后指定的變種 常見的變種有:

      T--Thumb指令集 M--長乘法指令 E--增強(qiáng)型DSP指令 J--Java加速器Jazelle SIMD--ARM媒體功能擴(kuò)展

      例如,ARMv5TxM表示ARM指令集版本為5,支持T變種,不支持M變種。

      Naming of ARM Processor 采用上述的架構(gòu),形成一系列的處理器。有時(shí)候還要區(qū)分處理器核和處理器系列。不過,在這里其實(shí)不用區(qū)分太細(xì),畢竟這是功能的小部分的變化,核心是相同的。

      規(guī)則:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S} x--處理器系列

      y--存儲管理/保護(hù)單元 z--cache T--支持Thumb指令集 D--支持片上調(diào)試 M--支持快速乘法器

      I--支持Embedded ICE,支持嵌入式跟蹤調(diào)試 E--支持增強(qiáng)型DSP指令 J--支持Jazelle F--具備向量浮點(diǎn)單元VFP-S--可綜合版本

      ARM體系結(jié)構(gòu)處理器自誕生以來,不斷發(fā)展與創(chuàng)新,ARM體系的指令集功能形成了多種版本,為了適合不同的應(yīng)用場合,各個(gè)版本又增加了新的變種,這些變種為該版本的指令集增加了新的功能。不同版本的指令集應(yīng)用于不同的處理器,這也就形成了ARM處理器系列,ARM系列處理器不同版本實(shí)現(xiàn)技術(shù)、性能、應(yīng)用場合個(gè)不相同。

      ARM體系結(jié)構(gòu)的基本版本 1 版本1 該版本的原型機(jī)是ARM1,沒有用于商業(yè)產(chǎn)品。包括下列指令: l 除乘法指令之外的基本的數(shù)據(jù)處理指令。

      l 基于字節(jié)、字和多字的存儲器訪問指令(Load/Store)。l 包括子程序調(diào)用指令BL在內(nèi)的跳轉(zhuǎn)指令。l 供操作系統(tǒng)使用的軟件中斷指令SWI。本版本中地址空間是26位,目前已經(jīng)不再使用。2 版本2 對V1版進(jìn)行了擴(kuò)展,包含了對32位結(jié)果的乘法指令和協(xié)處理器指令的支持。版本2a是版本2的變種,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM處理器。版本2a增加了合并Load和Store(SWP)指令。與版本V1相比,增加了以下指令: l 乘法指令和乘加指令。l 支持協(xié)處理器操作指令。

      l 對于FIQ模式,提供了額外的兩個(gè)備份寄存器。l SWP指令和SWPB指令。

      本版本中地址空間是26位,目前已經(jīng)不再使用。3 版本3 ARM公司第一個(gè)微處理器ARM6核心是版本3的,它作為IP核、獨(dú)立的處理器、具有片上高速緩存、MMU和寫緩沖的集成CPU。

      版本3的變種版本有版本3G和版本3M。版本3G是不與版本2a向前兼容的版本3,版本3M引入了有符號和無符號數(shù)乘法和乘加指令,這些指令產(chǎn)生全部64位結(jié)果。

      版本3版較以前的版本有較大的改動,主要包括: l 處理器的地址空間擴(kuò)展到32位,但除了版本3G外的其他版本是向前兼容的,支持26位的地址空間。

      l 當(dāng)前程序狀態(tài)信息從原來的R15寄存器移到當(dāng)前程序狀態(tài)寄存器CPSR中(Current Program Status Register)。l 增加了程序狀態(tài)保存寄存器SPSR(Saved Program Status Register)。l 增加了兩種異常模式,使操作系統(tǒng)代碼可方便地使用數(shù)據(jù)訪問中止異常、指令預(yù)取中止異常和未定義指令異常。

      l 增加了MRS/MSR指令,用于訪問新增的CPSR/SPSR寄存器。l 修改了原來的從異常中返回的指令。4 版本4 版本4增加了下列指令:

      l 有符號和無符號的半字讀取和寫入指令。l 帶符號的字節(jié)讀取和寫入指令。

      l 增加了處理器的系統(tǒng)模式(特權(quán)模式)。在該模式下,使用的是用戶模式下的寄存器。

      l 為結(jié)構(gòu)定義的操作預(yù)留一些SWI(軟中斷指令)空間

      版本4中明確定義了哪些指令會引起未定義指令異常,不再強(qiáng)制要求與以前的26位地址空間兼容。

      ARMv4T在ARMv4的基礎(chǔ)上增加了Thumb指令集:處理器有了Thumb狀態(tài),并且有了在ARM狀態(tài)和Thumb狀態(tài)切換的指令,處理器在ARM狀態(tài)執(zhí)行ARM指令集,在Thumb狀態(tài)執(zhí)行Thumb指令集。

      ARMv4和ARMv4T結(jié)構(gòu)的處理器得到了廣泛的應(yīng)用。SA-

      110、SA-1110等是基于ARMv4的;ARM7TDMI、ARM720T、ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。5 版本5 版本5在版本4的基礎(chǔ)上增加或修改以下指令:

      l 提高了T變種中ARM/Thumb混合使用的效率。

      l 對于T變種的指令和非T變種的指令使用相同的代碼生成技術(shù)。l 增加了前導(dǎo)零計(jì)數(shù)(CLZ)指令,該指令可以使整數(shù)除法和中斷優(yōu)先級排隊(duì)操作更為有效。

      l 增加了軟件斷點(diǎn)(BKPT)指令。

      l 為協(xié)處理器設(shè)計(jì)提供了更多可選擇的指令。

      l 更加嚴(yán)格的定義了乘法指令對條件標(biāo)志位的影響。l 帶狀態(tài)切換的子程序調(diào)用(BLX)指令。版本5包括v5TE和v5TEJ,v5TE在v5T的基礎(chǔ)上增加了信號處理(DSP)指令集,v5TEJ除了具備v5T的功能外,還可以執(zhí)行JAVA字節(jié)代碼,是在ARM上執(zhí)行JAVA指令的效率提高了5-10倍,并且降低了功耗。ARM1020T 是ARMv5T的。

      ARM9E-S、ARM966E-S、ARM1020E、ARM 1022E以及XScale是ARMv5TE的。ARM9EJ-S、ARM926EJ-S、ARM7EJ-S、ARM1026EJ-S是基于ARMv5EJ的。6 版本6 ARM體系版本6是2001年發(fā)布的。其目標(biāo)是在有效的芯片面積上為嵌入式系統(tǒng)提供更高的性能。ARMv6 包含了ARMv5TEJ的所有指令。為了使現(xiàn)有的軟件,開發(fā)方法、設(shè)計(jì)技術(shù)可再利用,ARMv6兼容了ARMv5的內(nèi)存管理和異常處理。ARMv6主要在多媒體處理、存儲器管理、多處理器支持、數(shù)據(jù)處理、異常和中斷響應(yīng)等方面做了改進(jìn)。

      l SIMD(單指令多數(shù)據(jù))指令,可使音視頻處理能力提高2-4倍。l Thumb-2新指令集,混合執(zhí)行AMR和Thumb代碼,可以提供ARM指令級別的性能和Thumb指令級別的代碼密度。l 混合大小端和非對齊存儲訪問支持

      l TrustZone安全技術(shù),在硬件上提供可信區(qū)域和不可信區(qū)域,兩個(gè)區(qū)域里運(yùn)行的代碼有不同的權(quán)限。讓經(jīng)過認(rèn)證的代碼運(yùn)行在可信區(qū)域,未經(jīng)過認(rèn)證的代碼運(yùn)行在不可信區(qū)域,從而提高系統(tǒng)的安全性。采用ARMv6核的處理器是ARM11系列。

      ARM1136J(F)-S基于ARMv6主要特性有SIMD、Thumb、Jazelle、DBX、(VFP)、MMU。ARM1156T2(F)-S基于ARMv6T2 主要特性有SIMD、Thumb-

      2、(VFP)、MPU。ARM1176JZ(F)-S基于ARMv6KZ 在 ARM1136EJ(F)-S 基礎(chǔ)上增加MMU、TrustZone。ARM11 MPCore基于ARMv6K 在ARM1136EJ(F)-S基礎(chǔ)上可以包括1-4 核SMP、MMU。7 版本7 2004年發(fā)布了新的ARMv7體系結(jié)構(gòu)。全新的ARMv7是基于ARMv6的,ARMv7采用了Thumb-2技術(shù),體積比32位ARM代碼減小31%,性能比16位Thumb代碼高出38%。同時(shí),ARMv7保持了對已有ARM代碼的兼容性。此外,ARMv7還支持改良的運(yùn)行環(huán)境,以迎合不斷增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技術(shù)的使用。ARMv7的增加的特性有:

      l 改進(jìn)的Thumb-2指令集。

      l NEON多媒體技術(shù),將DSP和多媒體處理能力提高了近4倍。l VFPv3改良的浮點(diǎn)運(yùn)算。l 動態(tài)編譯支持。ARM體系結(jié)構(gòu)的變種 Thumb指令集(T變種)

      Thumb指令集是將ARM指令集中的一部分指令重新編碼形成的一個(gè)子集, Thumb指令長度是16位的。使用Thumb指令可以得到比ARM指令更高的代碼密度,這有助于減小系統(tǒng)的存儲器容量,從而降低系統(tǒng)的成本。另外,對于數(shù)據(jù)線是8或16位的系統(tǒng),使用Thumb指令集可以取得好于使用ARM指令集的性能。在ARM體系命名中通用“T”來表示該版本支持Thumb指令集。在ARMv4T中使用v1版Thumb指令集;ARMv5T使用v2版的Thumb指令集。和Thumb v1相比Thumb v2 具有如下特點(diǎn):

      l 通過對指令的修改,來提高ARM指令和Thumb指令混合使用是的效率。l 增加軟件斷點(diǎn)指令。

      l 嚴(yán)格定義了Thumb乘法指令對條件標(biāo)志位的影響。與ARM指令集相比,Thumb指令集具有以下局限性:

      l 完成相同的操作,Thumb指令通常需要更多的指令。

      l Thumb指令集沒有包含進(jìn)行異常處理時(shí)需要的一些指令,異常返回時(shí)需要從ARM狀態(tài)返回。2 長乘法指令(M變種)

      M變種增加了兩條用于進(jìn)行長乘法的ARM指令。其中一條用于實(shí)現(xiàn)32位整數(shù)乘以32位整數(shù),生成64位整數(shù)的長乘法操作;另一條指令用于實(shí)現(xiàn)32位整數(shù)乘以32位位整數(shù),然后加上32位整數(shù),生成64位整數(shù)的長乘加操作。3 增強(qiáng)型DSP指令(E變種)

      l E變種包含了一些附加的指令,這些指令用于增強(qiáng)處理器對一些典型的DSP算法的處理性能。主要包括:

      l 幾條新的實(shí)現(xiàn)16位數(shù)據(jù)乘法和乘加操作的指令 l 實(shí)現(xiàn)飽和的帶符號數(shù)的加減法操作的指令。所謂飽和的帶符號數(shù)的加減法操作是在加減法操作溢出時(shí),結(jié)果并不進(jìn)行卷繞(Wrapping around),而是使用最大的整數(shù)或最小的負(fù)數(shù)來表示。

      l 進(jìn)行雙字?jǐn)?shù)據(jù)操作的指令,包括雙字讀取指令LDRD、雙字寫入指令STRD和協(xié)處理器的寄存器傳輸指令MCRR/MRRC。l Cache預(yù)取指令PLD 4 Java加速器Jazelle(J變種)

      ARM的Jazelle技術(shù)將Java的優(yōu)勢和先進(jìn)的32位RISC芯片完美地結(jié)合在一起。Jazelle技術(shù)提供了Java加速功能,可以得到比普通Java虛擬機(jī)高得多的性能。與普通的Java虛擬機(jī)相比,Jazelle使代碼運(yùn)行速度提高了8倍,而且功耗降低了80%,Jazelle技術(shù)使得程序員可以在一個(gè)單獨(dú)的處理器上同時(shí)運(yùn)行Java應(yīng)用程序、已經(jīng)建立好的操作系統(tǒng)、中間件以及其他的應(yīng)用程序。與使用協(xié)處理器和雙處理器相比,使用單獨(dú)得處理器可以在提供高性能的同時(shí),保證低功耗和低成本。ARM體系版本4TEJ最早包含了J變種,用字符J表示J變種。5 SIMD變種(ARM媒體功能擴(kuò)展)

      ARM媒體功能擴(kuò)展SIMD技術(shù)極大地提高了嵌入式應(yīng)用系統(tǒng)的音頻和視頻處理器能力,它可使微處理器的音頻和視頻性能提高4倍。新一代的Internet應(yīng)用產(chǎn)品、移動電話和PDA等設(shè)備終端需要提供高性能的流式媒體,包括音頻和視頻等。而且這些設(shè)備需要提供更加人性化的界面,包括語言輸入和手寫輸入等。這樣,就對處理器的數(shù)字信號處理能力提出了很高的要求,同時(shí)還必須保證低功耗。ARM的SIMD媒體功能擴(kuò)展為這些應(yīng)用系統(tǒng)提供了解決方案,它為包括音頻和視頻處理在內(nèi)的應(yīng)用系統(tǒng)提供了優(yōu)化功能,其主要特點(diǎn)如下: ●使處理器的音頻和視頻處理的性能提高了2~4倍。

      ●可同時(shí)進(jìn)行2個(gè)16位操作數(shù)或者4個(gè)8位操作數(shù)的運(yùn)算?!裼脩艨勺远x飽和運(yùn)算的模式。

      ●可進(jìn)行2個(gè)16位操作數(shù)的乘加/乘減運(yùn)算及32位乘以32位的小數(shù)乘加運(yùn)算?!裢瑫r(shí)8 /16位選擇操作。

      ARM11是基于ARMv6架構(gòu)建成的?;贏RMv6架構(gòu)的處理器包括ARM1136J(F)‐S,ARM1156T2(F)‐S,以及ARM1176JZ(F)‐S。ARMv6是ARM進(jìn)化史上的一個(gè)重要里程碑:從那時(shí)候起,許多突破性的新技術(shù)被引進(jìn),存儲器系統(tǒng)加入了很多的嶄新的特性,單指令流多數(shù)據(jù)流(SIMD)指令也是從v6開始首次引入的。而最前衛(wèi)的新技術(shù),就是經(jīng)過優(yōu)化的Thumb‐2指令集,它專為低成本的單片機(jī)及汽車組件市場。

      基于從ARMv6開始的新設(shè)計(jì)理念,ARM進(jìn)一步擴(kuò)展了它的CPU設(shè)計(jì),成果就是ARMv7架構(gòu)的閃亮登場。在這個(gè)版本中,內(nèi)核架構(gòu)首次從單一款式變成3種款式。1)款式A:設(shè)計(jì)用于高性能的“開放應(yīng)用平臺”--越來越接近電腦了。

      2)款式R:用于高端的嵌入式系統(tǒng),尤其是那些帶有實(shí)時(shí)要求的--又要快又要實(shí)時(shí)。

      3)款式M:用于深度嵌入的,單片機(jī)風(fēng)格的系統(tǒng)中--本書的主角。讓我們再進(jìn)距離地考察這3種款式:

      1)款式A(ARMv7‐A):需要運(yùn)行復(fù)雜應(yīng)用程序的“應(yīng)用處理器”。支持大型嵌入式操作系統(tǒng),比如Symbian,Linux,以及微軟的WindowsCE和智能手機(jī)操作系統(tǒng)WindowsMobile。這些應(yīng)用需要?jiǎng)疟奶幚硇阅?,并且需要硬件MMU實(shí)現(xiàn)的完整而強(qiáng)大的虛擬內(nèi)存機(jī)制,還基本上會配有Java支持,有時(shí)還要求一個(gè)安全程序執(zhí)行環(huán)境。典型的產(chǎn)品包括高端手機(jī)和手持儀器,電子錢包以及金融事務(wù)處理機(jī)。

      2)款式R(ARMv7‐R):硬實(shí)時(shí)且高性能的處理器。標(biāo)的是高端實(shí)時(shí)市場。那些高級的玩意,像高檔轎車的組件,大型發(fā)電機(jī)控制器,機(jī)器手臂控制器等,它們使用的處理器不但要很好很強(qiáng)大,還要極其可靠,對事件的反應(yīng)也要極其敏捷。3)款式M(ARMv7‐M):認(rèn)準(zhǔn)了舊世代單片機(jī)的應(yīng)用而量身定制。在這些應(yīng)用中,尤其是對于實(shí)時(shí)控制系統(tǒng),低成本、低功耗、極速中斷反應(yīng)以及高處理效率,都是至關(guān)重要的。

      Cortex系列是v7架構(gòu)的第一次亮相,其中Cortex‐M3就是按款式M設(shè)計(jì)的。到目前為止,Cortex‐M3也是款式M中被撫養(yǎng)成人的獨(dú)苗。其它Cortex家族的處理器包括款式A的Cortex‐A8(應(yīng)用處理器),款式R的Cortex‐R4(實(shí)時(shí)處理器)。

      處理器命名法

      以前,ARM使用一種基于數(shù)字的命名法。在早期(1990s),還在數(shù)字后面添加字母后綴,用來進(jìn)一步明細(xì)該處理器支持的特性。就拿ARM7TDMI來說,T代表Thumb指令集,D是說支持JTAG調(diào)試(Debugging),M意指快速乘法器,I則對應(yīng)一個(gè)嵌入式ICE模塊。后來,這4項(xiàng)基本功能成了任何新產(chǎn)品的標(biāo)配,于是就不再使用這4個(gè)后綴--相當(dāng)于默許了。但是新的后綴不斷加入,包括定義存儲器接口的,定義高速緩存的,以及定義“緊耦合存儲器(TCM)”的,于是形成了新一套命名法,這套命名法也是一直在使用的。表一:ARM處理器名字

      Jazelle是ARM處理器的硬件Java加速器。

      MMU,存儲器管理單元,用于實(shí)現(xiàn)虛擬內(nèi)存和內(nèi)存的分區(qū)保護(hù),這是應(yīng)用處理器與嵌入式處理器的分水嶺。電腦和數(shù)碼產(chǎn)品所使用的處理器幾乎清一色地都帶MMU。但是MMU也引入了不確定性,這有時(shí)是嵌入式領(lǐng)域--尤其是實(shí)時(shí)系統(tǒng)不可接受的。然而對于安全關(guān)鍵(safety‐critical)的嵌入式系統(tǒng),還是不能沒有內(nèi)存的分區(qū)保護(hù)的。為解決矛盾,于是就有了MPU??梢园袽PU認(rèn)為是MMU的功能子集,它只支持分區(qū)保護(hù),不支持具有“定位決定性”的虛擬內(nèi)存機(jī)制。

      到了架構(gòu)7時(shí)代,ARM改革了一度使用的,冗長的、需要“解碼”的數(shù)字命名法,轉(zhuǎn)到另一種看起來比較整齊的命名法。比如,ARMv7的三個(gè)款式都以Cortex作為主名。這不僅更加澄清并且“精裝”了所使用的ARM架構(gòu),也避免了新手對架構(gòu)號和系列號的混淆。

      下載ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM.(推薦5篇)word格式文檔
      下載ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM.(推薦5篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        arm對講機(jī)報(bào)告

        《嵌入式實(shí)訓(xùn)課》 課程設(shè)計(jì)報(bào)告 設(shè)計(jì)題目: 基于ARM的網(wǎng)絡(luò)對講機(jī) 專 業(yè) 電子信息科學(xué)與技術(shù) 班 級 091 學(xué) 號 200916022118 學(xué)生姓名 大石頭 2012年 6 月 10 日 摘要 語音......

        ARM學(xué)習(xí)規(guī)劃(經(jīng)典).

        ARM 學(xué)習(xí)規(guī)劃 ARM+LINUX路線,主攻嵌入式 Linux 操作系統(tǒng)及其上應(yīng)用軟件開發(fā)目標(biāo): (1 掌握主流嵌入式微處理器的結(jié)構(gòu)與原理(初步定為 arm9 (2 必須掌握一個(gè)嵌入式操作系統(tǒng) (......

        ARM入門者的天堂(一點(diǎn)經(jīng)驗(yàn))1

        ARM入門者的天堂(一點(diǎn)經(jīng)驗(yàn)) 一 首先說說ARM的發(fā)展 可以用一片大好來形容,翻開各個(gè)公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。 廣義的嵌入式無非幾種:傳統(tǒng)的什么51、AVR......

        ARM與嵌入式Linux的入門建議.

        ARM與嵌入式linux的入門建議 ARM與嵌入式linux的入門建議 類別:嵌入式系統(tǒng)由于很多人總問這個(gè)問題,所以這里做一個(gè)總結(jié)文檔供大家參考。這里必須先說明,以下的步驟都是針對Linu......

        實(shí)習(xí)總結(jié)-嵌入式ARM

        實(shí)訓(xùn)總結(jié) 班級 卓越1301姓名*** 通過這段時(shí)間的學(xué)習(xí)使我學(xué)到了很多知識,并且了解到ARM的應(yīng)用以及對開發(fā)板的應(yīng)用,為以后的學(xué)習(xí)奠定了一定的基礎(chǔ)。 嵌入式系統(tǒng)一般定義為以應(yīng)用......

        嵌入式系統(tǒng)ARM實(shí)驗(yàn)報(bào)告

        南京郵電大學(xué)通信與信息工程學(xué)院 實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱:實(shí)驗(yàn)一基于ADS開發(fā)環(huán)境的設(shè)計(jì) 實(shí)驗(yàn)二嵌入式Linux交叉開發(fā)環(huán)境的建立 實(shí)驗(yàn)三嵌入式Linux環(huán)境下的程序設(shè)計(jì)課程名稱嵌入式......

        ARM學(xué)習(xí)心得體會(5篇材料)

        ARM四天學(xué)習(xí)心得體會 1.懂得了如何使用IAR的軟件使用,使用前要先進(jìn)行環(huán)境的設(shè)置,具體見文檔IAR使用說明。 2.第一次是學(xué)習(xí)點(diǎn)亮LED燈,在點(diǎn)亮LED燈中學(xué)習(xí)到如果要點(diǎn)亮LED燈必須學(xué)......

        ARM實(shí)習(xí)報(bào)告感想

        通過這次模具設(shè)計(jì),本人在多方面都有所提高。通過這次設(shè)計(jì),綜合運(yùn)用本專業(yè)所學(xué)課程的理論和實(shí)際知識進(jìn)行設(shè)計(jì),提高學(xué)生獨(dú)立工作能力,鞏固與擴(kuò)充了ARM等課程所學(xué)的內(nèi)容,掌握ARM設(shè)......