1. <span id="gbnmy"></span>
      <optgroup id="gbnmy"></optgroup>

    2. <span id="gbnmy"><output id="gbnmy"></output></span>

        你的位置:首頁 > 測試測量 > 正文

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

        發布時間:2015-04-15 責任編輯:sherry

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

        關閉

        ?

        關閉

        亚洲18精品2020最新自拍|51国产偷自视频区视频|国语自产一区第二页欧美|久久精品极品盛宴观看老王