
你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文
超全面資料:DSP程序跑飛原因及解決方法
發(fā)布時(shí)間:2015-04-15 責(zé)任編輯:sherry
【導(dǎo)讀】編程的時(shí)候DSP程序跑飛的原因有哪些?我們?cè)撊绾谓鉀Q這些DSP技術(shù)問(wèn)題?今天小編搜羅來(lái)了程序跑飛的各種原因,同時(shí)也湊齊了各種解決程序跑飛的方法,希望能夠?qū)Υ蠹矣兴鶐椭?/strong>
DSP程序跑飛原因狀況一
一般調(diào)試代碼的步驟有兩種方案:方案一是先調(diào)試主程序,最后添加看門(mén)狗等保護(hù)電路;方案二是先搭建代碼環(huán)境,比如看門(mén)狗保護(hù)電路等,然后在該平臺(tái)上開(kāi)發(fā)主程序。為了更好的編寫(xiě)算法代碼,往往采用方案一。在調(diào)試代碼的過(guò)程中,遇到過(guò)如下一種程序跑飛的情況:
【原因】
硬件看門(mén)狗電路設(shè)計(jì)失誤。
【設(shè)計(jì)】
設(shè)計(jì)方案中,采用美信芯片MAX706AT設(shè)計(jì)硬件看門(mén)狗電路,看似非常完美的電路,在連接仿真器進(jìn)行簡(jiǎn)單方波輸出測(cè)試時(shí),發(fā)現(xiàn)DSP沒(méi)有任務(wù)輸出。程序已經(jīng)異常了,因?yàn)椴捎玫姆桨敢辉O(shè)計(jì)代碼,所以只知道異常,不知道原因。
【解決思路】
1、無(wú)數(shù)次的下載程序,并運(yùn)行程序,但是程序總是異常運(yùn)行。
2、慶幸的是,電路設(shè)計(jì)中有好幾個(gè)IO直接驅(qū)動(dòng)LED的電路,這時(shí)候,特別注意到LED顯示的亮度不正常,然后趕緊拿萬(wàn)用表測(cè)試IO電壓,結(jié)果只有1.6V左右。這時(shí)已經(jīng)明白,是看門(mén)狗異常了。
3、排查電路中的MAX706AT電路,一點(diǎn)問(wèn)題都沒(méi)有。查找MAX706AT的封裝和管腳對(duì)應(yīng)時(shí),發(fā)現(xiàn)了問(wèn)題的根源。芯片有SO和UMAX兩種封裝,說(shuō)來(lái)奇怪,名稱(chēng)完全相同,封裝不同,加上管腳定義不同,造成了看門(mén)狗芯片的復(fù)位電壓總是低電壓。
終于找到問(wèn)題了。

