學習沒有大量“穩(wěn)定實用有源代碼的應(yīng)用程序的OS”其實是浪
(2011/10/23 9:53:00)
宇宙飛船出差臨走時交給俺一張紙條,叫俺上21IC的單片機公共壇子
去,看看哪位是打著OS的技術(shù)旗號,其實是暗地里干著見不得人的IC
代言人的勾當,讓俺在此好好地披露一下這些丑惡的嘴臉!
在此自我介紹一下,俺跟飛船是同門師兄,比他大兩歲。某一天飛船
跟俺說,俺們得上21IC混出個名堂來,俺喜歡潛水,就起了這個名字
----潛艇8421。
語歸正傳,回到扯學習OS的論題中來了,熟悉
計算機
硬件的人就知道
CPU的是如何動作的,
在此簡述一下這些動作術(shù)語:
術(shù)語-->中斷
術(shù)語-->中斷入口
術(shù)語-->中斷優(yōu)先級
術(shù)語-->堆棧
術(shù)語-->堆棧指針
術(shù)語-->現(xiàn)場保護
術(shù)語-->現(xiàn)場恢復
術(shù)語-->程序計數(shù)器
術(shù)語-->定時器
//--------------------------
以上這些都是MCU中的心臟,你只要真正撐握了這些術(shù)語在MCU硬件上
是如何進行動作的,就不會再被所謂的OS迷憾了!
請看看最簡單的三個任務(wù)的OS來的模塊實現(xiàn):
*********************************************
模塊1:
定時器中斷:{.....}//所謂的任務(wù)切換,就是在定時器中斷內(nèi),實
行被掛起任務(wù)的現(xiàn)場保護,與恢復要執(zhí)行任務(wù)的現(xiàn)場。
-----------------------------------------------
模塊2:
task_0://假設(shè)任務(wù)0的起始地址:0x111
while(1)
{.....}
task_1://假設(shè)任務(wù)1的起始地址:0x222
while(1)
{.....}
task_2://假設(shè)任務(wù)2的起始地址:0x333
while(1)
{.....}
僅只需要2個模塊就能實現(xiàn)多任務(wù)。
所謂的OS要做的就是如何把這些任務(wù)的地址和用到的
寄存器,進行現(xiàn)
場保護與恢復,真正實現(xiàn)時要做的動作就是在
計時器中斷中(所謂的
時間片),設(shè)置堆棧指針找到任務(wù)的地址進行壓入與彈出操作。
切換任務(wù)就是保護好要掛起的已經(jīng)執(zhí)行的任務(wù)現(xiàn)場,然后再彈出要執(zhí)
行的任務(wù)的地址到‘程序計數(shù)器’。這是非常簡單的一件事,只要移
動堆棧指針,再利用子程序返回指令‘RET就能實行程序計數(shù)器’的
操作。
**********************************************************
對于前后級的應(yīng)用,某些MCU中有硬件優(yōu)先級,這就是最好的任務(wù)調(diào)
度器,對于某些MCU還有4個獨立的工作奇存器組,只需一條指令就能
進行寄存器組切換,進行現(xiàn)場保護與恢復。
只要你有了以上操作硬件的本領(lǐng),精通匯編與C的混合編程,要自行開
發(fā)適合自已的OS,簡直就是易如反撐。
//-----------------------------------------------------------
某些場合要應(yīng)用OS是因為看中基于這些OS上的大量實用應(yīng)用程序,假
如還沒有懂得如何把一個漂亮的觸摸屏,MP3,MP4,TCP/IP等做出來
的時候,而偏偏接到要開發(fā)這些功能的項目,那么選擇嵌入式OS就是
唯一的選擇,因為基于這些OS上有大量的開源源碼的應(yīng)用程序,并且
已經(jīng)移植好,經(jīng)過多年的驗證,已經(jīng)是非常穩(wěn)定。只要花很少的時間
就能做好這些項目。
假若選擇了嵌入式LINUX,那么你就有了這個機會精通以上的應(yīng)用代
碼。因為有了這些代碼,再加上你的聰明與勤奮,最后就能夠成為裸
奔高手!
總結(jié)一下個人的感受:
學習OS的最終目的就是要為了更好地裸奔!站在巨人的算法肩上花更
少的精力研制出性價比更高的產(chǎn)品!
網(wǎng)友評論:潛艇再有能耐,也沒法施展。
網(wǎng)友評論:一但回到水里,就會發(fā)射的了。
網(wǎng)友評論:沒有一個論壇不充滿商業(yè)氣息的;
而大家的努力也是在支持商業(yè)行為的;
技術(shù)離不開市場,沒有市場技術(shù)不會提高;
但市場更離不開技術(shù),沒有技術(shù),市場是扯淡,除非都在賣茶葉蛋;
這就好比大學,搞學術(shù),也要靠政府社會的資金支持。
但21IC還是一個比較不錯的地方,有商業(yè),但學術(shù)氛圍也很重。
存在即有道理,有正面聲音肯定有反面聲音,總比沒有聲音好。
但如果鬧得反目了,就不好了,大家要暢所欲言,百家爭鳴嘛~~~~
說的好,支持一下,說的不好,當我放屁。