何謂ARM和DSP? |
缺席
|
kevin168
一般會員 ![]() ![]() 發表:4 回覆:2 積分:1 註冊:2004-11-29 發送簡訊給我 |
各位請輩好: 小弟是位機電整合的技術人員,最近看到我們的一些台灣廠商做了一個DSP為CPU的伺服馬達控制器,覺得還不錯,而小弟我真的不懂什麼是DSP和ARM,但也有興趣要學習。 我在過去是用BCB來開發軟體為主要的工作,最近了買了一本8051的書回來看,知道可以用C語言來來編譯程式並且轉到8051,不知道ARM和DSP是不是也有這樣的架構。
我的問題如下:
1.何謂ARM和DSP?
2.可否用C/C 來寫ARM和DSP的程式
3.請各位提供一些相關的文件給我參考和學習 謝謝
kevin
|
help
一般會員 ![]() ![]() 發表:12 回覆:54 積分:13 註冊:2002-06-14 發送簡訊給我 |
大部份的ARM 程式都是用C來寫的.
因為ARM平台上的程式比較複雜, 用組合語言來做, 太難了。 在ARM平台和8051平台上開發程式最大的不同是, 通常前者有OS, 後者沒有OS. 例如你可能會需要在ARM上面放一個embedded Linux. 然後你再於Linux上面開發你自己的應用. 就好像我們現在在Windows上寫程式一樣, 是在Windows OS上開發.開發ARM平台程式的工具,有如CodeWarrior之類的ARM Development System.
而8051上面的靭體程式通常是NON-OS. 你自己會從頭寫到尾.自己控制系統邏輯....大部人會用組合語言直接撰寫. 但較大的系統也有用keil C之類的工具來開發。 而DSP方面, 也有用C 來開發程式的。但大部份上面都是廠商獨家的作業系統。專攻特殊的應用。 DSP主要是他會有DA/AD converter. 所以會應用在類比訊號的處理之上. ARM則是較general的CPU。 gogowin
------
gogowin |
kevin168
一般會員 ![]() ![]() 發表:4 回覆:2 積分:1 註冊:2004-11-29 發送簡訊給我 |
真是謝謝您的回答,令我有進一步的認識,但是小弟還有問題 我在當時有問那個開發人員,他說他是用DSP和ARM來開發,他還說台灣會ARM和DSP來開發產品的人不超過10個人,當然我一聽到時也是抱著不太相信的態度。 當然我有C/C 的開發經驗來學習ARM或是DSP會很難嗎?
畢竟我最後還是會走上研之路,但是我想先做些功課。 可以請你介紹一些書嗎?
http://www.opentech.com.tw/search/bookinfo.asp?isbn=9572146904
我昨天在網路上有看到一本書,但還沒買不知道寫的好不好。
但網頁上沒提到用C/C 來開發,難道ARM自已有自已的程式語言嗎?
|
help
一般會員 ![]() ![]() 發表:12 回覆:54 積分:13 註冊:2002-06-14 發送簡訊給我 |
你PO的那本書我沒有看過.
關於DSP ARM的研發人員, 台灣的確不是很多,但是說不超過10人是太太太誇張了. 並不是很難的東西啊. 不超過一千人倒是有可能。 有時侯一件東西並不是很難, 只是台灣未必有公司(或是有那個產業環境)在做那方面的開發,所以才沒有人去做,並不一定是它很難。 ARM有自己的組合語言(每一個處理器都會有一套組合語言)。
但是較多人用的處理器,都會有人做出C語言的開發工具來幫助研發人員提高生產力。有C語言的經驗對開發ARM程式絕對有幫助,但是你可能最大的問題不是在程式語言的掌握度上,而是在對於你所要解決的問題上(例如你要用什麼週邊元件,如何去計算,去判斷,去送控制訊號....等)。 不知道你要開發的方向是什麼?可能不用是一套嵌入式系統,也可能要。
但是整個領域包括很廣,總是要先找個角度切進去吧....初學者無法全盤通吃的喲。 gogowin
------
gogowin |
暗黑破壞神
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
48932005
初階會員 ![]() ![]() 發表:3 回覆:42 積分:29 註冊:2003-09-13 發送簡訊給我 |
|
help
一般會員 ![]() ![]() 發表:12 回覆:54 積分:13 註冊:2002-06-14 發送簡訊給我 |
|
暗黑破壞神
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
1.ARM 速度快。
2.我算過。我用這顆內建大約200K FLASH,及4K SRAM。
如果說我的 51 要加到這樣的東東。ARM 的價格並不會高太多。
以 51 + Flash + SRAM 以及所有生產LAYOUT。。。。ETC
算一算。也不會貴太多。差不多只差 50元左右吧。 3.以開發速度。我用 ARM,可以用C來寫。比起51來快很多。
如果說。你不是一個量產。上數百K的產量。你的軟體開發成本用51所花的
時間(時間就是金錢)。兩者比起來。你會發現總合是用ARM比較合算。 當然啦。我說的情況是程式的複雜度較高的狀況啦。 至於你說要用 OS?
理由?同時處理很多事????
那要看你的產品囉。如果你是一個開放性的PDA。。。。如PALM,WINCE。。。可以讓使用者再加入軟體的那種東東。那就得靠OS比較輕鬆啊。
因為要做 relocation 的動作。那當然是用OS比較容易啊。 可是。如果所有的事,都是你所掌控的。那為什麼要OS?
什麼叫即時?在電腦中,沒有即時。(如果你學過微積分那種東東)。
沒有”絕對的”即時。
只有一個觀念。我的程式。在一個無限迴圈中。(癈話,那個單晶不是這樣。就算WINDOW,LINUX,BSD。。。都嘛這樣)。
可是作業系統是用分時的方式來做這些控制。
而我們可以不用分時。
我們可以讓所有的工作”不停頓”。來做到類似的效果。
比方說
while (1) { while (1) { // so something } }這樣的寫法,在有 OS 下可以這樣寫。 可是沒有OS。我們要改成 bool flag1; bool flag2; while (1) { if (flag1 == true) { //do something } if (flag2 == true) { // do something } }也就是說。你在做的事情。不能有一個迴圈進入等待。 而是把所有的事情,改成”事件驅動”的方式。 這樣就可以做到即時了。 當然。如果你懷疑這樣比起OS會不會比較慢?我倒是會反問一句。 如果我這樣的方式。會有”不即時”的狀況。那用時間中斷。是不是會 花更多的時間?????(這句如果有問題,我們可以再談論)。 另外。你還有一個觀念必須修正一下。 用ARM,它的時脈是比較快。 可是。。。。整體速度。你要是沒搞好。是不會比較快。 舉例來說。 你的CPU要執行指令。這個指令必須由FLASH載入,那請計算一下。FLASH的速度是多少?這樣,你大約可以想到用ARM的速度實際來說,並不會快太多。 所以。你在程式一開始,就要把你原來在ROM中的程式載入到SRAM了。 然後才去SRAM中去執行程式。這樣,你才能有比較快的效率。 而這一部份的技巧,就得要你自己去想了。^_____^ |
kevin168
一般會員 ![]() ![]() 發表:4 回覆:2 積分:1 註冊:2004-11-29 發送簡訊給我 |
謝謝各位前輩的熱鬧討論,真的令我覺得台灣真的有許多不為人知的高手存在,特別是在K.top,但是小弟也是一切從零開始的,從軟體開發到->機電整合的PLC和伺機馬達以及相關的控制器,目前我所接觸的都是一些電路控制居多。 在機電整合的領域真的是相當的廣,而Help大哥所提到的問題,要以那個角度來切入?其實我都還是生手,也可以說完全不懂,真的是希望有一種書可以一步一步加上簡單的實習加原理,我想這是我目前最需要的吧。 而破壞神大哥的境界,不知何時才能看齊,但我還是希望這些志同的朋友能通Mail來討論小弟的問題。 而破壞神大哥所提到的自行做一台PDA我倒是真的很有興趣,希望能提供相關的學習資訊。 目前我需要的學習資訊是以下:
1.如何進入ARM和DSP,希望有實際的和實用的書籍和相關的學習資訊。
2.破壞神大哥所提到PDA,是該如何自已來設計和實習呢?希望有相關學習資訊 。
3.目前我的行業是以伺服馬達控制為主,如果可以我真希望能自已開發一套驅動控制器。
4.目前我在網路上有看到一些ARM的學習課程,費用大約24000~35000,不知道會太貴? 希望各位前輩能提供給小弟一個學習指引。
|
turbojoeman
一般會員 ![]() ![]() 發表:2 回覆:6 積分:1 註冊:2007-02-02 發送簡訊給我 |
目前我需要的學習資訊是以下:
1.如何進入ARM和DSP,希望有實際的和實用的書籍和相關的學習資訊。 2.破壞神大哥所提到PDA,是該如何自已來設計和實習呢?希望有相關學習資訊 。 3.目前我的行業是以伺服馬達控制為主,如果可以我真希望能自已開發一套驅動控制器。 4.目前我在網路上有看到一些ARM的學習課程,費用大約24000~35000,不知道會太貴? 1. 小弟有玩過ARM7一陣子,讓我對ARM的初步了解有很大的幫助,我覺得你也可以先從基本配備開始玩起 去search engine 鍵入"ARM7開發板" 有許多廠商都有在做,不妨可以買個開發板來玩玩,開發板的操作通 常都配合書籍,所以相關書籍問題也一併可以解決。我個人推薦新X跟晶X的開發板,晶X的開發板相關書籍 我覺得寫得很好(怕有廣告嫌疑),其實書籍內容大致都是chip的datasheet或spec.也就是特殊暫存器的呼 叫位置及偏移量(offset) ,我較推薦的書籍原因是他翻譯的很好,灌入了許多作者自己的微控制器概念,相當 好理解。 至於dsp, |
turbojoeman
一般會員 ![]() ![]() 發表:2 回覆:6 積分:1 註冊:2007-02-02 發送簡訊給我 |
不小心按到,歹勢。
繼續~ 至於dsp德州儀器公司的TI處理器,通常對於影音訊號處理有自己的一套,他在微處理器上所動的手腳(硬體部分),對於處理影像聲 音,有獨特的處理速度(可能配合某些演算法處理效能佳),他跟arm的性質有點不同,未來兩間公司的發展應該都有各自特色(感 覺),如何進行呢?先看相關書籍跟開發板,如果你想玩的方式跟8051一樣,那我建議玩ARM較為恰當,如果你想玩複雜的影音處理 那你可以開始著手DSP了,但單純的影音處理ARM就可以進行了,且本人覺得ARM比較好著手,DSP的API相當複雜且繁多,且DSP 的東西都不便宜,且也沒有OS,較低階的ARM有免費的embedded linux可以當作embedded OS雖然不是即時也沒有mmu但對於應 用及開發會容易許多,因uclinux的加持配合busybox及一些tcp/ip lean web server,所以玩起來方法變得豐富許多。 |
balabubu
初階會員 ![]() ![]() 發表:11 回覆:15 積分:25 註冊:2006-12-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |