半個月前買了一塊2104開發(fā)板。晚上接上jtag按照說明書操作了一遍,不成功,搞了半天也沒有結(jié)果。第二天仔細看了使用介紹,終于把它玩起來了。實驗了一個燈閃爍的例子,既然能跑那說明板子沒問題,然后花3小時把硬件原理圖看明白,花半天把一些重要的存儲器和寄存器看了一下。接下來就開始做我想做的了,開始學(xué)習(xí)
ucos,對于那些gpio,iic接口什么的我沒興趣,充其量也就和51一樣,只是寄存器多了點。
說起學(xué)嵌入式,很早就有這個打算了。說出起真是見笑,按照論壇大蝦的提示,我首先開始接觸rtx-tiny,看了一個大概,了解了一下什么是嵌入式,明白了多任務(wù)原來只是短時間分段運作。人總是好高騖遠,自以為了解嵌入式。馬上就打算深入到uclinux,后來才發(fā)現(xiàn)是錯的。對我等非計算機專業(yè)的,對所謂的makefile,交叉編譯暈的半死,特別是gcc,gdb,都是命令行,用慣了ide對這些真是不熟悉。放棄是不可能的,隨便就認輸不是我的習(xí)慣。于是,我裝了一個紅旗4,吐血的學(xué)了半個月總算有點入門了,就開始看uclinux的移植,才發(fā)現(xiàn)我更錯。uclinux是個很優(yōu)秀的而且復(fù)雜嵌入式系統(tǒng),越看就越糊涂,都是一知半解。休息了兩天以后,整理一下思緒,覺得自己學(xué)習(xí)的跨度太大,于是乎,
ucos就成了我的最后選擇。
ucos的學(xué)習(xí)得感謝網(wǎng)友提供的pc上移植一文。我的
ucos學(xué)習(xí)過程大概是這樣的:先按照移植文章用了半天移植成功,這個大大加強我的信心。接下來就是看邵貝貝那本翻譯的書,看書順序是先看移植部分,講的是80x86的移植,讓我對先前的移植有了了解。接下來就是從頭開始看,主要看內(nèi)核,去明白一個任務(wù)是如何工作的,包括堆棧的使用,函數(shù)的調(diào)用等。用了兩天晚上把OS_CPU_A.ASM,OS_CPU_C.C,OS_CPU.C,INCLUDES.H,OS_CFG.H,UCOS_II.H搞透,這些可是移植的關(guān)鍵。差不多了就得動手練習(xí)一下,keilc下
ucos在c51的移植的文章最多而且有源碼,由于對51的軟硬都熟悉??疵靼琢藙e人的移植代碼后,自己按照移植的要點做了修改,跑了幾個簡單的程序,哈哈,的確是很爽,編程的工作量少了很多。 這樣算是入門了吧,接下去還得努力。目標還是移植到
ARM上,當(dāng)然最終還是為了
ARM+linux。準備在看幾遍
ucos源碼,理解透了才算學(xué)到東西。
總的來說,我是從對嵌入式完全不懂開始入門的,以前編程寫的都是狀態(tài)機那樣的東西。循序漸進是對我等初學(xué)者最好的辦法,但是對硬件,操作系統(tǒng),c語言有深入理解的就可以從linux開始學(xué)。最后,本文若能為想學(xué)嵌入式的朋友提供點幫助,我就很高興了。