全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:11294
推到 Plurk!
推到 Facebook!

何謂ARM和DSP?

缺席
kevin168
一般會員


發表:4
回覆:2
積分:1
註冊:2004-11-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-06 13:43:37 IP:220.140.xxx.xxx 未訂閱
各位請輩好: 小弟是位機電整合的技術人員,最近看到我們的一些台灣廠商做了一個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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-06 14:00:38 IP:61.230.xxx.xxx 未訂閱
大部份的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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-06 14:59:48 IP:220.140.xxx.xxx 未訂閱
真是謝謝您的回答,令我有進一步的認識,但是小弟還有問題 我在當時有問那個開發人員,他說他是用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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-13 23:59:58 IP:61.230.xxx.xxx 未訂閱
你PO的那本書我沒有看過. 關於DSP ARM的研發人員, 台灣的確不是很多,但是說不超過10人是太太太誇張了. 並不是很難的東西啊. 不超過一千人倒是有可能。 有時侯一件東西並不是很難, 只是台灣未必有公司(或是有那個產業環境)在做那方面的開發,所以才沒有人去做,並不一定是它很難。 ARM有自己的組合語言(每一個處理器都會有一套組合語言)。 但是較多人用的處理器,都會有人做出C語言的開發工具來幫助研發人員提高生產力。有C語言的經驗對開發ARM程式絕對有幫助,但是你可能最大的問題不是在程式語言的掌握度上,而是在對於你所要解決的問題上(例如你要用什麼週邊元件,如何去計算,去判斷,去送控制訊號....等)。 不知道你要開發的方向是什麼?可能不用是一套嵌入式系統,也可能要。 但是整個領域包括很廣,總是要先找個角度切進去吧....初學者無法全盤通吃的喲。 gogowin
------
gogowin
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-14 09:18:49 IP:221.169.xxx.xxx 未訂閱
我用 ARM, 只用 gcc 沒用 OS. 自己建構開發環境。 不出十人????那我不就成了稀有動物了???? 就我所知,我們這些愛玩的人,就有三個在用。^_^
48932005
初階會員


發表:3
回覆:42
積分:29
註冊:2003-09-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-02-15 21:23:26 IP:61.66.xxx.xxx 未訂閱
引言: 我用 ARM, 只用 gcc 沒用 OS. 自己建構開發環境。 不出十人????那我不就成了稀有動物了???? 就我所知,我們這些愛玩的人,就有三個在用。^_^
help
一般會員


發表:12
回覆:54
積分:13
註冊:2002-06-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-02-16 23:50:28 IP:61.230.xxx.xxx 未訂閱
暗黑破壞神, 您好神!★    您開發ARM程式不用OS, 完全自己建構全套系統?! 好強.    不過你之所以選用Arm, 是需要其較高的時脈?還是因為其運算能力較強?    通常選用ARM 會配合一個OS的原因, 是因為要用ARM來同時處理許多事情, 所以需要OS來分派工作。    不知破壞神是用何方法來處理這方面的需求? 可以分享一下嚒? 向您取經
------
gogowin
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-02-17 12:59:01 IP:218.170.xxx.xxx 未訂閱
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-02-17 21:21:50 IP:218.170.xxx.xxx 未訂閱
謝謝各位前輩的熱鬧討論,真的令我覺得台灣真的有許多不為人知的高手存在,特別是在K.top,但是小弟也是一切從零開始的,從軟體開發到->機電整合的PLC和伺機馬達以及相關的控制器,目前我所接觸的都是一些電路控制居多。 在機電整合的領域真的是相當的廣,而Help大哥所提到的問題,要以那個角度來切入?其實我都還是生手,也可以說完全不懂,真的是希望有一種書可以一步一步加上簡單的實習加原理,我想這是我目前最需要的吧。 而破壞神大哥的境界,不知何時才能看齊,但我還是希望這些志同的朋友能通Mail來討論小弟的問題。 而破壞神大哥所提到的自行做一台PDA我倒是真的很有興趣,希望能提供相關的學習資訊。 目前我需要的學習資訊是以下: 1.如何進入ARM和DSP,希望有實際的和實用的書籍和相關的學習資訊。 2.破壞神大哥所提到PDA,是該如何自已來設計和實習呢?希望有相關學習資訊 。 3.目前我的行業是以伺服馬達控制為主,如果可以我真希望能自已開發一套驅動控制器。 4.目前我在網路上有看到一些ARM的學習課程,費用大約24000~35000,不知道會太貴? 希望各位前輩能提供給小弟一個學習指引。
turbojoeman
一般會員


發表:2
回覆:6
積分:1
註冊:2007-02-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-02-15 01:56:41 IP:203.68.xxx.xxx 訂閱
目前我需要的學習資訊是以下:
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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-02-15 02:08:16 IP:203.68.xxx.xxx 訂閱
不小心按到,歹勢。

繼續~

至於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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-02-16 21:12:12 IP:59.127.xxx.xxx 訂閱
ARM9的MMU啟動後,instruction cache ,data cache 都打開.速度提昇約15倍.
若沒有開啟,程式在SDRAM上跑的很慢.慢的想砸掉.看不出200MHz的威力,
系統時間:2024-04-25 17:32:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!