新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > LabView嵌入式開(kāi)發(fā)模塊技術(shù)要點(diǎn)

LabView嵌入式開(kāi)發(fā)模塊技術(shù)要點(diǎn)

作者: 時(shí)間:2017-06-13 來(lái)源:網(wǎng)絡(luò) 收藏

無(wú)論使用什么設(shè)計(jì)語(yǔ)言,不良的編程技術(shù)都會(huì)給一個(gè)應(yīng)用的性能帶來(lái)負(fù)面影響,對(duì)一個(gè)嵌入式應(yīng)用尤其如此。盡管對(duì)于絕大部分應(yīng)用來(lái)說(shuō),高效率的編程技術(shù)是重要的,但對(duì)于嵌入式應(yīng)用所工作的資源極度缺乏的環(huán)境,則要求對(duì)性能和存儲(chǔ)器管理給予特別的關(guān)注。

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

技術(shù)

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

與隧道技術(shù)

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

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

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

數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換技術(shù)

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

簇技術(shù)的應(yīng)用

當(dāng)把異構(gòu)數(shù)據(jù)捆綁到易管理的數(shù)據(jù)包中時(shí),簇是有用的,比如說(shuō)C語(yǔ)言結(jié)構(gòu)(C Structs)。然而,此時(shí)除了要考慮的全部數(shù)據(jù)外,數(shù)據(jù)內(nèi)容的相關(guān)信息也必須和這些數(shù)據(jù)一起傳遞。因此,有的時(shí)候,尤其是在把數(shù)據(jù)傳到subVI時(shí),相對(duì)于一個(gè)捆綁的簇而言,未捆綁的數(shù)據(jù)元素可以增加用戶(hù)應(yīng)用的運(yùn)行速度。

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

本文引用地址:http://2s4d.com/article/201706/358103.htm


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