亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ucosii操作系統移植筆記.txt

?? uC/OS-II操作系統移植筆記,基于芯片lpc2401
?? TXT
字號:
uCOSII操作系統移植筆記 


筆記一:
今天粗略的看了一下周立功關于uc/osII在lpc2104上的移植方面的說明,這之中印象最深的應該是irq中斷和軟中斷方面的處理,由于arm芯片的特殊性(擁有7種處理器模式),即每種處理器模式都有自己的堆棧,這樣在處理堆棧的時候就會相應的麻煩一些。
在響應異常時,該移植計劃在初始代碼里面比在沒有操作系統的初始代碼多了irq的處理,移植里面的irq處理多了由匯編語言編寫的對任務環境的保存,沒操作系統的中的任務環境的保存都是由在產生irq中斷是用c語言聲明的__irq關鍵字來完成了,移植中irq中斷不能采用__irq關鍵字,因為c語言不能保證堆棧結構,而uc/osII必須要保證堆棧結構。除此之外,相對于沒操作系統的初始代碼,基本上是沒有什么改變。
在uc/osII的任務切換中,采用了arm里面的軟中斷指令swi來執行,對于非中斷性的任務切換(如掛起和等待信號量的時候)uc/osII是采用了宏os_task_sw()來執行的,然后聯系到osctxsw()函數來完成任務切換,而遇到中斷情況時在返回是需要任務切換是則采用了osintctxsw()來執行的,在周立功的移植當中,他把osctxsw()與osintctxsw()合二為一了,統一采用osintctxsw()來實現。之所以這樣搞的原因是任務進行切換的時候,都必須進入軟中斷的狀態,而對于軟中斷的異常響應代碼已經將任務的環境變量進行了保存,從而也不需要像osctxsw()里面規定的那樣對將環境變量進行保存。
這是我看今天看了移植說明后所理解的東西,當然還得細致的對代碼進行分析,特別是osintctxsw()代碼的分析,雖然移植的代碼大體是遵從了uc/osII的編碼規范,但對于arm的多種處理器模式移植代碼有特別的改變,以實現cpu時間和ram的利用。

筆記二:
感覺osintctxsw()這個函數需要進行仔細的解讀,好多其他函數都與他由關聯,而在uc/osII中的原型是沒有這樣的情況的,我想出現這個現象的原因是由于arm芯片的特殊性(擁有7種處理器模式),這樣在處理堆棧的時候就會相應的麻煩一些。
移植的osintctxsw()函數由兩個部分,以標號osintctxsw_1作為分界點。
關于osintctxsw_1以下的程序,LPC2100_FAQ.pdf文檔里面的第126問作了詳細的解釋,即實現的是任務的恢復運行。
而osintctxsw_1以上的程序段的功能如周立功的移植說明里面的解釋:前面的關于中斷與c語言的接口已經說明,寄存器應當保存到任務的堆棧中,但為了節省cpu時間和ram的空間,僅在必要的時候才將寄存器保存到任務的堆棧,OSTCBCur->OSTCBStkPtr=SP也是在必要的時候才執行,這一段代碼就是來處理這兩件事情的。(即將任務的環境變量由模式堆棧復制到當前任務的任務堆棧中,對照周立功書上374頁與378頁的兩個堆棧圖來理解這部分代碼就很清晰明了了)。
理解了以上關于osintctxsw()兩個部分代碼的解釋,也就不難理解為什么有些函數都來引用osintctxsw()了,就以__OSStartHighRdy中引用osintctxsw_1為例來說明,他在代碼的末尾最后引用osintctxsw_1,就是要實現任務的恢復運行(從新任務堆棧中恢復所有寄存器,執行中斷返回指令)。
最后對于osintctxsw()要注意的是,這個函數的移植并非是簡單的ucos中的osintctxsw()原型的聲明,因為在移植的代碼中,要用到osintctxsw()必須得引用OS_TASK_SW()宏才可以,這樣就引出了在ucos的c代碼函數osintexit()時調用osintctxsw()函數該怎么辦這個問題了。
周立功的移植是在includes.h中定義一個宏osintctxsw(),由于這個宏在c語言中使用,所以不會與匯編的函數osintctxsw沖突,宏定義如下所示:
#define osintctxsw()
{
 OSEnterSum=0;
 return;
 }
