如何編寫電力實時應用的運行在DSP上的高效C代碼
摘要:數字信號處理器(DSP)因其出色的處理能力,在包括電力應用在內的各個領域得到十分廣泛的應用。為了滿足電力應用的高實時性的要求,需要為DSP編寫高效的代碼。目前對DSP進行程序設計時,使用得最多的是C語
了提高代碼的空間效率,下面列出了幾點建議:
a) 減少常量的申明和定義,多使用預定義語句“#define”。對于常量數組的申明和定義應該盡量減少,可能的話還可以通過對數據類型的調整來節省常量數組所占用的內存空間。對于一般的常量,都需要用預定義語句“#define”來進行預定義。這樣,在編譯的時候,常量以立即數的形式存在于程序空間中,但這并沒有增加代碼在程序空間上的開銷。如果不使用預定義,而是申明和定義了一些常量,這些常量都要在數據空間中占用一部分存儲單元。
b) 減少變量的申明和定義。在很多時候,我們都不能保證我們使用的變量數目是最少的。通常我們會使用冗余的變量來增加代碼的可讀性。這在其他情況下是無可厚非的,但是在對DSP進行程序設計的時候,我們需要保證我們使用了最少的變量。對于中轉數據或臨時存放數據的變量而言,很多是不必要的,可以設法將其刪除。這樣做有助于減小代碼的數據空間,同時還減少了不必要的冗余操作,既提高的代碼的空間效率,又提高了代碼的時間效率。
c) 盡量使用全局變量。在一般的C語言程序設計中,我們不提倡過多地使用全局變量,因為全局變量的使用容易造成程序的結構模糊,函數之間的關聯性增強,影響了程序的可讀性和結構化【1】。但是在DSP的C語言程序設計中,由于程序的規模不大,并且以數據運算和硬件操作為主,因此全局變量的使用不會使程序變得難以理解。相反,因為全局變量在程序中容易觀察,因此,給程序員對代碼的剖析帶來方便,有助于對代碼的調試。絕大多數DSP代碼都是面向過程的,并且以對全局變量的操作為基礎,以實現其功能。而很多全局變量可以在代碼執行的不同階段被復用而不引起沖突,這樣就大大節省了代碼在數據空間上的開銷。
d) 整個代碼中反復使用的部分代碼應該盡量寫成函數的形式在代碼中被調用。這樣做可以減少代碼的重復部分,節省了重復部分所占用的額外的程序空間。而由此帶來的代碼時間效率的下降是微乎其微的。
e) 盡量使用循環語句。循環語句的使用也在一定程度上減少的代碼的重復,節省了程序空間。
3.2 提高代碼的時間效率
代碼的時間效率也可以理解成代碼執行時間的長短。為了能使代碼在完成同樣功能的前提下在更短的時間內執行完畢,需要對代碼進行優化,下面列出了幾條建議。
3.2.1 少用指針,多用下標
這里指的是對數組的操作。在C語言的教材中一般都會提到數組操作的兩種方式:指針方式和下標方式【1】。一般,教材會推薦使用指針方式,而指針方式也是C標
責任編輯:和碩涵
免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
-
現貨模式下谷電用戶價值再評估
2020-10-10電力現貨市場,電力交易,電力用戶 -
PPT | 高校綜合能源服務有哪些解決方案?
2020-10-09綜合能源服務,清潔供熱,多能互補 -
深度文章 | “十三五”以來電力消費增長原因分析及中長期展望
2020-09-27電力需求,用電量,全社會用電量
-
PPT | 高校綜合能源服務有哪些解決方案?
2020-10-09綜合能源服務,清潔供熱,多能互補 -
深度文章 | “十三五”以來電力消費增長原因分析及中長期展望
2020-09-27電力需求,用電量,全社會用電量 -
我國電力改革涉及的電價問題
-
貴州職稱論文發表選擇泛亞,論文發表有保障
2019-02-20貴州職稱論文發表 -
《電力設備管理》雜志首屆全國電力工業 特約專家征文
2019-01-05電力設備管理雜志 -
國內首座蜂窩型集束煤倉管理創新與實踐
-
人力資源和社會保障部:電線電纜制造工國家職業技能標準
-
人力資源和社會保障部:變壓器互感器制造工國家職業技能標準
-
《低壓微電網并網一體化裝置技術規范》T/CEC 150
2019-01-02低壓微電網技術規范
-
現貨模式下谷電用戶價值再評估
2020-10-10電力現貨市場,電力交易,電力用戶 -
建議收藏 | 中國電價全景圖
2020-09-16電價,全景圖,電力 -
一張圖讀懂我國銷售電價附加
2020-03-05銷售電價附加
-
電氣工程學科排行榜發布!華北電力大學排名第二
-
國家電網61家單位招聘畢業生
2019-03-12國家電網招聘畢業生 -
《電力設備管理》雜志讀者俱樂部會員招募
2018-10-16電力設備管理雜志