LabView開發嵌入式應用的技巧

無論使用什麼設計語言,不良的程式設計技術都會給一個應用的效能帶來負面影響,對一個嵌入式應用尤其如此。儘管對於絕大部分應用來說,高效率的程式設計技術是重要的,但對於嵌入式應用所工作的資源極度缺乏的環境,則要求對效能和儲存器管理給予特別的關注。

LabView開發嵌入式應用的技巧

圍繞著新的LabView嵌入式開發模組進行,這種新工具為嵌入式應用開發人員提供了圖形化系統設計手段。該工具允許使用者直觀地設計演算法 並進行互動式除錯。下面是一些有助於程式設計師更有效使用LabView開發嵌入式應用的技巧。這些技巧中的許多也適用於其它高階工具。

  迴圈中的大常數技術

如果在迴圈內部放置一個常數,會使迴圈的每次執行都拷貝這個資料,從而加大執行時間和儲存器使用率。工程師可以避免這個情況,做法是把該常數移出該迴圈,或者用本地變數把資料傳遞到迴圈中。

  資料型別強制轉換技術

LabView開發環境只要有可能就自動地處理資料型別的衝突,其做法是把較小的資料型別轉換成較大的資料型別。例如,如果在一個整數和一個浮點數之 間發生一個型別衝突,那麼LabView就把該整數轉換成一個浮點數,隨後再執行運算操作。這個轉換的代價是昂貴的,而且在許多情況下是不必要的。在大多 數情況下,工程師可以通過為每個變數選取正確的資料型別來避免強制轉換。但是,如果該資料必須被強制轉換,則應在將其送去進行操作運算或函式計算前就完成 轉換,這樣效率將會更高些。

  動態分配儲存器技術

動態儲存器分配是一項程式設計師應儘可能避免的複雜操作。例如,如果動態分配出現在將資料儲存到陣列內的一個迴圈內,那麼它尤其有害。避免在一個迴圈內動態分配儲存器的常用方法是在該迴圈開始執行前,為每個陣列預分配所需的儲存空間。

  移位暫存器與隧道技術

LabView的移位暫存器與隧道使資料進/出迴圈。工程師還利用移位暫存器在一個迴圈的每次執行之間傳遞資料。當資料用一個輸入隧道傳進一個迴圈 時,LabView必須拷貝該資料並將該拷貝資料送出來進行下線修改。為了確保原始資料對該迴圈的下次迭代執行時保持不變,這樣做是必需的`。工程師也可以 通過用一個移位暫存器把資料傳進該迴圈的方法來避免拷貝。這樣就消除了不必要的拷貝,從而加快了執行速度。

  簇技術的應用

當把異構資料捆綁到易管理的資料包中時,簇是有用的,比如說C語言結構(C Structs)。然而,此時除了要考慮的全部資料外,資料內容的相關資訊也必須和這些資料一起傳遞。因此,有的時候,尤其是在把資料傳到subVI時, 相對於一個捆綁的簇而言,未捆綁的資料元素可以增加使用者應用的執行速度。

儘管類似LabView這樣的高階程式語言有助於工程師更快地部署其應用,但注意可提高程式碼效能的細節是很重要的。通過注意這些細節,有助於工程師快速開發一個高效率的應用。