Arm64有4種棧,分別是空增棧(Empty Ascendant Stack,EA)、空減棧(Empty Descendant Stack,ED)、滿增棧(Full Ascendant Stack,FA)、滿減棧(Full Descendant Stack,FD)。常用的是滿減棧,Linux內核也使用滿減棧。
下圖是一個滿減棧的示意圖,高地址為棧頂,低地址為棧低,棧向低地址方向生長,如右邊的箭頭所示。棧指針SP指向棧底(棧低保存了數據)。
每產生一次函數調用,就會在棧中形成一個棧幀,該棧總共保存了4個棧幀(Stack Frame),每個棧幀由FP、LR及棧參數(函數參數、函數局部變量等)組成??梢詫V械乃袟暈橐粋€單項鏈表,棧最低位置的棧幀為鏈表頭,棧最高位置的棧幀為鏈表尾,整個鏈表使用FP索引。
棧手動回溯時,可以根據FP將所有棧幀索引出來。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內核
+關注
關注
3文章
1382瀏覽量
40375 -
Linux
+關注
關注
87文章
11342瀏覽量
210153
發布評論請先 登錄
相關推薦
淺析openat系統調用在arm64下的實現及使用原理
1. 簡介這篇文章主要介紹系統調用在arm64下的實現及使用原理,考慮到目前bpf在系統調試和調優工作中被大量使用,在文章的最后也簡單介紹一下系統調用相關的bpf工具。系統調用在每個平臺的實現方式
發表于 06-02 17:48
介紹在ARM64架構下啟動多核的兩種方式
1、ARM64的多核啟動流程分析工作中遇到的多核 ARM CPU 越來越多,總結分享一些多核啟動的知識,希望能幫助更多小伙伴。在 ARM64 架構下如果想要啟動多核,有 spin-table
發表于 06-13 18:23
在arm64和x86服務器上運行的耗時來發現Docker在arm64架構下的性能問題
現在的進展并不快,因為老測試集里面用例數量龐大。目前,老測試集中的用例數量還遠遠大于新測試集。問題大量的集成測試用例為性能研究提供了方便。筆者通過比較同一測試集在arm64和x86服務器上運行的耗時來
發表于 07-12 15:48
微軟推出首個可用于ARM64設備的x64仿真
微軟通過開發者博客宣布,已通過Windows內部開發頻道推出了第一個可用于ARM64設備的x64仿真的預覽版Build 21277,這意味著使用ARM芯片的筆記本用戶可以從Windows商店或其他渠道安裝x
微軟發首個應用在ARM64設備的x64模擬器
面向 Dev 頻道 Windows Insider 成員,今天微軟發布了 Windows 10 Build 21227 版本更新。而在本次預覽版更新中,微軟發布了首個適用于 ARM64 設備
ARM64 Linux內核頁表的塊映射
內核文檔Documentation/arm64/memory.rst描述了ARM64 Linux內核空間的內存映射情況,應該是此方面最權威文檔。 以典型的4K頁和48位虛擬地址為例,整個內核空間
Core 3399KJ Linux根文件系統鏡像(arm64/arm32)
電子發燒友網站提供《Core 3399KJ Linux根文件系統鏡像(arm64/arm32).txt》資料免費下載
發表于 09-14 10:08
?3次下載
Core 3399J Linux根文件系統鏡像(arm64/arm32)
電子發燒友網站提供《Core 3399J Linux根文件系統鏡像(arm64/arm32).txt》資料免費下載
發表于 09-14 09:24
?0次下載
ROC RK3399 PC Pro文件系統Linux根文件系統鏡像(arm64/arm32)
電子發燒友網站提供《ROC RK3399 PC Pro文件系統Linux根文件系統鏡像(arm64/arm32).txt》資料免費下載
發表于 09-20 10:59
?5次下載
AIO 3399ProC Linux根文件系統鏡像(arm64/arm32)
電子發燒友網站提供《AIO 3399ProC Linux根文件系統鏡像(arm64/arm32).txt》資料免費下載
發表于 09-21 09:52
?11次下載
ARM64位與ARM32位OP-TEE啟動過程的差異
ARM32的OP-TEE與ARM64的OP-TEE啟動過程大致相同。ARM64的OP-TEE的_start函數定義在generic_entry_a64.S文件中,而且該函數不像
評論