新聞中心
嵌入式系統(tǒng)是近年來越來越受到開發(fā)者們的關(guān)注。在這個物聯(lián)網(wǎng)的年代,嵌入式系統(tǒng)讓我們能夠享受到便捷的智能生活,而嵌入式系統(tǒng)的核心就是軟件和硬件的緊密結(jié)合。UCLinux是一種很好的嵌入式操作系統(tǒng),它是從Linux內(nèi)核中精簡出的,能夠被移植到各種嵌入式設(shè)備中。如果你對嵌入式系統(tǒng)開發(fā)感興趣,那么看這里!本文將為您詳細介紹UCLinux教程,幫助您快速掌握UCLinux開發(fā)技術(shù)。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),寬城企業(yè)網(wǎng)站建設(shè),寬城品牌網(wǎng)站建設(shè),網(wǎng)站定制,寬城網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,寬城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
一、UCLinux的概述
UCLinux是從Linux內(nèi)核中裁剪而來的嵌入式操作系統(tǒng),它的主要目標(biāo)是運行在沒有MMU(內(nèi)存管理單元)的嵌入式設(shè)備上。相較于傳統(tǒng)的Linux操作系統(tǒng),UCLinux的內(nèi)核更小,更加輕量,因而在嵌入式設(shè)備中占用的資源更少,運行效率更高。除了沒有MMU的設(shè)備上,UCLinux也可以運行在其他的嵌入式設(shè)備上。UCLinux的運行環(huán)境包括bootloader、內(nèi)核和文件系統(tǒng),其中文件系統(tǒng)指的是存儲在固定設(shè)備中的操作系統(tǒng)程序和數(shù)據(jù),用于提供對硬件的訪問。
二、UCLinux的安裝
UCLinux的安裝可以通過源碼編譯的方式完成,需要具備一定的Linux開發(fā)環(huán)境。我們可以先將UCLinux源碼下載到本地,然后通過make指令進行編譯,完成后將生成的內(nèi)核轉(zhuǎn)換成目標(biāo)文件格式。接下來就可以將內(nèi)核燒寫到嵌入式設(shè)備上,實現(xiàn)系統(tǒng)的安裝。此外,也可以通過網(wǎng)上下載UCLinux的二進制可執(zhí)行文件,直接將其燒寫進嵌入式設(shè)備中即可。但是這種方式無法滿足具體需求的情況,所以源碼編譯更具靈活性。
三、UCLinux的基礎(chǔ)知識
1.UCLinux的內(nèi)核
UCLinux內(nèi)核與傳統(tǒng)的Linux內(nèi)核相比,主要有以下幾點不同:沒有內(nèi)存管理單元(MMU)、對大頁的支持不足、對共享庫的支持不足、對多進程的支持不足等。這些特點使得UCLinux具備更高的運行效率和更少的資源占用。
2.UCLinux的文件系統(tǒng)
文件系統(tǒng)是UCLinux運行環(huán)境的一個組成部分,它包括bootloader、內(nèi)核、系統(tǒng)庫、應(yīng)用程序等。其中,bootloader是引導(dǎo)程序,負責(zé)啟動UCLinux操作系統(tǒng);內(nèi)核是操作系統(tǒng)的核心,提供對硬件的訪問和管理;系統(tǒng)庫是可供應(yīng)用程序調(diào)用的一些程序庫;應(yīng)用程序則是具體的功能模塊,例如媒體播放器、網(wǎng)絡(luò)客戶端等。
四、UCLinux的應(yīng)用開發(fā)
UCLinux的應(yīng)用開發(fā)需要掌握C/C++語言、嵌入式開發(fā)環(huán)境和常用的開發(fā)工具等技術(shù)。對于新手來說,可以先嘗試使用UCLinux提供的開發(fā)包進行應(yīng)用程序開發(fā),并借助UCLinux提供的調(diào)試工具進行調(diào)試。同時,也可以借助開源的編譯器和調(diào)試器,例如gcc和gdb,進行開發(fā)和調(diào)試。
:
UCLinux是一種適用于嵌入式系統(tǒng)開發(fā)的操作系統(tǒng),其特點是輕量、高效、靈活,非常適合運行在資源受限的嵌入式設(shè)備上。本文介紹了UCLinux的概述、安裝和基礎(chǔ)知識,以及應(yīng)用開發(fā)的相關(guān)技術(shù)。如果您想深入學(xué)習(xí)嵌入式系統(tǒng)開發(fā),不妨從UCLinux入手。希望本文能夠幫助到大家。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!
想學(xué)嵌入式Linux,《嵌入式Linux應(yīng)用程序開發(fā)詳解》和《嵌入式Linux應(yīng)用程序開發(fā)標(biāo)準(zhǔn)教程》哪本好啊!
我沒有看過,我也不知道??!
開發(fā)板用友善之臂的吧
mini2440 連3.5寸屏500塊錢的樣子
有好幾張DVD學(xué)習(xí)光盤
這款口碑比較高
嵌入式Linux操作系統(tǒng)學(xué)習(xí)規(guī)劃
ARM+LINUX路線,主攻嵌入式Linux操作系統(tǒng)及其上應(yīng)用軟件開發(fā)目標(biāo):
(1) 掌握主流嵌入式微處理器的結(jié)構(gòu)與原理(初步定為arm9)
(2) 必須掌握一個嵌入式操作系統(tǒng) (初步定為uclinux或linux,版本待定)
(3) 必須熟悉嵌入式軟件開發(fā)流程并至少做一個嵌入式軟件項目。
從事嵌入式軟件開發(fā)的好處是:
(1)目前國內(nèi)外這方面的人都很稀缺。這一領(lǐng)域入門門檻較高,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因為這一領(lǐng)域較新,目前發(fā)展太快,大多數(shù)人無條件接觸。
(2)與企業(yè)計算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強度通常低一些(但收入不低)。
(3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,嵌入式不像應(yīng)用軟件那樣容易被盜版。硬件設(shè)計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計軟件就變成自己的產(chǎn)品了。
(4)興趣所在,這是最主要的。
從事嵌入式軟件開發(fā)的缺點是:
(1)入門起點較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級軟件功底不深,則可能不適于此行。
(2)這方面的企業(yè)數(shù)量要遠少于企業(yè)計算類企業(yè)。
(3)有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無此要求,只要有經(jīng)驗即可。
(4)平臺依托強,換平臺比較辛苦。
興趣的由來:
1、成功觀念不同,不虛度此生,就是我的成功。
2、喜歡思考,挑戰(zhàn)邏輯思維。
3、喜歡C
C是一種能發(fā)揮思維極限的語言。關(guān)于C的精神的一些方面可以被概述成短句如下:
相信程序員。
不要阻止程序員做那些需要去做的。
保持語言短小精干。
一種方法做一個操作。
使得它運行的夠快,盡管它并不能保證將是可移植的。
4、喜歡底層開發(fā),討厭vb類開發(fā)工具(并不是說vb不好)。
5、發(fā)展前景好,適合創(chuàng)業(yè),不想自己要死了的時候還是一個工程師。
方法步驟:
1、基礎(chǔ)知識:
目的:能看懂硬件工作原理,但重點在嵌入式軟件,特別是操作系統(tǒng)級軟件,那將是我的優(yōu)勢。
科目:數(shù)字電路、計算機組成原理、嵌入式微處理器結(jié)構(gòu)。
匯編語言、C/C++、編譯原理、離散數(shù)學(xué)。
數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)、軟件工程、網(wǎng)絡(luò)、數(shù)據(jù)庫。
方法:雖科目眾多,但都是較簡單的基礎(chǔ),且大部分已掌握。不一定全學(xué),可根據(jù)需要選修。慶叢
主攻書籍:the c++ programming language(一直沒時間讀)、數(shù)據(jù)結(jié)構(gòu)譽伍櫻-C2。
2、學(xué)習(xí)linux:
目的:深入掌握linux系統(tǒng)。
方法:使用linux—〉linxu系統(tǒng)編程開發(fā)—〉驅(qū)動開發(fā)和分析linux內(nèi)核。先看深,那主講原理??磶妆楹?,看情景分析,對照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學(xué)習(xí)。最后深入代碼。
主攻書籍:linux內(nèi)核完全剖析、unix環(huán)境高級編程、深入理解linux內(nèi)核、情景分析和源代。
3、學(xué)習(xí)嵌入式linux:
目的:掌握嵌入式處理器其及系統(tǒng)。
方法:(1)嵌入式微處理器結(jié)構(gòu)與應(yīng)用:直接arm原理及匯編即可,不要重復(fù)x86。
(2)嵌入式操作系統(tǒng)類:ucOS/II簡單,開源,可供入門。而后深入研究uClinux。
(3)必須有塊開發(fā)板(arm9以上),有條件可參加培訓(xùn)(進步快,能認(rèn)識些朋友)。
主攻書籍:毛德橘肢操的《嵌入式系統(tǒng)》及其他arm9手冊與arm匯編指令等。
4、深入學(xué)習(xí):
A、數(shù)字圖像壓縮技術(shù):主要是應(yīng)掌握MPEG、mp3等編解碼算法和技術(shù)。
B、通信協(xié)議及編程技術(shù):TCP/IP協(xié)議、802.11,Bluetooth,GPRS、G、CDMA等。
:46 回復(fù)
122.90.173.* 2樓
C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA等。
D、DSP技術(shù):Digital Signal Process,DSP處理器通過硬件實現(xiàn)數(shù)字信號處理算法。
說明:太多細節(jié)未說明,可根據(jù)實際情況調(diào)整。重點在于1、3,不必完全按照順序作。對于學(xué)習(xí)c++,理由是c++不只是一種語言,一種工具,她還是一種藝術(shù),一種文化,一種哲學(xué)理念、但不是拿來炫耀得東西。對于linux內(nèi)核,學(xué)習(xí)編程,讀一些優(yōu)秀代碼也是有必要的。
注意: 要學(xué)會舉一反多,有強大的基礎(chǔ),很多東西簡單看看就能會。想成為合格的程序員,前提是必須熟練至少一種編程語言,并具有良好的邏輯思維。一定要理論結(jié)合實踐。
不要一味鉆研技術(shù),雖然擠出時間是很難做到的,但還是要留點余地去完善其他的愛好,比如宇宙,素描、機械、管理,心理學(xué)、游戲、科幻電影。還有一些不愿意做但必須要做的!
技術(shù)是通過編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機會來了在創(chuàng)業(yè)(不要相信有奇跡發(fā)生,盲目創(chuàng)業(yè)很難成功,即便成功了發(fā)展空間也不一定很大)。
嵌入式書籍推薦
Linux基礎(chǔ)
、《Linux與Unix Shell 編程指南》
C語言基礎(chǔ)
、《C Primer Plus,5th Edition》Stephen Prata著
、《The C Programming Language, 2nd Edition》Brian W. Kernighan David M. Rithie(K & R)著
、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
、《嵌入式Linux應(yīng)用程序開發(fā)詳解》
Linux內(nèi)核
、《深入理解Linux內(nèi)核》(第三版)
、《Linux內(nèi)核源代碼情景分析》毛德操 胡希明著
研發(fā)方向
、《UNIX Network Programming》(UNP)
、《TCP/IP詳解》
、《Linux內(nèi)核編程》
、《Linux設(shè)備驅(qū)動開發(fā)》(LDD)
、《Linux高級程序設(shè)計》 楊宗德著
硬件基礎(chǔ)
、《ARM體系結(jié)構(gòu)與編程》杜春雷著
、S3C2410 Datasheet
英語基礎(chǔ)
、《計算機與通信專業(yè)英語》
系統(tǒng)教程
、《嵌入式系統(tǒng)――體系結(jié)構(gòu)、編程與設(shè)計》
、《嵌入式系統(tǒng)――采用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
、《Building Embedded Linux Systems》
、《嵌入式ARM系統(tǒng)原理與實例開發(fā)》 楊宗德著
理論基礎(chǔ)
、《算法導(dǎo)論》
、《數(shù)據(jù)結(jié)構(gòu)(C語言版)》
、《計算機組織與體系結(jié)構(gòu)?性能分析》
、《深入理解計算機系統(tǒng)》Randal E. Bryant David O”Hallaron著
、《操作系統(tǒng):精髓與設(shè)計原理》
、《編譯原理》
、《數(shù)據(jù)通信與計算機網(wǎng)絡(luò)》
、《數(shù)據(jù)壓縮原理與應(yīng)用》
C語言書籍推薦
. The C programming language 《C程序設(shè)計語言》
. Pointers on C 《C和指針》
. C traps and pitfalls 《C陷阱與缺陷》
. Expert C Lanuage 《專家C編程》
. Writing Clean Code —–Microsoft Techiniques for Developing Bug-free C Programs
《編程精粹–Microsoft 編寫優(yōu)質(zhì)無錯C程序秘訣》
. Programming Embedded Systems in C and C++ 《嵌入式系統(tǒng)編程》
.《C語言嵌入式系統(tǒng)編程修煉》
.《高質(zhì)量C++/C編程指南》林銳
盡可能多的編碼,要學(xué)好C,不能只注重C本身。算法,架構(gòu)方式等都很重要。
這里很多書其實是推薦而已,不必太在意,關(guān)鍵還是基礎(chǔ),才是重中之重?。?!
怎么學(xué)習(xí)ARM和DSP?
一 首先說說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)略眼光?。?/p>
值得注意的是:在找工作中,企業(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ū)動)可以不必擔(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了 什么的自己做。都達到了~~就是薯帆手費錢,費時間。
再有就是給做數(shù)嫌的朋友幾點建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的資料,一定要拿到一張沒問題的原理圖。
網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫的,再這里對龔俊表達一下我的敬意?。∨H?!
但是那個圖有個小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é)起來最主要的有以下幾個吧
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里,上電直接運行。
同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM更好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。
3 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)試之前都要運行。省錢了,就別怕麻煩了。
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,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網(wǎng)絡(luò)就不用別的書了,其中主要推薦前2本,3是介紹體系結(jié)構(gòu)的,也不錯
1 ARM嵌入式LINUX系統(tǒng)構(gòu)建與驅(qū)動開發(fā),北航版
驅(qū)動寫的很詳細,前期開發(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)單片機用
1 搞開發(fā),工程設(shè)計,用UCOS,小巧,多進程,簡單,體現(xiàn)了ARM7的精髓。
2 LINUX 正根的嵌入式系統(tǒng),LINUX消費與通信領(lǐng)域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板1K達底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵
4 VXWORKS
學(xué)好后可以找到高薪工作,但工作機會本身并不比LINUX好找。
5 當(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)放的遠一點。
八 學(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ā)流程
1 設(shè)計原理圖(含WIGGLER的JTAG訪真器)
2 設(shè)計PCB(含WIGGLER的JTAG訪真器)
3 制版
4 焊接電壓,確定電壓沒問題
5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題
6 焊接晶體+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閃爍的。看好使不。
9 把程序按照《FLASH燒寫總結(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差不多,資料太少,項目中選還不錯。
其他兩家上面說了的不多說了吧
2 ARM9
這個玩2410和2440的多吧,現(xiàn)在2440還比較火啊 可以考慮買個了
但是2410就比較便宜了,作為學(xué)習(xí)來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領(lǐng)域應(yīng)該是消費電子,比如手機PDA,而這上面用的多的應(yīng)該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。
一 首先說說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ū)動)可以不必擔(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了 什么的自己做。都達到了~~就是薯帆手費錢,費時間。
再有就是給做數(shù)嫌的朋友幾點建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的資料,一定要拿到一張沒問題的原理圖。
網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫的,再這里對龔俊表達一下我的敬意??!牛人!
但是那個圖有個小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é)起來最主要的有以下幾個吧
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里,上電直接運行。
同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM更好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。
3 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)試之前都要運行。省錢了,就別怕麻煩了。
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,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網(wǎng)絡(luò)就不用別的書了,其中主要推薦前2本,3是介紹體系結(jié)構(gòu)的,也不錯
1 ARM嵌入式LINUX系統(tǒng)構(gòu)建與驅(qū)動開發(fā),北航版
驅(qū)動寫的很詳細,前期開發(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)單片機用
1 搞開發(fā),工程設(shè)計,用UCOS,小巧,多進程,簡單,體現(xiàn)了ARM7的精髓。
2 LINUX 正根的嵌入式系統(tǒng),LINUX消費與通信領(lǐng)域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板1K達底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵
4 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)放的遠一點。
八 學(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ā)流程
1 設(shè)計原理圖(含WIGGLER的JTAG訪真器)
2 設(shè)計PCB(含WIGGLER的JTAG訪真器)
3 制版
4 焊接電壓,確定電壓沒問題
5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題
6 焊接晶體+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閃爍的??春檬共?。
9 把程序按照《FLASH燒寫總結(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差不多,資料太少,項目中選還不錯。
其他兩家上面說了的不多說了吧
2 ARM9
這個玩2410和2440的多吧,現(xiàn)在2440還比較火啊 可以考慮買個了
但是2410就比較便宜了,作為學(xué)習(xí)來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領(lǐng)域應(yīng)該是消費電子,比如手機PDA,而這上面用的多的應(yīng)該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。
一 首先說說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ū)動)可以不必擔(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了 什么的自己做。都達到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現(xiàn)成的板子,盡量多搜集其他板子的資料數(shù)嫌,一定要拿到一張沒問題的原理圖。
網(wǎng)上流傳的原理圖多數(shù)是龔俊03年畫的,再這里對龔俊表達一下我的敬意!!牛人!
但是那個圖有個小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é)起來最主要的有以下幾個吧
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里,上電直接運行。
同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM更好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。
3 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,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網(wǎng)絡(luò)就不用別的書了,其中主要推薦前2本,3是介紹體系結(jié)構(gòu)的,也不錯
1 ARM嵌入式LINUX系統(tǒng)構(gòu)建與驅(qū)動開發(fā),北航版
驅(qū)動寫的很詳細,前期開發(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)單片機用
1 搞開發(fā),工程設(shè)計,用UCOS,小巧,多進程,簡單,體現(xiàn)了ARM7的精髓。
2 LINUX 正根的嵌入式系統(tǒng),LINUX消費與通信領(lǐng)域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發(fā)板1K達底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機嵌入式系統(tǒng):)ARM7上可以跑,由有LINUX近親,學(xué)好好可以比較方便的轉(zhuǎn)向LINUX,像我一樣的窮鬼用吧,呵呵
4 VXWORKS
學(xué)好后可以找到高薪工作,但工作機會本身并不比LINUX好找。
5 當(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)放的遠一點。
八 學(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ā)流程
1 設(shè)計原理圖(含WIGGLER的JTAG訪真器)
2 設(shè)計PCB(含WIGGLER的JTAG訪真器)
3 制版
4 焊接電壓,確定電壓沒問題
5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題
6 焊接晶體+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閃爍的??春檬共弧?/p>
9 把程序按照《FLASH燒寫總結(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差不多,資料太少,項目中選還不錯。
其他兩家上面說了的不多說了吧
2 ARM9
這個玩2410和2440的多吧,現(xiàn)在2440還比較火啊 可以考慮買個了
但是2410就比較便宜了,作為學(xué)習(xí)來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領(lǐng)域應(yīng)該是消費電子,比如手機PDA,而這上面用的多的應(yīng)該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。
uclinux 教程的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于uclinux 教程,學(xué)習(xí)嵌入式系統(tǒng)開發(fā),看這里!UCLinux教程詳解!,想學(xué)嵌入式Linux,《嵌入式Linux應(yīng)用程序開發(fā)詳解》和《嵌入式Linux應(yīng)用程序開發(fā)標(biāo)準(zhǔn)教程》哪本好?。?怎么學(xué)習(xí)ARM和DSP?的信息別忘了在本站進行查找喔。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機租用。成都機房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長,共創(chuàng)價值。
網(wǎng)站欄目:學(xué)習(xí)嵌入式系統(tǒng)開發(fā),看這里!UCLinux教程詳解!(uclinux教程)
當(dāng)前鏈接:http://www.dlmjj.cn/article/cdedjio.html


咨詢
建站咨詢
