
超全面資料: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ù)次的下載程序,并運(yùn)行程序,但是程序總是異常運(yùn)行。
2、慶幸的是,電路設(shè)計中有好幾個IO直接驅(qū)動LED的電路,這時候,特別注意到LED顯示的亮度不正常,然后趕緊拿萬用表測試IO電壓,結(jié)果只有1.6V左右。這時已經(jīng)明白,是看門狗異常了。
3、排查電路中的MAX706AT電路,一點(diǎn)問題都沒有。查找MAX706AT的封裝和管腳對應(yīng)時,發(fā)現(xiàn)了問題的根源。芯片有SO和UMAX兩種封裝,說來奇怪,名稱完全相同,封裝不同,加上管腳定義不同,造成了看門狗芯片的復(fù)位電壓總是低電壓。
終于找到問題了。

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è)置斷點(diǎn),結(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程序跑飛原因狀況四
過單片機(jī)的程序跑飛的有,靜電干擾。 超頻過大。導(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)試代碼,做到代碼正常運(yùn)轉(zhuǎn),然后,再添加復(fù)位模塊。這樣才能做好產(chǎn)品,否則,為了復(fù)位而復(fù)位。
特別推薦
- 功率半導(dǎo)體驅(qū)動電源設(shè)計(一)綜述
- 借助集成高壓電阻隔離式放大器和調(diào)制器提高精度和性能
- 第 4 代碳化硅技術(shù):重新定義高功率應(yīng)用的性能和耐久性
- 揭秘:48V系統(tǒng)如何撬動汽車收益杠桿
- 超級電容器如何有效加強(qiáng)備用電源和負(fù)載管理 (上)
- 電阻,電動力和功率耗散
- 意法半導(dǎo)體為數(shù)據(jù)中心和AI集群帶來更高性能的云光互連技術(shù)
技術(shù)文章更多>>
- 自動測試設(shè)備應(yīng)用中PhotoMOS開關(guān)的替代方案
- 超級電容器如何有效加強(qiáng)備用電源和負(fù)載管理 (下)
- 貿(mào)澤電子與Amphenol聯(lián)合推出全新電子書探索連接技術(shù)在電動汽車和電動垂直起降飛行器中的作用
- 意法半導(dǎo)體升級傳感器評估板STEVAL-MKI109D,加快即插即用傳感模塊評估
- 意法半導(dǎo)體為數(shù)據(jù)中心和AI集群帶來更高性能的云光互連技術(shù)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
生產(chǎn)測試
聲表諧振器
聲傳感器
濕度傳感器
石英機(jī)械表
石英石危害
時間繼電器
時鐘IC
世強(qiáng)電訊
示波器
視頻IC
視頻監(jiān)控
收發(fā)器
手機(jī)開發(fā)
受話器
數(shù)字家庭
數(shù)字家庭
數(shù)字鎖相環(huán)
雙向可控硅
水泥電阻
絲印設(shè)備
伺服電機(jī)
速度傳感器
鎖相環(huán)
胎壓監(jiān)測
太陽能
太陽能電池
泰科源
鉭電容
碳膜電位器