note:about super simple tasker

note:about super simple tasker

ID:5275689

大小:147.32 KB

页数:10页

时间:2017-12-07

note:about super simple tasker_第1页
note:about super simple tasker_第2页
note:about super simple tasker_第3页
note:about super simple tasker_第4页
note:about super simple tasker_第5页
资源描述:

《note:about super simple tasker》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Note:AboutSuperSimpleTaskerPage1of10Note:AboutSuperSimpleTasker註:這篇純粹是寫給自己看的「讀書心得」,圖是依據原文重畫過的:)前言從很久以前就有人試圖在單晶片上實現multi-tasking,原因無他,就是希望可以在產品上整合更多的功能,甚至站長過去用過的FxxA就是把主題放在multi-tasking,試圖從硬體來解決這個問題。站長的偶像台灣大牛先生也在不同場合強調過multi-tasking技巧的重要性,他本人也在一個冷門到爆的論壇透漏了他的不傳之秘。台灣出版的單晶片書籍多如過江之鯽,但是提到multi

2、-tasking技巧的書籍幾乎沒有!就算是原文書站長也只看過兩本有提到:PATTERNSFORTIME-TRIGGEREDEMBEDDEDSYSTEMS:Buildingreliableapplicationswiththe8051familyofmicrocontrollersbyMichaelJ.PontC&8051Hardware,ModularProgrammingandandMultitasking2ndeditionbyThomasW.Schultz以上的作法都是time-slicingbased,以切割時間的方式來達成多工,這些作法缺乏RTOS一個很重要的

3、性質-preemptive。time-slicing的作法只能用分配較多的時間給某個task來勉強逼近,但是一般傳統的RTOS例如MicroC/OS-II在事件發生時會「立即」切換到進入readystate中priority最高的task。不過,傳統RTOS移植到單晶片卻有一些困難,首先就是cost,例如MicroC/OS-II雖然是一次賣斷,但是授權上限制你只能用在單一產品上,光是這樣就要花幾十萬台幣,更別提完全買斷的價格根本就是天價,我看台灣沒幾間公司會去花這種錢吧(台灣電子公司的思維是:養了軟體工程師已經花了很多$$,怎可能再花錢買軟體?)http://godsp

4、eedlee.myweb.hinet.net/sst.htm?MywebPageId=20141113945056247962014-03-11Note:AboutSuperSimpleTaskerPage2of10好吧,我知道書上有附sourcecode,官網也很大方的提供了各種CPU移植好的版本,昧著良心直接拿來作產品也行,不過你還是會碰到麻煩,你會發現你很難把它移植到一個只有32KBFlash、8KBSRAM的單晶片上。因為這些傳統RTOS的設計是每個task擁有自己的stack,如下圖:task一多記憶體的消耗就會很快,可能還沒寫什麼東西記憶體就不夠用了,就算你

5、很小心的規劃stacksize,拿掉一些用不到的功能(例如mutex,eventflags,messagequeue...),你還是會覺得這玩意實在太肥了!而且拿掉這麼多功能那當初幹嘛花那麼多金錢時間porting?SuperSimpleTasker(SST)http://godspeedlee.myweb.hinet.net/sst.htm?MywebPageId=20141113945056247962014-03-11Note:AboutSuperSimpleTaskerPage3of10沒有更好的方法了嗎???前鎮子站長總算看到一個令人拍案叫絕的作法,2003年

6、RobertWard在EmbeddedSystemConference上發表了一篇PracticalReal-TimeTechniques,之後又跟MiroSamek博士在EmbeddedSystemDesign雜誌合作發表了一篇BuildASuperSimpleTasker(簡稱SST)。兩篇文章的內容大同小異,其中SST的內容比較完整,而且用C語言實做(之前RobertWard用C++),有完整可執行的examplecode,所以這裡以SST為主。SST在觀念上的突破就是把interrupt也視為一種preemptive的行為,ISR也視為一種比一般taskprio

7、rity更高的task:http://godspeedlee.myweb.hinet.net/sst.htm?MywebPageId=20141113945056247962014-03-11Note:AboutSuperSimpleTaskerPage4of10更有意思的是SST用nestinterrupt的方式進行taskswitch,直接在ISRstackframe上執行task,在過去傳統的RTOS中,ISR做taskswitch僅是搬移TCB(TaskControlBlock),載入programcounter、stackpoi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。