久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4250|回復(fù): 0
收起左側(cè)

DM642硬中斷延遲問(wèn)題

[復(fù)制鏈接]
ID:72008 發(fā)表于 2015-1-12 23:45 | 顯示全部樓層 |閱讀模式
問(wèn)題描述:
系統(tǒng)調(diào)試過(guò)程中發(fā)現(xiàn)硬件中斷經(jīng)常得不到及時(shí)響應(yīng),根據(jù)現(xiàn)象推斷中斷會(huì)被延遲達(dá)150us以上。
問(wèn)題分析:
中斷信號(hào)是連到CPLD的,DSPGPIO6也與CPLD相連。用CPLD的任一個(gè)輸出腳IOX做為中斷延遲指示。中斷沿來(lái)了之后將IOX置為高電平,DSP進(jìn)入中斷服務(wù)函數(shù)馬上給GPIO6一個(gè)翻轉(zhuǎn),CPLD檢查到來(lái)自GPIO6的翻轉(zhuǎn)后將IOX清為低電平。這樣,通過(guò)觀察IOX上的信號(hào)正脈沖寬度就可以看到從中斷發(fā)生到中斷得到響應(yīng)所用的時(shí)間了。而且通過(guò)脈寬觸發(fā)模式就可以設(shè)置大于150us的正脈沖觸發(fā),這樣就能捕捉到異常情形了。通過(guò)測(cè)試發(fā)現(xiàn),一般延遲只有400ns左右,但任務(wù)負(fù)載一重就會(huì)出現(xiàn)寬度超過(guò)150us的正脈沖,也就是中斷被延遲了150us以上才得到響應(yīng)。
下圖為觀察到的IOX管腳上的波形:


開(kāi)始以為是有其他中斷打斷而占用CPU。但經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證發(fā)現(xiàn)這種延遲并非受中斷影響,而是和任務(wù)有關(guān)。
最終確認(rèn)這種延時(shí)和某個(gè)任務(wù)中的memset()函數(shù)調(diào)用有關(guān)――這個(gè)函數(shù)對(duì)片外SDRAM中的384×100個(gè)字節(jié)進(jìn)行清0操作。將這個(gè)函數(shù)注釋掉就可以明顯減小中斷延遲發(fā)生的頻率。
memset(buffer,0,lenth);
由于片內(nèi)空間不足,buffer位于片外SDRAMlenth384×100
于是先懷疑這個(gè)函數(shù)可能對(duì)中斷機(jī)制做了什么禁止操作,便用自己寫的for循環(huán)代替memset函數(shù)進(jìn)行清0操作,看是不是會(huì)解決這個(gè)問(wèn)題。后來(lái)卻發(fā)現(xiàn)延遲反而更長(zhǎng)了。于是將for循環(huán)多進(jìn)行幾遍,編程使for循環(huán)重復(fù)9次。
for(j=0;j<9;j++){
dst=buffer;
       for (len=0;len<38400;len++){
       *dst++ = 0;
       }
}
從示波器可以看到連續(xù)9個(gè)中斷響應(yīng)異常:


