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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3687|回復: 2
打印 上一主題 下一主題
收起左側

關于UCOS模擬堆棧的理解 二

[復制鏈接]
跳轉到指定樓層
樓主
       前面說了一下模擬堆棧的由來和實際的意義。總結為一句話:實際需要,有KEIL編譯器自動分配存儲空間,實現函數重入。該堆棧和Proteus沒有關系。

2 系統堆棧(CPU寄存器)
       系統堆棧是單片機中的關鍵組成部分。也叫硬件堆棧或常規堆棧。是單片機進入中斷的時候用到的,單片機一旦遇到中斷請求,就會去處理中斷,處理完后再回來處理主程序,這樣就涉及到了一個問題,單片機要保存中斷之前的信息,以便處理中斷后能夠回到主程序中,單片機會在響應中斷前,把單片機現在的指針地址(也就是處理完要返回的地址),以及一些必要的數據壓入堆棧(沒有這些數據,單片機處理完中斷后就無法確定主程序的狀態)。該過程稱為現場保存。

          堆棧是一種執行“先入后出”算法的數據結構。是在內存中的一個存儲區域,數據一個一個順序地存入(也就是“壓入—PUSH”)這個區域之中。有一個地址指針(堆棧指針)總指向最后一個壓入堆棧的數據所在的存儲單元,存放這個地址指針的寄存器就叫做堆棧指示器。

  

      開始放入數據的單元叫做“棧底”。數據一個一個地存入,這個過程叫做“壓棧”。讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減1。這個過程叫做“彈出POP”。如此就實現了先入后出的原則。 MCS-51的堆棧是向上生成的(即向地址增加的方向),堆棧指針SP的初始值稱為棧底。


3 任務堆棧

堆棧作用的就是用來保存變量,從實質上講也就是將CPU寄存器的值保存到RAM中。在uCOS中,每一個任務都有一個獨立的任務堆棧。為了深入理解任務堆棧的作用,不妨分析任務從“出生”到“消亡”的整個過程,具體就是分析任務的建立,運行,掛起幾種狀態中任務堆棧的變化情況。


        目前假設系統運行著一個由用戶創建的用以完成打印工作的任務TPrint。TPrint最初通過OSTaskCreate()函數創建,在該函數中與任務堆棧有關的第一段代碼是大家比較熟悉的函數OSTaskStkInit(),這個函數是在uCOS移植過程中必須實現的,其作用是“初始化堆棧”,其實就是預先在RAM中的一塊區域中把任務將來運行開始時CPU寄存器應處的狀態(正確值)準備好,之后,任務第一次被內核調度器調度運行時,將這些準備好的數據(寄存器的值)推到CPU的寄存器中,如果數據設計的合理,CPU便會按照我們預先設計好的思路運行。

堆棧結構.png (91.64 KB, 下載次數: 165)

堆棧結構.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:983641 發表于 2023-8-30 21:17 | 只看該作者
很好的資料。雖然看不懂。
回復

使用道具 舉報

板凳
ID:1040201 發表于 2023-9-11 10:45 | 只看該作者
還沒有學到這里,后面可能需要,先頂一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色嗨嗨 | 欧美一区二区三区视频在线播放 | 久久久久9999 | 欧美一区二区免费 | 一级片在线观看 | 欧美极品在线视频 | 国产农村一级片 | 一区二区三区免费 | 免费色网址 | 日本视频在线播放 | 综合五月婷 | 久久久www成人免费精品 | 免费黄色录像视频 | 国产在线二区 | 国产成人免费视频网站视频社区 | 午夜精品久久久久99蜜 | 日韩精品在线观看一区二区三区 | www.4虎影院 国产999精品久久久影片官网 | 国产黄色在线观看 | 精品亚洲二区 | 欧美日韩在线成人 | 成人在线小视频 | 欧美视频免费在线 | 亚洲综合五月天婷婷 | 午夜精品一区二区三区免费视频 | 国产精品一区二区三区99 | 日日夜夜免费精品视频 | 天堂av影院 | 国产成人精品免费视频大全最热 | 国产99小视频| 亚洲成色777777在线观看影院 | 亚洲人在线观看视频 | 96av麻豆蜜桃一区二区 | 日韩一区二区三区在线 | 久久精品一| 天天操天天拍 | 亚洲精品久久久久久国产精华液 | 欧美一区二区三区的 | 国产成人叼嘿视频在线观看 | 亚洲精品久久久久久一区二区 | 国产一区二区三区免费观看在线 |