久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7644|回復: 0
上一主題 下一主題
收起左側

原創IAR MSP430 “the stack pointer for stack is outside"錯誤處理

[復制鏈接]
跳轉到指定樓層
樓主
    前天晚上修改調試程序,出錯:
    The stack pointer for stack‘stack’ (currently Memory:0x252) is outside the stack range(Memory:02B0 toMemory:0x300)錯誤,見圖1。
此時程序指針跑飛,不能再繼續運行下行,再運行也是可樣出錯。見圖2
   接好同樣兩塊水表板,先懷疑硬件問題,換板下載同樣程序。1#的F413換成F415,1#不會outside(選用device沒改,還是F413)。2#板會outside,且只能運行一次程序即停止(指針跑飛)。
   當時立即問dog 太陽的度婆,找到兩文章說此事,一是《IAR MSP430設置合理堆棧大小(the stack pointer for stack isoutside the stack range)》被轉了n多次。文章最后是沒有解決,用文章說的改Stack/heap設置,一點用都沒有。
    另外有討論說“此時,唯一的辦法就是重新設計程序了。在單片機上跑uC/OS,可以通過以下方法來減少內存使用”
    后找到了問題原因及解決辦法。
問題原因:Init_Timer_A();打開了中斷,但是TA中斷程序#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0()全注釋掉(怕影響長定時發示波器信號)。
    原因明確了,因為初始化并打開了TA中斷,但是沒有中斷響應程序,導致的堆棧溢出。
解決方法:
     1 、開啟#pragma vector=TIMERA0_VECTOR中斷程序響應,OK。BasicTimer中的長定時發IO口電平信號給示波器,不受TA中斷影響。
    2、不執行Init_Timer_A();此方法可以不用注釋中斷響應程序。

  驗證:再次開TA中斷,不響應中斷(注釋掉),問題再次出現,證明錯誤的來源是對的。


1.png (19.26 KB, 下載次數: 170)

圖1

圖1

2.png (54.7 KB, 下載次數: 149)

圖2,多次運行還是錯誤,無法回程序中

圖2,多次運行還是錯誤,無法回程序中

ok1.png (44.21 KB, 下載次數: 155)

解決了

解決了

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:505032 發表于 2020-1-1 08:56
建議網站管理員將樓主的Debug調試經驗作為一個單獨板塊獨立出來,否則會有黃金被渣土淹沒。

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品在线播放 | 国产精品av久久久久久毛片 | 国产欧美精品一区二区三区 | 精品国产乱码久久久久久牛牛 | 日韩久久久久 | 毛片一级片 | 精品美女久久久 | 日本不卡免费新一二三区 | 一级二级三级在线观看 | 国产激情在线看 | 天天色天天| 91精品久久久久久久久中文字幕 | 一区二区三区在线观看视频 | 国产精品久久久久久久久免费高清 | 国产在线小视频 | 久久青视频 | 国产精品18毛片一区二区 | 欧美精品在线免费观看 | 韩国av影院| 成年精品 | 精品乱码一区二区三四区 | 欧美精品在线一区二区三区 | 一区二区在线 | 九色在线视频 | 日韩一二区 | 免费观看a级毛片在线播放 黄网站免费入口 | 国产美女精品 | 神马久久av | 免费激情网站 | 日韩亚洲一区二区 | 手机av在线 | 毛片一级片 | 欧美精品在线免费观看 | 91中文字幕 | 国产日韩欧美 | 一级黄色毛片免费 | 久久av网 | 伊人一区 | 国产精品久久久久久久久久久久冷 | 欧美精品影院 | 精品国产乱码久久久久久蜜退臀 |