而中斷返回時要執行的任務切換這一行為實際上已經在irq異常響應代碼中由它來完成了,也就是說移植完成后osintctxsw()起的作用已經不是ucos的作者想起的作用了。
現在感覺有點不明白的是OSEnterSum所起的作用,ucos原型中并不存在這一變量。

筆記三:
今天接著昨天的疑問看的,OSEnterSum所起的作用也搞清楚了,周立功的移植中對于開關中斷,即OS_ENTER_CRITICAL()與OS_EXIT_CRITICAL()選用的方法是2(即OS_CRITICAL_METHOD=2),而在ucos的原型中關于OS_CRITICAL_METHOD=2的說明可以清楚的知道,它是想實現在先將關中斷前將中斷狀態保存到內存中,然后關中斷,爾后,恢復保存在堆棧中的關中斷之前的中斷狀態,這樣的說明清楚的說明了關中斷是可以嵌套的,而參數OSEnterSum的出現正是為了實現關中斷的嵌套而設計的。移植的關于OS_ENTER_CRITICAL()與OS_EXIT_CRITICAL()的說明周立功的書上說的很清楚了。而昨天看的定義的宏osintctxsw()之所以要用OSEnterSum是因為調用osintctxsw()的肯定是osintexit()函數,而調用osintexit()肯定是處于開中斷狀態的,則OSEnterSum肯定等于0。所以這個時候必須把OSEnterSum調整為0(看到這里我又產生了另外的一個問題,就是還有其他的地方引用OSEnterSum變量嗎?不然,即使不將OSEnterSum也應該沒什么關系)。
今天看到關于OSTaskInit()的移植有值得注意的地方,堆棧必須按設計好的進行初始化(周立功書上374頁堆棧圖)。還有任務的數據指針是由r0來傳遞的。
還有移植增加的特點的函數,感覺還是很好理解的。
至此,移植的理論部分基本上完成,接下來的應該是實踐環節了,即進行操作系統在板上的調試。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品你懂的| 欧美在线你懂得| 日韩一级片在线观看| 亚洲一区二区视频| 欧美日韩在线播放| 成人性生交大合| 亚洲色图都市小说| 欧美在线视频你懂得| 亚洲午夜精品一区二区三区他趣| 在线免费观看一区| 五月婷婷综合在线| 欧美成人三级在线| 丰满少妇久久久久久久| 亚洲理论在线观看| 最新久久zyz资源站| 成人高清视频免费观看| 一区二区三区四区亚洲| 欧美一区二区三区人| 激情丁香综合五月| 日韩毛片视频在线看| 欧美一卡二卡在线| k8久久久一区二区三区| 99精品视频在线免费观看| 亚洲一二三四在线| 久久免费美女视频| 欧美日韩日日骚| 成人性视频网站| 蜜臀av国产精品久久久久| 国产精品日韩精品欧美在线| 欧美日韩午夜影院| 国产成人免费视频精品含羞草妖精| 亚洲一二三区不卡| 日本一区二区三区免费乱视频| 制服丝袜一区二区三区| 久久九九影视网| 欧美日韩在线播放三区四区| 91丨porny丨户外露出| 韩国av一区二区三区在线观看| 亚洲电影第三页| 亚洲线精品一区二区三区八戒| 国产精品嫩草影院av蜜臀| 欧美成人一级视频| 精品美女在线播放| 亚洲精品一区在线观看| 欧美精品一区视频| 日韩三级精品电影久久久 | 国产成人aaa| 精品在线一区二区| 捆绑调教一区二区三区| 青青草97国产精品免费观看无弹窗版| 亚洲三级理论片| 亚洲一二三专区| 美女国产一区二区三区| 精彩视频一区二区| 成人综合激情网| 一本色道久久综合亚洲精品按摩| 欧洲一区二区三区在线| 欧美午夜理伦三级在线观看| 国产精品免费视频网站| 亚洲美腿欧美偷拍| 日日摸夜夜添夜夜添精品视频| 日韩综合一区二区| 国产精品18久久久久久vr| 成人听书哪个软件好| 在线视频观看一区| 精品国产91乱码一区二区三区| 国产亚洲精品7777| 国产99一区视频免费| 99re6这里只有精品视频在线观看| 在线欧美小视频| 2023国产一二三区日本精品2022| 中文字幕制服丝袜成人av| 调教+趴+乳夹+国产+精品| 国产在线一区二区综合免费视频| 在线一区二区观看| 久久精品综合网| 日韩成人免费在线| 色偷偷一区二区三区| 精品噜噜噜噜久久久久久久久试看| 国产精品初高中害羞小美女文| 琪琪久久久久日韩精品| 色老汉一区二区三区| 久久久国际精品| 美女一区二区三区在线观看| 在线观看网站黄不卡| 国产精品国产三级国产普通话三级 | 91福利视频久久久久| 久久精品无码一区二区三区| 午夜精品久久久久久久| 97aⅴ精品视频一二三区| 国产精品99久久久久久宅男| 678五月天丁香亚洲综合网| 樱花草国产18久久久久| 大陆成人av片| 国产精品―色哟哟| 94色蜜桃网一区二区三区| 久久久久久久久久久久久女国产乱| 爽爽淫人综合网网站| 欧美高清hd18日本| 蜜乳av一区二区三区| 日韩一区二区免费视频| 精品夜夜嗨av一区二区三区| 欧美电影免费观看高清完整版在 | 婷婷中文字幕一区三区| 777色狠狠一区二区三区| 午夜精品福利一区二区蜜股av| 欧美日韩中字一区| 蜜臀99久久精品久久久久久软件| 久久午夜色播影院免费高清 | 亚洲国产va精品久久久不卡综合| 欧美色网一区二区| 韩国一区二区三区| 亚洲欧美日韩一区二区三区在线观看| 色婷婷综合视频在线观看| 亚洲国产精品天堂| 久久你懂得1024| 91看片淫黄大片一级在线观看| 午夜精品久久久久久久99樱桃| 国产亚洲美州欧州综合国| 91久久奴性调教| 国产精品一区二区免费不卡| 亚洲精品国产第一综合99久久| 91精品国产aⅴ一区二区| 成人一区二区三区视频在线观看| 性久久久久久久久| 中文字幕字幕中文在线中不卡视频| 欧美日韩国产中文| 成人av电影免费在线播放| 日本伊人午夜精品| 亚洲视频一二区| 久久精品亚洲精品国产欧美kt∨ | 91麻豆成人久久精品二区三区| 看电视剧不卡顿的网站| 亚洲成人av资源| 日本欧洲一区二区| 夜夜亚洲天天久久| 亚洲欧美国产高清| 日本不卡的三区四区五区| 亚洲成av人片| 午夜私人影院久久久久| 自拍视频在线观看一区二区| 欧美激情综合五月色丁香小说| 亚洲精品在线电影| 精品久久久影院| 久久久久久久久97黄色工厂| 欧美精品三级日韩久久| 91精品国产手机| 日韩欧美在线影院| 欧美videos大乳护士334| 日韩一区二区免费电影| 日韩美女一区二区三区| 久久夜色精品国产噜噜av| 亚洲精品在线观看网站| 久久精品亚洲精品国产欧美kt∨| 国产婷婷色一区二区三区| 欧美国产一区视频在线观看| 日本一区二区不卡视频| 国产高清精品网站| 成人av免费网站| 欧美日韩久久不卡| 精品国产伦一区二区三区观看体验| 久久女同精品一区二区| 亚洲一区二区三区爽爽爽爽爽| 五月天一区二区| 国产激情一区二区三区| 欧美性大战久久久| 亚洲精品一区在线观看| 亚洲欧美日韩一区二区| 日韩av一区二区三区四区| 国产在线播精品第三| 欧美综合一区二区三区| 久久久国产精华| 亚洲一区精品在线| 成人午夜免费av| 日韩女优电影在线观看| 一区二区三区日韩精品| 成人黄色小视频| 精品国产91亚洲一区二区三区婷婷| 亚洲婷婷国产精品电影人久久| 久久国产精品色| 在线成人免费视频| 亚洲国产日韩在线一区模特| 国产传媒久久文化传媒| 精品久久久久久久久久久久久久久久久| 国产精品久久久久aaaa樱花| 国产一区二区三区免费看| 欧美一级搡bbbb搡bbbb| 日韩vs国产vs欧美| 精品视频1区2区3区| 亚洲午夜在线电影| 欧美喷水一区二区| 午夜影院在线观看欧美| 欧美色倩网站大全免费| 亚洲第一电影网| 欧美日韩不卡视频| 日韩国产欧美三级| 日韩久久免费av| 国产精品一区二区黑丝| 久久久久久免费| jlzzjlzz亚洲日本少妇|