msp430編譯器
A. 如何使用C語言來編寫MSP430的高質量代碼
微處理器一般用於特定環境和特定用途,出於成本、功耗和體積的考慮,一般都要求盡量節省使用資源,並且,由於微處理器硬體一般都不支持有符號數、浮點數的運算,且運算位有限,因此,分配變數時必須仔細。另外要說明的是,速度和存儲器的消耗經常是2個不可兼顧的目標,在多數情況下,編程者必須根據實際情況作出權衡和取捨。
需要注意的事項如下:
1) 通常在滿足運算需求的前提下,盡量選擇為變數定義位元組少的數據類型。
比如最常用的int和char,int是16位的,char是8位的,如果沒有必要,不要使用int,而且使用char也最好使用unsigned char。運行時,可以在變數窗口看到,使用類型為unsigned char的變數是16進制的格式,而使用int的是十進制格式,如果char沒有定義為unsigned,會出現負號,如果沒有必要的話,在430中是不需要負數的。
2) 盡量不用過長的數據類型,如long、long long和double
3) MSP430的C編譯器不支持位定址,所以運算中盡量減少位操作,對於只有「是」和「否」的變數,如果RAM容量允許,則可分配為unsigned char類型,可提高運算速度。如果分配為某位元組的某個位,可以減少存儲器的消耗,但是會降低運算速度
4) 避免使用浮點數,盡量使用定點數進行小數運算。如果必須使用浮點數,則盡量用32位的float,而不是64位的double
5) 盡量將變數分配為無符號數據類型
6) 對於指針變數,如果聲明後其值不再改變,則聲明為const類型,這樣編譯器編譯時能更好的優化生成的代碼
7) 盡可能的使用局部變數而非全局變數或者靜態變數(static)。這樣有利於編譯器編譯時更好的優化生成的代碼
8)避免對局部變數使用 &取地址符。因為這樣會使編譯器無法把此變數放在CPU的寄存器中,而是放在RAM中,從而失去了優化的機會
9) 僅在模塊內使用的變數聲明為static,有利於優化代碼
10) 如果堆棧空間有限,盡量減少函數調用的層次和遞歸調用
11) 如果傳送參數過多,可將參數組成一個數組或者結構體,然後用指針傳遞
12) 某些變數在中斷程序和普通級別程序中都會被用到,所以必須加以保護。
將變數聲明為volatile類型,編譯器優化時就不會移動它,對它的訪問不會被延遲。
為保證對volatile的變數不被打斷,為此,可以在訪問它的部分(即訪問它的函數)前面加上__moniter的聲明
B. #include "msp430x14x.h" #include "key.h" 編譯時出現錯誤Fatal Error[Pe1696]: cannot open source file
出錯原因是編譯器找不到你所指定的那兩個頭文件。
首先確定是不是真的存在這兩個頭文件(沒有就自行下載或者編寫吧)。然後可以採取以下兩種解決方法:
1、include時寫上完整的路徑名。如:
#include "D:\headers\msp430x14x.h"
2、在編譯器的默認頭文件路徑中添加你自定義的頭文件存放路徑。一般是你所用的IDE的某項功能,這就看你用的是什麼IDe了。
C. msp430編譯器的堆棧在哪裡設置
我用的是IAR 4.11b for MSP430,4.11裡面改堆棧是在你工程的Options裡面。首先在Workspace窗口右鍵單擊你的工程,然後選擇第一項"Options",或者選在上面菜單中選擇Project->Options也可以進入這個選項。在Options裡面第一個General Options中,有一堆選項卡,第五個選項卡(就是Library Options再向右一個)就是Stack/Heap,用來調整堆和棧的大小的。調的時候先在Override Default前面打鉤。如果你用的是地址線沒有擴展的MCU版本,則只有Stack Size 和Heap Size 兩個選項可以選擇。如果你是用的是較新的F5系列擴展地址線版本MCU,則還可以設置Data20 Heap Size.具體怎麼設要根據你的應用需求。如果你需要自己申請用來存放Data20類型的數據,就需要把Data20 Heap Size設大一點。如果存放普通的數據那麼只需要更改Stack Size和Heap Size。
Stack和Heap的區別有問題嗎?如果不清楚的話上網路輸入「堆和棧的區別」自己看吧。根據你的應用到底是堆空間要求多一些,還是棧空間要求多一些,給Stack Size和Heap Size分配不同大小的Size。
別的版本的IAR我也沒用過,有什麼問題在線交流吧。希望對你有幫助!
D. MSP430單片機用C語言編寫程序需要用什麼軟體
MSP430用IAREmbeddedWorkbench軟體編寫程序和編譯代碼。
MSP430單片機稱之為混合信號處理器,是由於其針對實際應用需求,將多個不同功能的模擬電路、數字電路模塊和微處理器集成在一個晶元上,以提供「單片機」解決方案。該系列單片機多應用於需要電池供電的攜帶型儀器儀表中。
(4)msp430編譯器擴展閱讀:
MSP430系列部分產品具有快閃記憶體,在系統設計、開發、調試和實際應用中具有明顯優勢。TI公司引入了具有快閃記憶體和JTAG邊界掃描技術的廉價開發工具MSP-Fet430x110,並將國際先進的JTAG技術和Flash在線編程技術引入到MSP430中。
這種將Flash技術與FET開發工具相結合,具有方便、便宜、實用等優點,為用戶提供了更理想的原型開發方式。