ARM入門(mén)及嵌入式開(kāi)發(fā)入門(mén)_第1頁(yè)
ARM入門(mén)及嵌入式開(kāi)發(fā)入門(mén)_第2頁(yè)
ARM入門(mén)及嵌入式開(kāi)發(fā)入門(mén)_第3頁(yè)
ARM入門(mén)及嵌入式開(kāi)發(fā)入門(mén)_第4頁(yè)
ARM入門(mén)及嵌入式開(kāi)發(fā)入門(mén)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ARM 入門(mén)及嵌入式開(kāi)發(fā)入門(mén)1. 抓住51開(kāi)發(fā)ARM這幾個(gè)月來(lái)我一直都爬在51的問(wèn)題,自己都有一點(diǎn)笑自己了,用了4個(gè)月的時(shí)間,來(lái)鞏固51的原理和程序,還好我自己算是走過(guò)來(lái)了,自己笨,身邊的高才生又看不上51的原理,他們都比較“?!?,說(shuō)51過(guò)時(shí)了,你問(wèn)那個(gè)做什么?我比較郁悶!過(guò)時(shí)嗎?我有一點(diǎn)懷疑?他們不愿意說(shuō)有他們自己的理由,沒(méi)有人強(qiáng)求,靠自己好了。我自己個(gè)人的觀點(diǎn):51是一個(gè)基礎(chǔ),而且還很重要,這是在我看了ARM 之后感覺(jué)到的。它可以加速你的ARM 學(xué)習(xí)速度,真得!不相信你試一試好了。凡事要求一個(gè)速度、效率,不要做一些無(wú)用功,抓緊身邊的每一個(gè)一分鐘,人是活的,東西(知識(shí)、書(shū))是死得,想要做的事

2、情因此就簡(jiǎn)單了。2. 我在網(wǎng)上看到了一篇很不錯(cuò)的ARM 文章,粘貼過(guò)來(lái), 為了和像我一樣在很少有人幫助的情況下,自學(xué)ARM 的難兄難弟們?!癆RM 怎么入門(mén)”。我不是高手,仍然是菜鳥(niǎo)。但是回想起自己當(dāng)時(shí)的迷茫,特意寫(xiě)了這篇東西,當(dāng)作給和我一樣的兄弟姐妹的幫助吧。問(wèn)這個(gè)問(wèn)題的人多半不是已經(jīng)工作的工程師,而是和我一樣是學(xué)生,所以這篇筆記就把看家當(dāng)成我一樣的菜鳥(niǎo),高手勿怪。首先聲明:本人還沒(méi)有找工作,事實(shí)上處于研究生剛畢業(yè),還沒(méi)開(kāi)始找工作的空閑時(shí)間,44B0只是興趣所在,打發(fā)時(shí)間。所有看法完全是自己的感受,不代表任何他人。錯(cuò)了的觀點(diǎn)各位幫我糾正。再次補(bǔ)充:很多朋友看了上面的話就問(wèn)我為什么研究生畢業(yè)了

3、還不找工作:)說(shuō)是打發(fā)時(shí)間,其實(shí)是因?yàn)檠芯可臅r(shí)候帶了一個(gè)項(xiàng)目,申請(qǐng)?zhí)崆爱厴I(yè)以后項(xiàng)目還有塊尾巴,答應(yīng)導(dǎo)師把項(xiàng)目做完再走:)就這么簡(jiǎn)單。男人總點(diǎn)負(fù)點(diǎn)責(zé),呵呵以下問(wèn)題常被問(wèn)到,我就想到哪說(shuō)到哪吧。一. 首先說(shuō)說(shuō)ARM 的發(fā)展可以用一片大好來(lái)形容,翻開(kāi)各個(gè)公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。廣義的嵌入式無(wú)非幾種:傳統(tǒng)的什么51、AVR 、PIC 稱做嵌入式微控制器;ARM 是嵌入式微處理器;DSP ;FPGA ??陀^的講,工作需求量上DSP 的需求比ARM 要多,而ARM 和FPGA 差不多。DSP 因?yàn)閿?shù)字處理與通信領(lǐng)域的空前發(fā)展而火暴,小到MP3攝像頭,大到我們軍品里的控制器,應(yīng)用面

