學(xué)習(xí)ucosii操作系統(tǒng)的一點心得
我就說說自己對學(xué)習(xí)ucosii操作系統(tǒng)的一點學(xué)習(xí)心得。對我而言--非計算機專業(yè)的人剛開始接觸操作系統(tǒng)是多么的痛苦,畢竟自己的c語言知識全靠自學(xué)得來的,況且對匯編語言幾乎是一竅不通!學(xué)完51單片機以及編程后,曾對朋友吹噓:c語言至少可以考70分(滿分100),那時信心是何其飽滿!如今自嘆:c語言頂多能考50分(滿分100)!
本文引用地址:http://cafeforensic.com/article/201612/324479.htm沒辦法,再難也得學(xué)??!誰叫咱愛上這一口了呢?硬著頭皮看唄。資料太多了,簡直就是汗牛充棟!管他呢,一篇篇的先過一遍,管他懂不懂。通過對幾乎3G內(nèi)容的過濾,最終確認(rèn)《嵌入式實時操作系統(tǒng)ucosii原理及應(yīng)用---任哲》不錯,篇幅適中,通俗易懂(相對其他資料而言);江湖中人都說邵貝貝老師的書不錯,可是我覺得版本太老;另外,《北京航空航天大學(xué)ucosii操作系統(tǒng)講義》真的不錯!很對我的胃口!把它和任哲的資料結(jié)合起來學(xué)習(xí)是不錯的選擇!另外再結(jié)合鐘常慰老師的《ucosii中文注釋版》學(xué)習(xí),也是不錯的選擇!再用MDK3.8編譯器打開“原子”老師的有關(guān)ucosii例程配合以上資料就妥了!
學(xué)習(xí)ucosii,還先得說說自己學(xué)會移植的過程。要學(xué)習(xí)操作系統(tǒng),不會移植這是一個大問題!在網(wǎng)上查閱了大量基于stm32的移植方法資料,可惜說的都不夠詳細(xì);沒辦法,自己就在自己的例程基礎(chǔ)上嘗試移植,失敗過好多次!后來就和原子的例程對比,不斷編譯嘗試,終于ok了!終于在自己的工程模板上編譯通過了!現(xiàn)在回想,多么弱智的問題,搞得這么苦?!學(xué)習(xí)就是這樣,由許多這樣弱智和痛苦的問題構(gòu)成的。
數(shù)組,結(jié)構(gòu)體,堆棧,鏈表,內(nèi)存管理,指針函數(shù),個個是問題!畢竟自己沒有學(xué)過《數(shù)據(jù)結(jié)構(gòu)》啊!關(guān)鍵是“堆棧,鏈表”學(xué)習(xí)51單片機時就沒有接觸過,一點點百度和上論壇求仙人指教唄。至今,還沒有完全搞懂“堆棧,鏈表”是什么,只知道是一種數(shù)據(jù)結(jié)構(gòu)用來存儲數(shù)據(jù)。
讀書百遍,其義自現(xiàn),通過對《北航》和《任哲》的資料不斷反復(fù)地學(xué)習(xí)和閱讀,終于對ucosii有感覺了。ucosii的核心就是任務(wù)的創(chuàng)建和調(diào)度。任務(wù)控制塊,事件控制塊,任務(wù)就緒表,ISR,信號量,郵箱,隊列等等一切皆為“任務(wù)”服務(wù)。
終于可以在別人的例程嘗試加入自己的代碼了;先是簡單的任務(wù)調(diào)度,實驗---下載--失敗---成功,就這樣輪回。
腦子不能閑著,要想問題!用實時操作系統(tǒng)有什么好處呢?很多工程不用實時操作系統(tǒng)不是一樣好用嗎?我個人認(rèn)為,對于代碼量和任務(wù)不大尤其是程序中延時較少的任務(wù)還是不用操作系統(tǒng)的好,沒必要把簡單的事情搞復(fù)雜了!對于任務(wù)量很大且實時性要求高的任務(wù)或要結(jié)合嵌入式圖形界面GUI的項目就一定要用操作系統(tǒng)了。假設(shè)在代碼量和任務(wù)量很大且延時和中斷較多的工程中,要實時捕獲采樣外部信號用以實時控制執(zhí)行機構(gòu),這樣如果還用傳統(tǒng)的大循環(huán)編程方式肯定就不行了,只能用操作系統(tǒng)!利用操作系統(tǒng)可以提高系統(tǒng)的穩(wěn)定性和可靠性以及實時性。
年紀(jì)不小了,學(xué)習(xí)的路還很漫長。要學(xué)的東西實在太多!學(xué)習(xí)本該是件很享受的事情,然而生活卻不享受!真的想說,自學(xué),尤其是自學(xué)專業(yè)性很強的知識真的很辛苦好寂寞;為此,我要向那些堅持自學(xué),寂寞并痛苦著的同仁致敬!
本文(甚至稱不上“文”)只是學(xué)習(xí)心得,隨筆而已。涉及到的專業(yè)知識很少!
后記:
兩年多來,一直想寫點關(guān)于學(xué)習(xí)心得方面的東西。最近以來,由于工作上受到的挫折太多了,一種挫敗感如影隨形一直折磨著我;好了,沒什么大不了的,今天終于坐下來寫了這些文字。
評論