上面的波形即可看出,中斷發(fā)生是200us周期的,超過(guò)200us的中斷延遲會(huì)致使一次中斷丟失。這幾個(gè)異常中斷響應(yīng)之間(脈沖下降沿間隔)都是300us.,于是推斷一次內(nèi)循環(huán)大致耗時(shí)300us
更改次數(shù)為5,則可以見(jiàn)到連續(xù)5個(gè)中斷響應(yīng)都被延遲300us左右。如果按133M寫速率的話,這個(gè)時(shí)間剛好是38400/133M=288us。于是懷疑為for循環(huán)內(nèi)中斷一直不能得到響應(yīng)。
for循環(huán)內(nèi)設(shè)置斷點(diǎn)觀察。發(fā)現(xiàn)for循環(huán)運(yùn)行中,GIE有效,IER內(nèi)的中斷使能有效,IFR中斷對(duì)應(yīng)位也正常置1,但程序不會(huì)跳轉(zhuǎn)到中斷服務(wù)程序。直到內(nèi)層的for循環(huán)結(jié)束后,才會(huì)跳轉(zhuǎn)到中斷服務(wù)程序,外層的for循環(huán)是可以打斷的。因?yàn)樽陨淼?font face="Times New Roman">IER仍有效,所以判斷沒(méi)有進(jìn)入HWI_enter調(diào)試程序,不是DSP/BIOS的問(wèn)題。應(yīng)當(dāng)是DSP芯片循環(huán)賦值硬件機(jī)制和中斷配合的問(wèn)題。
上面的賦值語(yǔ)句是按字節(jié)賦值,DSP處理時(shí)每循環(huán)一次2個(gè)時(shí)鐘周期,每循環(huán)一次寫3個(gè)字節(jié)(多邏輯單元并行操作)。也許正是這種多邏輯單元并行處理機(jī)制導(dǎo)致的CPU不能即時(shí)響應(yīng)中斷。
后來(lái)在TI的一篇文檔中找到了答案。TMS320C64x/C64x+ DSP CPU and Instruction Set Reference GuideSPRU732H)。534頁(yè)列出了中斷得到CPU響應(yīng)需具備的條件。
· IFm is set during CPU cycle 6. (This determination is made in CPU cycle 4 by the interrupt logic.)
· There is not a higher priority IFm bit set in IFR.
· The corresponding bit in IER is set (IEm = 1).
· GIE = 1
· NMIE = 1
· The five previous execute packets (n through n + 4) do not contain a branch (even if the branch is not
taken).
其中第6條即標(biāo)明,CPU響應(yīng)中斷前5個(gè)執(zhí)行包內(nèi),不能有跳轉(zhuǎn)指令。(execute packets指同一周期內(nèi)可并行執(zhí)行的指令集合——最多一周期可執(zhí)行8條指令。)因?yàn)檠h(huán)賦值的for循環(huán)內(nèi)只有五六條匯編指令,往往在二到三個(gè)周期內(nèi)即可完成一次循環(huán),然后CPU無(wú)法中斷而繼續(xù)下一次循環(huán)。直到循環(huán)結(jié)束才開(kāi)始響應(yīng)中斷。而從內(nèi)層的for循環(huán)到下一次循環(huán)之間則剛好多于5個(gè)執(zhí)行包,所以外層的for循環(huán)可以被中斷
解決方法:
可以使用DMA操作,用DAT_fill()函數(shù)代替memset()函數(shù)。
可以將較長(zhǎng)的for循環(huán)分解為多層for循環(huán),以減小最內(nèi)層for循環(huán)執(zhí)行時(shí)間,減小對(duì)中斷的影響。內(nèi)層循環(huán)結(jié)束后可以適當(dāng)做一點(diǎn)簡(jiǎn)單的運(yùn)算來(lái)提供5周期的“空隙”。
可以用64位操作或32位操作替換8位操作,可減小賦值所需的總時(shí)間。
可以用編譯器的“-mi”編譯項(xiàng)來(lái)讓編譯器自動(dòng)處理(后面需帶參數(shù),具體意義和用法可參見(jiàn)TISPRU198G文檔“TMS320C6000 Programmer’s Guide”的interrupts一節(jié),356頁(yè))。
注:64x64x+都是這樣的。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产视频一区在线 | 99国产精品视频免费观看一公开 | 在线永久看片免费的视频 | 一区二区三区av | 久久成人精品视频 | 高清人人天天夜夜曰狠狠狠狠 | 亚洲成人一区 | 亚洲一区二区精品视频 | 亚洲3p| 国产精品视频97 | 日韩电影一区二区三区 | 亚洲日韩中文字幕一区 | 老司机午夜性大片 | 黄色毛片在线观看 | 久久免费视频网 | 91精品久久久久久久久中文字幕 | 日韩欧美国产电影 | 日韩手机在线视频 | 色婷婷av一区二区三区软件 | 日韩精品一区二区三区在线播放 | 精品人伦一区二区三区蜜桃网站 | 亚洲区一区二 | 欧美一区二区三区 | 日韩精品免费视频 | 婷婷开心激情综合五月天 | 玖玖综合在线 | 在线一区观看 | 久久精品无码一区二区三区 | 国产欧美一区二区三区另类精品 | 欧美激情欧美激情在线五月 | 国产精品视频 | 在线视频第一页 | 欧美精品一区在线发布 | 国产真实乱对白精彩久久小说 | 99久久99久久精品国产片果冰 | 久久噜噜噜精品国产亚洲综合 | 91av视频在线观看 | 久久精品视频免费观看 | 天天澡天天狠天天天做 | 特黄视频 | 欧美一区二区在线 |