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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 將8051應(yīng)用程序遷移到ARM Cortex-M處理器上

          將8051應(yīng)用程序遷移到ARM Cortex-M處理器上

          作者: 時間:2012-09-12 來源:網(wǎng)絡(luò) 收藏

          堆棧內(nèi)存

          堆棧內(nèi)存操作是內(nèi)存架構(gòu)的重要組成部分。在8051中,堆棧指針只有8位,同時堆棧位于內(nèi)部的內(nèi)存空間(上限為256個字節(jié),并由工作寄存器(四個各由R0至R7構(gòu)成的寄存器庫)和內(nèi)部數(shù)據(jù)變量共享)。堆棧操作基于空遞增模型。

          與8051不同的是,A RM Cor tex-M使用系統(tǒng)內(nèi)存作為堆棧,采用滿遞減模型。

          滿遞減堆棧內(nèi)存模型更受C語言的支持。例如,微控制器中的SRAM的使用可組織為:

          使用動態(tài)分配內(nèi)存空間的C庫和通常需要堆內(nèi)存。

          盡管C o r tex-M的每次壓棧需要32位的堆棧內(nèi)存,總的R A M使用仍然要比8051小。8051的變量通常是靜態(tài)地放在IDATA上,而處理的局部變量是放在堆棧內(nèi)存上的,因此,只有當(dāng)函數(shù)執(zhí)行的時候,局部變量才會占用RAM空間。

          此外, 提供有第二個堆棧指針,以允許操作系統(tǒng)內(nèi)核和進(jìn)程堆棧使用不同的堆棧內(nèi)存。這使得操作更可靠,也使操作系統(tǒng)設(shè)計更高效。(堆棧指針切換是自動處理的)8051中的很多外設(shè)是通過特殊功能寄存器 (S F R) 來控制的。由于S F R空間只有128個字節(jié),而且其中一些已經(jīng)為處理器寄存器和標(biāo)準(zhǔn)外設(shè)所占用,剩余的S F R地址空間通常非常有限,因此也就限制了可通過S F R控制的外設(shè)數(shù)量。雖然可以通過外部內(nèi)存空間來控制外設(shè),但是與S F R存取相比,外部存取通常需要更多的開銷(需要將地址復(fù)制到DPTR,數(shù)據(jù)必須通過ACC傳輸)。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();