新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM內(nèi)核目標(biāo)系統(tǒng)中的代碼運(yùn)行時(shí)間測(cè)試

基于ARM內(nèi)核目標(biāo)系統(tǒng)中的代碼運(yùn)行時(shí)間測(cè)試

作者: 時(shí)間:2012-11-22 來源:網(wǎng)絡(luò) 收藏

  int my_CountStop() {

  int i=0;

  rWTCON=((MCLK/1000000-1)8)|(23);   //計(jì)時(shí)結(jié)束

  i=0xffff-rWTCNT;//每16 μs計(jì)數(shù)一次

  return i*16;

  }

  (2) 應(yīng)用

  int Main() {

  my_CountStart();

  Des_Go(buf, buf, sizeof(str), key, sizeof(key), ENCRYPT, Is3DES);

  encrypt_time=my_CountStop();

  }

  需要指出: 在改變WTCON的值之前應(yīng)將原有值保存,待測(cè)量完成后再復(fù)原WTCON。之所以強(qiáng)調(diào)這一點(diǎn),是因?yàn)橄到y(tǒng)別處很可能在使用看門狗功能。

  實(shí)驗(yàn)當(dāng)中,對(duì)長度為189字節(jié)的字符串采用3次DES加密。密鑰長度為15位,測(cè)得的加密時(shí)間為28 832 μs,解密時(shí)間為28 896 μs??s短字符串長度,測(cè)得的加密時(shí)間基本呈線性變化: 字符串長度為107字節(jié)而其他地方不變時(shí),加密耗時(shí)16 928 μs,解密耗時(shí)16 948 μs;字符串長度為41字節(jié)而其他地方不變時(shí),加密耗時(shí)7 424 μs,解密耗時(shí)7 424 μs。對(duì)于相同長度的字符串,密鑰長度的改變對(duì)加密/解密時(shí)間的影響不是很大。

  值得一提的是,剛開始實(shí)驗(yàn)時(shí),被加密字符串分別取為190字節(jié)和75字節(jié),測(cè)得耗時(shí)分別是34 032 μs和16 928 μs,顯然與倍增的關(guān)系相差很遠(yuǎn)。分析程序后發(fā)現(xiàn),原來問題出在加密算法中間的打印語句“Uart_Printf("counting begin...!!!")”上。原來以為它耗時(shí)很少,故沒有將它從加密算法中移走;移走后再試,耗時(shí)大減,分別為29 600 μs和12 496 μs,與字符數(shù)倍增、時(shí)間倍增的預(yù)期基本相符。上面的實(shí)驗(yàn),還使筆者得知該打印語句占用了4 432 μs。稍微修改條件,繼續(xù)實(shí)驗(yàn): 當(dāng)上述打印語句的字節(jié)數(shù)擴(kuò)充為原來的4倍時(shí),測(cè)得該語句耗時(shí)17 728 μs??梢?耗時(shí)與打印內(nèi)容的字節(jié)數(shù)基本上成正比;另外,這種打印語句與加密/解密算法本身相比,并不是想當(dāng)然地只占用一點(diǎn)點(diǎn)時(shí)間。(上述數(shù)據(jù)與PC機(jī)串口通信波特率的設(shè)置無明顯關(guān)系。實(shí)際測(cè)試結(jié)果為: 波特率由115 200 bps下降到57 600 bps,沒有可以察覺到的差別。)

  3、測(cè)量方法討論

  ARM內(nèi)置看門狗用作時(shí)間度量的適用范圍,大體以μs數(shù)量級(jí)為界。比如,從S3C44B0X的器件特性說明中可知,MCLK在看門狗計(jì)時(shí)器里的分頻比至少是1/16。典型情況下,MCLK=60 MHz,則看門狗能夠分辨的最短時(shí)間單元t=1/(60 MHz/16)=0.27 μs。統(tǒng)計(jì)誤差約為t/2,即0.1μs數(shù)量級(jí)。就μs級(jí)的時(shí)間測(cè)量精度而言,相對(duì)誤差有可能達(dá)到1%~10%;不過,這對(duì)很多速度估算的場(chǎng)合來說還是可以接受的。如果被測(cè)時(shí)間在10 μs以上,那就沒有任何問題,可以認(rèn)為是相當(dāng)精確的了。

  這種思路還可用來實(shí)現(xiàn)精確延時(shí),因?yàn)樗亩〞r(shí)不依賴于指令執(zhí)行時(shí)間(指令執(zhí)行要受到系統(tǒng)調(diào)度等的影響,因而有很多不確定因素),而取決于對(duì)主時(shí)鐘的硬件分頻計(jì)數(shù)。

  由此實(shí)驗(yàn)推廣,ARM內(nèi)置看門狗可以作為此類系統(tǒng)中的第二時(shí)鐘存在。對(duì)于那些時(shí)間要求精確到μs、RTC的精度無法滿足的應(yīng)用,這種處理都不失為一種準(zhǔn)確、高效的方法。

參考文獻(xiàn):

[1].S3C44B0Xdatasheethttp://www.dzsc.com/datasheet/S3C44B0X_589522.html.
[2].1/16datasheethttp://www.dzsc.com/datasheet/1%2f16_2510134.html.


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