欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

與你一起揭開LR寄存器的神秘面紗

UtFs_Zlgmcu7890 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-10-31 06:35 ? 次閱讀

不知你在DEBUG程序,又或者閱讀操作系統(tǒng)源碼時(shí)候有沒細(xì)心觀察,從一個(gè)普通子函數(shù)返回與異常(中斷)返回的匯編指令都是BX LR,但是這兩者的意義是一樣的嗎?這篇文章就來揭開LR寄存器的神秘面紗。

當(dāng)單片機(jī)涉及函數(shù)跳轉(zhuǎn)或者任務(wù)調(diào)度的時(shí)候,理解MCU如何處理堆棧與改變各個(gè)通用寄存器的狀態(tài)尤為重要,下面就來比較一下在不同情況下LR寄存器的意義。

上圖是一個(gè)簡單的例子,當(dāng)仿真點(diǎn)擊“下一步”的時(shí)候,MCU就會(huì)執(zhí)行BX LR指令,并且從aa子函數(shù)返回到main函數(shù)中,可以看到在普通子函數(shù)里執(zhí)行BX LR的意義是“跳轉(zhuǎn)到LR寄存器里的地址執(zhí)行”。

對(duì)比一下一段ucos的源碼,如果對(duì)M3內(nèi)核有所了解的小伙伴一定知道堆棧為什么是這樣定義的,那么這時(shí)候我們發(fā)現(xiàn)OS_TaskReturn是作為一個(gè)錯(cuò)誤返回函數(shù),并且賦值到堆棧中R14(LR)相應(yīng)的位置。

任務(wù)調(diào)度函數(shù)會(huì)將PSP堆棧指針指向我們定義自定義的堆棧,然后最后一句匯編是BX LR,那么按照普通子函數(shù)執(zhí)行BX LR的意義,這個(gè)時(shí)候MCU是會(huì)運(yùn)行OS_TaskReturn這個(gè)函數(shù)嗎?這樣不就進(jìn)入錯(cuò)誤函數(shù)了嗎?

其實(shí)不然,因?yàn)橛肕系列實(shí)現(xiàn)ucos的任務(wù)調(diào)度是在PendSV異常(中斷)里面實(shí)現(xiàn)的,而在異常(中斷)里的LR寄存器不再是普通函數(shù)里面“返回地址”的意義,而是一個(gè)定義為一個(gè)稱作exc-return的值,當(dāng)執(zhí)行BX LR時(shí)候,這個(gè)值決定了MCU退出異常(中斷)之后的運(yùn)行等級(jí)是在特權(quán)級(jí)還是用戶級(jí)以及用的堆棧是MSP還是PSP,而MCU即將要執(zhí)行的是從PSP堆棧中POP出來的p_task函數(shù),而不是OS_TaskReturn函數(shù)。

