嵌入式c語言優化

2021-06-23 02:32:51 字數 1072 閱讀 2716

一.  演算法和資料結構優化

1.

針對應用的演算法優化,比如,在音訊編譯碼中,用fft實現時頻變換。

2.c語言級別的優化,如排序演算法的選擇。

3.資料結構的選擇,如果需要隨機訪問,則盡量選擇陣列,如果需要隨機插入刪除,則可以選擇鍊錶。

4.盡量用指標代替資料操作,大部分編譯對於指標會生成更小更快的**。

5.盡量使用和cpu位數相同的資料型別,這樣只需要去資料,不需要進行額外的運算。比如乙個cpu是32位的,如果你使用了8位的資料,編譯器還要進行截斷。

二.  語言實現的優化

1.

使用自加自減運算。

2.如果是dsp這種資料和指令匯流排分開的情況,可以在運算的同時load data。

3.幾種運算優化技巧:

a.取模(求餘)運算,轉化為&。a%8 -> a&7。前提是模數是2的冪次。

b.pow運算轉化為乘法。pow(a, 2.0) -> a*a。

c.乘除法轉化為位移。a*4 -> a<<2, b/4-> b>>2。

4.

for迴圈中的注意事項:

a.

不要在for迴圈中重複執行相同的計算。

b.對記憶體的訪問要盡量緊湊,這樣可以提高cache hit。

c.可以根據mcu中累加器,乘法器的個數,適當的展開迴圈。

d.如果可以,盡量使從大到小的迴圈計數,因為mcu一般都有0跳轉語句。

5.

對switch的case進行排序,把概率大的case放在前面。

6.do{} while比while生成的**小。

7.將一些複雜的運算用查表代替,比如開方。

8.inline也是乙個優化的手段,不過要考慮時間和空間的平衡。

9.使用register變數,使用restrict告訴函式某個pointer指向的資料不會被其他pointer修改。

10.編譯選項的優化,使用intrinsic函式。

嵌入式C語言優化小技巧

嵌入式系統是指完成一種或幾種特定功能的計算機系統,具有自動化程度高,響應速度快等優點,目前已廣泛應用於消費電子,工業控制等領域.嵌入式系統受其使用的硬體以及執行環境的限制,非常注重 的時間和空間效率,因此選擇一種合適的開發語言十分重要.目前,在嵌入式系統開發中可使用的語言很多,其中 c語言應用得最廣...

嵌入式學習(二) 嵌入式系統C 語言

1 從 cpu 復位時的指定位址開始執行 2 跳轉至彙編 startup 處執行 3 跳轉至使用者主程式 main 執行,在 main 中完成 a.初試化各硬體裝置 b.初始化各軟體模組 c.進入死迴圈 無限迴圈 d呼叫各模組的處理函式 下面是幾個 著名 的死迴圈 1 作業系統是死迴圈 2 win3...

嵌入式C語言總結

這幾天花了兩天時間看了一些嵌入式c語言方面的內容,以下是一些讀書筆記,記錄一下。1 不能有返回值 2 不能向isr 傳遞引數 3 isr盡可能的短 4 printf有重入問題 1 中斷服務程式isr 2 硬體初始化 1 某io 晶元被定為在 cpu的儲存空間而非 io空間,而且暫存器對應於某特定位址...