日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]  棧空間作為一種存儲器使用機制,是“先入先出”的結構,在系統(tǒng)空間中用作臨時數(shù)據(jù)的存儲。??臻g操作的關鍵之一為棧指針寄存器,每次執(zhí)行棧操作時,棧指針的內(nèi)容會自動移動。在M0處理器中,棧指針為R13(SP),而

  ??臻g作為一種存儲器使用機制,是“先入先出”的結構,在系統(tǒng)空間中用作臨時數(shù)據(jù)的存儲。棧空間操作的關鍵之一為棧指針寄存器,每次執(zhí)行棧操作時,棧指針的內(nèi)容會自動移動。在M0處理器中,棧指針為R13(SP),而且物理上存在兩個棧指針,MSP,PSP,但每次只會使用一個,由CONTROL寄存器以及處理器的運行狀態(tài)決定。

  向棧中存入數(shù)據(jù)叫“壓?!保ㄊ褂肞USH指令),回復數(shù)據(jù)叫“出?!保ㄊ褂肞OP指令)。根據(jù)架構不同,有些處理器壓棧后地址增加,有些地址減小。Cortex-M0操作基于“滿遞減”的棧模型,意味著棧指針始終指向??臻g最后一個數(shù)據(jù),在執(zhí)行存儲數(shù)據(jù)PUSH前,棧指針先減小。

  PUSH和POP通常用在函數(shù)或子程序的開始和結尾處。在函數(shù)開始執(zhí)行時,PUSH操作將寄存器的當前內(nèi)容存入棧,執(zhí)行結束前,POP又將??臻g的數(shù)據(jù)恢復。一般來說執(zhí)行PUSH操作也要執(zhí)行POP操作,否則恢復的數(shù)據(jù)可能無法對應之前的寄存器,這樣導致無法預測的結果,比如棧溢出。

  棧操作的最小單位是4字節(jié)(32位),Cortex-M0的棧空間被設計位字對齊,地址必須是4的整數(shù)倍。由于這個原因,棧指針的最低兩位BITS[1:0]在硬件上被置為0,因此讀書也為0.

  MSP用于普通程序,在由操作系統(tǒng)時,內(nèi)核使用主棧指針MSP,用戶使用進程棧指針PSP。

  MSP的初始化位于程序空間的開頭部分,PSP沒有進行初始化定義,它需要通過軟件初始化。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