第一篇:ARM入門最好的文章------轉(zhuǎn)載一位資身工程師的入門心得
ARM入門最好的文章------轉(zhuǎn)載一位資身工程師的入門心得
開始學(xué)ARM一團霧水,不知道如何入手.這個介紹的比較全面.本人認(rèn)為aRM入門最好的文章
.抓住51開發(fā)ARM
這幾個月來我一直都爬在51的問題,自己都有一點笑自己了,用了4個月的時間,來鞏固51的原理和程序,還好我自己算是走過來了,自己笨,身邊的高才生又看不上51的原理,他們都比較“?!?,說51過時了,你問那個做什么???我比較郁悶!過時嗎?我有一點懷疑?
他們不愿意說有他們自己的理由,沒有人強求,靠自己好了。
我自己個人的觀點:51是一個基礎(chǔ),而且還很重要,這是再我看了ARM之后感覺到的。它可以加速你的ARM學(xué)習(xí)速度,真得!不相信你試一試好了。
凡是要求一個速度、效率,不要做一些無用功,抓緊身邊的每一個一分鐘,人是活的,東西(知識、書)是死得,想要做的事情因此就簡單了。
2.我在網(wǎng)上看到了一篇很不錯的ARM文章,粘貼過來,為了和像我一樣在很少有人幫助的情況下,自學(xué)ARM 的難兄難弟們。
“ARM怎么入門”。我不是高手,仍然是菜鳥。
但是回想起自己當(dāng)時的迷茫,特意寫了這篇東西,當(dāng)作給和我一樣的兄弟姐妹的幫助吧。問這個問題的人多半不是已經(jīng)工作的工程師,而是和我一樣是學(xué)生,所以這篇筆記就把看家當(dāng)成我一樣的菜鳥,高手勿怪。
首先聲明:本人還沒有找工作,事實上處于研究生剛畢業(yè),還沒開始找工作的空閑時間,44B0只是興趣所在,打發(fā)時間。
所有看法完全是自己的感受,不代表任何他人。錯了的觀點各位幫我糾正。再次補充:很多朋友看了上面的話就問我為什么研究生畢業(yè)了還不找工作:)說是打發(fā)時間,其實是因為研究生的時候帶了一個項目,申請?zhí)崆爱厴I(yè)以后項目還有塊尾巴,答應(yīng)導(dǎo)師把項目做完再走:)就這么簡單。男人總點負(fù)點責(zé),呵呵
以下問題常被問到,我就想到哪說到哪吧。
一 首先說說ARM的發(fā)展
可以用一片大好來形容,翻開各個公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。
廣義的嵌入式無非幾種:傳統(tǒng)的什么
51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。
客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因為數(shù)字處理與通信領(lǐng)域的空前發(fā)展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應(yīng)用面很廣。
FPGA的兄弟一般做ANSIC(特殊芯片設(shè)計,好象是這么翻譯的)。而ARM單純說來并不比一個單片機強多少,但是它的獨特就在于不斷下降的價格和提升的性能。這完全依靠于ARM公司的戰(zhàn)略,厲害!很佩服他們的戰(zhàn)略眼光!
值得注意的是:在找工作中,企業(yè)(著名的,小的不算)對單純的ARM硬件開發(fā)工程師并不比單片機重視,很少有大企業(yè)的職位里寫“從事過ARM開發(fā)優(yōu)先”。寫的多的是什么?“嵌入式LINUX”到這相信大家看出來了吧,需要的是硬件中的軟件。
二 ARM是硬件還是軟件
很難說,ARM是硬件,LINUX是軟件。ARM的硬件多半已經(jīng)模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰(zhàn)略,再次佩服。
實際中的LINUX的開發(fā)工作更多,更耗時。從這方面說ARM應(yīng)該算是軟件了。
在找工作中更是這樣,舉個例子,聯(lián)想里和ARM最接近的是“BIOS工程師”是軟件,MOTO里接近的是嵌入式LINUX工程師是軟件。而其他很多公司把嵌入式產(chǎn)品開發(fā)歸為硬件。所以,不要討論這個,好好玩轉(zhuǎn)自己的板子才是關(guān)鍵。實在不爽你就把自己叫“嵌入式開發(fā)工程師”
三 要不要買開發(fā)板 買哪家
我的答案是“在你個人的學(xué)習(xí)方法”,但是如果看家是需要看這騙筆記的水平,個人推薦還是買現(xiàn)成的。1 買
買板子可以把注意力集中在軟件開發(fā)上,軟件開發(fā)(尤其是驅(qū)動)可以不必?fù)?dān)心自己硬件上的問題,我就是以便調(diào)試一邊寫驅(qū)動和程序,每次寫驅(qū)動前就要先確認(rèn)硬件沒問題。另外,買板子更省錢和時間,我自己做的板子,原理圖PCB花了2周以上!制版又15天,回來以后焊接44B0 160個腳!那叫一個麻煩~~花了多少錢呢?2層板,制版費就300塊!當(dāng)然 我把接口都外引了,還做了個20X18的LCD背板,板子比較大??傮w下來 元件+LCD屏+PCB=11XX塊!夠2410的了。
再有就是買的資料相對來說比較全,但是不要指望有技術(shù)支持!都是騙人的,賣你之后就不會理你。做
自己做可以更了解底層硬件,可以按照自己的要求加?xùn)|西,比如我就加了GPS模塊、GPRS模塊、SD卡模塊,擴了個IIC的35個鍵子的鍵盤、把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。
當(dāng)然,你可以有策略的做,比如像我一樣,把RAM和ROM,網(wǎng)絡(luò)都保持和某現(xiàn)成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個退路。其他的如SD了 什么的自己做。都達(dá)到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。
網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫的,再這里對龔俊表達(dá)一下我的敬意!牛人!但是那個圖有個小BUG,我指的是03版的,后來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責(zé)!順便譴責(zé)把龔俊板子偷賣的人。買哪家
個人感覺分3類吧
1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎么開發(fā)ARM,而不是像有的公司自己技術(shù)都沒做好就做個板子出來賣錢。但是最大的不利就是價格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是總線不外擴的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價格性能結(jié)合點。ARM7最適合做工業(yè)控制,ARM普及,銷量都是怎么來的?都是ARM7來的,而44B0是典型的商業(yè)片子。但是,這里如果你看中的是為工作做準(zhǔn)備,還是選能跑UCLINUX的吧。但是仍然作為第一個推薦,因為菜鳥時期,合適的資料太重要了!在這里被ZLG的務(wù)實精神感動!你看人家那代碼寫的。
2)感覺立宇泰的44B0不錯
硬件沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯的~~
3)找個最便宜的
好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時間搜集資料,至于資料全不全,別計較了~~硬件肯定好使就行吧。
四 要不要有51 AVR等單片機基礎(chǔ)
有更好,但沒有也無所謂。
兩個月以前,我只是看別人做,耳濡目染~~,本科學(xué)過單片機,從來沒做過。我們這的技術(shù)主干做AVR和51,我就跟他們調(diào)過C語言程序。你看出來了?我是個不折不扣的菜鳥吧?
但是做這個之前我特意找了ZLG的兩本書,看了里面的例子和原理圖,這很重要。例程里有匯編有C,都看懂了就OK,不用自己現(xiàn)寫
五 開發(fā)都需要學(xué)習(xí)哪些軟件 總結(jié)起來最主要的有以下幾個吧 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)試。PLASHPGM FLASH燒寫的軟件。AXD在RAM里調(diào)試,掉電就沒有了,方便程序修改。調(diào)試好的程序再下到FLASH里,上電直接運行。同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。BANYANT調(diào)試代理(不知道名對不,起這么個難記的,我一般都叫它“半羊”因為知道它那幾天剛吃了烤羊)
調(diào)試代理就是用它幫你使用更簡單的JTAG(便宜?。﹣韺崿F(xiàn)原本1K才賣的JTAG仿真器的大部分功能。JTAG調(diào)試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅(qū)動就行了。
調(diào)試代理還有很多種,什么H-JTAG了、ARM7了(不知道具體叫什么,就記得可執(zhí)行文件叫ARM7.EXE)都是,BANYANT比較好。
需要注意的是,沒種調(diào)試代理安裝方法雖然都簡單 但都不一樣,需要看說明。而且AXD調(diào)試之前都要運行。省錢了,就別怕麻煩了。ARM-ELF-TOOLS工具鏈
里面是UCLINUX開發(fā)用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發(fā)布的方便你開發(fā)的東西。具體安裝方法看我另一篇筆記。
另外如果你開發(fā)LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。U-BOOT 大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)生成的BOOTLOADER燒到FLASH里,然后就可以用BOOTLOADER下載 燒寫其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當(dāng)然UCOS的不用這個,用什么我不知道:)
最新版本是1.1.4 具體使用方法看我另一篇筆記吧。UCLINUX包
UCLINUX的源碼包,不用多說了吧?建議大家用現(xiàn)成的先體會一下,然后再自己編譯,裁剪。因為單獨UCLINUX的編輯技術(shù)上比較簡單,但涉及的方面還是比較廣的。VMWARE 老牌的虛擬機軟件,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關(guān)機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網(wǎng)絡(luò)就不用別的書了,其中主要推薦前2本,3是介紹體系結(jié)構(gòu)的,也不錯 ARM嵌入式LINUX系統(tǒng)構(gòu)建與驅(qū)動開發(fā),北航版 驅(qū)動寫的很詳細(xì),前期開發(fā)介紹也很好 2 ARM 嵌入式系統(tǒng)實驗教程
(二),北航版
有ZLG2200的原理圖,實驗程序和注釋,了解人家是怎么開發(fā)的。3 ARM嵌入式系統(tǒng)基礎(chǔ)教程
最重要的是體系結(jié)構(gòu),匯編部分介紹,看看吧,增加理論素質(zhì)。4 44B0數(shù)據(jù)手冊
寫在這里是強調(diào)它的重要。
不推薦ZLG早期出的紅色皮的ARM什么體系結(jié)構(gòu)~只類的 寫的太多,看煩了。
其他的書沒了幾本,沒看見好的,大家有看過的推薦吧。
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機用
搞開發(fā),工程設(shè)計,用UCOS,小巧,多進程,簡單,體現(xiàn)了ARM7的精髓。
LINUX 正根的嵌入式系統(tǒng),LINUX消費與通信領(lǐng)域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板1K達(dá)底吧。但是還是推薦選ARM9+LINUX
UCLINUX 算投機嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵
VXWORKS 學(xué)好后可以找到高薪工作,但工作機會本身并不比LINUX好找。
當(dāng)單片機用 不推薦,雖然我景仰的ZLG一直號召這么干。因為對于學(xué)習(xí)來說多進程的系統(tǒng)設(shè)計才是ARM7的玩頭,至少你也要整個UCOS啊:)
有朋友問我先學(xué)這個當(dāng)基礎(chǔ)不行嗎?那當(dāng)然可以~~但我當(dāng)時就用了1周搞定,就是我先的ADS在RAM中調(diào)試的筆記。后來我清空FLASH用的小段程序還是當(dāng)時寫的LED閃爍程序呢。另外1周里其中還因為自己過于菜,沒把OM設(shè)置好導(dǎo)致晶陣不陣 哈哈。這個是必須做的,但一帶而過。目標(biāo)放的遠(yuǎn)一點。
八 學(xué)習(xí)要用多長時間
我從菜鳥到現(xiàn)在兩個多月,中間被打擾數(shù)次。仍然搞定了PCB設(shè)計與制版,RAM調(diào)試,F(xiàn)LASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現(xiàn)成的),LCD驅(qū)動。
再次坦誠的說:我確實比較菜,說這些不是讓大家羨慕,只是告訴你們“你們應(yīng)該比這個更好”
我相信良好的態(tài)度+合適的方法+及時的總結(jié)=成績
九 ARM都玩什么 就幾點 1 硬件設(shè)計 2 系統(tǒng)移植 3 驅(qū)動開發(fā) 4 應(yīng)用開發(fā)
沒了。其中推薦把注意力放在后兩個上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。
十 我用的什么板子
很多人問我這個問題,我特意寫過一個的。再說一次吧。
我是自己做的,RAM、ROM、8019等比較麻煩而當(dāng)時的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。加了串口通信的GPS模塊、GPRS模塊
一個UART0,一個UART1,當(dāng)與要用超級終端時用跳線切換。2 SD卡,和7843觸摸屏
同時掛在SPI總線上,因為SPI只能掛一個設(shè)備,同時還做了I/O模擬的準(zhǔn)備,把兩個設(shè)備又通過跳線掛在4個IO上。3 擴了個IIC的35個鍵子的鍵盤
用的ZLG的7290,不占用CPU,最大支持64個鍵子,只上了35個,其他留接口。4 把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。
所以改動雖然多,但真正很移植了,初期調(diào)試有關(guān)的并沒動,就是為了現(xiàn)在不那么菜的時候做準(zhǔn)備:)
十一 開發(fā)流程
這里是我的開發(fā)流程 設(shè)計原理圖(含WIGGLER的JTAG訪真器)2 設(shè)計PCB(含WIGGLER的JTAG訪真器)3 制版 焊接電壓,確定電壓沒問題 5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題 6 焊接晶體+RAM+ROM+周邊電路,用BANYANT+仿真器連接,可以顯示正確的44B0了 用BANYANT+仿真器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內(nèi)存窗口看RAM地址)RAM就沒問題
可以用這個命令“setmem 0xc000000,0xffffffff,32”
我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。8 用我寫的《自己寫了個C工程模板又寫了個使用說明 》里的方法調(diào)試程序吧,寫個簡單的,我當(dāng)時寫個LED閃爍的??春檬共弧0殉绦虬凑铡禙LASH燒寫總結(jié) 》里的燒到FLASH里,測試一下 10 按照《UBOOT 移植操作》移植UBOOT 11 按照《UCLINUX下載簡單說明》下個UCLINUX 12 看看驅(qū)動開發(fā)的方法,自己寫個驅(qū)動看看 13 還有很多事東西著你玩 呵呵
十二 關(guān)于JTAG訪真器
JTAG訪真器現(xiàn)在用的多是簡板的,一個244那種,用的沒什么不好。
按照并口定義不同分幾種,建議選WIFFLER定義的,因為支持的軟件多。這個網(wǎng)上多的是,不多說了。
值得提的是有的JTAG訪真器原理圖上有跳線用來使能復(fù)位信號,這個一般不跳上。就是不用復(fù)位信號,因為JTAG協(xié)議里本身也可以控制44B0復(fù)位。當(dāng)然,板子上的復(fù)位信號跳線也不用跳。
十三 哪個公司的ARM 這個是問題比較簡單。1 ARM7主要就幾個公司的 三星,PHILIP,ATMEL的
ATMEL的有比較便宜的AT91SAM7S32 和AT91SAM7S64 專為8位應(yīng)用產(chǎn)品量身定做,價格很便宜好象《3刀吧。和PHILIP的21XX差不多,資料太少,項目中選還不錯。其他兩家上面說了的不多說了吧 ARM9 這個玩2410和2440的多吧,現(xiàn)在2440還比較火啊 可以考慮買個了 但是2410就比較便宜了,作為學(xué)習(xí)來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領(lǐng)域應(yīng)該是消費電子,比如手機PDA,而這上面用的多的應(yīng)該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。
第二篇:嵌入式入門激勵文章
這是一篇嵌入式入門激勵文章,百度上流傳已久
? 同濟大學(xué)軟件學(xué)院院長談嵌入式方向選擇
? 時間:2007-01-09
? 嵌入式系統(tǒng)無疑是當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應(yīng)要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數(shù)字相機(DC)、數(shù)字?jǐn)z像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等都是典型的嵌入式系統(tǒng)。
嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開發(fā)的人有兩類。
一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設(shè)計,有時要開發(fā)一些與硬件關(guān)系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅(qū)動硬件,往上支持操作系統(tǒng)),最初級的硬件驅(qū)動程序等。他們的優(yōu)勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復(fù)雜軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復(fù)雜應(yīng)用軟件等)。
另一類是學(xué)軟件、計算機專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。如果我們學(xué)軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫B(tài)SP和硬件驅(qū)動程序。嵌入式硬件設(shè)計完后,各種功能就全靠軟件來實現(xiàn)了,嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設(shè)計包給了專門的硬件公司,稍復(fù)雜的硬件都交給臺灣或國外公司設(shè)計,國內(nèi)的硬件設(shè)計力量很弱,很多嵌入式公司自己只負(fù)責(zé)開發(fā)軟件,因為公司都知道,嵌入式產(chǎn)品的差異很大程度在軟件上,在軟件方面是最有“花頭”可做的),所以我們搞軟件的人完全不用擔(dān)心我們在嵌入式市場上的用武之地,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢。
從事嵌入式軟件開發(fā)的好處是:
(1)目前國內(nèi)外這方面的人都很稀缺。一方面,是因為這一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級、驅(qū)動程序級軟件),對軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對軟件設(shè)計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因為這一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時間不長或正在出現(xiàn)(如ARM處理器、嵌入式操作系統(tǒng)、MPEG技術(shù)、無線通信協(xié)議等),掌握這些新技術(shù)的人當(dāng)然很找。嵌入式人才稀缺,身價自然就高,越有經(jīng)驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數(shù)人無條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗的人進行指導(dǎo)開發(fā)流程。
(2)與企業(yè)計算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強度通常低一些(但收入不低)。搞企業(yè)應(yīng)用軟件的IT企業(yè),這個用戶的系統(tǒng)搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復(fù)勞動。相比而言,搞嵌入式系統(tǒng)的公司,都有自己的產(chǎn)品計劃,按自己的節(jié)奏行事。所開發(fā)的產(chǎn)品通常是通用的,不會因客戶的不同而修改。一個產(chǎn)品型號開發(fā)完了,往往有較長一段空閑時間(或只是對軟件進行一些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作范圍相對狹窄,所涉及的專業(yè)技術(shù)范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經(jīng)驗,賣賣老本,幾句指導(dǎo)也夠讓那些初入道者琢磨半年的。若搞應(yīng)用軟件,可能下一個客戶要換成一個完全不同的軟件開發(fā)平臺,那就苦了。
(3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,那么嵌入式是一個不錯的主意,這可不像應(yīng)用軟件那樣容易被盜版。土木學(xué)院有一個叫啟明星的公司開發(fā)出一個好象叫“工程e”的掌上PDA(南校區(qū)門口有廣告),施工技術(shù)人員用該PDA可當(dāng)場進行土木概預(yù)算和其它土木計算,據(jù)說銷路特好。我認(rèn)識的某大學(xué)老師,他開發(fā)的飯館用的點菜PDA(WinCE平臺,可無線連網(wǎng)和上網(wǎng)),據(jù)他說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。我記得00級2+2班當(dāng)年有一組同學(xué)在學(xué)Windows程序設(shè)計課程時用VC++設(shè)計了一個功能很強的點菜系統(tǒng)做為課程項目,當(dāng)時真想建議他們將這個軟件做成PDA,估計會有些銷路(上?;疖囌灸蠌V場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。這些PDA的硬件設(shè)計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計軟件就變成自己的產(chǎn)品了。
從事嵌入式軟件開發(fā)的缺點是:
(1)入門起點較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級軟件功底不深,則可能不適于此行。
(2)這方面的企業(yè)數(shù)量要遠(yuǎn)少于企業(yè)計算類企業(yè)。特別是從事嵌入式的小企業(yè)數(shù)量較多(小企業(yè)要搞自己的產(chǎn)品創(chuàng)業(yè)),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導(dǎo)體、Microtek、研華、華為、中興通信、上廣電等制造類企業(yè))。這些企業(yè)的習(xí)慣思維方式是到電子、通信等偏硬專業(yè)找人。由于我院以前畢業(yè)生以企業(yè)計算為主,所以我院與這些企業(yè)聯(lián)系相對較少。我院正積極努力,目前已與其中部分公司建立了聯(lián)系,爭取今后能有我院同學(xué)到這些企業(yè)中實習(xí)或就業(yè)。
(3)有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無此要求,只要有經(jīng)驗即可。
我院同學(xué)若學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面,應(yīng)是我們的強項。對于搞嵌入式軟件的人,最重要的技術(shù)顯然是(實際上很多公司的招聘廣告上就是這樣寫的):
(1)掌握主流嵌入式微處理器的結(jié)構(gòu)與原理
(2)必須掌握一個嵌入式操作系統(tǒng)
(3)必須熟悉嵌入式軟件開發(fā)流程并至少做過一個嵌入式軟件項目。
我院在嵌入式軟件方面最重要的課程包括:
(1)嵌入式微處理器結(jié)構(gòu)與應(yīng)用:這是一門嵌入式硬件基礎(chǔ)課程,我院用這門課取代了傳統(tǒng)的“微機原理與接口”課程(目前國內(nèi)已有少部分高校IT專業(yè)這樣做了,因為講x86微機原理與接口很難找到實際用處,只為教學(xué)而已)。我們說過,嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對ARM處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省內(nèi)存又運行高速的最優(yōu)代碼(嵌入式軟件設(shè)計特別講究時空效率),怎么能寫出驅(qū)動程序(驅(qū)動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,將來若同學(xué)到公司中從事嵌入式軟件開發(fā),公司都會給你一本該設(shè)備的硬件規(guī)格說明書(xxx Specification),您必須能看懂其中的內(nèi)存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設(shè)計軟件。有些同學(xué)覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實驗室10月份建好后,您做了一些實驗后就會覺得看得見摸得著。還有同學(xué)對ARM匯編不感興趣,以為嵌入式開發(fā)用C語言就足夠了。其實不應(yīng)僅是將匯編語言當(dāng)成一個程序設(shè)計語言,學(xué)匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎么能在該處理器寫出最優(yōu)的C語言代碼。在嵌入式開發(fā)的一些關(guān)鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當(dāng)您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬件設(shè)計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。
[小知識] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占據(jù)了絕對主流(資料說手機中幾乎100%都是ARM處理器)。ARM是一個只賣知識產(chǎn)權(quán)的公司,目前獲得購買了ARM CPU核授權(quán)許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎(chǔ)上進行了一些外圍擴展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是采用ARM 9內(nèi)核,指令一級是相同的)。而眾多中小公司又購買了這些處理器,設(shè)計了各種各樣的開發(fā)板,如華恒等國內(nèi)很多著名嵌入式公司都生產(chǎn)基于Samsung S3C2410的開發(fā)板,供最終用戶使用或供教學(xué)實驗。在ARM這個食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,而華恒等則是蝦米,最終用戶(想我們要采購嵌入式開發(fā)板的實驗室)則是喂蝦米的。Intel早期生產(chǎn)的是低端ARM(Strong ARM,相當(dāng)于ARM 7),現(xiàn)在轉(zhuǎn)向主要生產(chǎn)高端ARM(即Intel Xscale處理器,相當(dāng)于ARM 10,主要用在高端PDA上,如HP和DELL生產(chǎn)的PDA都采用Intel Xscale,價格較高)。目前應(yīng)用最多的是ARM 7和ARM 9兩類處理器。ARM 7較便宜,可跑uclinux(是一個不支持高級內(nèi)存管理功能的嵌入式Linux系統(tǒng))、Vxworks、uc/os II等實時操作系統(tǒng),但因處理器不帶內(nèi)存管理單元MMU(無內(nèi)存分頁和地址映射機制,所以不能使用虛擬內(nèi)存),所以不能跑Windows CE,另外通用Linux中的某些內(nèi)存管理功能也不能用在ARM 7上。ARM 9是一個帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數(shù)功能。以上是我的一點了解,可能有不對的地方。我們學(xué)院正在建設(shè)的嵌入式實驗室(10月底到貨)包括30套ARM 7系統(tǒng)(擬采用Samsung S3C44b0x開發(fā)板,主要用于嵌入式處理器結(jié)構(gòu)、嵌入式linux課程實驗),10套ARM 9系統(tǒng)(擬采用Samsung S3C2410x開發(fā)板,主要用于Windows CE課程建設(shè)),每套實驗板都配了高速仿真器,價格都很貴(比我們招標(biāo)的DELL PC還貴),很容易損壞,同學(xué)應(yīng)愛護使用。
(2)嵌入式操作系統(tǒng)類課程
除了WinCE的實時性稍差外,大多數(shù)嵌入式操作系統(tǒng)的實時性都很強,所以也可稱為實時操作系統(tǒng)Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統(tǒng)(當(dāng)然掌握兩個更好),這在嵌入式的所有技術(shù)中是最為關(guān)鍵的了。目前最重要的RTOS主要包括:
第一類、傳統(tǒng)的經(jīng)典RTOS:最主要的便是Vxworks操作系統(tǒng),以及其Tornado開發(fā)平臺。Vxworks因出現(xiàn)稍早,實時性很強(據(jù)說可在1ms內(nèi)響應(yīng)外部事件請求),并且內(nèi)核可極微(據(jù)說最小可8K),可靠性較高等,所以在北美,Vxworks占據(jù)了嵌入式系統(tǒng)的多半疆山。特別是在通信設(shè)備等實時性要求較高的系統(tǒng)中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術(shù)都和Linux很類似,主要是C語言開發(fā)。像Bell-alcatel、Lucent、華為等通信企業(yè)在開發(fā)產(chǎn)品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產(chǎn)品中往往用不起。目前很多公司都在往嵌入式Linux轉(zhuǎn)(聽說華為目前正在這樣轉(zhuǎn))。但無論如何,Vxworks在一段長時間內(nèi)仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統(tǒng)還有pSOS、QNX、Nucleus等RTOS。
第二類、嵌入式Linux操作系統(tǒng):Linux的前途除作為服務(wù)器操作系統(tǒng)外,最成功的便是在嵌入式領(lǐng)域的應(yīng)用,原因當(dāng)然是免費、開源、支持軟件多、呼擁者眾,這樣嵌入式產(chǎn)品成本會低。Linux本身不是一個為嵌入式設(shè)計的操作系統(tǒng),不是微內(nèi)核的,并且實時性不強。目前應(yīng)用在嵌入式領(lǐng)域的Linux系統(tǒng)主要有兩類:一類是專為嵌入式設(shè)計的已被裁減過的Linux系統(tǒng),最常用的是uClinux(不帶MMU功能),目前占較大應(yīng)用份額,可在ARM7上跑;另一類是跑在ARM 9上的,一般是將Linux 2.4.18內(nèi)核移植在其上,可使用更多的Linux功能(當(dāng)然uClinux更可跑在ARM 9上)。很多人預(yù)測,嵌入式Linux預(yù)計將占嵌入式操作系統(tǒng)的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發(fā)難度稍大。另外,目前我們能發(fā)現(xiàn)很多教材和很多大學(xué)都以ucOS/II為教學(xué)用實時操作系統(tǒng),這主要是由于ucOS/II較簡單,且開源,非常適合入門者學(xué)習(xí)實時操作系統(tǒng)原理,但由于ucOS/II功能有限,實用用得較少,所以我院不將其作為教學(xué)重點,要學(xué)習(xí)就應(yīng)學(xué)直接實用的,比如 uClinux就很實用。況且熟悉了Linux開發(fā),不僅在嵌入式領(lǐng)域有用,對開發(fā)Linux應(yīng)用軟件,對加深操作系統(tǒng)的認(rèn)識也有幫助,可謂一舉多得。據(jù)我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發(fā),F(xiàn)ujitum則是在自己的處理器上大搞Linux開發(fā)。目前在嵌入式Linux領(lǐng)域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發(fā)版上;二是能寫Linux驅(qū)動程序的人;三是熟悉Linux內(nèi)核裁減和優(yōu)化的人。我院在該嵌入式Linux方面的課程系列是:本科生操作系統(tǒng)必修課,然后是Linux程序設(shè)計選修課,最后是嵌入式Linux系統(tǒng)選修課。我院在Linux方面目前已有較強力量,魏老師和張老師熟悉Linux開發(fā),金老師和唐老師熟悉Linux系統(tǒng)管理。
第三類、Windows CE嵌入式操作系統(tǒng):Microsoft也看準(zhǔn)了嵌入式的巨大市場,MS永遠(yuǎn)是最厲害的,WinCE出來只有幾年時間,但目前已占據(jù)了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發(fā)的場合,WinCE目前已很流行(據(jù)說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發(fā)平臺主要為WinCE Platform Builder,有時也用EVC環(huán)境開發(fā)一些較上層的應(yīng)用,由于WinCE開發(fā)都是大家熟悉的VC++環(huán)境,所以我院學(xué)過Windows程序設(shè)計課程的同學(xué)都不會有多大難度,這也是WinCE容易被人們接受的原因,開發(fā)環(huán)境方便快速,微軟的強大技術(shù)支持,WinCE開發(fā)難度遠(yuǎn)低于嵌入式Linux。對于急于完成,不想拿嵌入式Linux冒險的開發(fā)場合,WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學(xué)生學(xué)習(xí)那樣試試看,保證開發(fā)成功更重要。根據(jù)不同的側(cè)重點,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統(tǒng)專用于PDA上(掌上電腦),另一個是MS SmartPhone操作系統(tǒng)用于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺。在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統(tǒng)還有Palm OS(因出現(xiàn)很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?我院可能是全國高校中唯一一家開設(shè)專門的“Windows CE嵌入式操作系統(tǒng)”課程的學(xué)校,這主要是基于以下原因:我院本身前面便有Windows程序設(shè)計課程,同學(xué)學(xué)過VC++后再學(xué)WinCE,非常方便自然,通過學(xué)習(xí)WinCE同樣也可了解嵌入式軟件的一般開發(fā)過程,對Linux有懼怕心理的同學(xué)也很合適。很顯然,嵌入式Linux永遠(yuǎn)不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推LINUX已好長時間,但您能看到幾個在PC機上真正使用LINUX的用戶?據(jù)我觀察,目前在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠(yuǎn)產(chǎn)品計劃的公司,為降低成本而進行長遠(yuǎn)考慮;二是微軟亞洲研究院對我院WinCE課程的支持計劃,我們也很希望將來我院能有同學(xué)通過微軟的面試去實習(xí)。WinCE和多媒體(如MPEG技術(shù))是微軟亞洲工程院目前做得較多的項目領(lǐng)域之一,他們很需要精通WinCE的人。
總結(jié)關(guān)于嵌入式操作系統(tǒng)類課程,若您覺得自己功底較深且能鉆研下去,則可去學(xué)嵌入式Linux;若您覺得自己VC++功底較好且想短平快地學(xué)嵌入式開發(fā),則我院的WinCE課程是最好的選擇。
(3)嵌入式開發(fā)的其它相關(guān)軟件課程
搞嵌入式若能熟悉嵌入式應(yīng)用的一些主要領(lǐng)域,這樣的人更受企業(yè)歡迎。主要的相關(guān)領(lǐng)域包括:
A、數(shù)字圖像壓縮技術(shù):這是嵌入式最重要最熱門的應(yīng)用領(lǐng)域之一,主要是應(yīng)掌握MPEG編解碼算法和技術(shù),如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。為此,我院已預(yù)訂了一位能開設(shè)數(shù)字圖像處理課程的博士。
B、通信協(xié)議及編程技術(shù):這包括傳統(tǒng)的TCP/IP協(xié)議和熱門的無線通信協(xié)議。首先,大多數(shù)嵌入式設(shè)備都要連入局域網(wǎng)或Internet,所以首先應(yīng)掌握TCP/IP協(xié)議及其編程,這是需首要掌握的基本技術(shù);其次,無線通信是目前的大趨勢,所以掌握無線通信協(xié)議及編程也是是很重要的。無結(jié)通信協(xié)議包括無線局域網(wǎng)通信協(xié)議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。
C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA等。我院有這方面的選修課。
D、DSP技術(shù):DSP是Digital Signal Process數(shù)字信號處理的意思,DSP處理器通過硬件實現(xiàn)數(shù)字信號處理算法,如高速數(shù)據(jù)采集、壓縮、解壓縮、通信等。數(shù)字信號處理是電子、通信等硬件專業(yè)的課程,對于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統(tǒng)、數(shù)字信號處理等課程基礎(chǔ),對于學(xué)習(xí)MPEG編解碼原理會有很大幫助。
(4)嵌入式開發(fā)的相關(guān)硬件基礎(chǔ)
對于軟件工程專業(yè)的學(xué)生,從事嵌入式軟件開發(fā),像數(shù)字電路、計算機組成原理、嵌入式微處理器結(jié)構(gòu)等硬件課程是較重要的。另外,匯編語言、C/C++、數(shù)據(jù)結(jié)構(gòu)和算法、特別是操作系統(tǒng)等軟件基礎(chǔ)課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點應(yīng)是在嵌入式軟件,特別操作系統(tǒng)級軟件,那將是我們的優(yōu)勢。
我們的研究生里有些是學(xué)電子、通信類專業(yè)過來的,有較好的模擬電路和單片機基礎(chǔ),學(xué)嵌入式非常合適。嵌入式本身就是從單片機發(fā)展過來的,只是單片機不帶OS,而現(xiàn)在很多嵌入式應(yīng)用越來越復(fù)雜,以至不得不引入嵌入式操作系統(tǒng)。另外,為追求更高速的信號處理速度,現(xiàn)在在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現(xiàn),這就涉及到HDL數(shù)字電路設(shè)計技術(shù)及其FPGA/IP核實現(xiàn)技術(shù),這方面的人目前市場上也很缺。
(5)題外話
另外,能寫驅(qū)動程序的人目前是非常緊缺的(驅(qū)動程序也可歸于嵌入式范疇),包括桌面Windows中的DDK開發(fā)環(huán)境和WDM驅(qū)動程序。公司每時每刻都要推出新產(chǎn)品,每一個新產(chǎn)品出來了,要能被操作系統(tǒng)所使用,是必須寫驅(qū)動程序的。寫驅(qū)動程序就必須掌握操作系統(tǒng)(如Windows或Linux)的內(nèi)部工作原理,還涉及到少量硬件知識,難度較大,所以這方面的人很難找。想成為高手的同學(xué),也可從驅(qū)動程序方面獲得突破。我可說一下自己的經(jīng)歷,三年前我曾短暫地在一家公司寫過WinCE驅(qū)動程序(正是因為知道這方面的人緊缺,所以才要做這方面的事),盡管那以前從未做過驅(qū)動程序,應(yīng)聘那個職位時正是看準(zhǔn)了公司是很難招聘到這方面的人,既然都找不到人,驅(qū)動還得有人做,這正是可能有機會切入這一領(lǐng)域的大好機會。面試時大講自己寫過多少萬行匯編程序,對計算機工作原理如何清楚,簡歷中又寫著我曾閱讀完兩本關(guān)于Windows Driver Model的兩本英文原版書,寫過幾個小型的驅(qū)動程序練習(xí)程序(其實根本沒寫過,我們的同學(xué)將來千萬不要像我這樣,早練就些過硬功夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個典型的反面教材),居然一切都PASS(當(dāng)然最重要的是筆試和面試問題還說得過去),這只能說明這一領(lǐng)域找人的困難程度。公司本就未指望找到搞過驅(qū)動的人,找個有相關(guān)基礎(chǔ)的人就算不錯了。做了以后,發(fā)現(xiàn)也并不是怎樣難的。其實搞驅(qū)動程序的工作是很舒服的,搞完一個版本就會空一段時間,只有等公司新的芯片推出或新的OS出現(xiàn)后,才需要再去開發(fā)新一版驅(qū)動,那時有將近一個月時間空閑著在等WinCE.NET Beta版推出,準(zhǔn)備將驅(qū)動程序升級到CE.NET上,現(xiàn)在在軟件學(xué)院工作整日忙,無限懷念那段悠閑時光。
很巧合,最近本人無意中再次體會到了嵌入式的迷人之處。上周我那用了3年的手機終于不能WORK了。此次更新,除要求有手機常見功能外,最好有MP3功能(現(xiàn)在很多英語聽力都有MP3文件),最好有英漢詞典,最好還能讀WORD文檔。最后選了個滿足以上條件的最便宜的手機DOPOD 515(斬了我2.2K,但想想這也算自己對嵌入式事業(yè)的支持,這樣便也想開了),算得上最低檔的智能手機了?;貋硪徊?,手機的about顯示,本手機Processor是ARM,其OS是MS Smartphone(即WinCE.NET 4.2),這么巧合,簡直可做為學(xué)習(xí)嵌入式課程的產(chǎn)品案例了(等我們的WinCE課程開得有聲有色后,希望能從微軟研究院搞些Smartphone來開發(fā)開發(fā))。有OS的手機果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download時都可被自動轉(zhuǎn)換成smartphone格式,真是爽。完全可用Windows CE自己開發(fā)一些需要的程序download到自己的手機上?,F(xiàn)在市面銷售PDA智能手機火爆,MS總是財源滾滾。但我已發(fā)現(xiàn)國產(chǎn)的ARM+LINUX手機出現(xiàn)在市面上,價格只1.2K。
要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每個搞嵌入式的人都可選一條路,條條大路通羅馬。
? 來源:嵌入式在線
? 嵌入式軟件工程師 培訓(xùn)獲得政府補助
? 嵌入式在線 時間:2007-04-02
? 為促進我國服務(wù)外包產(chǎn)業(yè)健康快速發(fā)展,加強行業(yè)的能力建設(shè),加大對服務(wù)外包人才培養(yǎng)的支持力度,國家商務(wù)部門設(shè)立“千百十工程”服務(wù)外包人才培訓(xùn)資金,并對中國服務(wù)外包基地上海示范區(qū)(漕河涇開發(fā)區(qū))舉辦的服務(wù)外包人才培訓(xùn)予以支持。
開發(fā)區(qū)軟件園培訓(xùn)中心舉辦的嵌入式軟件工程師培訓(xùn)作為服務(wù)外包領(lǐng)域的緊缺人才得到了該專項資金資助,對符合條件的學(xué)員提供高額補貼。
由于在通訊、醫(yī)療、航天航空、過程控制等眾多領(lǐng)域的廣泛應(yīng)用,被稱為PC和因特網(wǎng)之后偉大發(fā)明的嵌入式智能,已成為繼IT網(wǎng)絡(luò)技術(shù)后又一迅速發(fā)展的技術(shù)方向。但同其快速發(fā)展相比,教育機構(gòu)技術(shù)和培養(yǎng)的相對滯后,使得嵌入式軟件人才存在巨大缺口。
在未來相當(dāng)長的時間內(nèi),嵌入式軟件人才都將是企業(yè)爭奪的目標(biāo),嵌入式軟件工程師也將是最熱門的職業(yè)之一。
第三篇:書法入門心得
書法入門心得
我是一名手工香道作坊主,小練書法也有幾年了,前幾日一師弟問:作為入門者,需要準(zhǔn)備和注意什么?
說實話,這是一個很宏觀的話題,我僅僅只能就自己的心得體會馬虎回答。
書法入門心得體會,在我看來,無非這樣幾點:
1、了解書法的要義:滴水石穿,沒有捷徑。
2、試試不同的筆,你會發(fā)現(xiàn)不是所有筆都適合你的書寫習(xí)慣,選擇你最順手和舒心的那支筆。這是我的老師教給我的第一課——欲善其事,先利其器。
3、看字!對,看。可能我接受的都是在野的路子,而不是正統(tǒng)的書法教育的原因吧。不要急匆匆地上手,而是去看。你會發(fā)現(xiàn),其實寫的好的字,最重要是筆畫之間的結(jié)構(gòu)!結(jié)構(gòu),結(jié)構(gòu)!重要的事情說三遍。然后再是字與字之間的結(jié)構(gòu),這樣,一副作品在心里就出現(xiàn)了。怎么說呢?這就好比一個設(shè)計總監(jiān),心里已經(jīng)有了具體的畫面細(xì)節(jié),差的只是動手去呈現(xiàn)出來!
4、要堅持自己的審美。審美,是隨著書法技術(shù)層次的提升,一步一步地改變的。對!最初接觸書法的人,總會無意中接觸、欣賞各類高大上的作品,非常懵逼地跟著老師的指點,如何如何!其實,一開始,你只需要點頭微笑就可以了。你現(xiàn)在的審美情趣沒到那個層次,沒必要強迫自己,有一天你會明白的!這里面還涉及一個敏感的人際話題——要知道,學(xué)員之間因為身份職業(yè)的差異,好多點評早已超出了書法的層面,你懂得??
5、不時把玩你的筆。沒事的時候,把筆拿手上玩。讓你的手習(xí)慣有筆的感覺。反正,你平時手里也拿著手機不是?就像我老師說的,這就猶如,你總能感覺到鞋底有顆很小很小的小石子,膈著你,那這就可以說是“人鞋合一”了。
6、多練習(xí)!書法其實就是肌肉的記憶展現(xiàn)。
7、依據(jù)個人的習(xí)慣,選擇訓(xùn)練的方式。這是很微妙的哦,我一師兄,一開始就啥也不練,只寫草書。哈哈??,有人習(xí)慣從簡單到復(fù)雜,也有人習(xí)慣從復(fù)雜到更復(fù)雜!所以說,練習(xí)書法還真是個發(fā)現(xiàn)自我審視自我的過程呢。
8、一開始就要告訴自己,沒個一年半載不可能有進步,端正態(tài)度。
9、慢慢嘗試去理解別人作品里面的精神??垂湃说淖髌罚炊嗔?,總會找到一絲絲當(dāng)時作者的心情、思想,完成這一步,你這就可怕了。你基本上具備了從量變到質(zhì)變的基礎(chǔ)了。
10、隨時找到兩種“冰火兩重天”的境界:虛靜和幟熱!譬如:《蘭亭序》一定不是在虛靜的情況下寫出來的,狂草也多數(shù)不是虛靜狀態(tài)能創(chuàng)作的。而蠅頭小楷、平時抓基本功,一定出自虛靜處。
11、一段時期之后,內(nèi)心不要去迎合“大家”的言論。言書必古,一向是我非常反感的。唯顏柳為尊,視古為圣,我就想問問:從顏真卿到今天好漢歷史里,別的書法家都是打醬油的?充其量跟我一樣,也是個臨帖者?這就好比一說到華夏璀璨文明,你扳指頭數(shù)吧,解放后的成就基本沒有。我的水平不一定能超越前者,但我的心態(tài)一定要有所逾越!
12、學(xué)會橫看成嶺側(cè)成峰的視覺審美。老師常說:人怕上床。字怕上墻。一副作品掛起來,你會發(fā)現(xiàn)啥也不是。這就是視覺差異所造成的。
13、學(xué)會體會書法帶給你的喜悅。書法是一件很煎熬的命題,喜悅與成就感是克服枯燥的有效方法。一個人的氣質(zhì)、狀態(tài)的變化,都是讀書、經(jīng)歷和長期從事的練習(xí)給與的,書法就是其中重要的一種。
14、書法最后,寫的是“心”。筆正則心正!
15、書法創(chuàng)作,必須有“虛靜、立意、用法、瀉意”的心理變化。唯有用法的“法”,是平時練習(xí)積累的各類技巧,其余的,都是一系列心境的變化。得物去我、四下皆空、胸有文章、幟情于筆、一氣呵成??
16、說了這么多,感覺不是那么簡單地能夠掌握和運用的。這里有一個良好的建議:多涉獵姊妹藝術(shù)和興趣愛好。天下之道莫不一統(tǒng),瑜伽、禪修、茶藝、香道、書法??,你會發(fā)現(xiàn)最后講究的心境,都是一模一樣的!
17、尋求一些外在物件的幫助。比如氣味!!
我就一直在做這方面的嘗試,也收到了諸多良好的反饋。
最初,是為了給老師準(zhǔn)備一件別出心裁的生日禮物,挖空心思。由于自己是一個散漫的人,我做練習(xí)的硯臺是一個倒流香爐,反正我也很多,順手就拿過來用了。
但是后來,我發(fā)現(xiàn),每次創(chuàng)作前,先不要著急下筆,而是刻意地慢騰騰地倒入墨汁,點燃一粒倒流香,靜靜地看著倒流香,像純潔的牛奶,象云彩一樣的香氣,慢慢傾瀉而下,凝居在下面的墨潭里面。
鼻翼里呼吸著崖柏的雄渾氣息,閉上眼,感受那股香氣的微妙運行,瞬間真就得物去我,直達(dá)虛靜狀態(tài)。
在胸中氣象萬千,寫意大發(fā)的時候,筆尖飽舔含香濃墨,把心中的意象順筆鋒傾瀉而下,一氣呵成。
追求了那么久的境界,因為一縷香氣的靈動而井噴爆發(fā)??
我想:所謂精進,無非如斯,概莫能外!
于是,我把這樣一件不算禮品的“禮品”,送給老師,結(jié)果出乎意料的好,現(xiàn)在基本成了學(xué)院班的標(biāo)配。哈哈??
趁著這股熱情,馬上又開發(fā)用于研墨的“添香墨”,一如既往地好!
總之,多嘗試別的藝術(shù)領(lǐng)域,多接受別的啟發(fā),一定能讓書法精進!
第四篇:ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM.
ARM學(xué)習(xí)心得,ARM入門,ARM基礎(chǔ),什么是ARM 一個電子工程師的ARM學(xué)習(xí)心得 目錄:
一 首先說說ARM的發(fā)展 二 ARM是硬件還是軟件 三 要不要買開發(fā)板 買哪家
四 要不要有51 AVR等單片機基礎(chǔ) 五 開發(fā)都需要學(xué)習(xí)哪些軟件
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機用 八 學(xué)習(xí)要用多長時間
九 ARM都玩什么 十 我用的什么板子 十一 開發(fā)流程
十二 關(guān)于JTAG訪真器 十三 哪個公司的ARM 我的筆記剛公布就有很多朋友來找我,把我當(dāng)高手,問我“ARM怎么入門”。我不是高手,仍然是菜鳥。
但是回想起自己當(dāng)時的迷茫,特意寫了這篇東西,當(dāng)作給和我一樣的兄弟姐妹的幫助吧。問這個問題的人多半不是已經(jīng)工作的工程師,而是和我一樣是學(xué)生,所以這篇筆記就把看家當(dāng)成我一樣的菜鳥,高手勿怪。
首先聲明:本人還沒有找工作,事實上處于研究生剛畢業(yè),還沒開始找工作的空閑時間,44B0只是興趣所在,打發(fā)時間。
所有看法完全是自己的感受,不代表任何他人。錯了的觀點各位幫我糾正。再次補充:很多朋友看了上面的話就問我為什么研究生畢業(yè)了還不找工作:)說是打發(fā)時間,其實是因為研究生的時候帶了一個項目,申請?zhí)崆爱厴I(yè)以后項目還有塊尾巴,答應(yīng)導(dǎo)師把項目做完再走:)就這么簡單。男人總點負(fù)點責(zé),呵呵 以下問題常被問到,我就想到哪說到哪吧。一 首先說說ARM的發(fā)展
可以用一片大好來形容,翻開各個公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。廣義的嵌入式無非幾種:傳統(tǒng)的什么
51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。
客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。DSP因為數(shù)字處理與通信領(lǐng)域的空前發(fā)展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應(yīng)用面很廣。
FPGA的兄弟一般做ANSIC(特殊芯片設(shè)計,好象是這么翻譯的)。
而ARM單純說來并不比一個單片機強多少,但是它的獨特就在于不斷下降的價格和提升的性能。這完全依靠于ARM公司的戰(zhàn)略,厲害!很佩服他們的戰(zhàn)略眼光!
值得注意的是:在找工作中,企業(yè)(著名的,小的不算)對單純的ARM硬件開發(fā)工程師并不比單片機重視,很少有大企業(yè)的職位里寫“從事過ARM開發(fā)優(yōu)先”。
寫的多的是什么?“嵌入式LINUX”
到這相信大家看出來了吧,需要的是硬件中的軟件。二 ARM是硬件還是軟件
很難說,ARM是硬件,LINUX是軟件。
ARM的硬件多半已經(jīng)模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰(zhàn)略,再次佩服。
實際中的LINUX的開發(fā)工作更多,更耗時。從這方面說ARM應(yīng)該算是軟件了。在找工作中更是這樣,舉個例子,聯(lián)想里和ARM最接近的是“BIOS工程師”是軟件,MOTO里接近的是嵌入式LINUX工程師是軟件。而其他很多公司把嵌入式產(chǎn)品開發(fā)歸為硬件。所以,不要討論這個,好好玩轉(zhuǎn)自己的板子才是關(guān)鍵。實在不爽你就把自己叫“嵌入式開發(fā)工程師” 三 要不要買開發(fā)板 買哪家
我的答案是“在你個人的學(xué)習(xí)方法”,但是如果看家是需要看這騙筆記的水平,個人推薦還是買現(xiàn)成的。1 買
買板子可以把注意力集中在軟件開發(fā)上,軟件開發(fā)(尤其是驅(qū)動)可以不必?fù)?dān)心自己硬件上的問題,我就是以便調(diào)試一邊寫驅(qū)動和程序,每次寫驅(qū)動前就要先確認(rèn)硬件沒問題。
另外,買板子更省錢和時間,我自己做的板子,原理圖PCB花了2周以上!制版又15天,回來以后焊接44B0 160個腳!那叫一個麻煩~~花了多少錢呢?2層板,制版費就300塊!當(dāng)然 我把接口都外引了,還做了個20X18的LCD背板,板子比較大。
總體下來 元件+LCD屏+PCB=11XX塊!夠2410的了。
再有就是買的資料相對來說比較全,但是不要指望有技術(shù)支持!都是騙人的,賣你之后就不會理你。2 做
自己做可以更了解底層硬件,可以按照自己的要求加?xùn)|西,比如我就加了GPS模塊、GPRS模塊、SD卡模塊,擴了個IIC的35個鍵子的鍵盤、把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。
當(dāng)然,你可以有策略的做,比如像我一樣,把RAM和ROM,網(wǎng)絡(luò)都保持和某現(xiàn)成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個退路。其他的如SD了 什么的自己做。都達(dá)到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。
網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫的,再這里對龔俊表達(dá)一下我的敬意!牛人!但是那個圖有個小BUG,我指的是03版的,后來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責(zé)!順便譴責(zé)把龔俊板子偷賣 的人。買哪家
個人感覺分3類吧
1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎么開發(fā)ARM,而不是像有的公司自己技術(shù)都沒做好就做個板子出來賣錢。但是最大的不利就是價格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是總線不外擴的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價格性能結(jié)合點。ARM7最適合做工業(yè)控制,ARM普及,銷量都是怎么來的?都是ARM7來的,而44B0是典型的商業(yè)片子。但是,這里如果你看中的是為工作做準(zhǔn)備,還是選能跑UCLINUX的吧。但是仍然作為第一個推薦,因為菜鳥時期,合適的資料太重要了!在這里被ZLG的務(wù)實*感動!你看人家那代碼寫的。
2)感覺硅谷芯微的2440不錯
硬件沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯的~~ 3)找個最便宜的
好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時間搜集資料,至于資料全不全,別計較了~~硬件肯定好使就行吧。四 要不要有51 AVR等單片機基礎(chǔ)
有更好,但沒有也無所謂。
兩個月以前,我只是看別人做,耳濡目染~~,本科學(xué)過單片機,從來沒做過。我們這的技術(shù)主干做AVR和51,我就跟他們調(diào)過C語言程序。你看出來了?我是個不折不扣的菜鳥吧? 但是做這個之前我特意找了ZLG的兩本書,看了里面的例子和原理圖,這很重要。例程里有匯編有C,都看懂了就OK,不用自己現(xiàn)寫 五 開發(fā)都需要學(xué)習(xí)哪些軟件 總結(jié)起來最主要的有以下幾個吧 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里,上電直接運行。
同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。BANYANT調(diào)試代理(不知道名對不,起這么個難記的,我一般都叫它“半羊”因為知道它那幾天剛吃了烤羊)
調(diào)試代理就是用它幫你使用更簡單的JTAG(便宜啊)來實現(xiàn)原本1K才賣的JTAG仿真器的大部分功能。JTAG調(diào)試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅(qū)動就行了。
調(diào)試代理還有很多種,什么H-JTAG了、ARM7了(不知道具體叫什么,就記得可執(zhí)行文件叫ARM7.EXE)都是,BANYANT比較好。
需要注意的是,沒種調(diào)試代理安裝方法雖然都簡單 但都不一樣,需要看說明。而且AXD調(diào)試之前都要運行。省錢了,就別怕麻煩了。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的不用這個,用什么我不知道:)最新版本是1.1.4 具體使用方法看我另一篇筆記吧。6 UCLINUX包
UCLINUX的源碼包,不用多說了吧?建議大家用現(xiàn)成的先體會一下,然后再自己編譯,裁剪。因為單獨UCLINUX的編輯技術(shù)上比較簡單,但涉及的方面還是比較廣的。7 VMWARE
老牌的虛擬機軟件,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關(guān)機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機用 搞開發(fā),工程設(shè)計,用UCOS,小巧,多進程,簡單,體現(xiàn)了ARM7的精髓。2 LINUX 正根的嵌入式系統(tǒng),LINUX消費與通信領(lǐng)域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板500-1500吧。但是還是推薦選ARM9+LINUX 3 UCLINUX 算投機嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵 VXWORKS 學(xué)好后可以找到高薪工作,但工作機會本身并不比LINUX好找。5 當(dāng)單片機用
不推薦,雖然我景仰的ZLG一直號召這么干。因為對于學(xué)習(xí)來說多進程的系統(tǒng)設(shè)計才是ARM7的玩頭,至少你也要整個UCOS?。海?/p>
有朋友問我先學(xué)這個當(dāng)基礎(chǔ)不行嗎?那當(dāng)然可以~~但我當(dāng)時就用了1周搞定,就是我先的ADS在RAM中調(diào)試的筆記。后來我清空FLASH用的小段程序還是當(dāng)時寫的LED閃爍程
序呢。另外1周里其中還因為自己過于菜,沒把OM設(shè)置好導(dǎo)致晶陣不陣 哈哈。這個是必須做的,但一帶而過。目標(biāo)放的遠(yuǎn)一點。
八 學(xué)習(xí)要用多長時間
我從菜鳥到現(xiàn)在兩個多月,中間被打擾數(shù)次。仍然搞定了PCB設(shè)計與制版,RAM調(diào)試,F(xiàn)LASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現(xiàn)成的),LCD驅(qū)動。
再次坦誠的說:我確實比較菜,說這些不是讓大家羨慕,只是告訴你們“你們應(yīng)該比這個更好”
我相信良好的態(tài)度+合適的方法+及時的總結(jié)=成績 九 ARM都玩什么 就幾點 1 硬件設(shè)計 2 系統(tǒng)移植 3 驅(qū)動開發(fā) 4 應(yīng)用開發(fā)
沒了。其中推薦把注意力放在后兩個上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。十 我用的什么板子
很多人問我這個問題,我特意寫過一個的。再說一次吧。
我是自己做的,RAM、ROM、8019等比較麻煩而當(dāng)時的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。1 加了串口通信的GPS模塊、GPRS模塊
一個UART0,一個UART1,當(dāng)與要用超級終端時用跳線切換。2 SD卡,和7843觸摸屏
同時掛在SPI總線上,因為SPI只能掛一個設(shè)備,同時還做了I/O模擬的準(zhǔn)備,把兩個設(shè)備又通過跳線掛在4個IO上。3 擴了個IIC的35個鍵子的鍵盤
用的ZLG的7290,不占用CPU,最大支持64個鍵子,只上了35個,其他留接口。4 把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。
所以改動雖然多,但真正很移植了,初期調(diào)試有關(guān)的并沒動,就是為了現(xiàn)在不那么菜的時候做準(zhǔn)備:)十一 開發(fā)流程
這里是我的開發(fā)流程 設(shè)計原理圖(含WIGGLER的JTAG訪真器)2 設(shè)計PCB(含WIGGLER的JTAG訪真器)3 制版 焊接電壓,確定電壓沒問題 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題 焊接晶體+RAM+ROM+周邊電路,用BANYANT+仿真器連接,可以顯示正確的44B0了 7 用BANYANT+仿真器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內(nèi)存窗口看RAM地址)RAM就沒問題 可以用這個命令“setmem 0xc000000,0xffffffff,32”
我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。8 用我寫的《自己寫了個C工程模板又寫了個使用說明 》里的方法調(diào)試程序吧,寫個簡單的,我當(dāng)時寫個LED閃爍的??春檬共弧0殉绦虬凑铡禙LASH燒寫總結(jié) 》里的燒到FLASH里,測試一下 10 按照《UBOOT 移植操作》移植UBOOT 11 按照《UCLINUX下載簡單說明》下個UCLINUX 12 看看驅(qū)動開發(fā)的方法,自己寫個驅(qū)動看看 13 還有很多事東西著你玩 呵呵
十二 關(guān)于JTAG訪真器
JTAG訪真器現(xiàn)在用的多是簡板的,一個244那種,用的沒什么不好。
按照并口定義不同分幾種,建議選WIFFLER定義的,因為支持的軟件多。這個網(wǎng)上多的是,不多說了。
值得提的是有的JTAG訪真器原理圖上有跳線用來使能復(fù)位信號,這個一般不跳上。就是不用復(fù)位信號,因為JTAG協(xié)議里本身也可以控制44B0復(fù)位。當(dāng)然,板子上的復(fù)位信號跳線也不用跳。十三 哪個公司的ARM 這個是問題比較簡單。1 ARM7主要就幾個公司的
三星,PHILIP,ATMEL的
ATMEL的有比較便宜的AT91SAM7S32 和AT91SAM7S64 專為8位應(yīng)用產(chǎn)品量身定做,價格很便宜好象《3刀吧。和PHILIP的21XX差不多,資料太少,項目中選還不錯。其他兩家上面說了的不多說了吧 ARM9 這個玩2410和2440的多吧,現(xiàn)在2440還比較火啊 可以考慮買個了 但是2410就比較便宜了,作為學(xué)習(xí)來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領(lǐng)域應(yīng)該是消費電子,比如手機PDA,而這上面用的多的應(yīng)該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。
硅谷芯微技術(shù)中心:004km.cn 芯片級IT教育第一品牌 開設(shè)課程:單片機、嵌入式、ARM、Linux、Android、iphone、PCB設(shè)計 硅谷芯微推薦:嵌入式ARM9驅(qū)動實戰(zhàn)開發(fā)班
本文由JACK轉(zhuǎn)載與網(wǎng)絡(luò),如有版權(quán)問題,請通知本人刪除
第五篇:ARM入門者的天堂(一點經(jīng)驗)1
ARM入門者的天堂(一點經(jīng)驗)
一 首先說說ARM的發(fā)展
可以用一片大好來形容,翻開各個公司的網(wǎng)站,招聘里面嵌入式占據(jù)了大半工程師職位。廣義的嵌入式無非幾種:傳統(tǒng)的什么
51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。
客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因為數(shù)字處理與通信領(lǐng)域的空前發(fā)展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應(yīng)用面很廣。
FPGA的兄弟一般做ANSIC(特殊芯片設(shè)計,好象是這么翻譯的)。而ARM單純說來并不比一個單片機強多少,但是它的獨特就在于不斷下降的價格和提升的性能。這完全依靠于ARM公司的戰(zhàn)略,厲害!很佩服他們的戰(zhàn)略眼光!
值得注意的是:在找工作中,企業(yè)(著名的,小的不算)對單純的ARM硬件開發(fā)工程師并不比單片機重視,很少有大企業(yè)的職位里寫“從事過ARM開發(fā)優(yōu)先”。寫的多的是什么?“嵌入式LINUX”到這相信大家看出來了吧,需要的是硬件中的軟件。
二 ARM是硬件還是軟件
很難說,ARM是硬件,LINUX是軟件。ARM的硬件多半已經(jīng)模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰(zhàn)略,再次佩服。
實際中的LINUX的開發(fā)工作更多,更耗時。從這方面說ARM應(yīng)該算是軟件了。
在找工作中更是這樣,舉個例子,聯(lián)想里和ARM最接近的是“BIOS工程師”是軟件,MOTO里接近的是嵌入式LINUX工程師是軟件。而其他很多公司把嵌入式產(chǎn)品開發(fā)歸為硬件。所以,不要討論這個,好好玩轉(zhuǎn)自己的板子才是關(guān)鍵。實在不爽你就把自己叫“嵌入式開發(fā)工程師”
三 要不要買開發(fā)板 買哪家
我的答案是“在你個人的學(xué)習(xí)方法”,但是如果看家是需要看這騙筆記的水平,個人推薦還是買現(xiàn)成的。
1.買
買板子可以把注意力集中在軟件開發(fā)上,軟件開發(fā)(尤其是驅(qū)動)可以不必?fù)?dān)心自己硬件上的問題,我就是以便調(diào)試一邊寫驅(qū)動和程序,每次寫驅(qū)動前就要先確認(rèn)硬件沒問題。另外,買板子更省錢和時間,我自己做的板子,原理圖PCB花了2周以上!制版又15天,回來以后焊接44B0 160個腳!那叫一個麻煩~~花了多少錢呢?2層板,制版費就300塊!當(dāng)然我把接口都外引了,還做了個20X18的LCD背板,板子比較大??傮w下來元件+LCD屏+PCB=11XX塊!夠2410的了。
再有就是買的資料相對來說比較全,但是不要指望有技術(shù)支持!都是騙人的,賣你之后就不會理你。
2.做
自己做可以更了解底層硬件,可以按照自己的要求加?xùn)|西,比如我就加了GPS模塊、GPRS模塊、SD卡模塊,擴了個IIC的35個鍵子的鍵盤、把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。
當(dāng)然,你可以有策略的做,比如像我一樣,把RAM和ROM,網(wǎng)絡(luò)都保持和某現(xiàn)成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個退路。其他的如SD了什么的自己做。都達(dá)到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。
網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫的,再這里對龔俊表達(dá)一下我的敬意!牛人!但是那個圖有個小BUG,我指的是03版的,后來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責(zé)!順便譴責(zé)把龔俊板子偷賣的人。
3.買哪家
個人感覺分3類吧
1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎么開發(fā)ARM,而不是像有的公司自己技術(shù)都沒做好就做個板子出來賣錢。但是最大的不利就是價格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是總線不外擴的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價格性能結(jié)合點。ARM7最適合做工業(yè)控制,ARM普及,銷量都是怎么來的?都是ARM7來的,而44B0是典型的商業(yè)片子。但是,這里如果你看中的是為工作做準(zhǔn)備,還是選能跑UCLINUX的吧。
但是仍然作為第一個推薦,因為菜鳥時期,合適的資料太重要了!在這里被ZLG的務(wù)實精神感動!你看人家那代碼寫的。
2)感覺立宇泰的44B0不錯
硬件沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯的~~
3)找個最便宜的好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時間搜集資料,至于資料全不全,別計較了~~硬件肯定好使就行吧。
四 要不要有51 AVR等單片機基礎(chǔ)
有更好,但沒有也無所謂。
兩個月以前,我只是看別人做,耳濡目染~~,本科學(xué)過單片機,從來沒做過。我們這的技
術(shù)主干做AVR和51,我就跟他們調(diào)過C語言程序。你看出來了?我是個不折不扣的菜鳥吧?
但是做這個之前我特意找了ZLG的兩本書,看了里面的例子和原理圖,這很重要。例程里有匯編有C,都看懂了就OK,不用自己現(xiàn)寫
五 開發(fā)都需要學(xué)習(xí)哪些軟件
總結(jié)起來最主要的有以下幾個吧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)試。PLASHPGM
FLASH燒寫的軟件。AXD在RAM里調(diào)試,掉電就沒有了,方便程序修改。調(diào)試好的程序再下到FLASH里,上電直接運行。
同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。BANYANT調(diào)試代理(不知道名對不,起這么個難記的,我一般都叫它“半羊”因為知道它那幾天剛吃了烤羊)
調(diào)試代理就是用它幫你使用更簡單的JTAG(便宜?。﹣韺崿F(xiàn)原本1K才賣的JTAG仿真器的大部分功能。JTAG調(diào)試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅(qū)動就行了。
調(diào)試代理還有很多種,什么H-JTAG了、ARM7了(不知道具體叫什么,就記得可執(zhí)行文件叫ARM7.EXE)都是,BANYANT比較好。
需要注意的是,沒種調(diào)試代理安裝方法雖然都簡單但都不一樣,需要看說明。而且AXD調(diào)試之前都要運行。省錢了,就別怕麻煩了。ARM-ELF-TOOLS工具鏈
里面是UCLINUX開發(fā)用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發(fā)布的方便你開發(fā)的東西。具體安裝方法看我另一篇筆記。
另外如果你開發(fā)LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。U-BOOT
大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)
生成的BOOTLOADER燒到FLASH里,然后就可以用BOOTLOADER下載 燒寫其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當(dāng)然UCOS的不用這個,用什么我不知道:)
最新版本是1.1.4 具體使用方法看我另一篇筆記吧。UCLINUX包
UCLINUX的源碼包,不用多說了吧?建議大家用現(xiàn)成的先體會一下,然后再自己編譯,裁剪。因為單獨UCLINUX的編輯技術(shù)上比較簡單,但涉及的方面還是比較廣的。VMWARE
老牌的虛擬機軟件,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關(guān)機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網(wǎng)絡(luò)就不用別的書了,其中主要推薦前2本,3是介紹體系結(jié)構(gòu)的,也不錯ARM嵌入式LINUX系統(tǒng)構(gòu)建與驅(qū)動開發(fā),北航版
驅(qū)動寫的很詳細(xì),前期開發(fā)介紹也很好ARM 嵌入式系統(tǒng)實驗教程
(二),北航版
有ZLG2200的原理圖,實驗程序和注釋,了解人家是怎么開發(fā)的。ARM嵌入式系統(tǒng)基礎(chǔ)教程
最重要的是體系結(jié)構(gòu),匯編部分介紹,看看吧,增加理論素質(zhì)。44B0數(shù)據(jù)手冊
寫在這里是強調(diào)它的重要。
不推薦ZLG早期出的紅色皮的ARM什么體系結(jié)構(gòu)~只類的寫的太多,看煩了。
其他的書沒了幾本,沒看見好的,大家有看過的推薦吧。
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當(dāng)單片機用搞開發(fā),工程設(shè)計,用UCOS,小巧,多進程,簡單,體現(xiàn)了ARM7的精髓。LINUX 正根的嵌入式系統(tǒng),LINUX消費與通信領(lǐng)域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板1K達(dá)底吧。但是還是推薦選ARM9+LINUXUCLINUX 算投機嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵VXWORKS
學(xué)好后可以找到高薪工作,但工作機會本身并不比LINUX好找。當(dāng)單片機用
不推薦,雖然我景仰的ZLG一直號召這么干。因為對于學(xué)習(xí)來說多進程的系統(tǒng)設(shè)計才是ARM7的玩頭,至少你也要整個UCOS?。海?/p>
有朋友問我先學(xué)這個當(dāng)基礎(chǔ)不行嗎?那當(dāng)然可以~~但我當(dāng)時就用了1周搞定,就是我先的ADS在RAM中調(diào)試的筆記。后來我清空FLASH用的小段程序還是當(dāng)時寫的LED閃爍程序呢。另外1周里其中還因為自己過于菜,沒把OM設(shè)置好導(dǎo)致晶陣不陣
哈哈。這個是必須做的,但一帶而過。目標(biāo)放的遠(yuǎn)一點。
八 學(xué)習(xí)要用多長時間
我從菜鳥到現(xiàn)在兩個多月,中間被打擾數(shù)次。仍然搞定了PCB設(shè)計與制版,RAM調(diào)試,F(xiàn)LASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現(xiàn)成的),LCD驅(qū)動。
再次坦誠的說:我確實比較菜,說這些不是讓大家羨慕,只是告訴你們“你們應(yīng)該比這個更好”
我相信良好的態(tài)度+合適的方法+及時的總結(jié)=成績
九 ARM都玩什么
就幾點硬件設(shè)計系統(tǒng)移植驅(qū)動開發(fā)應(yīng)用開發(fā)
沒了。其中推薦把注意力放在后兩個上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。
十 我用的什么板子
很多人問我這個問題,我特意寫過一個的。再說一次吧。
我是自己做的,RAM、ROM、8019等比較麻煩而當(dāng)時的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。加了串口通信的GPS模塊、GPRS模塊
一個UART0,一個UART1,當(dāng)與要用超級終端時用跳線切換。SD卡,和7843觸摸屏
同時掛在SPI總線上,因為SPI只能掛一個設(shè)備,同時還做了I/O模擬的準(zhǔn)備,把兩個設(shè)備又通過跳線掛在4個IO上。擴了個IIC的35個鍵子的鍵盤
用的ZLG的7290,不占用CPU,最大支持64個鍵子,只上了35個,其他留接口。4 把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。
所以改動雖然多,但真正很移植了,初期調(diào)試有關(guān)的并沒動,就是為了現(xiàn)在不那么菜的時候做準(zhǔn)備:)
十一 開發(fā)流程
這里是我的開發(fā)流程設(shè)計原理圖(含WIGGLER的JTAG訪真器)設(shè)計PCB(含WIGGLER的JTAG訪真器)制版焊接電壓,確定電壓沒問題焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題 6 焊接晶體+RAM+ROM+周邊電路,用BANYANT+仿真器連接,可以顯示正確的44B0了用BANYANT+仿真器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內(nèi)存窗口看RAM地址)RAM就沒問題
可以用這個命令“setmem 0xc000000,0xffffffff,32”
我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。用我寫的《自己寫了個C工程模板又寫了個使用說明 》里的方法調(diào)試程序吧,寫個簡單的,我當(dāng)時寫個LED閃爍的。看好使不。把程序按照《FLASH燒寫總結(jié) 》里的燒到FLASH里,測試一下按照《UBOOT 移植操作》移植UBOOT按照《UCLINUX下載簡單說明》下個UCLINUX看看驅(qū)動開發(fā)的方法,自己寫個驅(qū)動看看還有很多事東西著你玩 呵呵
十二 關(guān)于JTAG訪真器
JTAG訪真器現(xiàn)在用的多是簡板的,一個244那種,用的沒什么不好。
按照并口定義不同分幾種,建議選WIFFLER定義的,因為支持的軟件多。這個網(wǎng)上多的是,不多說了。
值得提的是有的JTAG訪真器原理圖上有跳線用來使能復(fù)位信號,這個一般不跳上。就是不用復(fù)位信號,因為JTAG協(xié)議里本身也可以控制44B0復(fù)位。
當(dāng)然,板子上的復(fù)位信號跳線也不用跳。
怎么選型號呢當(dāng)然首先我們公司的了啊 哈哈