4、很廣。FPGA 的兄弟一般做ASIC (特殊芯片設(shè)計(jì),好象是這么翻譯的)。而ARM 單純說(shuō)來(lái)并不比一個(gè)單片機(jī)強(qiáng)多少,但是它的獨(dú)特就在于不斷下降的價(jià)格和提升的性能。這完全依靠于ARM 公司的戰(zhàn)略,厲害!很佩服他們的戰(zhàn)略眼光!值得注意的是:在找工作中,企業(yè)(著名的,小的不算)對(duì)單純的ARM 硬件開(kāi)發(fā)工程師并不比單片機(jī)重視,很少有大企業(yè)的職位里寫(xiě)“從事過(guò)ARM 開(kāi)發(fā)優(yōu)先”。寫(xiě)的多的是什么?“嵌入式LINUX ”到這相信大家看出來(lái)了吧,需要的是硬件中的軟件。二. ARM是硬件還是軟件很難說(shuō),ARM 是硬件,LINUX 是軟件。ARM 的硬件多半已經(jīng)模塊化了,像我這樣把板子改成這樣的就算動(dòng)的多的了,這同

5、樣是ARM 公司的戰(zhàn)略,再次佩服。實(shí)際中的LINUX 的開(kāi)發(fā)工作更多,更耗時(shí)。從這方面說(shuō)ARM 應(yīng)該算是軟件了。在找工作中更是這樣,舉個(gè)例子,聯(lián)想里和ARM 最接近的是“BIOS 工程師”是軟件,MOTO 里接近的是嵌入式LINUX 工程師是軟件。而其他很多公司把嵌入式產(chǎn)品開(kāi)發(fā)歸為硬件。所以,不要討論這個(gè),好好玩轉(zhuǎn)自己的板子才是關(guān)鍵。實(shí)在不爽你就把自己叫“嵌入式開(kāi)發(fā)工程師”三. 要不要買(mǎi)開(kāi)發(fā)板 買(mǎi)哪家我的答案是“在你個(gè)人的學(xué)習(xí)方法”,但是如果看家是需要看這騙筆記的水平,個(gè)人推薦還是買(mǎi)現(xiàn)成的。1. 買(mǎi)買(mǎi)板子可以把注意力集中在軟件開(kāi)發(fā)上,軟件開(kāi)發(fā)(尤其是驅(qū)動(dòng))可以不必?fù)?dān)心自己硬件上的問(wèn)題,我就是一

6、邊調(diào)試一邊寫(xiě)驅(qū)動(dòng)和程序,每次寫(xiě)驅(qū)動(dòng)前就要先確認(rèn)硬件沒(méi)問(wèn)題。另外,買(mǎi)板子更省錢(qián)和時(shí)間,我自己做的板子,原理圖PCB 花了2周以上!制板又15天,回來(lái)以后焊接44B0 160個(gè)腳!那叫一個(gè)麻煩花了多少錢(qián)呢?2層板,制板費(fèi)就300塊!當(dāng)然我把接口都外引了,還做了個(gè)20X18的LCD 背板,板子比較大。總體下來(lái)元件+LCD屏+PCB=11XX塊!夠2410的了。再有就是買(mǎi)的資料相對(duì)來(lái)說(shuō)比較全,但是不要指望有技術(shù)支持!都是騙人的,賣(mài)你之后就不會(huì)理你。2. 做自己做可以更了解底層硬件,可以按照自己的要求加?xùn)|西,比如我就加了GPS 模塊、 GPRS模塊、SD 卡模塊,擴(kuò)了個(gè)IIC 的35個(gè)鍵子的鍵盤(pán)、把LC

7、D 接口按照買(mǎi)的LCD 改裝了,可以用FPC 線直接連接。做的很爽的。玩一把嗎。當(dāng)然,你可以有策略的做,比如像我一樣,把RAM 和ROM ,網(wǎng)絡(luò)都保持和某現(xiàn)成的板子一樣,這樣他們的資料你就可以拿過(guò)來(lái)直接用,給自己留個(gè)退路。其他的如SD 了什么的自己做。都達(dá)到了就是費(fèi)錢(qián),費(fèi)時(shí)間。再有就是給做的朋友幾點(diǎn)建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒(méi)問(wèn)題的原理圖。網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫(huà)的,在這里對(duì)龔俊表達(dá)一下我的敬意!牛人!但是那個(gè)圖有個(gè)小BUG ,我指的是03版的,后來(lái)的沒(méi)這問(wèn)題了。8019那地址線和地址有問(wèn)題。還有人仿照他的PDF 圖畫(huà)的SCH ,更是漏洞百

