0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arm64?;厮?結(jié)構(gòu)介紹

麥辣雞腿堡 ? 來源:人人極客社區(qū) ? 作者:業(yè)余程序員plus ? 2023-07-28 11:25 ? 次閱讀

Arm64有4種棧,分別是空增棧(Empty Ascendant Stack,EA)、空減棧(Empty Descendant Stack,ED)、滿增棧(Full Ascendant Stack,F(xiàn)A)、滿減棧(Full Descendant Stack,F(xiàn)D)。常用的是滿減棧,Linux內(nèi)核也使用滿減棧。

下圖是一個滿減棧的示意圖,高地址為棧頂,低地址為棧低,棧向低地址方向生長,如右邊的箭頭所示。棧指針SP指向棧底(棧低保存了數(shù)據(jù))。

每產(chǎn)生一次函數(shù)調(diào)用,就會在棧中形成一個棧幀,該棧總共保存了4個棧幀(Stack Frame),每個棧幀由FP、LR及棧參數(shù)(函數(shù)參數(shù)、函數(shù)局部變量等)組成??梢詫V械乃袟暈橐粋€單項鏈表,棧最低位置的棧幀為鏈表頭,棧最高位置的棧幀為鏈表尾,整個鏈表使用FP索引。

棧手動回溯時,可以根據(jù)FP將所有棧幀索引出來。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1361

    瀏覽量

    40185
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11212

    瀏覽量

    208721