DSP程序跑飛原因狀況二
【原因】
中斷處理超時(shí)引起程序跑飛
【設(shè)計(jì)】
設(shè)計(jì)基于TMS320F28335(4)的雙極性信號(hào)采集系統(tǒng),因?yàn)轭l率較高,因此采用了中斷采集方式,也就是說(shuō)用PWM輸出方波,觸發(fā)采集模塊開(kāi)始采集,當(dāng)采集鎖存之后會(huì)中斷。
告知dsp進(jìn)行數(shù)據(jù)讀取。那么數(shù)據(jù)讀取就是在中斷中進(jìn)行的。
在初版中,采用周期=20ms/256進(jìn)行采樣觸發(fā)。
很奇怪的問(wèn)題發(fā)生了,DEBUG模式下,沒(méi)有問(wèn)題,可以采集到數(shù)據(jù),但是RELEASE模式下,采集數(shù)據(jù)時(shí),程序跑飛。
當(dāng)意識(shí)到程序跑飛時(shí),懷疑到中斷程序太長(zhǎng),或者處理時(shí)間太長(zhǎng)。
[page]
【解決思路】
猜測(cè)周期太短,那么可以將周期增加,周期=20ms/128,仍然失敗告終。
再減周期=20ms/64,okay。
宜將剩勇追窮寇,周期減為=20ms/32,okay
第一次就這樣解決了。
【附】當(dāng)使用dsp進(jìn)行算法處理時(shí),一定要先對(duì)算法評(píng)估,否則,當(dāng)認(rèn)識(shí)到自己程序問(wèn)題時(shí),已經(jīng)來(lái)不及了,因?yàn)閰?shù)修改之后,有可能不能滿足系統(tǒng)的需求。
DSP程序跑飛原因狀況三
1.不小心操作到了子函數(shù)返回地址值。
2.數(shù)值溢出,讀寫(xiě)了超過(guò)范圍的存儲(chǔ)空間,堆棧溢出等 。
程序是帶有BIOS的程序,當(dāng)程序跑飛后我就在主函數(shù)的最后一行設(shè)置斷點(diǎn),結(jié)果程序可以跑到主函數(shù)的最后一行,接下來(lái)就是初始化BIOS操作系統(tǒng)了,操作系統(tǒng)的源代碼又是不可見(jiàn)的,所以一時(shí)陷入了僵局。不知道該怎么辦好。
在移植程序的時(shí)候跑飛的,后來(lái)我就拿程序的BIOS配置和另一個(gè)正常的BIOS配置比較,結(jié)果發(fā)現(xiàn)Stack Size是0x400(即默認(rèn)的配置),而另一個(gè)是0x1000,然后改過(guò)來(lái)之后程序恢復(fù)正常。
一開(kāi)始的時(shí)候意識(shí)到可能是堆棧溢出造成的程序跑飛,所以就增大了每塊存儲(chǔ)器上的動(dòng)態(tài)堆棧,即:create a heap in this memory heap size:0x08000 。結(jié)果不管用。
后來(lái)才修改的Stack Size (MAUs)選項(xiàng),即全局的堆棧大小,從0x400改到0x1000然后問(wèn)題排除。后來(lái)才明白,動(dòng)態(tài)堆棧是用來(lái)動(dòng)態(tài)的創(chuàng)建任務(wù)用的,并非是想要的那個(gè)堆棧。經(jīng)過(guò)反思感覺(jué)還是對(duì)BIOS系統(tǒng)不熟悉造成的大錯(cuò)!
DSP程序跑飛原因狀況四
過(guò)單片機(jī)的程序跑飛的有,靜電干擾。 超頻過(guò)大。導(dǎo)致不穩(wěn)定。
DSP程序跑飛原因狀況五
程序經(jīng)常跑飛的ti dsp 調(diào)試原因
1) 程序沒(méi)有結(jié)尾或不是循環(huán)的程序。
2)nmi管腳沒(méi)有上拉。
3)在看門(mén)狗動(dòng)作的時(shí)候程序會(huì)經(jīng)常跑飛。
4)程序編制不當(dāng)也會(huì)引起程序跑飛。
5)硬件系統(tǒng)有問(wèn)題
數(shù)值溢出,讀寫(xiě)了超過(guò)范圍的存儲(chǔ)空間,堆棧溢出,異常主要原因。復(fù)位芯片的原理,是為了防止程序出錯(cuò)。但是不能通過(guò)復(fù)位來(lái)解決異常問(wèn)題,所以,首先要調(diào)試代碼,做到代碼正常運(yùn)轉(zhuǎn),然后,再添加復(fù)位模塊。這樣才能做好產(chǎn)品,否則,為了復(fù)位而復(fù)位。
特別推薦
- 實(shí)現(xiàn)物流和零售自動(dòng)化——第2部分
- 提升高瞬態(tài)汽車(chē)應(yīng)用的速度和效率
- 如何優(yōu)化超低噪聲μModule穩(wěn)壓器的二階輸出濾波器
- 使用示波器對(duì)三相電機(jī)驅(qū)動(dòng)器進(jìn)行測(cè)量(上)
- 人形機(jī)器人、人工智能大模型爆了 來(lái)CITE 2025一探究竟
- 2025年及未來(lái)半導(dǎo)體行業(yè)的八大趨勢(shì)
- 圖像傳感器選擇標(biāo)準(zhǔn)多?成像性能必須排第一
技術(shù)文章更多>>
- 從自動(dòng)化到智能化,線束加工企業(yè)如何智領(lǐng)市場(chǎng)主流?
- 從光色同控AI芯片到黑曜屏Ultra:解碼海信E8Q Pro背后的技術(shù)突圍戰(zhàn)
- 低功耗MCU在智能水表場(chǎng)景中的關(guān)鍵應(yīng)用價(jià)值與實(shí)戰(zhàn)方案
- 圖像傳感器選型黃金三大標(biāo)準(zhǔn),工程師必知!
- 圖像傳感器選擇標(biāo)準(zhǔn)多?成像性能必須排第一
技術(shù)白皮書(shū)下載更多>>
- 車(chē)規(guī)與基于V2X的車(chē)輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車(chē)安全隔離的新挑戰(zhàn)
- 汽車(chē)模塊拋負(fù)載的解決方案
- 車(chē)用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
融斷電阻
柔性PCB
銳迪科
瑞薩
賽普拉斯
三端穩(wěn)壓管
三極管
色環(huán)電感
上海豐寶
攝像頭
生產(chǎn)測(cè)試
聲表諧振器
聲傳感器
濕度傳感器
石英機(jī)械表
石英石危害
時(shí)間繼電器
時(shí)鐘IC
世強(qiáng)電訊
示波器
視頻IC
視頻監(jiān)控
收發(fā)器
手機(jī)開(kāi)發(fā)
受話器
數(shù)字家庭
數(shù)字家庭
數(shù)字鎖相環(huán)
雙向可控硅
水泥電阻