欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2913|回復: 2
收起左側

關于Cortex-M4內核的中斷入棧過程以及棧幀的問題

[復制鏈接]
回帖獎勵 15 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
ID:474802 發表于 2021-3-10 21:12 | 顯示全部樓層 |閱讀模式
本帖最后由 MNwcy 于 2021-3-15 11:04 編輯

在看Cortex-M3和Cortex-M4內核權威指南這本書的時候,發現了“棧幀”這個概念。我從書上理解的是:中斷來臨后會將內部寄存器以及內部特殊寄存器進行入棧,入棧的寄存器是固定的那幾個,反正就是八個字大。ò↑c寄存器的情況是26個字),但是我在一個stm32f407的帶定時器中斷的簡單例程進debug看了下匯編代碼。發現了不管是子函數調用還是跳轉到中斷服務函數,入棧保存的數據根本就不是權威指南說的8個字或者26個字,而是只入棧要跳轉的函數中會被改變的內部寄存器,所以就又不懂“棧幀”了。難道是這里說的“棧幀”僅僅是為了服務RTOS等嵌入式操作系統定義的么?為了能更方便的從棧中提取到自己想要的內部寄存器的值,利用棧幀規定好每個位置保存的是哪個寄存器的值?也就是說自己寫的裸機程序編譯器只會把需要保存的寄存器保存,不會改變的寄存器直接不保存?
不知道我說的清不清楚,希望懂得老哥們能給小弟答疑解惑!先謝為敬

回復

使用道具 舉報

ID:328014 發表于 2021-3-15 22:35 | 顯示全部樓層
回復

使用道具 舉報

ID:474802 發表于 2021-3-16 09:29 | 顯示全部樓層
51hei團團 發表于 2021-3-15 22:35
資料:https://blog.csdn.net/diandianqiqi/article/details/78445398

謝謝分享,弄明白了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表