msp430幾種不同開發平臺的對比
1. 正版。無限制。
GPL,天下皆知
2. 與gcc系出同源,使用方式極像。
如果用過gcc
查看mspgcc對gcc的擴展
如果沒有用過gcc
先了解一下gcc的基本用法,比如
gcc -o hello hell.c
gcc -S hell.c
等
然后,mspgcc
其它
goto error;
3. 針對430擴展C語言,匯編能做的,他幾乎都能做。
僅在此列出我認為有趣的幾個,詳情,查手冊。
(1)堆棧
mspgcc對堆棧的設置很靈活。你可以為自己保留一定字節的RAM不被C占用。如下聲明
int RESERVE_RAM(10) main()
你保留的10字節RAM。
你也可以自己寫啟動文件,代替標準的啟動文件,自己控制進入C語言時的環境。
(2)頭文件
在嵌入式開發中,一般會有針對硬件的頭文件。其中為特殊功能寄存器定義等。不同的硬件環境,當然需要不同的定義。在mspgcc的開發環境中只需增加
#include
即可。
不同的硬件如何區別?在Makefile文件中或者在編譯時說明是哪種430芯片就可以了。這一點,和winavr相同。
(3)中斷
中斷是硬件的珍貴資源。標準C中似乎沒有中斷的定義,所以一般采用擴展。mspgcc提供了interrupt關鍵字,以及控制進入中斷方式的選項。比如,下面的中斷程序中沒有用到諸如R4,R5等其它寄存器,卻仍將其在堆棧中保護。
interrupt (ADC_VECTOR) ADC12ISR(void)
{
ADCresult = ADC12MEM0; // Move results, IFG is cleared
}
屬性naked修飾后,裸奔。不做任何事情,甚至reti都不執行,所以,得自己控制返回。
interrupt (ADC_VECTOR) __attribute__ ((naked)) ADC12ISR(void)
{
ADCresult = ADC12MEM0; // Move results, IFG is cleared
asm("reti");
}
mspgcc中擴展了下面這些屬性(參考mspgcc手冊)。
reserve(x) When applied to main(), this reserves "x" bytes of RAM above the stack. This cannot be used with C++ (if C++ is supported later on).
interrupt(x) Make the function an interrupt service routine for interrupt "x".
signal Make an interrupt service routine allow further nested interrupts.
wakeup When applied to an interrupt service routine, wake the processor from any low power state as the routine exits. When applied to other routines, this attribute is silently ignored.
naked Do not generate a prologue or epilogue for the function.
critical Disable interrupts on entry, and restore the previous interrupt state on exit.
reentrant Disable interrupts on entry, and always enable them on exit.
saveprologue Use a subroutine for the function prologue, to save memory.
noint_hwmul Supress the generation of disable and enable interrupt instructions around hardware multiplier code.
(4)匯編
mapgcc支持行間匯編。只是,gcc的匯編語言似乎與TI的不盡相同。
4. 燒寫
有三種方式
(1) gdb
(2) msp430-downloader.exe
(3) msp430-jtag.exe
5. 調試
當前,最新版mspgcc沒有insight,只有gdb。個人感覺不如IAR直觀
前些天接了個任務,要把原來在MCU430x149里面的程序移植并燒寫到MCU430x1611里面去,以前沒用過430,但它的鼎鼎大名早有耳聞,許多論文、報告上都提到過430。大概的搜了些資料,覺得它最突出的地方莫過于功耗小、速度快,據說以前RAM有點小,現在出了16xx,應該是可以滿足一些需求了。雖說430聲名在外,可上網搜了一通,卻發現有用的資料不多,其實我主要是想找一下開發環境,至少程序方面并沒有什么太
大的期望,一來有源代碼,二來有手冊和用戶指南,所以在代碼上問題應該不大。
430的開發工具一般都是用的IAR,我問了周圍的同事,也都這么說,于是就上網費了n大的勁下了一個IAR For 430 3.41A版的,然后破解、建工程、編譯代碼,誰知道這時候出問題了,原來代碼是用MSPGCC環境編譯的,在IAR下錯誤一大堆。于是就又放棄了IAR,開始搜索MSPGCC,誰知道這個東西的資料少的可憐,按理說是開源軟件,用戶應該多些,可情景正好相反,鮮有詳細的資料,只在利達爾的論壇上有些資料,還都是一兩年前的,可能是考慮到開發環境的兼容性,用IAR的占了絕大多數,反正國內用MSPGCC的不多。在摸索了幾天,查了n多資料,上了n多網站后(基本上是E文的),終于建立了MSPGCC的編譯與仿真環境,下面就是小弟的搭建過程,希望對像我這樣的初學者或者對MSPGCC感興趣的朋友有點用處。
1、從網上下載MSPGCC的安裝包(For Windows),可以從這兒下載最新版:http://mspgcc.sourceforge.net/
然后再下載20030506版本:
http://prdownloads.sourceforge.net/mspgcc/mspgcc-20030506.exe
因為新版中沒有insight 工具。
2、下載一個WinAVR,主要是為了在Windows下建立一個Linux環境,然后就不用怎么修改Makefile文件了,因為原來程序的環境就是這樣建的,所以我也就裝了一個,其實WinAVR對MSPGCC來說不是必須的,不過用了它的話會方便一些,并且從AVR上移植程序也方便。
3、先看一下網上的資料,像Asnake兄的Mspgccgo、yfzhcn的MSPGCC學習筆記、finewei的博客,利爾達論壇上都有,看了這些就會有個大概的了解。
4、把MSPGCC和WinAVR都裝上,注意MSPGCC要先裝老版本的,再裝新版,這樣就可以支持新MCU,比如說1611,網上也有說先裝新版再裝舊版的,但我裝了之后就識別不了新的MCU,但如果要想用Insight的話,舊版的是一定要裝的,只有舊版的才有,新版的沒有GUI的調試程序。我在裝了舊版的以后,就不再支持1611,如果不裝的話沒有問題,后來不得不一個一個文件的對比,然后用新版的覆蓋。還有就是在裝完MSPGCC和WinAVR以后,一定要把cygwin1.dll版本統一,直接用新的覆蓋舊的就行了。
5、這些完成之后,打開WinAVR安裝時自帶的Programmer Notepad 2,然后打開原來的工程,也不用配置(我沒有配置,就用的默認菜單配置),然后Makeall就可以了,但我在用MSPGCC的make.exe替換掉WinAVR里的make.exe以后,或者修改菜單配置以后就再也通不過編譯,不知道為什么,或者是我那樣做根本就不對,還請用過的前輩指點一下。
6、程序make成功以后,就可以下載或者調試了,這個可以參考Asnake兄的Mspgccgo,里面說的很詳細,也有圖片,我想說的就是在點擊了Run 或下載以后,下載的過程很慢,并且Insight看起來像是沒有響應一樣,但在右上角會有一個綠色的下載進度條,這些都是正常的,千萬不要以為程序死掉了。
啰唆了這么久,其實過程也很簡單的,只是一個人摸索的話費點時間罷了,感覺MSPGCC還是很好用的,用過Linux或用慣了命令行的會覺得很方便的,上手也很容易,并且是免費的,最重要的是現在已經有了AVRGCC、ARMGCC和MSPGCC,程序程序移植起來很方便,呵呵,各位如果感興趣的話,不妨也試一下,大家也可以相互交流,共同學習。
MSP430單片機問答
Q 1: 如何將msp430與5v 的系統作連結?
A 1: 可以參考我們的一份Application note:slaa148。
Q 2: 除了使用于pda 或smart phone 外,430可否使用在其它的應用中?
A 2: msp430 是一顆混合信號處理能力相當優秀的mcu,為16bit、flash架構,超低功耗的特性使其非常適合用于可攜式外圍,另外在于一般的meter、傳感器應用及低耗電量的應用也非常合適。
Q 3: 在目前的430于數字相機及pda 中,430的主要功能為何?使用到哪些模塊?
A 3: 主要使用的是timer_a 及i/o,另外隨著功能的強化您可以使用adc及比較器及其它相關模塊。
Q 4: 在中國是否有經銷點及技術支持人員?
A 4: 有的,您可以與我們蘇子杰先生聯絡。電話是:21-58369345。
Q 5: 我想要學習msp430,請問在軟件及硬件設計上有沒有更完整的范例?
A 5: 可以與我們聯絡或是至ti 網站:http://www.ti.com/msp430。
訪問網址超出本站范圍,不能確定是否安全
繼續訪問 取消訪問www.ti.com/msp430。
Q 6: 我能夠使用msp430 中的adc做為voice 的codec 嗎?
A 6: 有的,我們有些范例就是實現voice codec,您可以與我們聯絡取得此范例。
Q 7: 我的系統中有一顆dsp 作為主要的運算核心,msp430 與它們的溝通能力好嗎?
A 7: 相當優秀,您可以使用i2c或spi 或uart 與dsp 溝通,我們亦用范例是利用msp430做為dsp 之boot rom 做為更安全之外部程序保護。
Q 8: 聽說c 語言的程序效能較為低落,msp430 的c compiler 的效能好嗎?如果我想使用msp43的匯編語言作開發會不會很難學?可以在同一個項目中同時使用c 及匯編語言呢?
A 8: 可以在同一個項目中使用c及asm,其效率相當不錯,您可以自行將c code轉換成asm code便可以發現其除了效率外,code size 也相當的小。
Q 9: 我對于貴公司的產品很感興趣,但是不知道價格及交期怎么樣?
A 9: 關于價格及其它產品的詢問及技術支持,請直接與我們聯絡方便得到更多更好的服務。
Q 10: 我目前使用8051 作開發,不知道這個IC 會不會很少人用?會不會不好用,模擬功能會不會不強?還要另外增加其它的硬件及線路?
A 10: 無論是在亞洲或是歐美,430均有顯注的成長,另外msp430是一顆功能強大的soc,整合了模擬及數字的處理能力,所以您可以放心。
Q 11: 我有遙控器的案子要開發,但是不知道用哪一顆比較合適?在挑選ic上有沒有好的建議?
A 11: 我們從最低階的f1101到高階的f440 均可以完成ir 的編譯碼,另外如果您有更多需求,如adc、如lcd 您可以選擇其它的msp430 來做為您最適合的解決方案。
Q 12: 我想在儀器設計中采用mps430及有關配套組件和顯示系統.不知道該片的更新時間大約是多少? 如果有相關的應用資料請寄來.謝謝北京大學姜天仕
A 12: 如果您使用MSP430F4xx 內的LCD Driver,請參考data sheet,如果使用lcm,請參考供應商的資料。
Q 13: 能否將此次的演示文稿給大家一份,好讓我們有時間時仔細學習一下?
A 13: 您可以于EEPlace 上取得本次投影片,如果需要進一步的支持,請與我們聯絡。
Q 14: 我們一直使用PC104 嵌入式PC 或DIMM 式PC,以及單片機等開發產品。我們想用DSP來作產品。請問用DSP 來作(或開發)產品,首先需要作哪些準備工作(例如開發平臺所需的軟件和硬件等),大約需要多少資金。能否提供這方面的建議和方案。并提供幫助。謝謝!易碧金呈上2003.6.24
A 14: 關于DSP 的部份,歡迎您直接與我們聯絡。
Q 15: MSP430 可能支持MP3解碼?
A 15: 目前不能,需另外搭配dsp。
Q 16: 支持的操作系統有哪些?
A 16: 目前您可以在Windows 及Linux 下開發,至于MSP430您可以使用在各種手持設備中。
Q 17: How many the most uart can be used by MSP430? How much one piece?
A 17: 硬件uart 最高到2組,另外亦可使用sw uart。
Q 18: IAR 4k c-compiler 是表示不能compiler 超過4k 的C code 嗎?
A 18: 是指linker 最大只會link 4k的c source code,而在assembler 中并無此限,另外,尚有全功能的30天試用版,如果您有需要請與我們聯絡。
Q 19: 我在使用TI 的產品(msp-us-trf6900)遇到了一個問題。
A 19: 這蠻奇怪的,也許與您的硬件有關,請直接與我們聯絡來共同研究解決。
Q 20: 我無法將寫好的程序重新download到msp430 上。
A 20: 這蠻奇怪的,也許與您的硬件有關,請直接與我們聯絡來共同研究解決。
Q 21: 我想請問一下MSP430 是否可以用軟件規劃呢?
A 21: 新版的iar有提供此功能。
Q 22: 請問msp430F149 的復位電路如何解決?
A 22: 使用svs ic或是直接將您的電路與我們工程師一起來研究,蠻多的情況均
是reset 電路設計不良造成reset 失效。
Q 23: msp430 與sygnal 的性能方面的對比如何?您用什么打動我放棄sygnal,使
用msp430?
A 23: MSP430 為16bit CPU核心,Flash base 的mcu,整合了數字及模擬信號的
處理能力,在強大的功能下,又具備了超低功耗的特性。所以您可以從耗電量、
數字模擬整合能力、Signal chain/SoC、Total cost 等各方向來評估MSP430 對于
您目前的設計上的幫助了。
Q 24: 我有一電路需求要偵測一電壓5v~20v 及溫度并記錄數據且與pc 連
線監看.請問msp 430 可適用否? msp430 單價大約多少錢?
A 24: 沒有問題,您可以使用MSP430 內部的ADC12 或是ADC10或是SlopeADC 搭配硬件或軟件UART,MSP430 的價格從0.49 美金開始,針對您所需求
的。
Q 25: 1)Is there MMU can provide? 2) Can it support OS? 3) How to program the internel Flash? 4) Have a large code space to store datas?
A 25: 1) Please discuss with us 2) Yes,you can program it as an OS 3) very
easy, NO special instruction ,we can give you some examples for your reference.
4)Yes,Up to 60K.
Q 26: 可以問您一下關于TI的其它芯片的信息嗎?
A 26: 請隨時與我們聯絡,我們將會提供最好的支持及服務給您。
Q 27: 我同事設計的一個MSP430F1121電路上電復位不可靠, 麻煩講述一下430
系列上電復位硬件設計注意事項。
A 27: 在F1121 上并沒有SVS 的功能(在4XX系列及新推出的1XX 系列具有),
所以您可以使用具Power good 的LDO或SVS IC 以增加Reset 電位的可靠。一
般說來使用外部的RC即可,當然也可以利用簡單的電路就可增加此部份的可靠
度,如果您需要此部份線路,請與我們聯絡。
Q 28: 低功耗是否用在工業控制場合有致命的問題,如強電磁干擾,應如何處
理? 謝謝。
A 28: 除了msp430 本身的抗ESD能力外,您亦可利用外部的線路來將外部干擾
信號濾除,如果您有需要這些線路的協助,請與我們聯絡。
Q 29: 請問msp430 Flash系列仿真器在原理上有什么不同嗎?有沒有能仿真全系
列的?
A 29: 我們MSP430 內部具有JTAG Interface,透過這個接口,您可以直接的去
access ram/rom/register 等,所以您看到的是真實的msp430 狀況,包含有ADC、
Timer等。所以對430 而言,您使用的是Emulator而非Simulator,另外在MSP430
flash 家族中均具有此一功能。
Q 30: 請問FET IDE的c-complier只能complier4K嗎?會不會太小呢?
A 30: 另外亦有30 天全功能的試用版本可以提供給使用者使用。您可以與我們
聯系以取得更完整的數據。
Q 31: 使用C 語言超過4kb 怎么辦?
A 31: 購買正式版本的C Compiler或使用免費的GCC for MSP430
http://mspgcc.sourceforge.net。
訪問網址超出本站范圍,不能確定是否安全
繼續訪問 取消訪問http://mspgcc.sourceforge.net。
Q 32: 請問在使用430 時,特別要注意哪些問題?
A 32: MSP430 是一個模塊化的16 bit CPU 核心、Flash 的SoC,實現了Signal Chain on Chip,也就是說與過去其它的8bit MCU相比,您不再需要使用許多外部零件、不再需要許多額外的指令周期、不再需要外掛eeprom或占用許多的code size。所以建議您能夠以設計系統的概念來使用MSP430,我想這是最重要的。
Q 33: 請告訴我,編譯器的網址,我的Email:bird_mc958@163.com, 謝謝!
A 33: http://www.quadravox.com
訪問網址超出本站范圍,不能確定是否安全
繼續訪問 取消訪問http://www.quadravox.com
Q 34: MSP430 的I/O是否帶抗靜電ESD保護功能。抗干擾能力如何?
A 34: 有,您可以與我們聯絡取得更完整的測試報告。
Q 35: msp430 有中文資料嗎,在哪里可以得到?
A 35: 目前在中國有三本的MSP430 中文書可以購買。此外如果您有需要也可以
與我們進行在線的討論:網址是www.vpdsp.com,我們提供了豐富的DSP 參考資
料及TI產品的在線討論區。
Q 36: MSP430 I2C 接口是否可以實現Master 能力?
A 36: 可以。
Q 37: msp430 系列單片機目前的產品沒有除法功能,請問以后的新產品,有沒有
可能集成除法的運算功能?
A 37: 目前暫無規畫,但是我們未來的產品會提升我們整體運算的效能至30mips
以上。
Q 38: MSP430 可否提供多重中斷的Example code ? Web 尚未提供...
A 38: 請與我們直接聯絡,我們可以提供范例程序給您作參考。
Q 39: 430 該如何連接802.11A/B 做數據收集?
A 39: 在ti 的網站上,我們有提供一個關于MSP430 于internet 應用的范例,或
許您可以參考它并應用于您的案子上。該文件編號為:slaa137。
Q 40: 內建DAC 的MSP430 什么時候可以量產?
A 40: 2003 年第3Q。
Q 41: MSP430F1122 有否計劃出mask type?
A 41: 目前沒有,如果您有此方面的需求請與我們聯絡,我們可以給您相關的解
決方案。
Q 42: 有沒有背板開發包(for VxWorks)或者是嵌入式LINUX的編譯器提供?
A 42: MSP430GCC 有提供Linux 的編譯器,http://mspgcc.sourceforge.net,您可以自行參考研究。
Q 43: 可以應用在有USB的產品嗎? 如何應用Thanks?
A 43: 在20004 年我們會有關于MSP430 5xx 系列更完整的數據,希望您能與我
們保持聯絡。