www.狠狠干-精品国产91-狠狠操天天干-91伊人网-色偷偷超碰-91av视频在线

如何編寫電力實時應用的運行在DSP上的高效C代碼

2013-12-12 10:46:22 電力信息化  點擊量:1878 評論 (0)
摘要:數字信號處理器(DSP)因其出色的處理能力,在包括電力應用在內的各個領域得到十分廣泛的應用。為了滿足電力應用的高實時性的要求,需要為DSP編寫高效的代碼。目前對DSP進行程序設計時,使用得最多的是C語
準庫函數中所使用的數組操作方式。也許指針方式在很多時候比下標方式來得更方便,然而下標方式比指針方式具有更高的效率。因此,在DSP程序設計中在能使用下標方式的地方盡量使用下標方式。
例如下面一個初始化數組的函數,用指針方式寫成:
void InitArray(int *array, int arrayLenth)
{
int n;
 
for(n=0;n<arrayLength;n++)
{
*array++=0;
}
}
用下標方式寫成:
void InitArray(int *array, int arrayLenth)
{
int n;
 
for(n=0;n<arrayLength;n++)
{
array[n]=0;
}
}
用下標方式寫成的函數,其執行的時間效率要比用指針方式寫成的函數高很多。
3.2.2 少用判斷語句和分支語句
判斷語句和分支語句的使用會打斷流水線,因而嚴重降低程序的執行效率。從DSP的匯編指令集中可以看得很清楚,一條同時完成乘法和加法的復雜指令只需要DSP的一個指令周期,而一條簡單的條件跳轉指令則需要DSP的六條指令周期【4】【5】。究其原因,條件跳轉語句將打斷流水線。在C代碼中,if…else…語句和switch…case…語句都屬于條件跳轉語句。因此,判斷語句和分支語句的使用會降低代碼的時間效率,要盡量少用。
在實際操作時,可以通過各種方法來避免判斷語句和分支語句的使用,用其他代碼取而代之。例如下面的返回最大值的函數,如果使用判斷語句,函數一般寫成如下形式:
int MaxOfTwo(int a, int b)
{
if(a>b)
{
return a;
}
else
{
return b;
}
}
我們可以改寫這個函數以避免判斷語句的使用,改寫后的函數如下:
int MaxOfTwo(int a, int b)
{
unsigned int c;
 
c=a<b;
return (a-c*(a-b));
}
改寫后的函數比改寫前的函數具有更高的時間效率。
3.2.3 register關鍵字的使用
在多數DSP程序設計中,都允許使用register關鍵字【2】。它的作用就在于將register關鍵字所修飾的變量放在DSP的寄存器中,而不是放在片內存儲器中。由于DSP對寄存器的訪問速度比對片內存儲器的訪問速度還要快,因此提高了代碼的時間效率。特別是作為循環的計數變量,更需要放入寄存器中。例如前面提到的初始化數組的函數,如果寫成:
void InitArray(int *array, int arrayLenth)
{
register int n;
 
for(n=0;n<arrayLength;n++)
{
array[n]=0;
}
}
則變量n將被放入寄存器。雖然多數DSP編譯器的自動優化功能有時候會根據自己的判斷自動將一些沒有進行register修飾的變量放入寄存器,但是編譯器的選擇往往不是最明智的,需要人為添加register修飾詞。如果register變量太多,以至于寄存器的數目不夠,編譯器會忽視一部分register修飾詞,因此不會造成程序的錯誤。但這不代表所有的變量都可以放入寄存器中。為
大云網官方微信售電那點事兒

責任編輯:和碩涵

免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
点个赞吧
評論
赶紧留言抢沙发吧~
?
主站蜘蛛池模板: 欧美成人免费观看 | 中文字幕日本一区波多野不卡 | 亚洲视频免费一区 | 国产在线视频精品视频免费看 | 成人免费观看高清在线毛片 | 日本精品久久久久久久久免费 | 欧美一a级做爰 | 日韩成人在线观看 | 欧美+日本+国产+在线观看 | 亚洲美女福利视频在线 | 美女网站免费观看视频 | 国产成人tv在线观看 | 免费在线一级毛片 | 亚洲国产成人va在线观看网址 | 欧美精品成人一区二区在线观看 | 手机看福利片 | 91精品福利手机国产在线 | 女人张开腿让男人桶免费网站 | 俄罗斯a级毛片 | 国产成人亚洲综合91精品555 | 欧美操操操操 | 亚洲一区2区三区4区5区 | 午夜成人影视 | 免费又黄又爽又猛大片午夜 | 国产一区视频在线 | 日韩欧美一级毛片视频免费 | 久久国产精品夜色 | 免费一级毛片在线播放放视频 | 日本天堂网 | a毛片在线观看 | 欧美人成毛片在线播放 | 亚洲人成亚洲精品 | 亚洲精品二区中文字幕 | 精品一区二区三区波多野结衣 | 99久久免费精品 | 欧洲精品一区二区三区在线观看 | 亚洲日本欧美产综合在线 | 国产日韩欧美一区二区 | 成人小视频在线观看免费 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 亚洲无限看 |