收藏 人收藏

    評論

    相關(guān)推薦

    如何對RK3399 CPU arm64的內(nèi)核進行配置

    如何對RK3399 CPU arm64的內(nèi)核進行配置?
    發(fā)表于 02-16 06:20

    淺析openat系統(tǒng)調(diào)用在arm64下的實現(xiàn)及使用原理

    1. 簡介這篇文章主要介紹系統(tǒng)調(diào)用在arm64下的實現(xiàn)及使用原理,考慮到目前bpf在系統(tǒng)調(diào)試和調(diào)優(yōu)工作中被大量使用,在文章的最后也簡單介紹一下系統(tǒng)調(diào)用相關(guān)的bpf工具。系統(tǒng)調(diào)用在每個平臺的實現(xiàn)方式
    發(fā)表于 06-02 17:48

    介紹ARM64架構(gòu)下啟動多核的兩種方式

    1、ARM64的多核啟動流程分析工作中遇到的多核 ARM CPU 越來越多,總結(jié)分享一些多核啟動的知識,希望能幫助更多小伙伴。在 ARM64 架構(gòu)下如果想要啟動多核,有 spin-table
    發(fā)表于 06-13 18:23

    arm64和x86服務(wù)器上運行的耗時來發(fā)現(xiàn)Docker在arm64架構(gòu)下的性能問題

    現(xiàn)在的進展并不快,因為老測試集里面用例數(shù)量龐大。目前,老測試集中的用例數(shù)量還遠(yuǎn)遠(yuǎn)大于新測試集。問題大量的集成測試用例為性能研究提供了方便。筆者通過比較同一測試集在arm64和x86服務(wù)器上運行的耗時來
    發(fā)表于 07-12 15:48

    一文詳解Linux內(nèi)核的回溯與妙用

    網(wǎng)上或多或少都能找到回溯的一些文章,但是講的都并不完整,沒有將內(nèi)核回溯的功能用于實際的內(nèi)核、應(yīng)用程序調(diào)試,這是本篇文章的核心:盡可能引導(dǎo)讀者將
    的頭像 發(fā)表于 10-05 10:02 ?5268次閱讀
    一文詳解Linux內(nèi)核的<b class='flag-5'>棧</b><b class='flag-5'>回溯</b>與妙用

    ARM64ARM32 的Linux程序區(qū)別在哪里

    arm64ARM64。我在示例中使用了AArch64寄存器,但我所描述的許多問題也發(fā)生在ARMv8-A 32位執(zhí)行狀態(tài)。
    的頭像 發(fā)表于 08-09 09:51 ?2.7w次閱讀
    <b class='flag-5'>ARM64</b>與<b class='flag-5'>ARM</b>32 的Linux程序區(qū)別在哪里

    微軟推出首個可用于ARM64設(shè)備的x64仿真

    微軟通過開發(fā)者博客宣布,已通過Windows內(nèi)部開發(fā)頻道推出了第一個可用于ARM64設(shè)備的x64仿真的預(yù)覽版Build 21277,這意味著使用ARM芯片的筆記本用戶可以從Windows商店或其他渠道安裝x
    的頭像 發(fā)表于 12-11 09:14 ?1936次閱讀

    微軟發(fā)首個應(yīng)用在ARM64設(shè)備的x64模擬器

    面向 Dev 頻道 Windows Insider 成員,今天微軟發(fā)布了 Windows 10 Build 21227 版本更新。而在本次預(yù)覽版更新中,微軟發(fā)布了首個適用于 ARM64 設(shè)備
    的頭像 發(fā)表于 12-11 14:14 ?1689次閱讀

    ARM64 Linux內(nèi)核頁表的塊映射

    內(nèi)核文檔Documentation/arm64/memory.rst描述了ARM64 Linux內(nèi)核空間的內(nèi)存映射情況,應(yīng)該是此方面最權(quán)威文檔。 以典型的4K頁和48位虛擬地址為例,整個內(nèi)核空間
    的頭像 發(fā)表于 01-04 13:37 ?2560次閱讀
    <b class='flag-5'>ARM64</b> Linux內(nèi)核頁表的塊映射

    Core 3399KJ Linux根文件系統(tǒng)鏡像(arm64/arm32)

    電子發(fā)燒友網(wǎng)站提供《Core 3399KJ Linux根文件系統(tǒng)鏡像(arm64/arm32).txt》資料免費下載
    發(fā)表于 09-14 10:08 ?3次下載
    Core 3399KJ Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    Core 3399J Linux根文件系統(tǒng)鏡像(arm64/arm32)

    電子發(fā)燒友網(wǎng)站提供《Core 3399J Linux根文件系統(tǒng)鏡像(arm64/arm32).txt》資料免費下載
    發(fā)表于 09-14 09:24 ?0次下載
    Core 3399J Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    ROC RK3399 PC Pro文件系統(tǒng)Linux根文件系統(tǒng)鏡像(arm64/arm32)

    電子發(fā)燒友網(wǎng)站提供《ROC RK3399 PC Pro文件系統(tǒng)Linux根文件系統(tǒng)鏡像(arm64/arm32).txt》資料免費下載
    發(fā)表于 09-20 10:59 ?5次下載
    ROC RK3399 PC Pro文件系統(tǒng)Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    AIO 3399ProC Linux根文件系統(tǒng)鏡像(arm64/arm32)

    電子發(fā)燒友網(wǎng)站提供《AIO 3399ProC Linux根文件系統(tǒng)鏡像(arm64/arm32).txt》資料免費下載
    發(fā)表于 09-21 09:52 ?11次下載
    AIO 3399ProC Linux根文件系統(tǒng)鏡像(<b class='flag-5'>arm64</b>/<b class='flag-5'>arm</b>32)

    海凌科新款arm64開發(fā)板wukongPi 4B簡述

    海凌科新款arm64開發(fā)板——wukongPi 4B上架,兼容樹莓派,采用RK3399 SoC。
    的頭像 發(fā)表于 08-07 14:53 ?1079次閱讀
    海凌科新款<b class='flag-5'>arm64</b>開發(fā)板wukongPi 4B簡述

    ARM64位與ARM32位OP-TEE啟動過程的差異

    ARM32的OP-TEE與ARM64的OP-TEE啟動過程大致相同。ARM64的OP-TEE的_start函數(shù)定義在generic_entry_a64.S文件中,而且該函數(shù)不像
    的頭像 發(fā)表于 11-07 15:12 ?703次閱讀