是不是覺得很有趣,蠢蠢欲動(dòng),迫不及待想上手體驗(yàn)一下呢?考慮到廣大群眾的焦慮,我司提供 LPC824仿真套餐服務(wù),不用998,也不用99,只要49,你還在想什么呢?趕緊復(fù)制下面的淘口令打開淘寶上車吧

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

    關(guān)注

    31

    文章

    5372

    瀏覽量

    121319
  • 匯編指令
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    11526
  • LPC824
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    5292
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    解讀版|Air780E軟件中C語言內(nèi)存數(shù)組的神秘面紗!

    今天我們來揭開Air780E 軟件中 C 語言內(nèi)存數(shù)組的神秘面紗,希望有所收獲。
    的頭像 發(fā)表于 11-17 10:00 ?320次閱讀
    解讀版|Air780E軟件中C語言內(nèi)存數(shù)組的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>!

    寄存器間接尋址和寄存器尋址的區(qū)別

    寄存器間接尋址和寄存器尋址是計(jì)算機(jī)體系結(jié)構(gòu)中兩種重要的尋址方式,它們?cè)谥噶顖?zhí)行過程中起著關(guān)鍵作用。下面將從定義、原理、特點(diǎn)、應(yīng)用場景以及區(qū)別等方面對(duì)這兩種尋址方式進(jìn)行詳細(xì)闡述。
    的頭像 發(fā)表于 10-05 17:13 ?2175次閱讀

    用智能DAC揭開醫(yī)療報(bào)警設(shè)計(jì)的神秘面紗

    電子發(fā)燒友網(wǎng)站提供《用智能DAC揭開醫(yī)療報(bào)警設(shè)計(jì)的神秘面紗.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 10:50 ?0次下載
    用智能DAC<b class='flag-5'>揭開</b>醫(yī)療報(bào)警設(shè)計(jì)的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>

    寄存器的類型和作用

    在計(jì)算機(jī)科學(xué)中,寄存器(Register)是種高速存儲(chǔ)單元,它位于CPU內(nèi)部,與CPU的運(yùn)算單元和邏輯控制單元緊密相連。寄存器的主要作用是暫時(shí)存儲(chǔ)指令、操作數(shù)和地址等臨時(shí)數(shù)據(jù),以便CPU快速訪問和處理。由于
    的頭像 發(fā)表于 09-05 14:11 ?2704次閱讀

    寄存器是什么意思?寄存器是如何構(gòu)成的?

    在計(jì)算機(jī)科學(xué)中,寄存器(Register)是個(gè)高速存儲(chǔ)單元,它位于中央處理(CPU)內(nèi)部,用于存儲(chǔ)計(jì)算機(jī)程序執(zhí)行過程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。寄存器是計(jì)算機(jī)體系結(jié)構(gòu)中至關(guān)
    的頭像 發(fā)表于 08-02 18:23 ?4967次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構(gòu)成的?

    移位寄存器的工作原理和類型

    移位寄存器是計(jì)算機(jī)中常用的寄存器類型,它能夠按位進(jìn)行數(shù)據(jù)的左移或右移操作。作為數(shù)字電路中的基本元件,移位寄存器由多個(gè)觸發(fā)構(gòu)成,每個(gè)觸發(fā)
    的頭像 發(fā)表于 08-02 18:11 ?3677次閱讀
    移位<b class='flag-5'>寄存器</b>的工作原理和類型

    北斗衛(wèi)星時(shí)鐘——揭開“授時(shí)”的神秘面紗

    ,這些時(shí)間信息又是從哪里來的呢?為什么我們可以隨時(shí)隨地都能獲取準(zhǔn)確的時(shí)間信息?這得益于高精度的 授時(shí)服務(wù) ,今天我們就來揭開“授時(shí)”的神秘面紗。 ? ? ?大家都知道我國的北斗導(dǎo)航衛(wèi)星,是用于定位導(dǎo)航的。那么北斗是怎么進(jìn)行定位導(dǎo)
    的頭像 發(fā)表于 07-25 16:21 ?528次閱讀
    北斗衛(wèi)星時(shí)鐘——<b class='flag-5'>揭開</b>“授時(shí)”的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>

    寄存器尋址和直接尋址的區(qū)別

    。 、寄存器尋址 寄存器尋址的定義 寄存器尋址是種將操作數(shù)直接存儲(chǔ)在CPU內(nèi)部寄存器中的尋址
    的頭像 發(fā)表于 07-12 10:42 ?2468次閱讀

    寄存器尋址的實(shí)現(xiàn)方式

    在計(jì)算機(jī)體系結(jié)構(gòu)中,寄存器尋址是種常見的尋址方式,它允許程序直接訪問CPU內(nèi)部的寄存器。寄存器尋址可以提高程序的執(zhí)行效率,因?yàn)樗苊饬藢?duì)內(nèi)存的訪問。
    的頭像 發(fā)表于 07-12 10:36 ?882次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計(jì)算機(jī)中用于存儲(chǔ)數(shù)據(jù)的高速存儲(chǔ)單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 、基本
    的頭像 發(fā)表于 07-12 10:31 ?1637次閱讀

    xAI公司將在八月揭開其新Grok-2大語言模型的神秘面紗

    在科技界的浩瀚星空中,埃隆·馬斯克的每次發(fā)聲都如同璀璨的新星,瞬間照亮前行的道路。近日,這位科技巨擘在推特上的則簡短宣告,再次將全球的目光聚焦于人工智能的前沿陣地——他的初創(chuàng)公司xAI即將在八月揭開其最新力作Grok-2大語
    的頭像 發(fā)表于 07-02 11:38 ?544次閱讀

    揭開Pluto XZU20的神秘面紗—探尋未來緊湊而強(qiáng)大的FPGA解決方案

    創(chuàng)新成果具有挽救生命、改變生活和創(chuàng)造夢(mèng)想的能力?,F(xiàn)在讓我們一起緊隨Pluto產(chǎn)品發(fā)布會(huì)的步伐,揭開PlutoXZU20的神秘面紗,與我們一起
    的頭像 發(fā)表于 06-21 08:09 ?459次閱讀
    <b class='flag-5'>揭開</b>Pluto XZU20的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>—探尋未來緊湊而強(qiáng)大的FPGA解決方案

    干貨滿滿:ARM的內(nèi)核寄存器講解

    內(nèi)核寄存器與外設(shè)寄存器: 內(nèi)核寄存器與外設(shè)寄存器是完全不同的概念。內(nèi)核寄存器是指 CPU 內(nèi)部的寄存器
    發(fā)表于 04-17 11:47 ?4380次閱讀
    干貨滿滿:ARM的內(nèi)核<b class='flag-5'>寄存器</b>講解

    揭開快充芯片的神秘面紗

    UFP芯片是種用于USB快充技術(shù)的關(guān)鍵元件,它在移動(dòng)設(shè)備和充電器之間進(jìn)行通信和協(xié)調(diào),以實(shí)現(xiàn)高效、安全、快速的充電過程。下面我們將揭開快充芯片的神秘面紗,深入探討UFP快充芯片的工作原
    的頭像 發(fā)表于 04-15 12:51 ?740次閱讀

    如何根據(jù)自己設(shè)計(jì)中的寄存器配置總線定義來生成寄存器配置模版

    無論是FPGA還是ASIC,系統(tǒng)設(shè)計(jì)中總會(huì)存在配置寄存器總線的使用,我們會(huì)將各種功能、調(diào)試寄存器掛載在寄存器總線上使用。
    的頭像 發(fā)表于 03-04 13:56 ?1273次閱讀
    如何根據(jù)自己設(shè)計(jì)中的<b class='flag-5'>寄存器</b>配置總線定義來生成<b class='flag-5'>一</b>套<b class='flag-5'>寄存器</b>配置模版