8、出!譴責(zé)!順便譴責(zé)把龔俊板子偷賣(mài)的人。3. 買(mǎi)哪家個(gè)人感覺(jué)分3類吧1)首先是ZLG 的,資料非常的全,感覺(jué)他是真正想教你怎么開(kāi)發(fā)ARM ,而不是像有的公司自己技術(shù)都沒(méi)做好就做個(gè)板子出來(lái)賣(mài)錢(qián)。但是最大的不利就是價(jià)格太貴!而且主要是PHILIP 的,貨源比較麻煩可能有人說(shuō)21XX 系列的不貴啊,那是總線不外擴(kuò)的,只能跑UCOS ,不能跑UCLINUX 。但是說(shuō)是話,21XX 系列才是ARM7的價(jià)格性能結(jié)合點(diǎn)。ARM7最適合做工業(yè)控制,ARM 普及,銷量都是怎么來(lái)的?都是ARM7來(lái)的,而44B0是典型的商業(yè)片子。但是,這里如果你看中的是為工作做準(zhǔn)備,還是選能跑UCLINUX 的吧。但是仍然作為第一個(gè)

9、推薦,因?yàn)椴锁B(niǎo)時(shí)期,合適的資料太重要了!在這里被ZLG 的務(wù)實(shí)精神感動(dòng)!你看人家那代碼寫(xiě)的。2)感覺(jué)立宇泰的44B0不錯(cuò),硬件沒(méi)別的,就是資料比較全的說(shuō),不像有些家,原理圖直接拿人家的,還錯(cuò)的3)找個(gè)最便宜的,好象最便宜的有賣(mài)350的吧?也是沒(méi)別的,就是即省了錢(qián)還省時(shí)間搜集資料,至于資料全不全,別計(jì)較了硬件肯定好使就行吧。四. 要不要有51 AVR等單片機(jī)基礎(chǔ)有更好,但沒(méi)有也無(wú)所謂。兩個(gè)月以前,我只是看別人做,耳濡目染,本科學(xué)過(guò)單片機(jī),從來(lái)沒(méi)做過(guò)。我們這的技術(shù)主干做AVR 和51,我就跟他們調(diào)過(guò)C 語(yǔ)言程序。你看出來(lái)了?我是個(gè)不折不扣的菜鳥(niǎo)吧?但是做這個(gè)之前我特意找了ZLG 的兩本書(shū),看了里面

10、的例子和原理圖,這很重要。例程里有匯編有C ,都看懂了就OK ,不用自己現(xiàn)寫(xiě)五. 開(kāi)發(fā)都需要學(xué)習(xí)哪些軟件總結(jié)起來(lái)最主要的有以下幾個(gè)吧1 ADS調(diào)試用確切的說(shuō)是ADS+AXD。ADS 里包含AXD 。原來(lái)都用SDT 后來(lái)ARM 公司停止對(duì)SDT 支持了,改支持ADS 了,還是用ADS 吧。有的人的程序發(fā)布的仍然是SDT 版本的,但基本都可以找到相應(yīng)ADS 的,新人在這里不要發(fā)蒙。ADS 是編譯器,AXD 是調(diào)試器。編譯成AXF 以后再在ARM 的RAM 里調(diào)試。2 PLASHPGMFLASH 燒寫(xiě)的軟件。AXD 在RAM 里調(diào)試,掉電就沒(méi)有了,方便程序修改。調(diào)試好的程序再下到FLASH 里,上電

