如何編寫(xiě)電力實(shí)時(shí)應(yīng)用的運(yùn)行在DSP上的高效C代碼
摘要:數(shù)字信號(hào)處理器(DSP)因其出色的處理能力,在包括電力應(yīng)用在內(nèi)的各個(gè)領(lǐng)域得到十分廣泛的應(yīng)用。為了滿足電力應(yīng)用的高實(shí)時(shí)性的要求,需要為DSP編寫(xiě)高效的代碼。目前對(duì)DSP進(jìn)行程序設(shè)計(jì)時(shí),使用得最多的是C語(yǔ)
了提高代碼的空間效率,下面列出了幾點(diǎn)建議:
a) 減少常量的申明和定義,多使用預(yù)定義語(yǔ)句“#define”。對(duì)于常量數(shù)組的申明和定義應(yīng)該盡量減少,可能的話還可以通過(guò)對(duì)數(shù)據(jù)類型的調(diào)整來(lái)節(jié)省常量數(shù)組所占用的內(nèi)存空間。對(duì)于一般的常量,都需要用預(yù)定義語(yǔ)句“#define”來(lái)進(jìn)行預(yù)定義。這樣,在編譯的時(shí)候,常量以立即數(shù)的形式存在于程序空間中,但這并沒(méi)有增加代碼在程序空間上的開(kāi)銷。如果不使用預(yù)定義,而是申明和定義了一些常量,這些常量都要在數(shù)據(jù)空間中占用一部分存儲(chǔ)單元。
b) 減少變量的申明和定義。在很多時(shí)候,我們都不能保證我們使用的變量數(shù)目是最少的。通常我們會(huì)使用冗余的變量來(lái)增加代碼的可讀性。這在其他情況下是無(wú)可厚非的,但是在對(duì)DSP進(jìn)行程序設(shè)計(jì)的時(shí)候,我們需要保證我們使用了最少的變量。對(duì)于中轉(zhuǎn)數(shù)據(jù)或臨時(shí)存放數(shù)據(jù)的變量而言,很多是不必要的,可以設(shè)法將其刪除。這樣做有助于減小代碼的數(shù)據(jù)空間,同時(shí)還減少了不必要的冗余操作,既提高的代碼的空間效率,又提高了代碼的時(shí)間效率。
c) 盡量使用全局變量。在一般的C語(yǔ)言程序設(shè)計(jì)中,我們不提倡過(guò)多地使用全局變量,因?yàn)槿肿兞康氖褂萌菀自斐沙绦虻慕Y(jié)構(gòu)模糊,函數(shù)之間的關(guān)聯(lián)性增強(qiáng),影響了程序的可讀性和結(jié)構(gòu)化【1】。但是在DSP的C語(yǔ)言程序設(shè)計(jì)中,由于程序的規(guī)模不大,并且以數(shù)據(jù)運(yùn)算和硬件操作為主,因此全局變量的使用不會(huì)使程序變得難以理解。相反,因?yàn)槿肿兞吭诔绦蛑腥菀子^察,因此,給程序員對(duì)代碼的剖析帶來(lái)方便,有助于對(duì)代碼的調(diào)試。絕大多數(shù)DSP代碼都是面向過(guò)程的,并且以對(duì)全局變量的操作為基礎(chǔ),以實(shí)現(xiàn)其功能。而很多全局變量可以在代碼執(zhí)行的不同階段被復(fù)用而不引起沖突,這樣就大大節(jié)省了代碼在數(shù)據(jù)空間上的開(kāi)銷。
d) 整個(gè)代碼中反復(fù)使用的部分代碼應(yīng)該盡量寫(xiě)成函數(shù)的形式在代碼中被調(diào)用。這樣做可以減少代碼的重復(fù)部分,節(jié)省了重復(fù)部分所占用的額外的程序空間。而由此帶來(lái)的代碼時(shí)間效率的下降是微乎其微的。
e) 盡量使用循環(huán)語(yǔ)句。循環(huán)語(yǔ)句的使用也在一定程度上減少的代碼的重復(fù),節(jié)省了程序空間。
3.2 提高代碼的時(shí)間效率
代碼的時(shí)間效率也可以理解成代碼執(zhí)行時(shí)間的長(zhǎng)短。為了能使代碼在完成同樣功能的前提下在更短的時(shí)間內(nèi)執(zhí)行完畢,需要對(duì)代碼進(jìn)行優(yōu)化,下面列出了幾條建議。
3.2.1 少用指針,多用下標(biāo)
這里指的是對(duì)數(shù)組的操作。在C語(yǔ)言的教材中一般都會(huì)提到數(shù)組操作的兩種方式:指針?lè)绞胶拖聵?biāo)方式【1】。一般,教材會(huì)推薦使用指針?lè)绞剑羔樂(lè)绞揭彩荂標(biāo)

責(zé)任編輯:和碩涵
免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
我要收藏
個(gè)贊
-
現(xiàn)貨模式下谷電用戶價(jià)值再評(píng)估
2020-10-10電力現(xiàn)貨市場(chǎng),電力交易,電力用戶 -
PPT | 高校綜合能源服務(wù)有哪些解決方案?
2020-10-09綜合能源服務(wù),清潔供熱,多能互補(bǔ) -
深度文章 | “十三五”以來(lái)電力消費(fèi)增長(zhǎng)原因分析及中長(zhǎng)期展望
2020-09-27電力需求,用電量,全社會(huì)用電量
-
PPT | 高校綜合能源服務(wù)有哪些解決方案?
2020-10-09綜合能源服務(wù),清潔供熱,多能互補(bǔ) -
深度文章 | “十三五”以來(lái)電力消費(fèi)增長(zhǎng)原因分析及中長(zhǎng)期展望
2020-09-27電力需求,用電量,全社會(huì)用電量 -
我國(guó)電力改革涉及的電價(jià)問(wèn)題
-
電化學(xué)儲(chǔ)能應(yīng)用現(xiàn)狀及對(duì)策研究
2019-08-14電化學(xué)儲(chǔ)能應(yīng)用 -
《能源監(jiān)測(cè)與評(píng)價(jià)》——能源系統(tǒng)工程之預(yù)測(cè)和規(guī)劃
-
《能源監(jiān)測(cè)與評(píng)價(jià)》——能源系統(tǒng)工程之基本方法
-
貴州職稱論文發(fā)表選擇泛亞,論文發(fā)表有保障
2019-02-20貴州職稱論文發(fā)表 -
《電力設(shè)備管理》雜志首屆全國(guó)電力工業(yè) 特約專家征文
2019-01-05電力設(shè)備管理雜志 -
國(guó)內(nèi)首座蜂窩型集束煤倉(cāng)管理創(chuàng)新與實(shí)踐
-
人力資源和社會(huì)保障部:電線電纜制造工國(guó)家職業(yè)技能標(biāo)準(zhǔn)
-
人力資源和社會(huì)保障部:變壓器互感器制造工國(guó)家職業(yè)技能標(biāo)準(zhǔn)
-
《低壓微電網(wǎng)并網(wǎng)一體化裝置技術(shù)規(guī)范》T/CEC 150
2019-01-02低壓微電網(wǎng)技術(shù)規(guī)范
-
現(xiàn)貨模式下谷電用戶價(jià)值再評(píng)估
2020-10-10電力現(xiàn)貨市場(chǎng),電力交易,電力用戶 -
建議收藏 | 中國(guó)電價(jià)全景圖
2020-09-16電價(jià),全景圖,電力 -
一張圖讀懂我國(guó)銷售電價(jià)附加
2020-03-05銷售電價(jià)附加