新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 將8051應用程序遷移到ARM Cortex-M處理器上

        將8051應用程序遷移到ARM Cortex-M處理器上

        作者: 時間:2012-09-12 來源:網絡 收藏

        堆棧內存

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

        與8051不同的是,A RM Cor tex-M使用系統內存作為堆棧,采用滿遞減模型。

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

        使用動態分配內存空間的C庫和通常需要堆內存。

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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 土默特左旗| 滦南县| 焉耆| 南丹县| 多伦县| 东安县| 西贡区| 太谷县| 宁波市| 永仁县| 门头沟区| 江陵县| 黄石市| 乌恰县| 五原县| 龙南县| 永新县| 乌兰察布市| 鲁山县| 香港 | 贺兰县| 健康| 台东县| 镇江市| 苏尼特左旗| 根河市| 姜堰市| 太保市| 葵青区| 日喀则市| 丹棱县| 施秉县| 高唐县| 吉安县| 新闻| 上高县| 宜良县| 涞水县| 内黄县| 綦江县| 玛纳斯县|