① CPU性能大亂斗!國產CPU實力揭露
一直一來,缺芯少魂一直是中國信息產業的心病,中國的CPU市場也一直被Intel、ARM等國外廠商壟斷,龍芯、申威、飛騰等國產CPU在社會上也往往遭到別有用心之徒諸如「打磨晶元」、「騙經費」、「政績工程」等輿論抨擊。不久前,採用申威26010的神威太湖之光在TOP500刷榜,飛騰也公布了採用ARM指令集的飛騰1500A和飛騰2000,龍芯的3A3000也順利完成流片,那麼這些國產CPU的性能到底如何呢?
如何評價CPU
如何評價CPU的性能呢?從體系結構的角度來看,有個指標叫MIPS,即每分鍾執行多少條指令,執行指令數量越多,性能就越好,但這存在一個問題,當CPU指令集不同的時候,比較MIPS就意義不大了——比如A一條指令只算一個加法,B一條指令能做一個1024點的FFT。特別是在不同指令集的情況下,如何評價CPU的性能呢?
評價CPU性能必須考慮應用的多樣性,比如科學運算重視雙精浮點性能,但是如果數據供不上,運算能力再強也沒用;比如PC日常使用更偏重於定點性能;再比如計算中心多任務環境關注的是吞吐率......因此單純用某一個指標來衡量CPU性能是不科學的,必須綜合考量。
業界也推出了很多基準測試程序,比如針對CPU的SPEC,針對嵌入式應用的EEMBC等。SPEC測試是比較權威的測試程序。和一些黑箱測試程序調整計分方式和計分權重後測試結果就發旦搜生變化不同,SPEC測試到底跑了什麼程序,以及各項程序跑分和計分方式全部公開透明,而御兆且覆蓋范圍廣——SPEC2000有12個定點程序,14個浮點程序,而且有比較強的代表性,比如gzip、vpr、gcc、mef、eon等。而SPEC2006則把定點程序擴展到14個定點程序和16個浮點程序。
在計分方法上,SPEC在計分上採用歸一化的幾何平均方法來進行綜合性能評估——將不同CPU的執行時間與參照對象相比較後得到一個相對值。SEPC2000的參照對象是Ultra SPARC 2工作站的主頻為300Mhz的CPU。如果運行測試程序1的時間是參照對象的十分之一的話,測試就是1000分,測試程序2的耗時是參照對象的八分之一的話,則為800分.....最後再算幾何平均——比如SEPC2000有12個定點測試,就將12個測試成績相乘再開12次方,SPEC2006相對於SPEC2000而言僅僅是擴展了幾項測試程序,使測試更加科學合理。這里,我們以三星獵戶座7420和華為麒麟950為例計算SPEC測試成績。
「科普中國」是中國科協攜同社會各方利用信息化手段開展科學傳播的科學權威品牌。
本文由科普中國融合創作出品,轉載請註明出處。
② 交叉編譯幾種常見的報錯
(1)交叉編譯器
在主機上用來編譯其它類型機器上可執行代碼的編譯器就叫交叉編譯器,我們進行嵌入式linux的開發主機大部分都是X86,而我們的嵌入式系統的處理器有可能是ARM/MIPS等非X86處理器,這時候就必須使用ARM/MIPS的交叉編譯器才能編譯出在這些處理器上能夠執行的代碼。這里我們使用的是ARM最新的EABI編譯器。
交叉編譯器在編譯的時候,對於浮點運行會預設硬浮點運算FPA(float point architecture),而沒有FPA的CPU,比如三星的2440等,會使用FPE(float point emulation即軟浮點),這樣在速度上就會受到極大限制。使用EABI(embeded application binary interface)則可以對此改善處理。
(2)不修改MAKEFILE來建立編譯環境
將arm-2008q3.tar.bz2拷貝到ubuntu系統的某個目錄,解壓後。使用VI編輯/etc/bash.bashrc,在文件最後加入環境變數設置(註:加bin的含義是交叉編譯器工具目錄):
保存後,用source運行一次該文件,就可以了。
(3)gcc: error trying to exec 'cc1': execvp: No such file or directory 的解決
今天在編譯開發板環境時,明明設置好編譯器的環境變數了,編譯時就是會出現:gcc: error trying to exec 'cc1': execvp: No such file or directory 錯誤提示。後來發現一個方法可以解決,輸入:whereis gcc,就可以了發現好幾個gcc,包括/usr/bin/gcc,所以我就把PATH路徑設過去,就OK了。
(4)Clock skew detected. Your build may be incomplete
如果你裝了Windows Linux雙系統,系統時間很可能出問題,從而造成文件修改時間比系統時間晚,兩種辦法:
1,應該是你的PC的系統時鍾錯誤,在BIOS中修改正確。
2,使用touch命令將所有文件的時間戳修改為你系統的當前時間。解決方法:find ./-name "*" -exec touch {} \;
③ RISC-V與ARM架構相比有何優勢和劣勢
EDN電子技術設計:請用您自己的話為讀者大致介紹一下RISC-V。
胡振波:
RISC-V是一種簡單、開放、免費的全新指令集架構。RISC-V最大的特點是「開放」,它的開放性允許它可以自由地被用於任何目的、允許任何人設計、製造和銷售基於RISC-V的晶元或軟體,這種開放性,在處理器領域是徹底的第一次。
RISC-V這種開放架構的誕生可以說是時代發展的必然。RISC-V生態體系正在全球范圍內快速崛起,成為半導體產業及物聯網、邊緣計算等新興應用領域的重要創新焦點。
RISC-V基金會於2015年由矽谷相關公司發起並成立,至今已有150多個企業或單位加入,包括谷歌、華為、英偉達、高通、麻省理工學院、普林頓大學、印度理工大學、中科院計算所等。目前RISC-V由基金會統一維護。
美國國防高級研究計劃局(DAPRA)已連續多年通過專項方式支持RISC-V指令集的研究和實用化。2017年,印度政府大力資助基於RISC-V的處理器項目,RISC-V成為印度的事實國家指令集。我國RISC-V雖然處於起步階段,但是發展非常迅速。今年7月,上海市政府率先發布了中國大陸首個支持RISC-V的政策,這對於RISC-V指令集在中國的發展起到了重要的推動作用。10月17日,中國RISC-V產業聯盟成立,標志著我國在RISC-V生態系統建設上正式邁出了堅實的一步。
EDN電子技術設計:請分別從技術和商業的角度,分析RISC-V相對於ARM架構的優勢和劣勢。
胡振波:
優勢非常明顯,RISC-V是一種開放的架構,從 歷史 的經驗來看,開放的生態一定會比封閉的好。RISC-V技術是後發技術,所以能夠總結前人的經驗教訓,做到相對簡潔和干凈。
但是,劣勢也很明顯,由於RISC-V誕生時間太短,相關的編譯器、開發工具和軟體開發環境(IDE)以及其它生態要素還在發展。目前RISC-V具有全套開源免費的編譯器、開發工具和軟體開發環境,這是RISC-V的巨大優勢,但是開源版本相比ARM的商用編譯器和IDE而言,還頗有差距。
RISC-V必須依靠強有力的商業玩家來長期支持和推進,方能得到持續發展。目前從全世界范圍來看,在RISC-V技術陣營中,台灣的Andes公司(晶心 科技 )開發的編譯器、開發工具和軟體開發環境(IDE)是最為完善和先進的,幾乎可以和ARM的工具相媲美。另外,還有很多RISC-V的新創公司(譬如芯來 科技 ),也會 探索 新的商業模式。
EDN電子技術設計:哪些市場應用和產品將會成為RISC-V架構快速發展的驅動力?
胡振波:
從技術的角度來講,RISC-V架構理論上是能夠實現從低功耗處理器內核到支持Linux操作系統的高性能處理器內核的全方位產品。譬如,目前美國的SiFive公司以及台灣地區專業處理器IP公司Andes(晶心 科技 )都推出了有競爭力的、支持Linux的RISC-V處理器內核。芯來 科技 目前提供面向低功耗領域的RISC-V處理器內核。
處理器領域的生態建設需要一定的時間,短期內比較容易落地的是物聯網和邊緣計算領域:
• 由於RISC-V擁有精簡、低功耗、模塊化、可擴展等技術優勢,因此尤其適合對生態依賴比較小的封閉或半封閉產品、深嵌入式或新興的物聯網、包含嵌入式人工智慧等應用的邊緣計算領域及需要定製化的場景。
• RISC-V能夠為物聯網行業帶來顯著的靈活性和成本優勢,在未來的20年,物聯網和邊緣計算領域的處理器內核年出貨量預計會達到萬億顆的規模。中國大陸由於擁有幾乎全球最大的市場空間,理論上RISC-V會大有可為。
EDN電子技術設計:RISC-V對中國半導體產業的發展會帶來哪些影響?
胡振波:
從長遠來看,RISC-V對中國半導體產業會產生劃時代的意義,主要體現在以下5個方面:
• 通過RISC-V架構擺脫國外的壟斷,實現處理器內核的國產自主。這種處理器內核不是閉門造車做出來的,而是擁有全世界認可的主流架構和主流生態。
• 通過RISC-V可以極大地加強我國處理器IP話語權。IP產業處於行業最上游,遠離其它產業,並沒有得到產業和國家的重視。RISC-V給了中國IP產業機會,雖然目前我國在RISC-V上仍然落後,但相對於其它IP技術,落後並不太遠。
• RISC-V可以推動創新和差異化。由於RISC-V的開放、簡潔、可擴展以及低成本,可以給終端應用市場帶來巨大創新。
• RISC-V可以明顯降低晶元研發成本。RISC-V的產業鏈日趨完善,從處理器內核到硬體設計、操作系統、開發工具、基準測試以及解決方案,全產業鏈具備完整性,使得行業可以均攤一切成本。
RISC-V的逐漸普及在一定程度上促進了行業本土化的發展,創造了更多行業機會,為產業界和學術界積累大量CPU人才。
EDN電子技術設計:您認為哪些因素會妨礙中國IC設計公司採用RISC-V架構?
胡振波:
以下三個主要因素會起到妨礙作用:
首先,ARM在中國影響力巨大。在晶元處理器內核方面,由於中國長期缺乏自主的通用處理器內核,幾乎都是購買國外的ARM處理器內核,形成了習慣。對於RISC-V這樣一種新架構的出現,很長一段時間內人們持懷疑態度。ARM在中國還成立了合資公司(全球唯一的國家),所以ARM在中國市場尤其顯得強勢,這使RISC-V在中國的傳播相比別的國家顯得非常緩慢。
其次,RISC-V被誤導為免費。RISC-V架構是一種Free的指令集架構,准確地說Free應該理解為「自由「而不是「免費」,指令集架構也不是一款具體的處理器內核。大多數人對於處理器的一些基本概念並不了解,將RISC-V與「一款免費開源的處理器「劃上等號,而免費往往是劣質的代名詞。這種誤導嚴重影響了RISC-V在中國的正常傳播和發展。
最後,RISC-V還被誤導為一種全新的設計語言和流程。雖然目前很多開源的RISC-V內核使用的是全新的設計語言和流程,但並不代表RISC-V處理器內核就等價於全新的設計語言和流程。全新的設計語言和流程帶來的不確定性和質量隱憂會讓IC設計公司(尤其是國內公司)感到排斥和不安,這種誤導也會影響RISC-V處理器內核在國內的採納和傳播。其實RISC-V只是一種全新的處理器架構(以及衍生出的新生態),無關乎設計語言和流程。使用工業級成熟、穩健的設計方法更能設計出穩健可靠的RISC-V處理器內核,如芯來 科技 、台灣Andes公司(晶心 科技 )以及其它一些公司使用工業級成熟、穩健的設計方法設計出的RISC-V處理器內核。
EDN電子技術設計:您專門寫了一本設計RISC-V處理器的書,請為有志於從事RISC-V架構設計的IC設計工程師和高校學生提幾點建議和心得體會。
胡振波:
我認為目前學習RISC-V架構正當時,因為:
RISC-V的開放性使得任何公司與個人均可依據開放的RISC-V架構設計自己所需的處理器。很多科研機構開始使用RISC-V開發處理器,獨立的RISC-V處理器IP公司開始出現,一些實力雄厚的巨頭(如NVIDIA、三星等)開始使用RISC-V架構開發其自有的處理器內核,可以說是舊時王謝堂前燕,飛入尋常百姓家。因此,掌握RISC-V架構,會變成一種通用技能,對科研、學習和就業大有裨益。
當前國內CPU產業熱潮方興未艾,x86、ARM、MIPS等傳統商用處理器架構在國內呈全面開花之勢。龍芯、兆芯、飛騰等資深專業CPU公司在不斷突破;華為、展訊等一線大公司也相繼開始研發自主的處理器內核;海光、華芯通等新銳紛紛摩拳擦掌。開放的RISC-V架構的誕生,更是為此番繁華增添了精彩。同時,各種人工智慧AI處理器也採用RISC-V作為核心,RISC-V的相關知識完全能夠應用於AI處理器晶元領域。
綜上所述,我認為學習RISC-V正當時。
但是,計算機體系結構相關書籍往往不利於初學者入門,尤其是RISC-V誕生時間太短,全英文版的指令集手冊專業性強,晦澀難懂,非常不利於國內用戶學習上手。另外很多對RISC-V感興趣的初學者基本背景知識比較薄弱,需要補足。
為了促進RISC-V在國內的普及,尤其是被廣大初學愛好者接受,我撰寫了國內第一本關於RISC-V處理器的通俗書籍《手把手教你設計CPU——RISC-V處理器篇》,詳細介紹了相關的基礎背景知識,系統通俗地講述了RISC-V的前世今生,還配套了自己開發的開源蜂鳥E203處理器內核。
目前有關如何使用RISC-V的嵌入式軟體開發方面的中文資料仍然欠缺,我撰寫的另一本新書《RISC-V架構與嵌入式開發快速入門》也即將上市,相信會在某種程度上緩解這一問題。
EDN電子技術設計:您創立芯來 科技 公司專門開發RISC-V內核,請談一下公司的商業模式和願景。
胡振波:
芯來 科技 (Nuclei System Technology Co., Ltd.)作為中國大陸本土唯一專注於RISC-V處理器內核開發的公司,是RISC-V基金會銀級會員,中國RISC-V產業聯盟副理事長單位。
在商業模式上,主要是傳統的處理器IP授權模式和面向垂直領域的深度定製模式,同時還在進行一些全新的商業模式 探索 。
我們有兩個願景:一方面,IoT和邊緣計算領域的處理器內核IP年出貨量會達到萬億顆。如此巨大的市場,我們希望至少這個市場的一部分屬於我們本土公司,從而讓大多數本土晶元公司用上國產的RISC-V處理器內核。另一方面,目前國內的RISC-V技術力量非常薄弱,希望芯來 科技 能夠為RISC-V陣營做出我們中國人應該做出的貢獻。
EDN電子技術設計:除了RISC-V內核外,要開發出商用的RISC-V處理器還需要哪些開發工具和環境?
胡振波:
處理器是軟硬體的交匯點,所以必須有完善的編譯器、開發工具和軟體開發環境(IDE),處理器內核才能夠被用戶順利使用起來。
目前RISC-V具有全套開源免費的編譯器、開發工具和軟體開發環境(IDE),這是RISC-V的巨大優勢,但是開源版本相比ARM等傳統架構的編譯器和IDE而言,還頗有差距。
除了開源版本之外,還有專業公司提供的專業版本。目前從全世界范圍來看,在RISC-V技術陣營中,台灣的Andes公司(晶心 科技 )開發的編譯器、開發工具和軟體開發環境(IDE)最為完善和先進,幾乎可以和ARM的工具相媲美,這一點也值得我們去學習。
延伸閱讀:
RISC-V真的是中國晶元實現自主、可控、創新和繁榮的希望嗎?
④ 關於LINUX的優勢重要性已自然的從各種渠道耳濡目染,想學習它。請朋友指點怎樣學習怎樣展開
1.抓住51開發ARM
這幾個月來我一直都爬在51的問題,自己都有一點笑自己了,用了4個月的時間,來鞏固51的原理和程序,還好我自己算是走過來了,自己笨,身邊的高才生又看不上51的原理,他們都比較「牛」,說51過時了,你問那個做什麼???我比較郁悶!過時嗎?我有一點懷疑?
他們不願意說有他們自己的理由,沒有人強求,靠自己好了。
我自己個人的觀點:51是一個基礎,而且還很重要,這是再我看了ARM之後感覺到的。它可以加速你的ARM學習速度,真得!不相信你試一試好了。
凡是要求一個速度、效率,不要做一些無用功,抓緊身邊的每一個一分鍾,人是活的,東西(知識、書)是得,想要做的事情因此就簡單了。
2.我在網上看到了一篇很不錯的ARM文章,粘貼過來,為了和像我一樣在很少有人幫助的情況下,自學ARM 的難兄難弟們。
「ARM怎麼入門」。我不是高手,仍然是菜鳥。
但是回想起自己當時的迷茫,特意寫了這篇東西,當作給和我一樣的兄弟姐妹的幫助吧。問這個問題的人多半不是已經工作的工程師,而是和我一樣是學生,所以這篇筆記就把看家當成我一樣的菜鳥,高手勿怪。
首先聲明:本人還沒有找工作,事實上處於研究生剛畢業,還沒開始找工作的空閑時間,44B0隻是興趣所在,打發時間。
所有看法完全是自己的感受,不代表任何他人。錯了的觀點各位幫我糾正。再次補充:很多朋友看了上面的話就問我為什麼研究生畢業了還不找工作:)說是打發時間,其實是因為研究生的時候帶了一個項目,申請提前畢業以後項目還有塊尾巴,答應導師把項目做完再走:)就這么簡單。男人總點負點責,呵呵
以下問題常被問到,我就想到哪說到哪吧。
一 首先說說ARM的發展
可以用一片大好來形容,翻開各個公司的網站,招聘裡面嵌入式占據了大半工程師職弊瞎喚位。
廣義的嵌入式無非幾種:傳統的什麼51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。
客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因為數字處理與通信領域的空前發展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應用面很廣。
FPGA的兄弟一般做ANSIC(特殊晶元設計,好象是這么翻譯的)。而ARM單純說來並不比一個單片機強多少,但是它的獨特就在於不斷下降的價格和提升的性能。這完全依靠於ARM公司的戰略,厲害!!很佩服他們的戰略眼光!!
值得注意的是:在找工作中,企業(著名的,小的不算)對單純的ARM硬體開發工程師並不比單片機重視神並,很少有大企業的職位里寫「從事過ARM開發優先」。寫的多的是什麼?「嵌入式LINUX」到這相信大家看出來了吧,需要的是硬體中的軟體。
二 ARM是硬體還是軟體
很難說,ARM是硬體,LINUX是軟體。ARM的硬體多半已經模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰略,再次佩服。
實際中的LINUX的開發工作更多,更耗時。從這方面說ARM應該算是軟體了。
在找工作中更是這樣,舉個例租凱子,聯想里和ARM最接近的是「BIOS工程師」是軟體,MOTO里接近的是嵌入式LINUX工程師是軟體。而其他很多公司把嵌入式產品開發歸為硬體。所以,不要討論這個,好好玩轉自己的板子才是關鍵。實在不爽你就把自己叫「嵌入式開發工程師」
三 要不要買開發板 買哪家
我的答案是「在你個人的學習方法」,但是如果看家是需要看這騙筆記的水平,個人推薦還是買現成的。
1 買
買板子可以把注意力集中在軟體開發上,軟體開發(尤其是驅動)可以不必擔心自己硬體上的問題,我就是以便調試一邊寫驅動和程序,每次寫驅動前就要先確認硬體沒問題。另外,買板子更省錢和時間,我自己做的板子,原理圖PCB花了2周以上!製版又15天,回來以後焊接44B0 160個腳!那叫一個麻煩 ~~花了多少錢呢?2層板,製版費就300塊!當然 我把介面都外引了,還做了個20X18的LCD背板,板子比較大。總體下來 元件+LCD屏+PCB =11XX塊!夠2410的了。
再有就是買的資料相對來說比較全,但是不要指望有技術支持!都是騙人的,賣你之後就不會理你。
2 做
自己做可以更了解底層硬體,可以按照自己的要求加東西,比如我就加了GPS模塊、 GPRS模塊 、SD卡模塊,擴了個IIC的35個鍵子的鍵盤、把LCD介面按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。
當然,你可以有策略的做,比如像我一樣,把RAM和ROM,網路都保持和某現成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個退路。其他的如SD了 什麼的自己做。都達到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。
網上流傳的原理圖多數是龔俊03年畫的,再這里對龔俊表達一下我的敬意!!牛人!
但是那個圖有個小BUG,我指的是03版的,後來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責!順便譴責把龔俊板子偷賣的人。
3 買哪家
個人感覺分3類吧
1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎麼開發ARM,而不是像有的公司自己技術都沒做好就做個板子出來賣錢。但是最大的不利就是價格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是匯流排不外擴的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價格性能結合點。ARM7最適合做工業控制,ARM普及,銷量都是怎麼來的?都是ARM7來的,而44B0是典型的商業片子。但是,這里如果你看中的是為工作做准備,還是選能跑UCLINUX的吧。
但是仍然作為第一個推薦,因為菜鳥時期,合適的資料太重要了!!在這里被ZLG的務實精神感動!你看人家那代碼寫的。
2)感覺立宇泰的44B0不錯
硬體沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯的~~
3)找個最便宜的
好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時間搜集資料,至於資料全不全,別計較了~~硬體肯定好使就行吧。
四 要不要有51 AVR等單片機基礎
有更好,但沒有也無所謂。
兩個月以前,我只是看別人做,耳濡目染~~,本科學過單片機,從來沒做過。我們這的技術主幹做AVR和51,我就跟他們調過C語言程序。你看出來了?我是個不折不扣的菜鳥吧?
但是做這個之前我特意找了ZLG的兩本書,看了裡面的例子和原理圖,這很重要。常式里有匯編有C,都看懂了就OK,不用自己現寫
五 開發都需要學習哪些軟體
總結起來最主要的有以下幾個吧
1 ADS調試用
確切的說是ADS+AXD。ADS里包含AXD。原來都用SDT後來ARM公司停止對SDT支持了,改支持ADS了,還是用ADS吧。
有的人的程序發布的仍然是SDT版本的,但基本都可以找到相應ADS的,新人在這里不要發蒙。ADS是編譯器,AXD是調試器。便宜成AXF以後再在ARM的RAM里調試。
2 PLASHPGM
FLASH燒寫的軟體。AXD在RAM里調試,掉電就沒有了,方便程序修改。調試好的程序再下到FLASH里,上電直接運行。
同類的軟體還有很多,什麼FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。
3 BANYANT調試代理(不知道名對不,起這么個難記的,我一般都叫它「半羊」因為知道它那幾天剛吃了烤羊)
調試代理就是用它幫你使用更簡單的JTAG(便宜啊)來實現原本1K才賣的JTAG模擬器的大部分功能。JTAG調試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅動就行了。
調試代理還有很多種,什麼H-JTAG了、ARM7了(不知道具體叫什麼,就記得可執行文件叫ARM7.EXE)都是,BANYANT比較好。
需要注意的是,沒種調試代理安裝方法雖然都簡單 但都不一樣,需要看說明。而且AXD調試之前都要運行。省錢了,就別怕麻煩了。
4 ARM-ELF-TOOLS工具鏈
裡面是UCLINUX開發用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發布的方便你開發的東西。具體安裝方法看我另一篇筆記。
另外如果你開發LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。
5 U-BOOT
大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)
生成的BOOTLOADER燒到FLASH里,然後就可以用BOOTLOADER下載 燒寫其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當然UCOS的不用這個,用什麼我不知道:)
最新版本是1.1.4 具體使用方法看我另一篇筆記吧。
6 UCLINUX包
UCLINUX的源碼包,不用多說了吧?建議大家用現成的先體會一下,然後再自己編譯,裁剪。因為單獨UCLINUX的編輯技術上比較簡單,但涉及的方面還是比較廣的。
7 VMWARE
老牌的虛擬機軟體,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。
六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網路就不用別的書了,其中主要推薦前2本,3是介紹體系結構的,也不錯
1 ARM嵌入式LINUX系統構建與驅動開發,北航版
驅動寫的很詳細,前期開發介紹也很好
2 ARM 嵌入式系統實驗教程(二),北航版
有ZLG2200的原理圖,實驗程序和注釋,了解人家是怎麼開發的。
3 ARM嵌入式系統基礎教程
最重要的是體系結構,匯編部分介紹,看看吧,增加理論素質。
4 44B0數據手冊
寫在這里是強調它的重要。
不推薦ZLG早期出的紅色皮的ARM什麼體系結構~只類的
寫的太多,看煩了。
其他的書沒了幾本,沒看見好的,大家有看過的推薦吧。
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當單片機用
1 搞開發,工程設計,用UCOS,小巧,多進程,簡單,體現了ARM7的精髓。
2 LINUX 正根的嵌入式系統,LINUX消費與通信領域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發板1K達底吧。但是還是推薦選ARM9+LINUX
3 UCLINUX 算投機嵌入式系統:)ARM7上可以跑,由有LINUX近親,學好好可以比較方便的轉向LINUX,像我一樣的窮鬼用吧,呵呵
4 VXWORKS
學好後可以找到高薪工作,但工作機會本身並不比LINUX好找。
5 當單片機用
不推薦,雖然我景仰的ZLG一直號召這么干。因為對於學習來說多進程的系統設計才是ARM7的玩頭,至少你也要整個UCOS啊:)
有朋友問我先學這個當基礎不行嗎?那當然可以~~但我當時就用了1周搞定,就是我先的ADS在RAM中調試的筆記。後來我清空FLASH用的小段程序還是當時寫的LED閃爍程序呢。另外1周里其中還因為自己過於菜,沒把OM設置好導致晶陣不陣
哈哈。這個是必須做的,但一帶而過。目標放的遠一點。
八 學習要用多長時間
我從菜鳥到現在兩個多月,中間被打擾數次。仍然搞定了PCB設計與製版,RAM調試,FLASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現成的),LCD驅動。
再次坦誠的說:我確實比較菜,說這些不是讓大家羨慕,只是告訴你們「你們應該比這個更好」
我相信良好的態度+合適的方法+及時的總結=成績
九 ARM都玩什麼
就幾點
1 硬體設計
2 系統移植
3 驅動開發
4 應用開發
沒了。其中推薦把注意力放在後兩個上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。
十 我用的什麼板子
很多人問我這個問題,我特意寫過一個的。再說一次吧。
我是自己做的,RAM、ROM、8019等比較麻煩而當時的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。
1 加了串口通信的GPS模塊、 GPRS模塊
一個UART0,一個UART1,當與要用超級終端時用跳線切換。
2 SD卡,和7843觸摸屏
同時掛在SPI匯流排上,因為SPI只能掛一個設備,同時還做了I/O模擬的准備,把兩個設備又通過跳線掛在4個IO上。
3 擴了個IIC的35個鍵子的鍵盤
用的ZLG的7290,不佔用CPU,最大支持64個鍵子,只上了35個,其他留介面。
4 把LCD介面按照買的LCD改裝了,可以用FPC線直接連接。
所以改動雖然多,但真正很移植了,初期調試有關的並沒動,就是為了現在不那麼菜的時候做准備:)
十一 開發流程
這里是我的開發流程
1 設計原理圖(含WIGGLER的JTAG訪真器)
2 設計PCB(含WIGGLER的JTAG訪真器)
3 製版
4 焊接電壓,確定電壓沒問題
5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+模擬器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題
6 焊接晶體+RAM+ROM+周邊電路,用BANYANT+模擬器連接,可以顯示正確的44B0了
7 用BANYANT+模擬器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內存窗口看RAM地址)RAM就沒問題
可以用這個命令「setmem 0xc000000,0xffffffff,32」
我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。
8 用我寫的《自己寫了個C工程模板又寫了個使用說明 》里的方法調試程序吧,寫個簡單的,我當時寫個LED閃爍的。看好使不。
9 把程序按照《FLASH燒寫總結 》里的燒到FLASH里,測試一下
10 按照《UBOOT 移植操作》移植UBOOT
11 按照《UCLINUX下載簡單說明》下個UCLINUX
12 看看驅動開發的方法,自己寫個驅動看看
13 還有很多事東西著你玩 呵呵
十二 關於JTAG訪真器
JTAG訪真器現在用的多是簡板的,一個244那種,用的沒什麼不好。
按照並口定義不同分幾種,建議選WIFFLER定義的,因為支持的軟體多。這個網上多的是,不多說了。
值得提的是有的JTAG訪真器原理圖上有跳線用來使能復位信號,這個一般不跳上。就是不用復位信號,因為JTAG協議里本身也可以控制44B0復位。
當然,板子上的復位信號跳線也不用跳。
十三 哪個公司的ARM
這個是問題比較簡單。
1 ARM7主要就幾個公司的
三星,PHILIP,ATMEL的
ATMEL的有比較便宜的AT91SAM7S32 和AT91SAM7S64 專為8位應用產品量身定做,價格很便宜好象《3刀吧。和PHILIP的21XX差不多,資料太少,項目中選還不錯。
其他兩家上面說了的不多說了吧
2 ARM9
這個玩2410和2440的多吧,現在2440還比較火啊 可以考慮買個了
但是2410就比較便宜了,作為學習來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領域應該是消費電子,比如手機PDA,而這上面用的多的應該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。