11、直接運(yùn)行。同類的軟件還有很多,什么FLUTED 了、FLSHP 了都是,但FLASHPGM 最好,要是有人還問(wèn)FLASH 不支持BIN 格式文件的問(wèn)題就要看我寫(xiě)的PLASHPGM 使用了。3 BANYANT調(diào)試代理(不知道名對(duì)不,起這么個(gè)難記的,我一般都叫它“半羊”因?yàn)橹浪菐滋靹偝粤丝狙颍┱{(diào)試代理就是用它幫你使用更簡(jiǎn)單的JTAG (便宜?。﹣?lái)實(shí)現(xiàn)原本1K 才賣(mài)的JTAG 仿真器的大部分功能。JTAG 調(diào)試原理看我另一篇筆記。簡(jiǎn)單的就可以把他理解為你自己做的JTAG 的驅(qū)動(dòng)就行了。調(diào)試代理還有很多種,什么H-JTAG 了、ARM7了(不知道具體叫什么,就記得可執(zhí)行文件叫ARM7.EXE )都

12、是,BANYANT 比較好。需要注意的是,沒(méi)種調(diào)試代理安裝方法雖然都簡(jiǎn)單但都不一樣,需要看說(shuō)明。而且AXD 調(diào)試之前都要運(yùn)行。省錢(qián)了,就別怕麻煩了。4 ARM-ELF-TOOLS工具鏈里面是UCLINUX 開(kāi)發(fā)用的工具比如ARM-ELF-GCC 之類的。工具鏈就是把很多工具打包在一起發(fā)布的方便你開(kāi)發(fā)的東西。具體安裝方法看我另一篇筆記。另外如果你開(kāi)發(fā)LINUX 就要用ARM-LINUX-TOOLS ,不一樣,不通用。5 U-BOOT大名鼎鼎的BOOTLOADER 生成工具,同類的好象還有VIVI (名字很曖昧)生成的BOOTLOADER 燒到FLASH 里,然后就可以用BOOTLOADER 下載

13、燒寫(xiě)其他了有了BOOTLOADER 才能下UCLINUX 。BOOTLOADER 就像電腦上的BIOS 。當(dāng)然UCOS 的不用這個(gè),用什么我不知道:)最新版本是1.1.4 具體使用方法看我另一篇筆記吧。6 UCLINUX包UCLINUX 的源碼包,不用多說(shuō)了吧?建議大家用現(xiàn)成的先體會(huì)一下,然后再自己編譯,裁剪。因?yàn)閱为?dú)UCLINUX 的編輯技術(shù)上比較簡(jiǎn)單,但涉及的方面還是比較廣的。7 VMWARE老牌的虛擬機(jī)軟件,在一個(gè)機(jī)器上虛擬出一個(gè)機(jī)器裝LINUX (PC 上用的),省得你來(lái)回開(kāi)關(guān)機(jī)了。記得裝VMWARE-TOOLS ,安裝方法在我另一篇筆記里。六. 有哪些書(shū)推薦主要推薦ZLG 的三本書(shū),

14、有這3本再加網(wǎng)絡(luò)就不用別的書(shū)了,其中主要推薦前2本,3是介紹體系結(jié)構(gòu)的,也不錯(cuò)。1 ARM嵌入式LINUX 系統(tǒng)構(gòu)建與驅(qū)動(dòng)開(kāi)發(fā),北航版驅(qū)動(dòng)寫(xiě)的很詳細(xì),前期開(kāi)發(fā)介紹也很好2 ARM 嵌入式系統(tǒng)實(shí)驗(yàn)教程(二),北航版有ZLG2200的原理圖,實(shí)驗(yàn)程序和注釋,了解人家是怎么開(kāi)發(fā)的。3 ARM嵌入式系統(tǒng)基礎(chǔ)教程最重要的是體系結(jié)構(gòu),匯編部分介紹,看看吧,增加理論素質(zhì)。4 44B0數(shù)據(jù)手冊(cè)寫(xiě)在這里是強(qiáng)調(diào)它的重要。不推薦ZLG 早期出的紅色皮的ARM 什么體系結(jié)構(gòu)之類的寫(xiě)的太多,看煩了。其他的書(shū)沒(méi)了幾本,沒(méi)看見(jiàn)好的,大家有看過(guò)的推薦吧。七. 選UCOS ?UCLINUX ?LINUX ?VXWORKS ?還

15、是當(dāng)單片機(jī)用1 搞開(kāi)發(fā),工程設(shè)計(jì),用UCOS ,小巧,多進(jìn)程,簡(jiǎn)單,體現(xiàn)了ARM7的精髓。2 LINUX 正根的嵌入式系統(tǒng),LINUX 消費(fèi)與通信領(lǐng)域用的比較多,但缺點(diǎn)是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買(mǎi)開(kāi)發(fā)板1K 達(dá)底吧。但是還是推薦選ARM9+LINUX 3 UCLINUX 算投機(jī)嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX 近親,學(xué)好可以比較方便的轉(zhuǎn)向LINUX ,像我一樣的窮鬼用吧,呵呵4 VXWORKS 學(xué)好后可以找到高薪工作,但工作機(jī)會(huì)本身并不比LINUX 好找。5 當(dāng)單片機(jī)用不推薦,雖然我景仰的ZLG 一直號(hào)召這么干。因?yàn)閷?duì)于學(xué)習(xí)來(lái)說(shuō)多進(jìn)程的系統(tǒng)設(shè)

