<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

    超全面資料:DSP程序跑飛原因及解決方法

    發(fā)布時間:2015-04-15 責(zé)任編輯:sherry

    【導(dǎo)讀】編程的時候DSP程序跑飛的原因有哪些?我們該如何解決這些DSP技術(shù)問題?今天小編搜羅來了程序跑飛的各種原因,同時也湊齊了各種解決程序跑飛的方法,希望能夠?qū)Υ蠹矣兴鶐椭?/strong>
     
    DSP程序跑飛原因狀況一
     
    一般調(diào)試代碼的步驟有兩種方案:方案一是先調(diào)試主程序,最后添加看門狗等保護(hù)電路;方案二是先搭建代碼環(huán)境,比如看門狗保護(hù)電路等,然后在該平臺上開發(fā)主程序。為了更好的編寫算法代碼,往往采用方案一。在調(diào)試代碼的過程中,遇到過如下一種程序跑飛的情況:
     
    【原因】
     
    硬件看門狗電路設(shè)計失誤。
     
    【設(shè)計】
     
    設(shè)計方案中,采用美信芯片MAX706AT設(shè)計硬件看門狗電路,看似非常完美的電路,在連接仿真器進(jìn)行簡單方波輸出測試時,發(fā)現(xiàn)DSP沒有任務(wù)輸出。程序已經(jīng)異常了,因為采用的方案一設(shè)計代碼,所以只知道異常,不知道原因。
     
    【解決思路】
     
    1、無數(shù)次的下載程序,并運行程序,但是程序總是異常運行。
     
    2、慶幸的是,電路設(shè)計中有好幾個IO直接驅(qū)動LED的電路,這時候,特別注意到LED顯示的亮度不正常,然后趕緊拿萬用表測試IO電壓,結(jié)果只有1.6V左右。這時已經(jīng)明白,是看門狗異常了。
     
    3、排查電路中的MAX706AT電路,一點問題都沒有。查找MAX706AT的封裝和管腳對應(yīng)時,發(fā)現(xiàn)了問題的根源。芯片有SO和UMAX兩種封裝,說來奇怪,名稱完全相同,封裝不同,加上管腳定義不同,造成了看門狗芯片的復(fù)位電壓總是低電壓。
     
    終于找到問題了。
    DSP
    DSP程序跑飛原因狀況二
     
    【原因】
     
    中斷處理超時引起程序跑飛
     
    【設(shè)計】
     
    設(shè)計基于TMS320F28335(4)的雙極性信號采集系統(tǒng),因為頻率較高,因此采用了中斷采集方式,也就是說用PWM輸出方波,觸發(fā)采集模塊開始采集,當(dāng)采集鎖存之后會中斷。
     
    告知dsp進(jìn)行數(shù)據(jù)讀取。那么數(shù)據(jù)讀取就是在中斷中進(jìn)行的。
     
    在初版中,采用周期=20ms/256進(jìn)行采樣觸發(fā)。
     
    很奇怪的問題發(fā)生了,DEBUG模式下,沒有問題,可以采集到數(shù)據(jù),但是RELEASE模式下,采集數(shù)據(jù)時,程序跑飛。
     
    當(dāng)意識到程序跑飛時,懷疑到中斷程序太長,或者處理時間太長。
    [page]
    【解決思路】
     
    猜測周期太短,那么可以將周期增加,周期=20ms/128,仍然失敗告終。
     
    再減周期=20ms/64,okay。
     
    宜將剩勇追窮寇,周期減為=20ms/32,okay
     
    第一次就這樣解決了。
     
    【附】當(dāng)使用dsp進(jìn)行算法處理時,一定要先對算法評估,否則,當(dāng)認(rèn)識到自己程序問題時,已經(jīng)來不及了,因為參數(shù)修改之后,有可能不能滿足系統(tǒng)的需求。
     
    DSP程序跑飛原因狀況三
     
    1.不小心操作到了子函數(shù)返回地址值。
     
    2.數(shù)值溢出,讀寫了超過范圍的存儲空間,堆棧溢出等 。
     
    程序是帶有BIOS的程序,當(dāng)程序跑飛后我就在主函數(shù)的最后一行設(shè)置斷點,結(jié)果程序可以跑到主函數(shù)的最后一行,接下來就是初始化BIOS操作系統(tǒng)了,操作系統(tǒng)的源代碼又是不可見的,所以一時陷入了僵局。不知道該怎么辦好。
     
    在移植程序的時候跑飛的,后來我就拿程序的BIOS配置和另一個正常的BIOS配置比較,結(jié)果發(fā)現(xiàn)Stack Size是0x400(即默認(rèn)的配置),而另一個是0x1000,然后改過來之后程序恢復(fù)正常。
     
    一開始的時候意識到可能是堆棧溢出造成的程序跑飛,所以就增大了每塊存儲器上的動態(tài)堆棧,即:create a heap in this memory heap size:0x08000 。結(jié)果不管用。
     
    后來才修改的Stack Size (MAUs)選項,即全局的堆棧大小,從0x400改到0x1000然后問題排除。后來才明白,動態(tài)堆棧是用來動態(tài)的創(chuàng)建任務(wù)用的,并非是想要的那個堆棧。經(jīng)過反思感覺還是對BIOS系統(tǒng)不熟悉造成的大錯!
     
    DSP程序跑飛原因狀況四
     
    過單片機的程序跑飛的有,靜電干擾。 超頻過大。導(dǎo)致不穩(wěn)定。
     
    DSP程序跑飛原因狀況五
     
    程序經(jīng)常跑飛的ti dsp 調(diào)試原因
     
    1) 程序沒有結(jié)尾或不是循環(huán)的程序。
     
    2)nmi管腳沒有上拉。
     
    3)在看門狗動作的時候程序會經(jīng)常跑飛。
     
    4)程序編制不當(dāng)也會引起程序跑飛。
     
    5)硬件系統(tǒng)有問題
     
    數(shù)值溢出,讀寫了超過范圍的存儲空間,堆棧溢出,異常主要原因。復(fù)位芯片的原理,是為了防止程序出錯。但是不能通過復(fù)位來解決異常問題,所以,首先要調(diào)試代碼,做到代碼正常運轉(zhuǎn),然后,再添加復(fù)位模塊。這樣才能做好產(chǎn)品,否則,為了復(fù)位而復(fù)位。
     
    要采購萬用表么,點這里了解一下價格!
    特別推薦
    技術(shù)文章更多>>
    技術(shù)白皮書下載更多>>
    熱門搜索
    ?

    關(guān)閉

    ?

    關(guān)閉

    一二三四在线观看免费中文在线观看| 亚洲色成人中文字幕网站| 中文字幕一区二区三区永久 | 中文字幕无码久久人妻| 免费a级毛片无码| 亚洲国产综合无码一区二区二三区 | 亚洲V无码一区二区三区四区观看| 亚洲精品无码成人AAA片| 亚洲欧美日韩中文在线制服| 2021无码最新国产在线观看| 无码中文av有码中文a| 精品无码一区二区三区在线| 精品无码av一区二区三区| 久久久久亚洲AV无码专区网站| 亚洲国产成人片在线观看无码| 精品久久久久久无码中文字幕 | 无码AV动漫精品一区二区免费| 亚洲欧洲日产国码无码久久99| 最近完整中文字幕2019电影| 欧洲人妻丰满av无码久久不卡| 久久亚洲日韩看片无码| 欧美日韩中文字幕在线| 精品久久久久久中文字幕人妻最新| 亚洲男人在线无码视频| 久久亚洲精品无码播放| heyzo高无码国产精品| 国产v亚洲v天堂无码网站| 最近2019年中文字幕一页| 亚洲AV中文无码乱人伦下载| 无码中文字幕乱在线观看| 人妻中文无码久热丝袜| 亚洲va无码专区国产乱码| 国产激情无码一区二区三区| 蜜桃无码AV一区二区| 中文字幕无码免费久久| 制服丝袜人妻中文字幕在线| 久别的草原在线影院电影观看中文 | 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 台湾无码一区二区| 中文字幕无码不卡免费视频| 久久久久亚洲AV无码专区首JN|