當前位置:編程學習大全網 - 編程語言 - 如何使用C語言來編寫MSP430的高質量代碼

如何使用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的聲明

  • 上一篇:做模具學徒工快半年了.還是不知道從何下手,好象不是很入門,我該怎麽辦?
  • 下一篇:UG10.0需要電腦什麽配置要求.能幫列壹個清單嗎
  • copyright 2024編程學習大全網