16、計(jì)才是ARM7的玩頭,至少你也要整個(gè)UCOS ?。海┯信笥褑?wèn)我先學(xué)這個(gè)當(dāng)基礎(chǔ)不行嗎?那當(dāng)然可以但我當(dāng)時(shí)就用了1周搞定,就是我先的ADS 在RAM 中調(diào)試的筆記。后來(lái)我清空FLASH 用的小段程序還是當(dāng)時(shí)寫(xiě)的LED 閃爍程序呢。另外1周里其中還因?yàn)樽约哼^(guò)于菜,沒(méi)把OM 設(shè)置好導(dǎo)致晶振不振哈哈。這個(gè)是必須做的,但一帶而過(guò)。目標(biāo)放的遠(yuǎn)一點(diǎn)。八. 學(xué)習(xí)要用多長(zhǎng)時(shí)間我從菜鳥(niǎo)到現(xiàn)在兩個(gè)多月,中間被打擾數(shù)次。仍然搞定了PCB 設(shè)計(jì)與制版,RAM 調(diào)試,F(xiàn)LASH 下載,UBOOT 移植和下載UCLINUX (沒(méi)剪裁,用現(xiàn)成的),LCD 驅(qū)動(dòng)。再次坦誠(chéng)的說(shuō):我確實(shí)比較菜,說(shuō)這些不是讓大家羨慕,只是告訴你們“你

17、們應(yīng)該比這個(gè)更好”我相信良好的態(tài)度+合適的方法+及時(shí)的總結(jié)=成績(jī)九. ARM都玩什么就幾點(diǎn)1 硬件設(shè)計(jì)2 系統(tǒng)移植3 驅(qū)動(dòng)開(kāi)發(fā)4 應(yīng)用開(kāi)發(fā)沒(méi)了。其中推薦把注意力放在后兩個(gè)上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。十. 我用的什么板子很多人問(wèn)我這個(gè)問(wèn)題,我特意寫(xiě)過(guò)一個(gè)的。再說(shuō)一次吧。我是自己做的,RAM 、ROM 、8019等比較麻煩而當(dāng)時(shí)的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動(dòng)。1 加了串口通信的GPS 模塊、 GPRS模塊一個(gè)UART0,一個(gè)UART1,當(dāng)與要用超級(jí)終端時(shí)用跳線切換。2 SD卡,和7843觸摸屏同時(shí)掛在 SPI 總線上,因?yàn)?SPI 只能掛

18、一個(gè)設(shè)備,同時(shí)還做了 I/O 模擬的準(zhǔn)備,把兩個(gè)設(shè)備 又通過(guò)跳線掛在 4 個(gè) IO 上。 3 擴(kuò)了個(gè) IIC 的 35 個(gè)鍵子的鍵盤(pán) 用的 ZLG 的 7290,不占用 CPU,最大支持 64 個(gè)鍵子,只上了 35 個(gè),其他留接口。 4 把 LCD 接口按照買(mǎi)的 LCD 改裝了,可以用 FPC 線直接連接。 所以改動(dòng)雖然多,但真正很移植了,初期調(diào)試有關(guān)的并沒(méi)動(dòng),就是為了現(xiàn)在不那么菜的時(shí)候 做準(zhǔn)備: ) 十一. 開(kāi)發(fā)流程 這里是我的開(kāi)發(fā)流程 1 設(shè)計(jì)原理圖(含 WIGGLER 的 JTAG 訪真器) 2 設(shè)計(jì) PCB(含 WIGGLER 的 JTAG 訪真器) 3 制版 4 焊接電壓,確定電壓沒(méi)

19、問(wèn)題 5 焊接 44B0+JTAG 電路+WIGGLER 的 JTAG 訪真器+周邊電路, BANYANT+仿真器連接, 用 BANYANT 提示錯(cuò)誤,但可以顯示 44B0 編號(hào),好象是 0X0F0F0F0F 只類的,說(shuō)明 44B0 沒(méi)問(wèn)題 6 焊接晶體+RAM+ROM+周邊電路,用 BANYANT+仿真器連接,可以顯示正確的 44B0 了 7 用 BANYANT+仿真器連接,開(kāi) AXD,在命令行窗口操作 RAM,看可不可以修改,可以的話(用 內(nèi)存窗口看 RAM 地址)RAM 就沒(méi)問(wèn)題 可以用這個(gè)命令“setmem 0xc000000,0xffffffff,32” 我的 RAM 掛在 BANK6 上 所以地址是 0XC000000,你要是改了就也得改。 8 用我寫(xiě)的自己寫(xiě)了個(gè) C 工程模板又寫(xiě)了個(gè)使用說(shuō)明里的方法調(diào)試程序吧,寫(xiě)個(gè)簡(jiǎn)單的, 我當(dāng)時(shí)寫(xiě)個(gè) LED 閃爍的??春檬共弧?9 把程序按照FLASH 燒寫(xiě)總結(jié)里的燒到 FLASH 里,測(cè)試一下 10 按

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論