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

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]怎么知道堆棧使用了多少? 比如51單片機,怎么查看堆棧使用情況,有沒有溢出?最大堆棧=子程序調(diào)用最大級數(shù)+中斷最大嵌套級數(shù)

怎么知道堆棧使用了多少? 比如51單片機,怎么查看堆棧使用情況,有沒有溢出?

最大堆棧=子程序調(diào)用最大級數(shù)+中斷最大嵌套級數(shù)

分別計算中斷級別 的最大堆棧,然后累加可確定

比如中斷級別Z1的最大 的堆棧為A;

比如中斷級別Z2的最大 的堆棧為B;

比如中斷級別Z3的最大 的堆棧為C;

那么最多為A+B+C

或者用仿真器,進(jìn)入調(diào)試狀態(tài)即可看到所有SFR...

用keil也可以:

Keil 已經(jīng)自動幫你計算了:sp_max = 使用過的最大棧頂記憶。

什么叫軟件堆棧,什么叫硬件堆棧?

什么叫軟件堆棧,什么叫硬件堆棧?兩者的區(qū)別是什么?

看其棧頂指針是否和CPU具有特殊的關(guān)聯(lián),有關(guān)聯(lián)者(如SP)“硬”,而無關(guān)聯(lián)者“軟”。

單片機在執(zhí)行調(diào)用子程序的指令時,一般會把返回地址自動存入堆棧,而沒有被單片機自動入棧但是也需要保存的內(nèi)容比如狀態(tài)寄存器、通用寄存器等,就得通過PUSH等指令把它們?nèi)藶榈乇4娴蕉褩V小?/p>

自動入棧和“人為入棧”可能使用的是一個堆棧指針。有的單片機可以分開,比如AVR,可以通過“ST -Y, R0”這樣的指令把R0存入軟件堆棧區(qū)(Y是由R28和R29兩個寄存器的值組成的16位指針),有的單片機缺少這樣的指令,就會把軟件堆棧和硬件堆棧放在一個??臻g,都使用SP,比如51.

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