<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LabView開發(fā)嵌入式應用技巧介紹

          LabView開發(fā)嵌入式應用技巧介紹

          作者: 時間:2014-06-03 來源:網絡 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/247775.htm

          本文的討論將圍繞著新的開發(fā)模塊進行,這種新工具為嵌入式應用開發(fā)人員提供了圖形化系統(tǒng)設計手段。該工具允許用戶直觀地設計算法并進行交互式調試。下面是一些有助于編程師更有效使用開發(fā)嵌入式應用的技巧。這些技巧中的許多也適用于其它高級工具。

           

           

          動態(tài)分配存儲器技術

          動態(tài)存儲器分配是一項編程師應盡可能避免的復雜操作。例如,如果動態(tài)分配出現(xiàn)在將數據存儲到數組內的一個循環(huán)內,那么它尤其有害。避免在一個循環(huán)內動態(tài)分配存儲器的常用方法是在該循環(huán)開始執(zhí)行前,為每個數組預分配所需的存儲空間。

          移位寄存器與隧道技術

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

          循環(huán)中的大常數技術

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

          數據類型強制轉換技術

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

          簇技術的應用

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

          盡管類似LabView這樣的高級編程語言有助于工程師更快地部署其應用,但注意可提高代碼性能的細節(jié)是很重要的。通過注意這些細節(jié),有助于工程師快速開發(fā)一個高效率的應用。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          c語言相關文章:c語言教程




          關鍵詞: LabView 嵌入式

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();