<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Nuvoton單片機(jī)調(diào)試

          Nuvoton單片機(jī)調(diào)試

          作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
          1、用keildebug調(diào)試Nano系列MCU時(shí),偶爾進(jìn)入HardFault_Handler中程序死掉了。

          原因:

          本文引用地址:http://www.ex-cimer.com/article/201611/322016.htm

          1)定義變量時(shí)的類(lèi)型是char,外部文件調(diào)用時(shí)聲明的是extern int,同一變量定義與外部聲明不一致而導(dǎo)致錯(cuò)誤。

          2)用DMA時(shí),1byte傳輸,數(shù)據(jù)手冊(cè)中要求地址要字對(duì)齊,由于是外設(shè)與內(nèi)存之間使用dma,定義的數(shù)組在程序中換了定義的位置結(jié)果導(dǎo)致數(shù)據(jù)不正確,debug時(shí)還進(jìn)入HardFault_Handler中,調(diào)整數(shù)組定義的地址就可以了。

          摘抄總結(jié):

          Cortex-M3/4的Fault異常是由于非法的存儲(chǔ)器訪問(wèn)(比如訪問(wèn)0地址、寫(xiě)只讀存儲(chǔ)位置等)和非法的程序行為(比如除以0等)等造成的。常見(jiàn)的4種異常及產(chǎn)生異常的情況如下:

          Bus Fault:在fetch指令、數(shù)據(jù)讀寫(xiě)、fetch中斷向量或中斷時(shí)存儲(chǔ)恢復(fù)寄存器棧情況下,檢測(cè)到內(nèi)存訪問(wèn)錯(cuò)誤則產(chǎn)生Bus Fault。

          Memory Management Fault:訪問(wèn)了內(nèi)存管理單元(MPU)定義的不合法的內(nèi)存區(qū)域,比如向只讀區(qū)域?qū)懭霐?shù)據(jù)。

          Usage Fault:檢測(cè)到未定義指令或在存取內(nèi)存時(shí)有未對(duì)齊。



          關(guān)鍵詞: Nuvoton單片機(jī)調(diào)

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();