1. <th id="61obs"><pre id="61obs"><sup id="61obs"></sup></pre></th>
      <button id="61obs"></button>

      <button id="61obs"><object id="61obs"></object></button>
      <rp id="61obs"><object id="61obs"></object></rp><th id="61obs"><pre id="61obs"></pre></th>

      <em id="61obs"></em><label id="61obs"></label>

      常見問題

      如何預防DSP BOOT程序因超頻產生異常?

      2022-01-25 來源:原創 瀏覽量:2805

      如何預防DSP BOOT程序因超頻產生異常?本文Advancechip將為您詳細介紹。

      1、在CCS連接上DSP情況下,選擇CPU Reset (Ctrl+Shift+R),PC指針到 3ff8a1位置。

      此時程序的PLLSTS[8:7].DIVSEL=10b (0x0101); PLLCR[].DIV=1100b (0x000C); 根據sprui10.pdf資料page70 Figure 1-23所示,為OSCCLK的12倍頻,2分頻。

      注意:在配置PLLCR之前,需先把DIVSEL置0.

      根據CLKCTL的值0x6400,判斷XTALOSCOFF=1,XCLKINOFF=1, INTOSC2OFF=1.

      時鐘源的配置為選擇內部OSC1的10M時鐘OSCCLK輸入,此時的DSP主頻為60M。

      2、3ff8a1的起始位置即BOOT ROM中InitBoot()函數入口,當函數進入到SelectBootMode()時,程序會重新配置PLLSTS.DIVSEL。

      3、通過Assembly Step Info (Ctrl+Shift+F5),將持續執行完3ff4b8后,PLLSTS值變成0x0181。

      上圖中可以看出MOVW DP, 0x1c0 和 OR @0x11, #0x0180 即實現了將DIVSEL寄存器設置成3,也就是代碼 SysCtrlRegs.PLLSTS.bit.DIVSEL = DIVSEL_BY_1;此時CLKCTL和PLLCR都是原來的值,DSP運行在120M超頻狀態。

      注意:以上過程在TMS320F28035同樣會發生。

      4、為了預防上述事件發生,在CPU Reset后,PC指向3ff8a1時,手動在Registers窗口設置SYSCTRL.PLLCR=0; 再往下執行程序,可預防部分DSP主頻無法達到120M時產生的燒錄異常。

      異?,F象:

      因超頻原因,程序在CPU Reset復位后,首次運行到boot28.asm中c_int00之后無法引導到main(),而是再次運行InitBoot() -> code_start -> _c_int00 -> main() 實現正常運行。

      步驟如下圖,在CodeStartBranch.asm中_c_int00和 main() 函數處設置斷點,觀察運行情況。

      在運行時復位后運行,PLLCR、PLLSTS、CLKCTL均保持上次程序運行時的值,且WDCR = 0x00C0,看門狗關閉(由code_start:關閉)如下圖:

      繼續運行發現PLLCR被清0,CLKCTL復位,PLLSTS依然是1分頻配置,程序再次復位運行回到_c_int00 位置。

      再運行程序,即可因PLLCR=0的原因,PC指針正確引導到main()入口函數,如下圖:

      注意:換在TMS320F28035上測試,不會有第二次c_int00復位執行發生,且PLLCR沒有清0(一直保持0x000C)。

      電話咨詢

      0731-88731027

      微信公眾號

      微信公眾號

      微信公眾號

      移動二維碼

      移動二維碼

      移動二維碼

      返回頂部

      爆乳流奶水无码中文字幕在线网站_免费黄色视频观看_91看片婬黄大片欧美看国产片_av天堂成人在线

      1. <th id="61obs"><pre id="61obs"><sup id="61obs"></sup></pre></th>
          <button id="61obs"></button>

          <button id="61obs"><object id="61obs"></object></button>
          <rp id="61obs"><object id="61obs"></object></rp><th id="61obs"><pre id="61obs"></pre></th>

          <em id="61obs"></em><label id="61obs"></label>