久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3104|回復: 1
收起左側

UCOSII中任務堆棧如何具體的實現保存CPU寄存器的值?

[復制鏈接]
ID:103277 發表于 2017-1-11 21:32 | 顯示全部樓層 |閱讀模式
小弟剛剛學習UCOS-II,問題可能比較low,請各位大神不吝賜教,感激不盡。


如題所說,UCOS中穿件任務時都會調用到一個函數OSTaskStkInit(),該函數位于os_cpu_c.c
該函數將任務創建時 開辟的任務堆棧的棧頂指針傳遞進來,以后任務堆棧就會保存在這塊內存對吧,
問1,我想,說的是任務切換時 都是使用一個“陷阱“或者軟件中斷觸發的,這樣CPU就會進行一次入棧,保存當前任務堆棧,然后將上次被中斷的任務堆棧拷貝到CPU寄存器,然后執行上次被中斷的任務,這個理解對嗎?
問2,每次產生軟件中斷或者陷阱的時候,CPU執行入棧操作,保存當前寄存器的狀態,它是如何將這些值保存到任務堆棧中的?當cpu切換任務時是怎么將任務堆棧保存的寄存器值拷貝到cpu寄存器中的?總之,就是任務堆棧是怎么和CPU寄存器之間建立數據交互的,麻煩詳細一點。
問3,
#define  CPU_CRITICAL_ENTER()  do { CPU_INT_DIS(); } while (0)     
#define  CPU_CRITICAL_EXIT()   do { CPU_INT_EN();  } while (0)


#define  CPU_INT_DIS()         do { cpu_sr = CPU_SR_Save(); } while (0)
#define  CPU_INT_EN()          do { CPU_SR_Restore(cpu_sr); } while (0)
//以下內容來源ucosII-F28335的OS_CPU_A.ASM
    .asmfunc
_OS_CPU_SR_Save:
    PUSH    ST1 //什么意思?
    DINT           //關中斷?
    POP    @AL//什么意思?
    AND     AL, #1//什么意思?
    LRETR            //什么意思?
    .endasmfunc


    .asmfunc
_OS_CPU_SR_Restore:
    PUSH    ST1     //什么意思?
    POP     AR0    //什么意思?
    AND     AR0, #0xFFFE  //什么意思?
    OR      AL, AR0   //什么意思?
    PUSH    AL   //什么意思?
    POP     ST1   //什么意思?
    LRETR      //什么意思?
    .endasmfunc
               
                能否幫忙纖細解釋一下上述匯編語言,最好結合上面問題1,2回答。
               
                小弟對于上述問題非常的不解,希望得到各位大神的指點感激不盡。

回復

使用道具 舉報

ID:153041 發表于 2017-2-15 17:17 | 顯示全部樓層
思路是這樣的: 每個任務都有各自獨立的堆棧區,系統中斷后,任務切換過程是這樣,首先將當前cpu主要寄存器內容全部入棧(當前任務棧),然后將堆棧指針重新賦值,指向新的任務的堆棧區,再執行出棧操作。入棧和出棧操作一般cpu有現成的指令支持的,ucos2將這些封裝成函數。每一個任務自己的堆棧指針存放在任務的控制塊數據結構中(或理解為任務名片)。

評分

參與人數 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕人成乱码在线观看 | 久久久久久免费毛片精品 | 国产高清在线观看 | 夜夜草 | 欧美一区成人 | 国产乱码精品一区二三赶尸艳谈 | 久久久视频在线 | 嫩草懂你的影院入口 | 自拍偷拍第1页 | 国内精品久久久久久久 | 97在线超碰| 九九久久免费视频 | 特一级黄色毛片 | 日韩欧美中文字幕在线观看 | 天天干狠狠操 | 久久精品16 | 夜夜爽99久久国产综合精品女不卡 | 请别相信他免费喜剧电影在线观看 | 国产69精品久久99不卡免费版 | 日韩亚洲欧美综合 | 精品一区二区三区免费视频 | 红色av社区 | 久久久久久国产精品 | 欧美日韩精品一区二区 | 中文字幕二区 | 久久久久国产精品 | 日韩免费视频 | 国产成人小视频 | 99re视频在线 | 三级黄视频在线观看 | 日韩欧美一区二区三区免费观看 | 久久综合久久综合久久 | 久久精品国产99国产精品亚洲 | 欧美人人| 成人免费激情视频 | 欧美一区二区三区国产 | 欧美成人精品一区 | 国产精品久久久久久影视 | 久久久精品天堂 | 久久高清 | 日韩一区二区福利视频 |