信盈達(dá)技術(shù)大牛初學(xué)ARM經(jīng)驗(yàn)之談
時(shí)間:2018-11-01 00:00:00
來源:信盈達(dá)
作者:信盈達(dá)
四 要不要有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è)吧
1 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使用了。
3 BANYANT調(diào)試代理(不知道名對不,起這么個(gè)難記的,我一般都叫它“半羊”因?yàn)橹浪菐滋靹偝粤丝狙?/span>調(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才能下UCLINUXBOOTLOADER就像電腦上的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,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網(wǎng)絡(luò)就不用別的書了,其中主要推薦前2本,3是介紹體系結(jié)構(gòu)的,也不錯(cuò)
1 ARM嵌入式LINUX系統(tǒng)構(gòu)建與驅(qū)動開發(fā),北航版
驅(qū)動寫的很詳細(xì),前期開發(fā)介紹也很好
2 ARM 嵌入式系統(tǒng)實(shí)驗(yàn)教程(二),北航版
有ZLG2200的原理圖,實(shí)驗(yàn)程序和注釋,了解人家是怎么開發(fā)的。
3 ARM嵌入式系統(tǒng)基礎(chǔ)教程
最重要的是體系結(jié)構(gòu),匯編部分介紹,看看吧,增加理論素質(zhì)。
4 44B0數(shù)據(jù)手冊
寫在這里是強(qiáng)調(diào)它的重要。不推薦ZLG早期出的紅色皮的ARM什么體系結(jié)構(gòu)~只類的寫的太多,看煩了。其他的書沒了幾本,沒看見好的,大家有看過的推薦吧。
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機(jī)用
1 搞開發(fā),工程設(shè)計(jì),用UCOS,小巧,多進(jìn)程,簡單,體現(xiàn)了ARM7的精髓。
2 LINUX 正根的嵌入式系統(tǒng),LINUX消費(fèi)與通信領(lǐng)域用的比較多,但缺點(diǎn)是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板1K達(dá)底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機(jī)嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵
4 VXWORKS學(xué)好后可以找到高薪工作,但工作機(jī)會本身并不比LINUX好找。
5 當(dāng)單片機(jī)用不推薦,雖然我景仰的ZLG一直號召這么干。因?yàn)閷τ趯W(xué)習(xí)來說多進(jìn)程的系統(tǒng)設(shè)計(jì)才是ARM7的玩頭,至少你也要整個(gè)UCOS啊,有朋友問我先學(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)備