|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
痛苦,到底該怎樣學UCOS II? |
| 作者:mikezhong 欄目:嵌入式系統(tǒng) |
還望各位大俠幫忙解惑,我是目前是單片機的,電子技術專業(yè),因為目前在學習ARM,熟悉C語言,想學UCOS II,買回來了邵貝貝的書,看了一遍,看了很久,感到很難入手,各位前輩能否介紹一點你們曾經(jīng)的開始學習UCOS II的經(jīng)驗和學習方法。謝謝。 |
| 2樓: | >>參與討論 |
| 作者: xuekcd832 于 2005/5/2 14:38:00 發(fā)布:
先看三遍,然后參照網(wǎng)上的列子自己移植一個。 |
|
| 3樓: | >>參與討論 |
| 作者: chunk 于 2005/5/4 0:34:00 發(fā)布:
混合語言程序設計 C語言調(diào)用匯編語言沒問題吧?那么匯編語言調(diào)用C語言呢? 一提“函數(shù)調(diào)用”我們就習慣于想起CALL指令,你有沒有想過用“RET”指令也可以“調(diào)用”函數(shù)? |
|
| 4樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/4 19:44:00 發(fā)布:
一時之間很難全看完三遍 謝謝各位,那么厚的書,一時之間很難全看完三遍,我是想想知道我應該重點往哪方面,哪幾章節(jié)看?從而可快于普通的學習。 |
|
| 5樓: | >>參與討論 |
| 作者: zlei 于 2005/5/4 21:50:00 發(fā)布:
先在pc上把各個例子跑一遍 有個感性認識 |
|
| 6樓: | >>參與討論 |
| 作者: vwwj 于 2005/5/5 10:35:00 發(fā)布:
沒那么復雜啊 把那三個CPU文件移植后,照書本自檢測一下,開幾個任務就可以了。 我是第一天買了書,第二天移植到2132,第二天晚上跑了ADC和串口兩個任務。很EASY啊 |
|
| 7樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/5 15:04:00 發(fā)布:
差距大啊! 上面的這位大俠,很厲害,這就是我和你的差距。差距大啊!可否借鑒一下你的經(jīng)驗。那三個文件,是哪三個文件?能發(fā)給我看一下嗎? 另外,現(xiàn)在我都不知道如何創(chuàng)建任務,所以還在啃書。 |
|
| 8樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/7 19:50:00 發(fā)布:
程序內(nèi)容都很簡單 我看了相關的在ARM 2132上面的相關的移植的程序,周立功的附帶的程序例子,程序內(nèi)容都很簡單,只用到了很少的一部份UC/OS II 的內(nèi)核代碼,對于搞ARM的多任務程序,是否UC/OS II 不需要鉆的很深(當然是基于初學的情況),特別是書本后面的消息隊列和郵箱? |
|
| 9樓: | >>參與討論 |
| 作者: jangyouhua 于 2005/5/12 16:53:00 發(fā)布:
vwwj太利害! 別信那個wwwj的話!牛也吹得比天大。 |
|
| 10樓: | >>參與討論 |
| 作者: lwtlwt 于 2005/5/12 22:37:00 發(fā)布:
學習ucos,你應該把它當作操作系統(tǒng)來學習 雖然它只是一個簡單的操作系統(tǒng),但你可以學到操作系統(tǒng)的基礎。 建議仔細閱讀那本書,翻譯質(zhì)量不錯,看一遍不夠,至少兩遍,并且要吃透,包括源代碼的分析, 另外,給一點忠告:如果沒有操作系統(tǒng)的基礎,千萬不要看那三個例子,從三個例子之后的章節(jié)開始看,否則你會因摸不著頭腦而郁悶, |
|
| 11樓: | >>參與討論 |
| 作者: lwtlwt 于 2005/5/12 22:38:00 發(fā)布:
看完一遍后再看那三個例子 |
|
| 12樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/14 12:22:00 發(fā)布:
謝謝 謝謝各位指點,請問重點應該放在哪里? |
|
| 13樓: | >>參與討論 |
| 作者: eleven11 于 2005/5/14 12:24:00 發(fā)布:
關鍵要看你功夫到不到家 要是你的C語言編程寫的都流水帳的話,那還是不要看的好 本人編過一些ARM的底層驅(qū)動,鏈表的應用也搞過很多 就在某一天,總之基本上沒看uCOS2那本書,只是隨便翻了翻,突然頓悟,原來就是這樣啊,就在那一刻,我會用uCOS2了,其實用一個移植好的uCOS2和用一個頭文件里的程序沒多大區(qū)別 關鍵是你是否編過操作系統(tǒng)中用的最廣泛知識的程序 |
|
| 14樓: | >>參與討論 |
| 作者: lwtlwt 于 2005/5/14 22:03:00 發(fā)布:
re RE:其實用一個移植好的uCOS2和用一個頭文件里的程序沒多大區(qū)別 這樣使用ucos2會非常危險,畢竟ucos是為嵌入式系統(tǒng)而設計的,代碼小,占用RAM少,而且還要在普通單片機上使用,因此,它在使用上需要注意一些注意事項,而且還不算少,如果只是隨便翻翻,你肯定不能把ucos用于復雜的產(chǎn)品設計上,否則系統(tǒng)極可能出問題。 因此,即使是比爾蓋次,想用好、用全ucos,不出問題,也得好好看一遍,當然,他可以跳過前面幾章 |
|
| 15樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/17 12:10:00 發(fā)布:
表達式我不知道是什么意思 各位,我學到了任務調(diào)度這里,下面這個表達式我不知道是什么意思,待別是等號右邊有指針,請大俠能否幫我解釋一下? |
|
| 16樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/17 12:11:00 發(fā)布:
等式。 等式, ptcb->OSTCBEventPtr = (OS_EVENT *)0; |
|
| 17樓: | >>參與討論 |
| 作者: mxb3733 于 2005/5/17 17:52:00 發(fā)布:
付值表達式 這是一個付值表達式 意思是把0強制轉(zhuǎn)換為OS_EVENT 結構指針付給=前的~ |
|
| 18樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/18 7:34:00 發(fā)布:
謝謝! 把0強制轉(zhuǎn)換成OS_EVENT結構指針,是不是OSTCBEventPtr指針為0? |
|
| 19樓: | >>參與討論 |
| 作者: mxb3733 于 2005/5/18 17:33:00 發(fā)布:
不是的 OSTCBEventPtr并不為零 是它指向的內(nèi)容為空,但是結構依然占有內(nèi)存 |
|
| 20樓: | >>參與討論 |
| 作者: sixpower 于 2005/5/18 19:41:00 發(fā)布:
沒必要全弄懂,只要懂得應用就差不多了. ARM都有現(xiàn)成移植好的. |
|
| 21樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/18 20:49:00 發(fā)布:
謝謝, 哦,對,謝謝,如果一個個問題不弄懂,總是看不下去,累著大家了! |
|
| 22樓: | >>參與討論 |
| 作者: eleven11 于 2005/5/18 22:19:00 發(fā)布:
樓主應該好好編幾個鏈表和結構體的程序 感覺你編程不怎么樣?好像是沒走好路就想跑? 說的不對請原諒 * - 本貼最后修改時間:2005-5-18 22:20:42 修改者:eleven11 |
|
| 23樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/19 7:46:00 發(fā)布:
主要是一些簡單的控制 我只是搞單片機編程,主要是一些簡單的控制,沒有涉及到鏈表,結構體的話,暫時也還沒用到,用簡單的東西代替了,只是學了而已,可不可以介紹一些有鏈表的程序例子,我捉摸捉摸。我想在實際的學習當中補足不足。 |
|
| 24樓: | >>參與討論 |
| 作者: joyce1024 于 2005/5/21 15:04:00 發(fā)布:
ARM都有現(xiàn)成移植好的. 好象是可以這樣做的。不過我覺得應該不會太難掌握這個東西的。 在很多時候都應該是這樣的。 |
|
| 25樓: | >>參與討論 |
| 作者: LWTLWT 于 2005/5/21 22:03:00 發(fā)布:
如果: 如果不能基本看懂ucos的源碼,那說明C語言及數(shù)據(jù)結構內(nèi)容還不過關, 要想真正讀懂ucos,不僅要扎實的C語言,還要有數(shù)據(jù)結構基礎,而這些都是嵌入式開發(fā)工程師所應該具備的。 |
|
| 26樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/23 12:17:00 發(fā)布:
事件控制塊,任務控制塊 我看了幾章,感覺任務控制塊較不好懂,事件又有事件控制塊,任務控制塊,主要控制任務的優(yōu)先級,我想他的靈魂就是這一點吧! |
|
| 27樓: | >>參與討論 |
| 作者: seabridge 于 2005/5/23 12:42:00 發(fā)布:
先看任務,不要考慮事件 |
|
| 28樓: | >>參與討論 |
| 作者: htao 于 2005/5/24 14:55:00 發(fā)布:
UCOS II可以TCP/IP之類的協(xié)議嗎? |
|
| 29樓: | >>參與討論 |
| 作者: lostman 于 2005/5/25 16:04:00 發(fā)布:
我覺得是這樣的。8 c語言保證0不是有效的地址,而給一個指針賦值為0,可以表示一個異常事件,在ptcb->OSTCBEventPtr = (OS_EVENT *)0;里,意思就是清除當前任務的控制塊的事件指針,即該任務沒有(不再)等待其它事件了。 |
|
| 30樓: | >>參與討論 |
| 作者: uisffer 于 2005/5/25 16:46:00 發(fā)布:
空指針 其實就是付了個空指針,表明該指針不再指向任何事件控制塊 |
|
| 31樓: | >>參與討論 |
| 作者: 夏正武 于 2005/5/25 21:12:00 發(fā)布:
可能你沒有相應的開發(fā)經(jīng)驗 可能你沒有相應的開發(fā)經(jīng)驗 如果開發(fā)過一些東西,就會對多任務,單片機如何執(zhí)行任務,對簡單的監(jiān)控程序 有了了解。 就會明白為什么uc/os講的是什么。 我曾經(jīng)看那本書很迷茫,似乎看懂了,其實是一頭霧水,不知所云。后來但ucos-ii 還是大體搞懂。我建議前三章反復讀。 如果還不懂,我建議看以下兩本書有關于實時多任務系統(tǒng)的內(nèi)容,看一下就知道,什么的多任務,怎么劃分多任務,怎么調(diào)度,等(一般單片機開發(fā)只有一個大的任務,所以看ucos-ii 不理解開發(fā)個東西哪兒來的多任務,任務之間是什么關系,等。 單片微機軟件設計技術 涂時亮編著 科學技術文獻出版社重慶分社 1988 73.876/10.323 還有本復旦大學編的 大概叫 單片微機原理...... 里面有介紹實時多任務系統(tǒng)的。這兩本書這部分的 內(nèi)容一樣。 我在大概把 邵貝貝 翻譯的那本書看了 兩次(當然沒看完,反正看看就看不下去了,再來)仍然迷迷糊糊,看了涂時亮的書后再看邵貝貝 翻譯的那本書 就有種豁然開朗的感覺,看起來很快 |
|
| 32樓: | >>參與討論 |
| 作者: dylm 于 2005/5/26 15:26:00 發(fā)布:
一起學習 我覺得還是應該先弄懂操作系統(tǒng)的一些基本概念,當然數(shù)據(jù)結構也必須有一定的基礎,這樣看起來會順一些:) |
|
| 33樓: | >>參與討論 |
| 作者: wjy1107 于 2005/5/26 16:31:00 發(fā)布:
一起進步 我以前也是搞單片機的,現(xiàn)在也正在學習嵌入式操作系統(tǒng),可以互相探討。 email:wangjinying@neuera.com |
|
| 34樓: | >>參與討論 |
| 作者: mikezhong 于 2005/5/26 18:09:00 發(fā)布:
剛剛好不容易打了一串字,突然停電! 剛剛好不容易打了一串字,突然停電! 對于這個系統(tǒng)的一些相關的慨念,我都理解,能夠知道是什么意思,我所感到的難點,是在鍵表,及指針函數(shù)這一塊,一見到她們,我頭就大了,各位大俠有沒有關于指針函數(shù),鍵表方面的資料,我要加強這方面。 另外,前面多位大俠提到,要熟悉數(shù)據(jù)結構,這么看來,我們學習電子專業(yè)的又不得不再學習計算機專業(yè)的知識了,并且是本科的內(nèi)容,我買了一本數(shù)據(jù)結構的書,看起來有一點難度,其實,以我個人的觀點來看,做為一個專業(yè)的嵌入式工程師,可能是要非常熟悉數(shù)據(jù)結構,但對于我理解UCOS II,應該不是我當前的最大瓶頸。 |
|
| 35樓: | >>參與討論 |
| 作者: eleven11 于 2005/5/26 18:17:00 發(fā)布:
我也是自學的 C的資料就是那本譚浩強的書,不理解結構體和鏈表就是不理解數(shù)據(jù)結構 * - 本貼最后修改時間:2005-5-26 18:24:47 修改者:eleven11 |
|
| 36樓: | >>參與討論 |
| 作者: d_2002gf 于 2005/5/26 19:23:00 發(fā)布:
先粗看,再細調(diào)試 首先:建議先通看全書,有一個初步的認識,可能看完后一頭霧水,但那不要緊,將關鍵性的數(shù)據(jù)結構(如任務的描述),源碼,記下來; 然后:選擇一個自己非常熟悉的調(diào)試環(huán)境,下載一個短小的例子,一步一步的調(diào)試,看OS是怎樣修改STACK,達到切換任務的目的,這是OS最關鍵的東東; 然后:再回過頭來看書,這次要細看,或許你會覺得自己在慢慢地入門了; 最后:也許你成功了!? 關鍵:別急功近利,多翻翻C語言(譚浩強),數(shù)據(jù)結構,OS的基本常識 |
|
| 37樓: | >>參與討論 |
| 作者: nt_mouse 于 2005/6/1 13:29:00 發(fā)布:
為什么不看看SMALL ROTS51? SMALL RTOS51簡單實用,作為學習比UC/OS要快,也簡單.只是書寫的不如UC/OS,另外最好能懂一些80C51的知識,這樣理解起來更方便! |
|
| 38樓: | >>參與討論 |
| 作者: luofl 于 2005/6/10 11:10:00 發(fā)布:
我也在學ucos-ii,說說我的體會. 我也是從事51單片機開發(fā),現(xiàn)在正在學ucos-ii.我想談談我學習的一些體會. 首先我看了陳明計的那本Small RTOS51的書,并把它用在產(chǎn)品上. 然后再看os-ii這本書.現(xiàn)在基本看完了,感覺不是太難,我主要先看3,4,5,6這四章.看完后基本框架就在腦海內(nèi)形成了.接著主要看7,11章.然后再看其它章節(jié).現(xiàn)在重新回過頭來看仔細分析這些章節(jié)的源代碼,這樣認識上又提高了一步. 下一步我想找周立功買一塊開發(fā)板,學習LPC2131芯片,然后將ucos-ii應用到產(chǎn)品中. 學習一定要與實踐相結合,不然很難取得進步.最后愿我們都把ucos-ii學精,呵呵到那時我們的生活會越過越精彩. |
|
| 39樓: | >>參與討論 |
| 作者: ketp 于 2005/6/10 17:05:00 發(fā)布:
先搞懂多任務 先搞清楚什么是多任務?多任務說白點就是讓cpu不要空轉(zhuǎn)(小時間片除外),一般來說有以下幾種方法: 1在空轉(zhuǎn)的時間片里塞一些其他操作(直觀,但做不了大事) 2使用狀態(tài)機,依靠記錄和轉(zhuǎn)移狀態(tài)在空轉(zhuǎn)時來讓出cpu(狀態(tài)多時,實現(xiàn)困難) 3上下文切換,保存任務現(xiàn)場和恢復其他任務現(xiàn)場來來讓出cpu---OS使用的方法,編程方便,可支持搶占。 |
|
| 40樓: | >>參與討論 |
| 作者: hhwsl 于 2005/6/11 13:29:00 發(fā)布:
堅持,堅持,在堅持 我的學習經(jīng)歷: 我開始連51都沒有使用過,匯編只是考試的時候看的,C語言是考2、3、4級 計算機等級考試的時候?qū)W的(C基礎好)。剛進單位我好害怕,什么都不會!。 我是從TMS320LF2407A開始學的,剛開始是讀同僚的代碼,匯編和C,后來自己開始修改他們的代碼。這樣大概一個月,我可以編了。 一次出差聽說uC/OS-II,就買了一本。讀了一個月2遍還是3遍已經(jīng)記不請了。后來就從網(wǎng)上下了一個現(xiàn)成的移植例子,但是不能跑,這樣又花了我一個月的時間,終于跑起來了。。海 于是我把它用到我項目中,開始領導不太放心,后來經(jīng)過測試還是通過了。 但是我只是使用了兩個任務通信技術:信號量和消息郵箱。對我的項目已經(jīng)足夠了。 但當時我有一個誤區(qū):認為只能使用一個信號量和一個消息郵箱。其實現(xiàn)在看來當時自己是多么的逗了!:) 后來,我又出差了,也就意味著暫時告別我的uC/OS-II!!出差期間,我有幸買了一本《C PRIMER PLUS》,里面有隊列和連表的實現(xiàn)(這正式uC/OS-II內(nèi)核使用的),寫的很好,我用VC++6。0都試了,很簡單。 現(xiàn)在我回來了;藘商鞎r間又讀了一邊那本厚書,很輕松,以前沒有理解的問題都解決了!什么消息隊列,時間標志組,內(nèi)存管理等等,哈哈都NO PROBLEM。 仔細算下來,整個過程大概就是4個月:). 我想說的就是:不要畏懼困難,堅持堅持再堅持,沒什么難的,都是自己嚇自己! 另外要有一個自己的開發(fā)板,可以在業(yè)余時間調(diào)調(diào)。比如周立功的2104開發(fā)板就不錯,當然如果你經(jīng)濟寬余的話可以買一個高檔點的,將來可以跑uCLinux。 我的QQ:12202050 歡迎交流! |
|
| 41樓: | >>參與討論 |
| 作者: beibeito01 于 2005/6/11 16:31:00 發(fā)布:
個人感受 我看搞電子技術的學嵌入式要先學《操作系統(tǒng)》和《數(shù)據(jù)結構》先,個人感受,我也是這樣進入的。 |
|
| 42樓: | >>參與討論 |
| 作者: 厲害 于 2007/11/29 15:27:39 發(fā)布:
39樓好厲害,四個月就搞定了,我現(xiàn)在也是想從單轉(zhuǎn)嵌,任務切換倒是搞懂了,就是信號量、郵箱、消息隊列怎么個運行機制,就是事件控制塊有些頭大,歡迎光顧http://patonwang.blog.163.com |
|
| 43樓: | >>參與討論 |
| 作者: Paton 于 2007/12/12 10:28:05 發(fā)布:
一點一滴的積累吧,誰也不能一口吃個胖子,哪里簡單就從哪里入手 |
|
| 44樓: | >>參與討論 |
| 作者: forward 于 2009/7/6 22:49:38 發(fā)布:
我正準備做一塊lpc2121的開發(fā)板,到時想學學uC/OS-II,還請各位大蝦不吝賜教~ |
|
| 45樓: | >>參與討論 |
| 作者: 童話 于 2009/9/13 22:51:05 發(fā)布:
我也建議吧源代碼 分析三遍 我現(xiàn)在看了三遍當然格的時間比較成 第一次大概十一年前 第二次大概是半年前 由于比較忙沒有時間看 看這個純屬是個人愛好 最近又看了一遍 要把他的內(nèi)核 原理搞清楚 最主要的是基于優(yōu)先級的調(diào)度 以及鏈表的使用 這樣子對于以后的發(fā)展才有后勁有動力 |
|
| 46樓: | >>參與討論 |
| 作者: palcebo 于 2009/12/6 0:31:07 發(fā)布:
我不知道你各方面的水平如何 我沒有玩過單片機 ARM開發(fā)板正準備買 因為跟同學一起準備寫一個嵌入式操作系統(tǒng)所以看了一下那本書 感覺很容易懂 但是大家情況不一樣 我是計算機專業(yè)大三的 感覺C語言是沒問題了 算法數(shù)據(jù)結構都還算懂 也看過Linux0.11的代碼 操作系統(tǒng)原理的書看過幾本 可能再看這個就覺得很容易理解 本來覺得嵌入式系統(tǒng)很難寫 但是看了那個發(fā)現(xiàn)進程管理 內(nèi)存分配都寫得很簡單 而且不需要做虛擬內(nèi)存 大部分都是講IPC的 但是寫嵌入式操作系統(tǒng)的難點在于移植 如果上升到C語言就很簡單了 但是怎么跟硬件打交道是我缺乏的 也希望向各位前輩們學習 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |