我們心里有一些收獲后,寫(xiě)一篇心得體會(huì),記錄下來(lái),它可以幫助我們了解自己的這段時(shí)間的學(xué)習(xí)、工作生活狀態(tài)。但是心得體會(huì)有什么要求呢?以下是小編精心整理的嵌入式學(xué)習(xí)心得體會(huì),希望能夠幫助到大家。
研究嵌入式系統(tǒng)已經(jīng)有快兩年的時(shí)間了。很慶幸自己當(dāng)初選擇了嵌入式系統(tǒng)作為自己的研究和職業(yè)方向,可以說(shuō)它是一種催化劑,讓我自身的修養(yǎng)和研究能力都有了很大的提高。
在嵌入式系統(tǒng)的大門(mén)前,我只能算是剛剛看到這個(gè)大門(mén)的臺(tái)階,但這段小小的距離讓我受益頗多,現(xiàn)將其中心得奉獻(xiàn)出來(lái),歡迎高手前輩們指正,以供剛接觸的新人參考。
在寫(xiě)之前,想先寫(xiě)一句話(huà),千萬(wàn)不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認(rèn)為你是天才,請(qǐng)以天才的標(biāo)準(zhǔn)來(lái)要求自己,將自己付出和別人的比例以N:1來(lái)進(jìn)行。
很多朋友都是在剛步入大學(xué)校門(mén)開(kāi)始接觸計(jì)算機(jī)或者其他。大學(xué)是一個(gè)很讓人迷茫頹廢的地方,可能你在高中躊躇滿(mǎn)志,但在大學(xué)的管理機(jī)制下卻心態(tài)漸糜。能夠在大學(xué)(大一)里找到自己人生之志的同學(xué)有多少?目標(biāo)要明確,不要得過(guò)且過(guò),不要追逐熱門(mén)的東西。
不管在什么時(shí)候,心里都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競(jìng)爭(zhēng)出發(fā),因?yàn)檫@才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì)享受學(xué)習(xí)它的時(shí)間,喜歡喬XXX的都知道,喬老爺子最常說(shuō)的一句就是要享受比賽的時(shí)間。
因?yàn)橹挥心阆矚g上了它,享受了它,才不會(huì)被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒(méi)有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過(guò)頭來(lái),或者用其他的方式來(lái)轉(zhuǎn)換。要抱著一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎(chǔ)開(kāi)始,不要為高速開(kāi)發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。
我個(gè)人認(rèn)為搞編程,英語(yǔ)和數(shù)學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識(shí)也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來(lái)補(bǔ)充自己。轉(zhuǎn)換的生活方式。要學(xué)會(huì)生活,在人的一生中,都會(huì)遇到一些很不開(kāi)心的事,或者大大小小的意外,孫子兵法里面一句大意就是說(shuō),戰(zhàn)場(chǎng)上要會(huì)將劣勢(shì)轉(zhuǎn)成優(yōu)勢(shì),即最大的劣勢(shì)很可能就是你的優(yōu)勢(shì)所在。
一個(gè)打擊你可以把他變?yōu)榍斑M(jìn)的動(dòng)力,不必為了一點(diǎn)挫折和捶胸頓足,不必為了一點(diǎn)小事?tīng)?zhēng)吵不休??臻e的時(shí)候可以躺下來(lái)看看天,你就會(huì)明白自強(qiáng)不息,厚德載物之理。(看到一些為了失戀或者其他而墮落的人真的很難受和可惜)。
要給人以幫助。別人有困難時(shí)或者一些舉手之勞在自己解決范圍內(nèi)的盡力幫之,這對(duì)自己不會(huì)損失什么,相反在對(duì)方心里能夠樹(shù)立你的形象和增加好感。記住,給人之恩時(shí)也是給你自己鋪路,這個(gè)世界不是靠你一個(gè)人可改變的。
很多初學(xué)擇,老是在學(xué)習(xí)何種語(yǔ)言上舉棋不定,試問(wèn),中國(guó)牌子有幾個(gè)不被罵的,試問(wèn),世界上哪部影片沒(méi)人說(shuō)他壞話(huà)的?術(shù)業(yè)有專(zhuān)攻,各司其職,每個(gè)語(yǔ)言的出現(xiàn)肯定都有自己價(jià)值和領(lǐng)域的范圍,不同的只是價(jià)值和領(lǐng)域的高級(jí)和大小。
就像高,矮,胖,瘦組成一個(gè)“型”。但是技術(shù)是進(jìn)步的,這個(gè)進(jìn)步也是在舊的基礎(chǔ)上。放心,技術(shù)再飛躍也不會(huì)今天奔I,明天扣肉的迅速,在學(xué)習(xí)的同時(shí)也要時(shí)時(shí)關(guān)注整個(gè)語(yǔ)言界的走勢(shì)(貌似哪個(gè)偉人說(shuō)的與時(shí)俱進(jìn)),保持一種同步曲線(xiàn)的前進(jìn)。語(yǔ)言能干什么?能問(wèn)這句話(huà),很欣慰。
表明你是從基礎(chǔ)學(xué)起才會(huì)問(wèn)出這樣的話(huà)來(lái)。但換而言之你一開(kāi)始對(duì)這門(mén)語(yǔ)言調(diào)查的信息不足。廟算者勝,對(duì)自己身邊的事物了解是非常重要的,這也能說(shuō)明說(shuō)你的教材或者教導(dǎo)你的人不夠充分。如果是我對(duì)新手交流,我會(huì)花足時(shí)間讓他明白這門(mén)語(yǔ)言是什么,能干什么,整個(gè)體系等等。
這樣在學(xué)的時(shí)候,對(duì)同一條語(yǔ)句上的理解你可能跟別人就不一樣了,因?yàn)槟阒肋@門(mén)語(yǔ)言的體系架構(gòu),你可以從更多的特性角度去挖掘使用它。提高自己對(duì)語(yǔ)言閱讀能力。如何快速的進(jìn)步?可以告訴你沒(méi)有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學(xué)的技術(shù)。多讀他人代碼,多領(lǐng)悟他人思維,多給自己出難題,多幾種方法來(lái)解問(wèn)題,多將語(yǔ)言的思想和身邊的事物聯(lián)系起來(lái)。想想你是怎么掌握普通話(huà)的,方法就不具體說(shuō)了。
編程的思維。計(jì)算機(jī)是充滿(mǎn)誘惑的東西,很多人都說(shuō)熱愛(ài)計(jì)算機(jī),那只是它的表面,你熱愛(ài)的只是他的一種擴(kuò)展性的東西。能學(xué)計(jì)算機(jī)我很高興,因?yàn)橛?jì)算機(jī)從某種意義上來(lái)說(shuō)將空間的距離給消除掉了。這里沒(méi)有流血,沒(méi)有犧牲。你可以以一種藝術(shù)家的思維來(lái)塑造它,可以以偵探的邏輯思維來(lái)解決它,可以以一種戰(zhàn)爭(zhēng)狂人的思維來(lái)摧毀它。
你可以將你的這種思維體現(xiàn)在代碼和整個(gè)布局里,不要驚異別人代碼思維的異風(fēng),你也有自己的思維風(fēng)格,你也可以,你也可以用自己代碼讓別人驚異。記住你學(xué)東西時(shí)更多的要體會(huì)他的思維,比如數(shù)學(xué),微積分,離散,無(wú)數(shù)的定理,你學(xué)完以后可能永遠(yuǎn)都用不到,但是你可能有這種感覺(jué),在你碰到某一問(wèn)題時(shí),這一問(wèn)題的性質(zhì)和你學(xué)到的東西很類(lèi)似,但是中間就是差了一點(diǎn)東西,對(duì)了,這就是它思維上的一種運(yùn)用,一種抽象,一種轉(zhuǎn)換。
這個(gè)題目很大,給人一種感覺(jué)我好像很成功,其實(shí)不然。實(shí)際上自己水平不高,甚至很低,但是做過(guò)了一些曲折的學(xué)習(xí)道路,同時(shí)把自己真實(shí)的學(xué)習(xí)歷程表達(dá)出來(lái),希望對(duì)后來(lái)者有借鑒的意義,甚幸!
工作三年、幾成廢人!
我XX年畢業(yè)于華中地區(qū)的一個(gè)理工科大學(xué),專(zhuān)業(yè)是機(jī)械電子,我當(dāng)時(shí)已經(jīng)簽了一家內(nèi)陸某個(gè)省級(jí)機(jī)關(guān)工作,家里八輩是農(nóng)民,并且很偏遠(yuǎn),能夠進(jìn)入這樣的地方是祖墳有風(fēng)水。但在畢業(yè)前夕有個(gè)進(jìn)入it的機(jī)會(huì),我本想進(jìn)去的,家里人極力反對(duì),阻力可想而知。同時(shí)要交4000元的違約金,對(duì)我來(lái)說(shuō)是天文數(shù)字。大學(xué)里的費(fèi)用很多是借的,幾乎將近一半的費(fèi)用是在大學(xué)勤工儉學(xué)掙的,為了省錢(qián),高中一個(gè)學(xué)期回家一次,大學(xué)一年回去一次。并且我個(gè)人也有特殊的人生背景(悲景更確切),這里不多說(shuō)了,寫(xiě)十篇也寫(xiě)不完,同時(shí)偏離主題。這樣我就參加了工作。一張報(bào)紙一杯茶的日子,幾乎下班后有種很空虛和恐慌的感覺(jué)。在工作中雖然是與自己專(zhuān)業(yè)有點(diǎn)關(guān)系,但是很少。專(zhuān)業(yè)幾乎荒廢。我自己也思考,如果再不出去,自己將會(huì)成廢人,只好讓國(guó)家養(yǎng)了。兩年后決定出去,但是幾成廢人,誰(shuí)要呢,只好到學(xué)校去鍍金。這是中國(guó)教育和社會(huì)的悲哀!
至于專(zhuān)業(yè)就改為計(jì)算機(jī)方面,聽(tīng)說(shuō)好找工作,我說(shuō)實(shí)話(huà)不是很對(duì)計(jì)算機(jī)特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績(jī)出來(lái),超過(guò)了國(guó)家線(xiàn)幾十分。那個(gè)方向要兩個(gè),我第三,但是那年非碘,不面試就按分?jǐn)?shù)來(lái)排,自然我落選了。其實(shí)給我面試機(jī)會(huì)也不一定要我,哈哈,自己幾斤幾兩很清楚。
最后調(diào)劑到另外一個(gè)學(xué)校,交錢(qián),咬咬牙,交吧!現(xiàn)在仍然債臺(tái)高筑!
進(jìn)入學(xué)校前夕
為什么要把這段列出,看后就知道了。
單位有網(wǎng)絡(luò),經(jīng)常上網(wǎng)查些英語(yǔ)資料,在那里唯獨(dú)英語(yǔ)沒(méi)有丟很多。于是我就在網(wǎng)上查資料,學(xué)什么好呢,最后確定學(xué)嵌入式把,聽(tīng)說(shuō)跟硬件相對(duì)比較緊密!而我在大學(xué)里多少學(xué)習(xí)了數(shù)字電路,單片機(jī)等,所以多少也有所利用,不會(huì)真的一無(wú)所知。當(dāng)然在這之
前也自學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)組成原理等。c語(yǔ)言在大學(xué)就學(xué)了。哈哈這就是我的家底。
我知道自己的基礎(chǔ)差,于是我就拿操作系統(tǒng),數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)、c++來(lái)看,機(jī)關(guān)有這個(gè)好處,空余時(shí)間多,于是平常就看書(shū),很痛苦,沒(méi)有人請(qǐng)教。
另外就上網(wǎng)到論壇上去,我就到各個(gè)專(zhuān)業(yè)的技術(shù)論壇,其實(shí)是電子論壇和嵌入式論壇。我?guī)缀鯖](méi)有發(fā)帖,幾乎把幾個(gè)大型的出名的論壇的帖子翻遍了,雖然有很多重復(fù)的,我才知道嵌入式是個(gè)什么東東。這些帖子對(duì)我以后的學(xué)習(xí)產(chǎn)生了極大的影響。
最關(guān)鍵兩點(diǎn):
1、嵌入式是什么?
2、嵌入式需要哪些知識(shí)?
知道了這兩點(diǎn),好辦!我就開(kāi)始規(guī)劃學(xué)習(xí)路線(xiàn)。計(jì)算機(jī)的基本理論不能丟,于是重點(diǎn)看組成原理,數(shù)據(jù)機(jī)構(gòu),操作系統(tǒng)、c++。同時(shí)論壇上了解到,實(shí)時(shí)操作系統(tǒng)ucos是一個(gè)很好的嵌入式操作系統(tǒng),對(duì)初學(xué)者很好。于是我就買(mǎi)了一本書(shū),但是代碼在電腦里調(diào)不通,網(wǎng)上也有很多相同的問(wèn)題,我就看書(shū),分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門(mén),才知道什么是進(jìn)程。原來(lái)看操作系統(tǒng)書(shū)時(shí),根本就不知道進(jìn)程是個(gè)什么東西。
在這段時(shí)間掌握的東西不多,但是,對(duì)我以后的影響很大,我想起了大學(xué)時(shí)一個(gè)同學(xué)跟我說(shuō)過(guò)了一句話(huà):大學(xué)里最重要的不是學(xué)到了什么,最重要的是學(xué)會(huì)怎么學(xué)!大概是這個(gè)意思。
進(jìn)入我的避難所
對(duì)我來(lái)講,再次進(jìn)入大學(xué)不再是大學(xué),而是避難所。希望這次進(jìn)入給我喘氣和養(yǎng)精蓄銳的機(jī)會(huì)和時(shí)間。我是這樣認(rèn)為和實(shí)踐的。
在學(xué)校我有三件事:上課,上圖書(shū)館,上網(wǎng)。
對(duì)于上課,學(xué)校開(kāi)了很多課程,非常好,很多是名人名師講解,于是很多同學(xué)都想學(xué),都去聽(tīng)。我也考慮過(guò),最后放棄。我是這樣認(rèn)為的,時(shí)間是有限的,什么都想學(xué),什么都學(xué)不成。于是我把我自己學(xué)的課進(jìn)行了分化,一般的課程通過(guò)就行,重要的一定好好學(xué)。我希望不要什么爭(zhēng)論學(xué)習(xí)課程多和少的問(wèn)題,這僅僅是我的看法。所以我的成績(jī)應(yīng)該是很差的。分?jǐn)?shù)低。好在后來(lái)的單位沒(méi)有要我的成績(jī)單,否則就慘了。
我個(gè)人感覺(jué)是上圖書(shū)館的效率比在寢室里高多了,這是我的經(jīng)驗(yàn)。
4月10號(hào),為期一個(gè)階段的Linux開(kāi)發(fā)基礎(chǔ)培訓(xùn)課程圓滿(mǎn)結(jié)束,回首這些天所留下的點(diǎn)點(diǎn)滴滴,感觸深深,學(xué)習(xí)上知識(shí)點(diǎn)的積累,靈活運(yùn)用的過(guò)程中感受到了Linux操作的快速高效性能,這也是我所追求的效率!
當(dāng)初初涉培訓(xùn)課程的第一門(mén)課程時(shí),都說(shuō)Linux操作很繁瑣復(fù)雜,心里總有些顧忌,帶著種種不安與些許拼博的決心,開(kāi)始了自我提升階段的“充電”,由徐海兵老師教授我們基礎(chǔ)課程的培訓(xùn),我們則像著小學(xué)生般認(rèn)真的記著筆記,仔細(xì)聽(tīng)著并學(xué)會(huì)如何去在實(shí)踐中運(yùn)用所學(xué)的Linux下的各種強(qiáng)大的命令集。
在Unit 1中,徐老師詳細(xì)生動(dòng)的為我們講述了有關(guān)Linux的誕生、初成長(zhǎng)以及輝煌的發(fā)展至今,今后應(yīng)用范圍則愈來(lái)愈廣泛,講解了為L(zhǎng)inux這個(gè)偉大的OS做出巨大貢獻(xiàn)的一位位出色的、偉大的人物,他們那種學(xué)習(xí)鉆研的精神、鍥而不舍的信念、勇于把握住難得的機(jī)會(huì),從小處著手,踏踏實(shí)實(shí)的創(chuàng)造出了對(duì)人類(lèi)科技發(fā)展做出卓越貢獻(xiàn)的Linux(Unix)系統(tǒng),他們的種種,都值得我們?nèi)ド羁谭词?、刻苦學(xué)習(xí)、傳承并永遠(yuǎn)發(fā)展下去。
查看ip地址和重啟網(wǎng)絡(luò)服務(wù)是我學(xué)的第一個(gè)命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到遠(yuǎn)程登錄軟件可用xmanager。
secureCRT是我們常用的,安裝好后利用其登錄到了Red hat Linux,需要知道Linux主機(jī)的ip地址。徐老師為我們介紹了重要內(nèi)容:SHELL,即運(yùn)行程序的程序,如echo $$SHELL可查看SHELL的環(huán)境變量是csh還是bash。指令pwd可查看當(dāng)前所在路徑,passwd:更改Linux下的密碼,僅限r(nóng)oot用戶(hù)有此權(quán)限,當(dāng)然我們是利用虛擬機(jī)VMware程序來(lái)運(yùn)行Linux OS的,懂得了如何設(shè)置虛擬機(jī)的網(wǎng)卡設(shè)置、暫停、恢復(fù)、全屏等。
簡(jiǎn)單的學(xué)習(xí)后進(jìn)入U(xiǎn)nit 2,命令行的句法讓我懂得了用法規(guī)則,一系列的命令功能強(qiáng)大:
date顯示當(dāng)前年月時(shí)間星期之類(lèi)的;
more指令與less重要但不常用;
cat用于查看短小的文件內(nèi)容,常用!
mkdir命令用于在當(dāng)前目錄下創(chuàng)建新的目錄;
ls顯示當(dāng)前目錄下所有文件;cd更改文件路徑,如cd 、cd 。當(dāng)前目錄;
rmdir刪除空文件夾;
rm指令很強(qiáng)大,用于刪除空目錄及非空目錄下的指定或全部文件;
man真男人,幫助手冊(cè);
history指令用于顯示編寫(xiě)過(guò)的命令集,以history序號(hào)可顯示序號(hào)所指命令;
echo回寫(xiě)命令,很重要,我需要繼續(xù)學(xué)習(xí);
exit指從多重SHELL退出來(lái)。
研究嵌入式系統(tǒng)已經(jīng)有快兩年的時(shí)間了。很慶幸自己當(dāng)初選擇了嵌入式系統(tǒng)作為自己的研究和職業(yè)方向,可以說(shuō)它是一種催化劑,讓我自身的修養(yǎng)和研究能力都有了很大的提高。
在嵌入式系統(tǒng)的大門(mén)前,我只能算是剛剛看到這個(gè)大門(mén)的臺(tái)階,但這段小小的距離讓我受益頗多,現(xiàn)將其中心得奉獻(xiàn)出來(lái),歡迎高手前輩們指正,以供剛接觸的新人參考。
在寫(xiě)之前,想先寫(xiě)一句話(huà),千萬(wàn)不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認(rèn)為你是天才,請(qǐng)以天才的標(biāo)準(zhǔn)來(lái)要求自己,將自己付出和別人的比例以N:1來(lái)進(jìn)行。
很多朋友都是在剛步入大學(xué)校門(mén)開(kāi)始接觸計(jì)算機(jī)或者其他。大學(xué)是一個(gè)很讓人迷茫頹廢的地方,可能你在高中躊躇滿(mǎn)志,但在大學(xué)的管理機(jī)制下卻心態(tài)漸糜。能夠在大學(xué)(大一)里找到自己人生之志的同學(xué)有多少?目標(biāo)要明確,不要得過(guò)且過(guò),不要追逐熱門(mén)的東西。
不管在什么時(shí)候,心里都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競(jìng)爭(zhēng)出發(fā),因?yàn)檫@才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì)享受學(xué)習(xí)它的時(shí)間,喜歡喬XXX的都知道,喬老爺子最常說(shuō)的一句就是要享受比賽的時(shí)間。
因?yàn)橹挥心阆矚g上了它,享受了它,才不會(huì)被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒(méi)有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過(guò)頭來(lái),或者用其他的方式來(lái)轉(zhuǎn)換。要抱著一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎(chǔ)開(kāi)始,不要為高速開(kāi)發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。
我個(gè)人認(rèn)為搞編程,英語(yǔ)和數(shù)學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識(shí)也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來(lái)補(bǔ)充自己。轉(zhuǎn)換的生活方式。要學(xué)會(huì)生活,在人的一生中,都會(huì)遇到一些很不開(kāi)心的事,或者大大小小的意外,孫子兵法里面一句大意就是說(shuō),戰(zhàn)場(chǎng)上要會(huì)將劣勢(shì)轉(zhuǎn)成優(yōu)勢(shì),即最大的劣勢(shì)很可能就是你的優(yōu)勢(shì)所在。
一個(gè)打擊你可以把他變?yōu)榍斑M(jìn)的動(dòng)力,不必為了一點(diǎn)挫折和捶胸頓足,不必為了一點(diǎn)小事?tīng)?zhēng)吵不休??臻e的時(shí)候可以躺下來(lái)看看天,你就會(huì)明白自強(qiáng)不息,厚德載物之理。(看到一些為了失戀或者其他而墮落的人真的很難受和可惜)。
要給人以幫助。別人有困難時(shí)或者一些舉手之勞在自己解決范圍內(nèi)的盡力幫之,這對(duì)自己不會(huì)損失什么,相反在對(duì)方心里能夠樹(shù)立你的形象和增加好感。記住,給人之恩時(shí)也是給你自己鋪路,這個(gè)世界不是靠你一個(gè)人可改變的。
很多初學(xué)擇,老是在學(xué)習(xí)何種語(yǔ)言上舉棋不定,試問(wèn),中國(guó)牌子有幾個(gè)不被罵的,試問(wèn),世界上哪部影片沒(méi)人說(shuō)他壞話(huà)的?術(shù)業(yè)有專(zhuān)攻,各司其職,每個(gè)語(yǔ)言的出現(xiàn)肯定都有自己價(jià)值和領(lǐng)域的范圍,不同的只是價(jià)值和領(lǐng)域的高級(jí)和大小。
就像高,矮,胖,瘦組成一個(gè)“型”。但是技術(shù)是進(jìn)步的,這個(gè)進(jìn)步也是在舊的基礎(chǔ)上。放心,技術(shù)再飛躍也不會(huì)今天奔I,明天扣肉的迅速,在學(xué)習(xí)的同時(shí)也要時(shí)時(shí)關(guān)注整個(gè)語(yǔ)言界的走勢(shì)(貌似哪個(gè)偉人說(shuō)的與時(shí)俱進(jìn)),保持一種同步曲線(xiàn)的前進(jìn)。語(yǔ)言能干什么?能問(wèn)這句話(huà),很欣慰。
表明你是從基礎(chǔ)學(xué)起才會(huì)問(wèn)出這樣的話(huà)來(lái)。但換而言之你一開(kāi)始對(duì)這門(mén)語(yǔ)言調(diào)查的信息不足。廟算者勝,對(duì)自己身邊的事物了解是非常重要的,這也能說(shuō)明說(shuō)你的教材或者教導(dǎo)你的人不夠充分。如果是我對(duì)新手交流,我會(huì)花足時(shí)間讓他明白這門(mén)語(yǔ)言是什么,能干什么,整個(gè)體系等等。
這樣在學(xué)的時(shí)候,對(duì)同一條語(yǔ)句上的理解你可能跟別人就不一樣了,因?yàn)槟阒肋@門(mén)語(yǔ)言的體系架構(gòu),你可以從更多的特性角度去挖掘使用它。提高自己對(duì)語(yǔ)言閱讀能力。如何快速的進(jìn)步?可以告訴你沒(méi)有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學(xué)的技術(shù)。多讀他人代碼,多領(lǐng)悟他人思維,多給自己出難題,多幾種方法來(lái)解問(wèn)題,多將語(yǔ)言的思想和身邊的事物聯(lián)系起來(lái)。想想你是怎么掌握普通話(huà)的,方法就不具體說(shuō)了。
編程的思維。計(jì)算機(jī)是充滿(mǎn)誘惑的東西,很多人都說(shuō)熱愛(ài)計(jì)算機(jī),那只是它的表面,你熱愛(ài)的只是他的一種擴(kuò)展性的東西。能學(xué)計(jì)算機(jī)我很高興,因?yàn)橛?jì)算機(jī)從某種意義上來(lái)說(shuō)將空間的距離給消除掉了。這里沒(méi)有流血,沒(méi)有犧牲。你可以以一種藝術(shù)家的思維來(lái)塑造它,可以以偵探的邏輯思維來(lái)解決它,可以以一種戰(zhàn)爭(zhēng)狂人的思維來(lái)摧毀它。
你可以將你的這種思維體現(xiàn)在代碼和整個(gè)布局里,不要驚異別人代碼思維的異風(fēng),你也有自己的思維風(fēng)格,你也可以,你也可以用自己代碼讓別人驚異。記住你學(xué)東西時(shí)更多的要體會(huì)他的思維,比如數(shù)學(xué),微積分,離散,無(wú)數(shù)的定理,你學(xué)完以后可能永遠(yuǎn)都用不到,但是你可能有這種感覺(jué),在你碰到某一問(wèn)題時(shí),這一問(wèn)題的性質(zhì)和你學(xué)到的東西很類(lèi)似,但是中間就是差了一點(diǎn)東西,對(duì)了,這就是它思維上的一種運(yùn)用,一種抽象,一種轉(zhuǎn)換。
一,如果非常多人都想做Linux,那么就要對(duì)Linux要比較熟悉。這個(gè)熟悉不是說(shuō)對(duì)內(nèi)核,對(duì)代碼有多了解,而是至少要會(huì)基本的操作,非常難想象讓一個(gè)連編譯程式,編輯文本文件都非常困難的人去弄嵌入式的軟件吧??傊谶M(jìn)入嵌入式這個(gè)領(lǐng)域之前要對(duì)自己評(píng)估一下,看看自己是不是準(zhǔn)備好了去學(xué)習(xí)嵌入式相關(guān)的東西。
二,要舍得花錢(qián)買(mǎi)研發(fā)板。公欲善其技,必先利其器。也就是說(shuō),理論上可能掌控了非常多,不過(guò)不去實(shí)踐,那只能是紙上談兵,這樣是無(wú)法學(xué)好嵌入式的。弄個(gè)研發(fā)板自己擺弄擺弄,即使什么都不懂,也能按照說(shuō)明書(shū)把廠(chǎng)家給的程式下載到研發(fā)板上運(yùn)行運(yùn)行,先知其然,然后再通過(guò)具體的學(xué)習(xí)知其所以然,這樣能避免學(xué)習(xí)中的枯燥。目前市場(chǎng)上研發(fā)板的種類(lèi)繁多,相同CPU的板子價(jià)格卻相差非常多,令非常多人都不知道怎么選擇購(gòu)買(mǎi)。
我的看法是,盡量買(mǎi)大廠(chǎng)的產(chǎn)品。因?yàn)樵诔鯇W(xué)階段學(xué)習(xí)資料少是個(gè)非常頭疼的事,非常多時(shí)候都是無(wú)從下手,不知道怎么去做,那么隨研發(fā)板附送的資料就非常重要了。大廠(chǎng)技術(shù)比較強(qiáng),附帶的程式都是能在板子上運(yùn)行的,例如我買(mǎi)的優(yōu)龍ST2410這個(gè)板子(不是廣告?。?,光盤(pán)上帶了一個(gè)bootloader,個(gè)2。4。18的內(nèi)核,更有一個(gè)cramfs,這些程式的原始碼都是廠(chǎng)家事先做好或修改好的,完全適用于初學(xué)者使用。
而有些實(shí)力不行的小廠(chǎng)家的資料不齊全,我們學(xué)習(xí)的時(shí)候需要自己弄bootloader什么的,那入門(mén)就非常難了。不過(guò)大廠(chǎng)的板子都非常貴,大家能根據(jù)預(yù)算來(lái)選擇適合自己的研發(fā)板,不過(guò)無(wú)論怎樣,在學(xué)習(xí)上投資都是值得的。
三,不要事無(wú)巨細(xì)的學(xué)習(xí),要有明確的目標(biāo)。我最開(kāi)始給自己制定的學(xué)習(xí)計(jì)劃是:學(xué)習(xí)arm體系結(jié)構(gòu)—>學(xué)習(xí)arm匯編—>自己移植bootloader —>自己移植kernel —>做應(yīng)用,不過(guò)不久就被我否決了,因?yàn)檫@個(gè)過(guò)程實(shí)在是太枯燥太痛苦了,在學(xué)習(xí)資料少,沒(méi)人指導(dǎo)的情況下根本無(wú)法進(jìn)展。于是我決定使用廠(chǎng)家的代碼來(lái)“玩”研發(fā)板,自己弄些應(yīng)用上去。先是完全使用廠(chǎng)家給的bootloader,kernel,cramfs。之后發(fā)現(xiàn)cramfs中的一些控制Linux初始化的文件不符合我的需求,于是修改cramfs,刪除了QT,修改了網(wǎng)卡初始的IP地址,安裝到板子上能運(yùn)行了之后就開(kāi)始嘗試做一些應(yīng)用,比如hello world這樣的程式。
最后移植了一個(gè)mpg123到板子上。完萬(wàn)能在不知道原理的情況下來(lái)使用板子的一些功能,等熟悉板子了再回頭學(xué)習(xí)其中的道理,這樣就容易一些。學(xué)習(xí)嵌入式就是這樣,根據(jù)問(wèn)題來(lái)選擇學(xué)習(xí)的內(nèi)容,否則會(huì)非常盲目,最后就失去信心了。
四,要有耐心。不能否認(rèn),在學(xué)習(xí)一門(mén)自己完全不了解的技術(shù)是非常煩人的。嵌入式的復(fù)雜在于他的交叉性。也就是說(shuō)為了研究某一個(gè)嵌入式的問(wèn)題,你有可能得學(xué)習(xí)非常多其他的知識(shí),比如操作系統(tǒng),編譯,體系結(jié)構(gòu)等等,那么對(duì)于這種情況需要我們有足夠的耐心。我在交叉編譯mpg123的時(shí)候前幾次無(wú)論怎么修改makefile都無(wú)法編譯成功,最后我發(fā)現(xiàn)我用的arm—linux—gcc是2。9版本的,比較老,于是我換成新的3。4。1版本,就ok了。
以上是我初學(xué)嵌入式所獲得的一些淺顯的經(jīng)驗(yàn),基本都是基于軟件方面的,硬件的DIY我就不行了。希望我的經(jīng)驗(yàn)?zāi)芙o大家一些幫助。
研究嵌入式系統(tǒng)已經(jīng)有快兩年的時(shí)間了。很慶幸自己當(dāng)初選擇了嵌入式系統(tǒng)作為自己的研究和職業(yè)方向,可以說(shuō)它是一種催化劑,讓我自身的修養(yǎng)和研究能力都有了很大的提高。
在嵌入式系統(tǒng)的大門(mén)前,我只能算是剛剛看到這個(gè)大門(mén)的臺(tái)階,但這段小小的距離讓我受益頗多,現(xiàn)將其中心得奉獻(xiàn)出來(lái),歡迎高手前輩們指正,以供剛接觸的新人參考。
在寫(xiě)之前,想先寫(xiě)一句話(huà),千萬(wàn)不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認(rèn)為你是天才,請(qǐng)以天才的標(biāo)準(zhǔn)來(lái)要求自己,將自己付出和別人的比例以N:1來(lái)進(jìn)行。
很多朋友都是在剛步入大學(xué)校門(mén)開(kāi)始接觸計(jì)算機(jī)或者其他。大學(xué)是一個(gè)很讓人迷茫頹廢的地方,可能你在高中躊躇滿(mǎn)志,但在大學(xué)的管理機(jī)制下卻心態(tài)漸糜。能夠在大學(xué)(大一)里找到自己人生之志的同學(xué)有多少?目標(biāo)要明確,不要得過(guò)且過(guò),不要追逐熱門(mén)的東西。
不管在什么時(shí)候,心里都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競(jìng)爭(zhēng)出發(fā),因?yàn)檫@才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì)享受學(xué)習(xí)它的時(shí)間,喜歡喬XXX的都知道,喬老爺子最常說(shuō)的一句就是要享受比賽的時(shí)間。
因?yàn)橹挥心阆矚g上了它,享受了它,才不會(huì)被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒(méi)有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過(guò)頭來(lái),或者用其他的方式來(lái)轉(zhuǎn)換。要抱著一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎(chǔ)開(kāi)始,不要為高速開(kāi)發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。
我個(gè)人認(rèn)為搞編程,英語(yǔ)和數(shù)學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識(shí)也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來(lái)補(bǔ)充自己。轉(zhuǎn)換的生活方式。要學(xué)會(huì)生活,在人的一生中,都會(huì)遇到一些很不開(kāi)心的事,或者大大小小的意外,孫子兵法里面一句大意就是說(shuō),戰(zhàn)場(chǎng)上要會(huì)將劣勢(shì)轉(zhuǎn)成優(yōu)勢(shì),即最大的劣勢(shì)很可能就是你的優(yōu)勢(shì)所在。
一個(gè)打擊你可以把他變?yōu)榍斑M(jìn)的動(dòng)力,不必為了一點(diǎn)挫折和捶胸頓足,不必為了一點(diǎn)小事?tīng)?zhēng)吵不休??臻e的時(shí)候可以躺下來(lái)看看天,你就會(huì)明白自強(qiáng)不息,厚德載物之理。(看到一些為了失戀或者其他而墮落的人真的很難受和可惜)。
要給人以幫助。別人有困難時(shí)或者一些舉手之勞在自己解決范圍內(nèi)的盡力幫之,這對(duì)自己不會(huì)損失什么,相反在對(duì)方心里能夠樹(shù)立你的形象和增加好感。記住,給人之恩時(shí)也是給你自己鋪路,這個(gè)世界不是靠你一個(gè)人可改變的。
很多初學(xué)擇,老是在學(xué)習(xí)何種語(yǔ)言上舉棋不定,試問(wèn),中國(guó)牌子有幾個(gè)不被罵的,試問(wèn),世界上哪部影片沒(méi)人說(shuō)他壞話(huà)的?術(shù)業(yè)有專(zhuān)攻,各司其職,每個(gè)語(yǔ)言的出現(xiàn)肯定都有自己價(jià)值和領(lǐng)域的范圍,不同的只是價(jià)值和領(lǐng)域的高級(jí)和大小。
就像高,矮,胖,瘦組成一個(gè)“型”。但是技術(shù)是進(jìn)步的,這個(gè)進(jìn)步也是在舊的基礎(chǔ)上。放心,技術(shù)再飛躍也不會(huì)今天奔I,明天扣肉的迅速,在學(xué)習(xí)的同時(shí)也要時(shí)時(shí)關(guān)注整個(gè)語(yǔ)言界的走勢(shì)(貌似哪個(gè)偉人說(shuō)的與時(shí)俱進(jìn)),保持一種同步曲線(xiàn)的前進(jìn)。語(yǔ)言能干什么?能問(wèn)這句話(huà),很欣慰。
表明你是從基礎(chǔ)學(xué)起才會(huì)問(wèn)出這樣的話(huà)來(lái)。但換而言之你一開(kāi)始對(duì)這門(mén)語(yǔ)言調(diào)查的信息不足。廟算者勝,對(duì)自己身邊的事物了解是非常重要的,這也能說(shuō)明說(shuō)你的教材或者教導(dǎo)你的人不夠充分。如果是我對(duì)新手交流,我會(huì)花足時(shí)間讓他明白這門(mén)語(yǔ)言是什么,能干什么,整個(gè)體系等等。
這樣在學(xué)的時(shí)候,對(duì)同一條語(yǔ)句上的理解你可能跟別人就不一樣了,因?yàn)槟阒肋@門(mén)語(yǔ)言的體系架構(gòu),你可以從更多的特性角度去挖掘使用它。提高自己對(duì)語(yǔ)言閱讀能力。如何快速的進(jìn)步?可以告訴你沒(méi)有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學(xué)的技術(shù)。多讀他人代碼,多領(lǐng)悟他人思維,多給自己出難題,多幾種方法來(lái)解問(wèn)題,多將語(yǔ)言的思想和身邊的事物聯(lián)系起來(lái)。想想你是怎么掌握普通話(huà)的,方法就不具體說(shuō)了。
編程的思維。計(jì)算機(jī)是充滿(mǎn)誘惑的東西,很多人都說(shuō)熱愛(ài)計(jì)算機(jī),那只是它的表面,你熱愛(ài)的只是他的一種擴(kuò)展性的東西。能學(xué)計(jì)算機(jī)我很高興,因?yàn)橛?jì)算機(jī)從某種意義上來(lái)說(shuō)將空間的距離給消除掉了。這里沒(méi)有流血,沒(méi)有犧牲。你可以以一種藝術(shù)家的思維來(lái)塑造它,可以以偵探的邏輯思維來(lái)解決它,可以以一種戰(zhàn)爭(zhēng)狂人的思維來(lái)摧毀它。
你可以將你的這種思維體現(xiàn)在代碼和整個(gè)布局里,不要驚異別人代碼思維的異風(fēng),你也有自己的思維風(fēng)格,你也可以,你也可以用自己代碼讓別人驚異。記住你學(xué)東西時(shí)更多的要體會(huì)他的思維,比如數(shù)學(xué),微積分,離散,無(wú)數(shù)的定理,你學(xué)完以后可能永遠(yuǎn)都用不到,但是你可能有這種感覺(jué),在你碰到某一問(wèn)題時(shí),這一問(wèn)題的性質(zhì)和你學(xué)到的東西很類(lèi)似,但是中間就是差了一點(diǎn)東西,對(duì)了,這就是它思維上的一種運(yùn)用,一種抽象,一種轉(zhuǎn)換。
學(xué)期開(kāi)始,我們開(kāi)始學(xué)習(xí)《嵌入式系統(tǒng)及應(yīng)用》,由于初次接觸嵌入式系統(tǒng),感覺(jué)蠻難的,所以收獲不是很大,很多的概念都比較模糊,等到學(xué)期結(jié)束開(kāi)始做嵌入式課程設(shè)計(jì)時(shí),真是茫然無(wú)從下手,自從拿到設(shè)計(jì)主題后,我就像熱鍋上的螞蟻,一個(gè)字“急”。最后實(shí)在沒(méi)有辦法,逼著自己去學(xué)習(xí),查資料,總算對(duì)嵌入式有了淺層理解。
嵌入式系統(tǒng)本身是一個(gè)相對(duì)模糊的定義,一個(gè)手持的MP3和一個(gè)PC104的微型工業(yè)控制計(jì)算機(jī)都可以認(rèn)為是嵌入式系統(tǒng)??傮w來(lái)說(shuō),嵌入式系統(tǒng)是“用于控制,監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝備”。一個(gè)典型的桌面Linux系統(tǒng)包括3個(gè)主要的軟件層———linux內(nèi)核、C庫(kù)和應(yīng)用程序代碼。內(nèi)核是唯一可以完全控制硬件的層,內(nèi)核驅(qū)動(dòng)程序代表應(yīng)用程序與硬件之間進(jìn)行會(huì)話(huà)。內(nèi)核之上是C庫(kù),負(fù)責(zé)把POSIX API轉(zhuǎn)換為內(nèi)核可以識(shí)別的形式,然后調(diào)用內(nèi)核,從應(yīng)用程序向內(nèi)核傳遞參數(shù)。應(yīng)用程序依靠驅(qū)動(dòng)內(nèi)核來(lái)完成特定的任務(wù)。
在了解了基礎(chǔ)知識(shí)之后,我開(kāi)始進(jìn)行上機(jī)操作,當(dāng)然,其中遇到很多的難題,很多東西都是第一次接觸,又沒(méi)有別人在旁邊指導(dǎo)操作,完全憑借自己去摸索練習(xí)。其中的困難可想而知。然而堅(jiān)持就是勝利,牙一咬眼一閉堅(jiān)持做下去,而通過(guò)本次實(shí)驗(yàn),我感覺(jué)收獲還是蠻多的可能我對(duì)于嵌入式的知識(shí)學(xué)習(xí)的還是不太多,但是這之外的東西收獲頗豐。它讓我學(xué)會(huì)了如何通過(guò)自己的努力去認(rèn)知一個(gè)新事物,更重要的是端正自己的學(xué)習(xí)態(tài)度,只有真正下功夫去學(xué)習(xí),才能有收獲,正所謂“一份耕耘,一份收獲。”沒(méi)有付出,何談回報(bào)呢?再者,通過(guò)本次實(shí)驗(yàn),我也學(xué)會(huì)了如何去分析問(wèn)題,如何找出自己設(shè)計(jì)中的不足,繼而去排除解決問(wèn)題,這就是一個(gè)自我學(xué)習(xí)的過(guò)程。當(dāng)我們通過(guò)實(shí)驗(yàn)去學(xué)習(xí)理論知識(shí)時(shí),自己動(dòng)手得出的結(jié)論,不僅能加深我們對(duì)嵌入式的理解,更能加深我們對(duì)此的記憶。
當(dāng)然,在這其中,我也發(fā)現(xiàn)自己的許多不足之處,由于學(xué)期伊始我沒(méi)有好好學(xué)習(xí),才落到如此地步,這也可以說(shuō)是一個(gè)教訓(xùn)吧!我相信在以后的學(xué)習(xí)工作中,我一定會(huì)端正自己的學(xué)習(xí)態(tài)度,一絲不茍的去對(duì)待每一件事。只有做好足夠的準(zhǔn)備,才能事半功倍!
嵌入式學(xué)習(xí)心得體會(huì),4月10號(hào),為期一個(gè)階段的Linux開(kāi)發(fā)基礎(chǔ)培訓(xùn)課程圓滿(mǎn)結(jié)束,回首這些天所留下的點(diǎn)點(diǎn)滴滴,感觸深深,學(xué)習(xí)上知識(shí)點(diǎn)的積累,靈活運(yùn)用的過(guò)程中感受到了Linux操作的快速高效性能,這也是我所追求的效率!
當(dāng)初初涉培訓(xùn)課程的第一門(mén)課程時(shí),都說(shuō)Linux操作很繁瑣復(fù)雜,心里總有些顧忌,帶著種種不安與些許拼博的決心,開(kāi)始了自我提升階段的"充電",由徐海兵老師教授我們基礎(chǔ)課程的培訓(xùn),我們則像著小學(xué)生般認(rèn)真的記著筆記,仔細(xì)聽(tīng)著并學(xué)會(huì)如何去在實(shí)踐中運(yùn)用所學(xué)的Linux下的各種強(qiáng)大的命令集。
在Unit 1中,徐老師詳細(xì)生動(dòng)的為我們講述了有關(guān)Linux的誕生、初成長(zhǎng)以及輝煌的發(fā)展至今,今后應(yīng)用范圍則愈來(lái)愈廣泛,講解了為L(zhǎng)inux這個(gè)偉大的OS做出巨大貢獻(xiàn)的一位位出色的、偉大的人物,他們那種學(xué)習(xí)鉆研的精神、鍥而不舍的信念、勇于把握住難得的機(jī)會(huì),從小處著手,踏踏實(shí)實(shí)的創(chuàng)造出了對(duì)人類(lèi)科技發(fā)展做出卓越貢獻(xiàn)的Linux(Unix)系統(tǒng),他們的種種,都值得我們?nèi)ド羁谭词?、刻苦學(xué)習(xí)、傳承并永遠(yuǎn)發(fā)展下去。
查看ip地址和重啟網(wǎng)絡(luò)服務(wù)是我學(xué)的第一個(gè)命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到遠(yuǎn)程登錄軟件可用xmanager。secureCRT是我們常用的,安裝好后利用其登錄到了Red hat Linux,需要知道Linux主機(jī)的ip地址。徐老師為我們介紹了重要內(nèi)容:SHELL,即運(yùn)行程序的程序,如echo $SHELL可查看SHELL的環(huán)境變量是csh還是bash。(學(xué)習(xí)心得 )指令pwd可查看當(dāng)前所在路徑,passwd:更改Linux下的密碼,僅限r(nóng)oot用戶(hù)有此權(quán)限,當(dāng)然我們是利用虛擬機(jī)VMware程序來(lái)運(yùn)行Linux OS的,懂得了如何設(shè)置虛擬機(jī)的網(wǎng)卡設(shè)置、暫停、恢復(fù)、全屏等。
簡(jiǎn)單的學(xué)習(xí)后進(jìn)入U(xiǎn)nit 2,命令行的句法讓我懂得了用法規(guī)則,一系列的命令功能強(qiáng)大:date顯示當(dāng)前年月時(shí)間星期之類(lèi)的;more指令與less重要但不常用;cat用于查看短小的文件內(nèi)容,常用!mkdir命令用于在當(dāng)前目錄下創(chuàng)建新的目錄;ls顯示當(dāng)前目錄下所有文件;cd更改文件路徑,如cd 、cd 。當(dāng)前目錄;rmdir刪除空文件夾;rm指令很強(qiáng)大,用于刪除空目錄及非空目錄下的指定或全部文件;man真男人,幫助手冊(cè);history指令用于顯示編寫(xiě)過(guò)的命令集,以history序號(hào)可顯示序號(hào)所指命令;echo回寫(xiě)命令,很重要,我需要繼續(xù)學(xué)習(xí);exit指從多重SHELL退出來(lái);Linux賬號(hào)下,可以增加用戶(hù)、刪除用戶(hù)、設(shè)置密碼:useradd、userdel、passwd。
注:所有的用戶(hù)的家目錄都在/home下面,唯獨(dú)root的家是在/root。點(diǎn)文件都是些SHELL的腳本程序,也稱(chēng)隱藏文件;環(huán)境變量常見(jiàn)的有:HOME PATH PWD,懂得了絕對(duì)路徑與相對(duì)路徑的對(duì)比概念。
最后進(jìn)入U(xiǎn)nit 3、
文件與文件處理的學(xué)習(xí)中,知道了Linux下支持的六種文件類(lèi)型:普通文件、目錄、設(shè)備文件、命名管道、符號(hào)鏈接、socket;Linux下文件系統(tǒng)的組織:倒立的樹(shù)形結(jié)構(gòu):/ /bin /boot /dev /home /lib /proc等文件目錄,ls –l指令很好很強(qiáng)大,顯示文件類(lèi)型與權(quán)限、所有者、字節(jié)大小、時(shí)間及文件名;touch可創(chuàng)建空文件,復(fù)制文件用指令cp,可選—i、—r等;重命名文件使用mv [—i];du顯示當(dāng)前目錄所占空間大?。粀c命令顯示列表中文件的行數(shù)、字?jǐn)?shù)、字符數(shù);追加:cat [文件列表] 》目標(biāo)文件;find指令與grep重要,暫未學(xué)習(xí),自己在實(shí)踐中學(xué)習(xí),文件訪(fǎng)問(wèn)權(quán)限有:r w x;chmod指令可修改訪(fǎng)問(wèn)權(quán)限,如chmod 777 —R文件名。
輸入輸出重定向每個(gè)命令默認(rèn)打開(kāi)三個(gè)文件:標(biāo)準(zhǔn)輸入stdin,標(biāo)準(zhǔn)輸出stdout,標(biāo)準(zhǔn)錯(cuò)誤stderr,鍵盤(pán)為標(biāo)準(zhǔn)輸入,而控制臺(tái)則是標(biāo)準(zhǔn)輸出,文件描述符分別是0,1,2;最重要最常用的為輸出重定向>與錯(cuò)誤重定向2> ;echo添加的內(nèi)容>/ 》文件;Linux過(guò)濾器和管道:管道操作符:| ;即將某個(gè)命令的輸出與某個(gè)命令的標(biāo)準(zhǔn)輸入相連接,從而實(shí)現(xiàn)管道功能,例如ls –l |wc;管道和重定向操作符可同時(shí)用于一個(gè)命令行。
目前最常見(jiàn)的嵌入式LINUX方面,我認(rèn)為大概3個(gè):
1。嵌入式LINUX上層的應(yīng)用,包括QT的GUI開(kāi)發(fā)
2。嵌入式的LINUX系統(tǒng)開(kāi)發(fā)
3。嵌入式的驅(qū)動(dòng)開(kāi)發(fā)
學(xué)習(xí)嵌入式:
第一。C語(yǔ)言要掌握(硬件略懂),C語(yǔ)言是所有編程語(yǔ)言中的強(qiáng)者,單片機(jī),DSP,類(lèi)似ARM的種種芯片的編程都可以用C語(yǔ)言搞定,因?yàn)樗梢浦敌詮?qiáng),編譯效率高,運(yùn)算速度快,便于實(shí)現(xiàn)理更復(fù)雜的的數(shù)據(jù)結(jié)構(gòu)。上層應(yīng)用和數(shù)據(jù)存儲(chǔ),我推薦使用C++語(yǔ)言。
第二。學(xué)習(xí)一種嵌入式的處理器架構(gòu),個(gè)人推薦32位的處理器,像ARM,因?yàn)榍度胧介_(kāi)發(fā)8位的處理器顯得有點(diǎn)低端,大多數(shù)只能用作簡(jiǎn)單的工控。
第三。學(xué)習(xí)一種嵌入式操作系統(tǒng),像LINUX,WINCE等都可以,LINUX更好。
ARM是一種微處理器,已遍及工業(yè)控制,消費(fèi)類(lèi)的電子產(chǎn)品,通信,網(wǎng)絡(luò),無(wú)線(xiàn)等各類(lèi)的產(chǎn)品基于ARM技術(shù)的微處理器已占75%以上的市場(chǎng)份額,可見(jiàn)其技術(shù)已逐滲入到我們生活中的各個(gè)領(lǐng)域,像手機(jī)就是用ARM7 ARM9 ARM11的微處理器技術(shù)開(kāi)發(fā)的。嵌入式系統(tǒng)最常見(jiàn)的ARM系列,ARM7,ARM9,ARM11,cortex—A8等。
我們都是曾經(jīng)從大學(xué)里走出來(lái)的迷茫羊羔,工作以后我才知道,在大學(xué)里不是學(xué)到了什么,而是學(xué)會(huì)怎么去學(xué),相信自己,理清自己的思路,根據(jù)自己的性格,剖析自我適合往哪方面發(fā)展。
4月10號(hào),為期一個(gè)階段的Linux開(kāi)發(fā)基礎(chǔ)培訓(xùn)課程圓滿(mǎn)結(jié)束,回首這些天所留下的點(diǎn)點(diǎn)滴滴,感觸深深,學(xué)習(xí)上知識(shí)點(diǎn)的積累,靈活運(yùn)用的過(guò)程中感受到了Linux操作的快速高效性能,這也是我所追求的效率!
當(dāng)初初涉培訓(xùn)課程的第一門(mén)課程時(shí),都說(shuō)Linux操作很繁瑣復(fù)雜,心里總有些顧忌,帶著種種不安與些許拼博的決心,開(kāi)始了自我提升階段的“充電”,由徐海兵老師教授我們基礎(chǔ)課程的培訓(xùn),我們則像著小學(xué)生般認(rèn)真的記著筆記,仔細(xì)聽(tīng)著并學(xué)會(huì)如何去在實(shí)踐中運(yùn)用所學(xué)的Linux下的各種強(qiáng)大的命令集。
在Unit 1中,徐老師詳細(xì)生動(dòng)的為我們講述了有關(guān)Linux的誕生、初成長(zhǎng)以及輝煌的發(fā)展至今,今后應(yīng)用范圍則愈來(lái)愈廣泛,講解了為L(zhǎng)inux這個(gè)偉大的OS做出巨大貢獻(xiàn)的一位位出色的、偉大的人物,他們那種學(xué)習(xí)鉆研的精神、鍥而不舍的信念、勇于把握住難得的機(jī)會(huì),從小處著手,踏踏實(shí)實(shí)的創(chuàng)造出了對(duì)人類(lèi)科技發(fā)展做出卓越貢獻(xiàn)的Linux(Unix)系統(tǒng),他們的種種,都值得我們?nèi)ド羁谭词?、刻苦學(xué)習(xí)、傳承并永遠(yuǎn)發(fā)展下去。
查看ip地址和重啟網(wǎng)絡(luò)服務(wù)是我學(xué)的第一個(gè)命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到遠(yuǎn)程登錄軟件可用xmanager。
secureCRT是我們常用的,安裝好后利用其登錄到了Red hat Linux,需要知道Linux主機(jī)的ip地址。徐老師為我們介紹了重要內(nèi)容:SHELL,即運(yùn)行程序的程序,如echo $$SHELL可查看SHELL的環(huán)境變量是csh還是bash。指令pwd可查看當(dāng)前所在路徑,passwd:更改Linux下的密碼,僅限r(nóng)oot用戶(hù)有此權(quán)限,當(dāng)然我們是利用虛擬機(jī)VMware程序來(lái)運(yùn)行Linux OS的,懂得了如何設(shè)置虛擬機(jī)的網(wǎng)卡設(shè)置、暫停、恢復(fù)、全屏等。
簡(jiǎn)單的學(xué)習(xí)后進(jìn)入U(xiǎn)nit 2,命令行的句法讓我懂得了用法規(guī)則,一系列的命令功能強(qiáng)大:
date顯示當(dāng)前年月時(shí)間星期之類(lèi)的;
more指令與less重要但不常用;
cat用于查看短小的文件內(nèi)容,常用!
mkdir命令用于在當(dāng)前目錄下創(chuàng)建新的目錄;
ls顯示當(dāng)前目錄下所有文件;cd更改文件路徑,如cd 、cd 。當(dāng)前目錄;
rmdir刪除空文件夾;
rm指令很強(qiáng)大,用于刪除空目錄及非空目錄下的指定或全部文件;
man真男人,幫助手冊(cè);
history指令用于顯示編寫(xiě)過(guò)的命令集,以history序號(hào)可顯示序號(hào)所指命令;
echo回寫(xiě)命令,很重要,我需要繼續(xù)學(xué)習(xí);
exit指從多重SHELL退出來(lái)。
研究嵌入式系統(tǒng)已經(jīng)有快兩年的時(shí)間了。很慶幸自己當(dāng)初選擇了嵌入式系統(tǒng)作為自己的研究和職業(yè)方向,可以說(shuō)它是一種催化劑,讓我自身的修養(yǎng)和研究能力都有了很大的提高。
在嵌入式系統(tǒng)的大門(mén)前,我只能算是剛剛看到這個(gè)大門(mén)的臺(tái)階,但這段小小的距離讓我受益頗多,現(xiàn)將其中心得奉獻(xiàn)出來(lái),歡迎高手前輩們指正,以供剛接觸的新人參考。
在寫(xiě)之前,想先寫(xiě)一句話(huà),千萬(wàn)不要以為你是天才,所謂天才即勝別人N倍的人,如果你真認(rèn)為你是天才,請(qǐng)以天才的標(biāo)準(zhǔn)來(lái)要求自己,將自己付出和別人的比例以N:1來(lái)進(jìn)行。
很多朋友都是在剛步入大學(xué)校門(mén)開(kāi)始接觸計(jì)算機(jī)或者其他。大學(xué)是一個(gè)很讓人迷茫頹廢的地方,可能你在高中躊躇滿(mǎn)志,但在大學(xué)的管理機(jī)制下卻心態(tài)漸糜。能夠在大學(xué)(大一)里找到自己人生之志的同學(xué)有多少?目標(biāo)要明確,不要得過(guò)且過(guò),不要追逐熱門(mén)的東西。
不管在什么時(shí)候,心里都要有自己的信念和理想,不要被其他東西左右了自己。要從興趣和競(jìng)爭(zhēng)出發(fā),因?yàn)檫@才是你產(chǎn)生動(dòng)力源的地方。學(xué)東西時(shí),要讓自己先喜歡上它,要學(xué)會(huì)享受學(xué)習(xí)它的時(shí)間,喜歡喬XXX的都知道,喬老爺子最常說(shuō)的一句就是要享受比賽的時(shí)間。
因?yàn)橹挥心阆矚g上了它,享受了它,才不會(huì)被它所產(chǎn)生的壓力壓倒自己,不要產(chǎn)生一種厭惡的心理。而且心態(tài)要調(diào)整,不要一味的蠻學(xué),死學(xué),在沒(méi)有什么興趣學(xué)的時(shí)候可以先玩幾天,在回過(guò)頭來(lái),或者用其他的方式來(lái)轉(zhuǎn)換。要抱著一種十年方能磨一劍的心理,扎扎實(shí)實(shí)從基礎(chǔ)開(kāi)始,不要為高速開(kāi)發(fā)的一些現(xiàn)象所迷惑,那些都只是軟件的功勞。
我個(gè)人認(rèn)為搞編程,英語(yǔ)和數(shù)學(xué)很重要,大家一定要時(shí)時(shí)的抓,至于怎么抓那就是另外一回事了,當(dāng)然其他的知識(shí)也要汲取,可以多接觸點(diǎn)天文,地理,人文方面的東西來(lái)補(bǔ)充自己。轉(zhuǎn)換的生活方式。要學(xué)會(huì)生活,在人的一生中,都會(huì)遇到一些很不開(kāi)心的事,或者大大小小的意外,孫子兵法里面一句大意就是說(shuō),戰(zhàn)場(chǎng)上要會(huì)將劣勢(shì)轉(zhuǎn)成優(yōu)勢(shì),即最大的劣勢(shì)很可能就是你的優(yōu)勢(shì)所在。
一個(gè)打擊你可以把他變?yōu)榍斑M(jìn)的動(dòng)力,不必為了一點(diǎn)挫折和捶胸頓足,不必為了一點(diǎn)小事?tīng)?zhēng)吵不休。空閑的時(shí)候可以躺下來(lái)看看天,你就會(huì)明白自強(qiáng)不息,厚德載物之理。(看到一些為了失戀或者其他而墮落的人真的很難受和可惜)。
要給人以幫助。別人有困難時(shí)或者一些舉手之勞在自己解決范圍內(nèi)的盡力幫之,這對(duì)自己不會(huì)損失什么,相反在對(duì)方心里能夠樹(shù)立你的形象和增加好感。記住,給人之恩時(shí)也是給你自己鋪路,這個(gè)世界不是靠你一個(gè)人可改變的。
很多初學(xué)擇,老是在學(xué)習(xí)何種語(yǔ)言上舉棋不定,試問(wèn),中國(guó)牌子有幾個(gè)不被罵的,試問(wèn),世界上哪部影片沒(méi)人說(shuō)他壞話(huà)的?術(shù)業(yè)有專(zhuān)攻,各司其職,每個(gè)語(yǔ)言的出現(xiàn)肯定都有自己價(jià)值和領(lǐng)域的范圍,不同的只是價(jià)值和領(lǐng)域的高級(jí)和大小。
就像高,矮,胖,瘦組成一個(gè)“型”。但是技術(shù)是進(jìn)步的,這個(gè)進(jìn)步也是在舊的基礎(chǔ)上。放心,技術(shù)再飛躍也不會(huì)今天奔I,明天扣肉的迅速,在學(xué)習(xí)的同時(shí)也要時(shí)時(shí)關(guān)注整個(gè)語(yǔ)言界的走勢(shì)(貌似哪個(gè)偉人說(shuō)的與時(shí)俱進(jìn)),保持一種同步曲線(xiàn)的前進(jìn)。語(yǔ)言能干什么?能問(wèn)這句話(huà),很欣慰。
表明你是從基礎(chǔ)學(xué)起才會(huì)問(wèn)出這樣的話(huà)來(lái)。但換而言之你一開(kāi)始對(duì)這門(mén)語(yǔ)言調(diào)查的信息不足。廟算者勝,對(duì)自己身邊的事物了解是非常重要的,這也能說(shuō)明說(shuō)你的教材或者教導(dǎo)你的人不夠充分。如果是我對(duì)新手交流,我會(huì)花足時(shí)間讓他明白這門(mén)語(yǔ)言是什么,能干什么,整個(gè)體系等等。
這樣在學(xué)的時(shí)候,對(duì)同一條語(yǔ)句上的理解你可能跟別人就不一樣了,因?yàn)槟阒肋@門(mén)語(yǔ)言的體系架構(gòu),你可以從更多的特性角度去挖掘使用它。提高自己對(duì)語(yǔ)言閱讀能力。如何快速的進(jìn)步?可以告訴你沒(méi)有一步登天的辦法,但是也可以告訴你如何讓你快速掌握你所學(xué)的技術(shù)。多讀他人代碼,多領(lǐng)悟他人思維,多給自己出難題,多幾種方法來(lái)解問(wèn)題,多將語(yǔ)言的思想和身邊的事物聯(lián)系起來(lái)。想想你是怎么掌握普通話(huà)的,方法就不具體說(shuō)了。
編程的思維。計(jì)算機(jī)是充滿(mǎn)誘惑的東西,很多人都說(shuō)熱愛(ài)計(jì)算機(jī),那只是它的表面,你熱愛(ài)的只是他的一種擴(kuò)展性的東西。能學(xué)計(jì)算機(jī)我很高興,因?yàn)橛?jì)算機(jī)從某種意義上來(lái)說(shuō)將空間的距離給消除掉了。這里沒(méi)有流血,沒(méi)有犧牲。你可以以一種藝術(shù)家的思維來(lái)塑造它,可以以偵探的邏輯思維來(lái)解決它,可以以一種戰(zhàn)爭(zhēng)狂人的思維來(lái)摧毀它。
你可以將你的這種思維體現(xiàn)在代碼和整個(gè)布局里,不要驚異別人代碼思維的異風(fēng),你也有自己的思維風(fēng)格,你也可以,你也可以用自己代碼讓別人驚異。記住你學(xué)東西時(shí)更多的要體會(huì)他的思維,比如數(shù)學(xué),微積分,離散,無(wú)數(shù)的定理,你學(xué)完以后可能永遠(yuǎn)都用不到,但是你可能有這種感覺(jué),在你碰到某一問(wèn)題時(shí),這一問(wèn)題的性質(zhì)和你學(xué)到的東西很類(lèi)似,但是中間就是差了一點(diǎn)東西,對(duì)了,這就是它思維上的一種運(yùn)用,一種抽象,一種轉(zhuǎn)換。
本人本科學(xué)的是電子信息工程專(zhuān)業(yè),其實(shí)這個(gè)專(zhuān)業(yè)和嵌入式?jīng)]有多大的關(guān)系,要說(shuō)有關(guān)系就是簡(jiǎn)單的講了下C語(yǔ)言語(yǔ)法,學(xué)完之后還不知道什么是C語(yǔ)言,只記住了char,int,long等占幾個(gè)字節(jié),if, while,for循環(huán)什么的,感覺(jué)也就能算一些小學(xué)就會(huì)的題目,全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言也就糊涂的過(guò)了。我這個(gè)專(zhuān)業(yè)沒(méi)學(xué)過(guò)C++,一開(kāi)始不知道什么是面向?qū)ο?,這可能會(huì)讓人笑話(huà)了。不過(guò)這說(shuō)的是實(shí)話(huà),本科的時(shí)候,學(xué)院安排的課程大部分偏硬件部分,動(dòng)手機(jī)會(huì)比較多,自然而然比較喜歡硬件方面。
在大二的時(shí)候就聽(tīng)學(xué)長(zhǎng)說(shuō),單片機(jī)很難學(xué),那時(shí)候經(jīng)學(xué)長(zhǎng)介紹,淘寶買(mǎi)了本郭天祥老師出的書(shū)《51單片機(jī)C語(yǔ)言教程》,一開(kāi)始還真是不怎么懂,感覺(jué)有點(diǎn)像是看天書(shū),然后硬著頭皮去看,當(dāng)我把51的結(jié)構(gòu)看完了,就不像一開(kāi)始那樣一頭霧水了,自己在紙上把51的結(jié)構(gòu)圖默畫(huà)一遍,然后再把各個(gè)寄存器功能寫(xiě)一下,各個(gè)功能口的結(jié)構(gòu)粗略畫(huà)了下,然后覺(jué)得51整體已在我心中了,雖然沒(méi)有什么作用,但是至少懂得這門(mén)課要怎么去學(xué)習(xí)。其實(shí)有些時(shí)候不是這個(gè)東西你不會(huì),而是在不會(huì)的時(shí)候自己先告訴自己這個(gè)太難了,自己先放棄了。
在大三的時(shí)候,第一學(xué)期課比較少,我就經(jīng)常待在圖書(shū)館,會(huì)去蠻看些專(zhuān)業(yè)相關(guān)的書(shū)籍,現(xiàn)在想想,那時(shí)候也是機(jī)緣巧合下,看到了一本書(shū)《從51到ARM》,講述的是從51系列單片機(jī)的一般知識(shí)出發(fā),將arm處理器和51系列單片機(jī)進(jìn)行對(duì)比,引導(dǎo)讀者去理解和學(xué)習(xí)arm處理器的知識(shí)。那個(gè)時(shí)候也有考慮到以后就業(yè)的問(wèn)題,就想到一件事情,如果去應(yīng)聘工作的話(huà),每個(gè)工科院校電子信息類(lèi)的畢業(yè)生都會(huì)異口同聲地說(shuō):我會(huì)51系列單片機(jī)。當(dāng)他說(shuō)這句話(huà)的時(shí)候,他和別人是站在同一起跑線(xiàn)上的??晌覀兺耆锌赡芎蛣e人不站在同一起跑線(xiàn)上。正是這本書(shū)給我開(kāi)啟了另外一扇大門(mén),讓我初步了解了嵌入式。后來(lái)去報(bào)考全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)教程——嵌入式系統(tǒng)開(kāi)發(fā)技術(shù),在圖書(shū)館奮斗了兩個(gè)月,最后取得優(yōu)秀的成績(jī),也讓我進(jìn)一步了解嵌入式系統(tǒng)。
在大四的時(shí)候,我們有嵌入式的選修課,不過(guò)當(dāng)時(shí)因?yàn)榭佳械木壒?,就沒(méi)有去上過(guò)這門(mén)課,好可惜呀!但是,在選擇讀研研究方向的時(shí)候我還是毅然選擇了嵌入式方向,我知道這將成為我未來(lái)三年研究的方向。這學(xué)期(研一下學(xué)期),很開(kāi)心能夠再次接觸嵌入式系統(tǒng)這門(mén)課程,對(duì)于導(dǎo)師教的這門(mén)課程,我覺(jué)得自己上課還是蠻認(rèn)真聽(tīng)講的,當(dāng)然也被師在臺(tái)上那講得頭頭是道,溫文儒雅的風(fēng)姿所吸引。對(duì)于沒(méi)有學(xué)過(guò)微機(jī)8086的我,有些時(shí)候,老師用微機(jī)與嵌入式的對(duì)比讓我頭腦沒(méi)有相關(guān)概念......
首先,我對(duì)嵌入式在概念上有了一個(gè)比較精確的了解。嵌入式是指以應(yīng)用為中心,以計(jì)算機(jī)為基礎(chǔ),并且軟硬件可裁剪,適用于對(duì)功能、可靠性、成本、體積和功耗有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。它由硬件平臺(tái)和系統(tǒng)軟件組成。硬件平臺(tái)指嵌入式處理器和與之通過(guò)接口連接的外圍硬件平臺(tái)。系統(tǒng)軟件是指實(shí)時(shí)操作系統(tǒng)和用戶(hù)應(yīng)用軟件。
談到硬件部分,我首先想到的是嵌入式處理器那些外圍功能模塊。對(duì)于這部分的學(xué)習(xí),我當(dāng)初花了好長(zhǎng)時(shí)間看《深入淺出ARM7——LPC2400》這本書(shū),現(xiàn)在想想覺(jué)得自己學(xué)習(xí)方法沒(méi)用對(duì),完全沒(méi)有那個(gè)必要,自己卻花了大把時(shí)間在看這些寄存器引腳的使用,因?yàn)閱渭兊目催^(guò)之后還是很容易忘的,之后在進(jìn)行實(shí)驗(yàn)的時(shí)候還是翻書(shū)來(lái)查就證明了這一點(diǎn)。不過(guò)一些最基本的模塊,例如通用輸入/輸出口(GPIO),通用異步收發(fā)器(UART),向量中斷控制器(VIC),外部中斷輸入和定時(shí)器/計(jì)數(shù)器還是需要看書(shū)認(rèn)真去記住那些常用的引腳功能。對(duì)于CPU異常這部分,我一開(kāi)始以為異常就是中斷,因?yàn)樘幚沓绦蛄鞒淘O(shè)計(jì)是相似的,都是請(qǐng)求處理器打斷正常的程序執(zhí)行流程,進(jìn)入特定程序的一種機(jī)制。當(dāng)時(shí)還對(duì)老師提出的一個(gè)看法有點(diǎn)疑義,51可以處理中斷嵌套而ARM處理器卻不能?我當(dāng)時(shí)腦子里面就在想:中斷不都是有硬件設(shè)備產(chǎn)生的,那按常理來(lái)講ARM處理器也可以處理的呀。后來(lái)在認(rèn)真查書(shū),發(fā)現(xiàn)CPU異常有7種:復(fù)位,數(shù)據(jù)中止,中斷,快中斷,預(yù)取中止,未定義,軟件中斷。而異常向量會(huì)使CPU轉(zhuǎn)入異常入口地址執(zhí)行程序,開(kāi)始了異常處理。同理的話(huà),中斷向量使CPU轉(zhuǎn)入中斷入口地址執(zhí)行程序,開(kāi)始了中斷處理。即當(dāng)發(fā)生IRQ中斷時(shí),程序返回地址被存入該IRQ中斷模式下的LR,如果繼續(xù)發(fā)生IRQ中斷,那第二次的中斷返回地址也還是被存入該IRQ中斷模式下的LR中,那先前發(fā)生中斷時(shí)候存入的程序返回地址將被覆蓋掉,導(dǎo)致不能返回正確的位置。在我解決這個(gè)問(wèn)題的期間,每次睡前思維準(zhǔn)會(huì)定格在這問(wèn)題上,久久不能繞出來(lái),其實(shí)有時(shí)候查書(shū)還是最好的解決方案,因?yàn)榫W(wǎng)絡(luò)資源只能提供給我們部分的參考資料。
對(duì)于ARM匯編語(yǔ)言這部分的學(xué)習(xí),我認(rèn)為是需要重視的,學(xué)匯編不是說(shuō)用這語(yǔ)言做多牛逼的事情,問(wèn)題的關(guān)鍵在于,學(xué)透了匯編會(huì)使你真正理解計(jì)算機(jī)。另外一方面,只要以后在嵌入式工作中你遲早會(huì)在某個(gè)陰暗的角落里遇到匯編?!安还苣愠姓J(rèn)不承認(rèn),現(xiàn)在的CPU沒(méi)有直接跑高級(jí)語(yǔ)言的,哪怕是虛擬機(jī)也都是類(lèi)似匯編的指令集。當(dāng)遇到崩潰分析,性能優(yōu)化甚至編譯器抽風(fēng)等等的時(shí)候,匯編是你最后一根救命稻草(這句話(huà)是福來(lái)師兄講的)?!睘榇怂o了我們一份資料,周立功lpc21xx/lpc22xx系列ARM7啟動(dòng)代碼分析,主要講述的是startup。s文件的分析,看了下才發(fā)現(xiàn)老師上課講的那個(gè)啟動(dòng)代碼分析很多不理解之處這里都有詳細(xì)的介紹,這分析太精辟了。
學(xué)ARM7這么久,我認(rèn)為從硬件上講,一方面就是學(xué)習(xí)接口電路設(shè)計(jì),另一方面就是學(xué)習(xí)匯編和C語(yǔ)言的板級(jí)編程。如果從軟件上講,就是要學(xué)習(xí)基于ARM處理器的操作系統(tǒng)層面的驅(qū)動(dòng)和移植。這些對(duì)于我們初學(xué)者來(lái)說(shuō)必須明確,要么從硬件著手開(kāi)始學(xué),要么從操作系統(tǒng)的熟悉到應(yīng)用開(kāi)始學(xué),但不管學(xué)什么,只要不是純的操作系統(tǒng)級(jí),硬件的寄存器類(lèi)的東西還是要能看懂的,基于板級(jí)的匯編和C編程還是要會(huì)的。
μC/OS—II是一種基于優(yōu)先級(jí)的搶占式多任務(wù)實(shí)時(shí)操作系統(tǒng),包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同步(信號(hào)量,郵箱,消息隊(duì)列)和內(nèi)存管理等功能。它可以使各個(gè)任務(wù)獨(dú)立工作,互不干涉,很容易實(shí)現(xiàn)準(zhǔn)時(shí)而且無(wú)誤執(zhí)行,使實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)和擴(kuò)展變得容易,使應(yīng)用程序的設(shè)計(jì)過(guò)程大為減化。μC /OS—II是一個(gè)完整的、可移植、可固化、可裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核。μC/OS—II絕大部分的代碼是用ANSI的C語(yǔ)言編寫(xiě)的,包含一小部分匯編代碼,使之可供不同架構(gòu)的微處理器使用。
μC/OS—II可以大致分成內(nèi)核結(jié)構(gòu)、任務(wù)管理、時(shí)間管理、任務(wù)之間通信與同步4個(gè)部分。內(nèi)核結(jié)構(gòu)是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運(yùn)行、中斷進(jìn)出的前導(dǎo)、時(shí)鐘節(jié)拍、任務(wù)調(diào)度、事件處理等多部分。任務(wù)管理部分中的內(nèi)容都是與任務(wù)的操作密切相關(guān)的。包括任務(wù)的建立、刪除、掛起、恢復(fù)等等。因?yàn)棣藽/OS—II是以任務(wù)為基本單位調(diào)度的,所以這部分內(nèi)容也相當(dāng)重要。μC/OS—II中的最小時(shí)鐘單位是timetick(時(shí)鐘節(jié)拍),任務(wù)延時(shí)等操作是在時(shí)間管理這部分完成的。任務(wù)之間通信與同步為事件處理部分,包括信號(hào)量、郵箱、郵箱隊(duì)列、事件標(biāo)志等部分;主要用于任務(wù)間的互相聯(lián)系和對(duì)臨界資源的訪(fǎng)問(wèn)。μC/OS—Ⅱ操作系統(tǒng)是在main()中建立的,首先要系統(tǒng)初始化,OSInit(),初始化系統(tǒng)所有的變量和數(shù)據(jù)結(jié)構(gòu)。然后進(jìn)行任務(wù)的創(chuàng)建,OSTaskCreate();之后進(jìn)行多任務(wù)的啟動(dòng),OSStart()。在進(jìn)行任務(wù)的并行處理的時(shí)候,一個(gè)任務(wù)的程序是順序執(zhí)行的,而不同任務(wù)的程序卻是并行執(zhí)行的。從應(yīng)用程序的觀(guān)點(diǎn)來(lái)看,此處的并行處理只是一個(gè)假象。而實(shí)際上它是通過(guò)實(shí)時(shí)操作系統(tǒng)的內(nèi)核控制任務(wù)之間的切換來(lái)實(shí)現(xiàn)的,也就是任務(wù)調(diào)度啦。
μCOS—Ⅱ總是運(yùn)行進(jìn)入就緒態(tài)任務(wù)中優(yōu)先級(jí)最高的那一個(gè)。當(dāng)創(chuàng)建新任務(wù)時(shí),或當(dāng)前任務(wù)調(diào)用一些可能把自己掛起的系統(tǒng)函數(shù)(如OSMBoxPend)時(shí),內(nèi)核就要進(jìn)行任務(wù)切換。在上述的場(chǎng)合,任務(wù)級(jí)的調(diào)度是由函數(shù)OSSched()完成的。
在一個(gè)多任務(wù)的應(yīng)用工程中,任務(wù)之間并不是完全獨(dú)立的,它們存在一些需相互配合的處理,這些相互配合是靠任務(wù)間的通訊或同步,信號(hào)量、郵箱、消息隊(duì)列可以實(shí)現(xiàn)這種任務(wù)與任務(wù),任務(wù)與中斷服務(wù)函數(shù)間的通訊與同步。
郵箱可以使一個(gè)任務(wù)或者中斷服務(wù)子程序向另一個(gè)任務(wù)發(fā)送一個(gè)指針型的變量。而信號(hào)量不可以,其只能發(fā)送信號(hào)量。消息隊(duì)列可以使一個(gè)任務(wù)或者中斷服務(wù)子程序向另一個(gè)任務(wù)發(fā)送以指針?lè)绞蕉x的變量。因具體的應(yīng)用有所不同,每個(gè)指針指向的數(shù)據(jù)結(jié)構(gòu)變量也有所不同,實(shí)際上,我們可以將消息隊(duì)列看作多個(gè)郵箱組成的數(shù)組,只是它們共用一個(gè)等待任務(wù)列表。
我們實(shí)驗(yàn)所用的ARM開(kāi)發(fā)工具是ADS1。2。ARMADS全稱(chēng)為ARM Developer Suite,是ARM公司推出的新一代ARM集成開(kāi)發(fā)工具?,F(xiàn)在ADS的最新版本是1。2,支持軟件調(diào)試及JTAG硬件仿真調(diào)試、支持匯編、C語(yǔ)言、C++源程序,具有編譯效率高、系統(tǒng)庫(kù)功能強(qiáng)等特點(diǎn)。在安裝ADS1。2的時(shí)候出現(xiàn)過(guò)小問(wèn)題,當(dāng)時(shí)我的電腦是64位的,安裝完之后顯示不了,后來(lái)百度查找到原因,竟然是文件夾放錯(cuò)地方,應(yīng)該放在Program Files(x86)這個(gè)文件夾中。后來(lái)有同學(xué)問(wèn)我這方面的問(wèn)題,但是發(fā)現(xiàn)他們的ADS1。2安裝不了的原因是因?yàn)長(zhǎng)icence弄錯(cuò)了。在打開(kāi)CodeWarrior for ARM Developer Suite的時(shí)候,一定要記得選DebugInChipRAM,否則Make都出現(xiàn)很多error,而且那些幾乎都是未定義函數(shù)的錯(cuò)誤。之后就進(jìn)行Debug,調(diào)試成功之后會(huì)跳出AXD的界面,選擇Options里面的ConfigureTarget,再添加H—JTAG的文件,之后點(diǎn)擊GO,程序會(huì)跳出匯編語(yǔ)言的界面,再點(diǎn)擊下就跳到C語(yǔ)言程序入口地址,之后再點(diǎn)擊下GO,程序就開(kāi)始跑起來(lái)。前面所述的這些步驟是理想情況下程序自身沒(méi)有發(fā)生錯(cuò)誤,當(dāng)然在調(diào)試過(guò)程中,還是有很多硬件上的問(wèn)題,一方面是有些開(kāi)發(fā)板可能用久了,用JTAG并口連接的時(shí)候接觸不良,很容易自動(dòng)掉線(xiàn),常出現(xiàn)未連接設(shè)備的的Error,還有一方面是跑程序過(guò)程常會(huì)出現(xiàn)兼容性的問(wèn)題,導(dǎo)致程序AXD調(diào)試時(shí)候會(huì)出現(xiàn)卡在某個(gè)部分一直進(jìn)入死循環(huán),這個(gè)后來(lái)是解決了,但是偶爾還是會(huì)出現(xiàn)這個(gè)BUG。
通過(guò)這學(xué)期對(duì)嵌入式的學(xué)習(xí),我發(fā)現(xiàn)自己尚未掌握的知識(shí)點(diǎn)還是蠻多的,尤其是對(duì)μC/OS—II的移植方面,我只是理論上粗略了解,沒(méi)有經(jīng)過(guò)實(shí)驗(yàn)的操作。還有對(duì)存儲(chǔ)器加速模塊(MAM)這方面不夠了解,主要一方面當(dāng)初在做消息隊(duì)列采集實(shí)驗(yàn)(KeySem_SampdataQeue),這個(gè)模塊被代替掉,不需要使用它,所以后來(lái)也沒(méi)有去掌握相關(guān)知識(shí)點(diǎn)。對(duì)于任務(wù)就緒算法這部分,我只是上課的時(shí)候聽(tīng)“懂”了,課后自己再看完全懵了。對(duì)于CAN總線(xiàn)調(diào)試的部分,老師上課沒(méi)有講到這部分的介紹與應(yīng)用,但是后來(lái)通過(guò)自己對(duì)實(shí)驗(yàn)室?guī)熜謧兯龅恼n題初步了解,發(fā)現(xiàn)我自己有必要去弄懂它的構(gòu)造和原理。
“看書(shū)不要希望一次就會(huì),一次就明白是什么意思,也不要死記硬背,看不明白也沒(méi)關(guān)系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了。”依然記得當(dāng)初不懂怎么解決某個(gè)問(wèn)題的時(shí)候請(qǐng)教李碩師兄,師兄對(duì)我說(shuō)的這番話(huà)。自己在μC/OS—II這部分內(nèi)容掙扎了好久,現(xiàn)在想想,覺(jué)得當(dāng)初不應(yīng)該一上來(lái)就直接閱讀內(nèi)核源代碼,看了一些自己把頭撞破也想不明白的事,這樣直接正面打擊我學(xué)習(xí)嵌入式的積極性。學(xué)習(xí)啊,還是得要循序漸進(jìn)。如果你想學(xué)習(xí)嵌入式一定要有塊學(xué)習(xí)板??丛俣嗟囊曨l,看再多的書(shū),也不如自己動(dòng)手試一下,看著很簡(jiǎn)單的東西,做起來(lái)就可能遇到很多的問(wèn)題,遇到問(wèn)題找到原因,解決問(wèn)題,只有這樣才能學(xué)到東西。記得我第一次仿寫(xiě)led的驅(qū)動(dòng),想自己試一下,可是自己一試,就出了好多的問(wèn)題,那個(gè)led弄了我一天才把led燈點(diǎn)亮。所以不要眼高手低。
對(duì)于初學(xué)者,有一點(diǎn)小建議,我們拿到一個(gè)開(kāi)發(fā)板,很興奮也很激動(dòng),想法自然也很多,想用開(kāi)發(fā)板實(shí)現(xiàn)自己的這個(gè)想法,實(shí)現(xiàn)那個(gè)想法,然后又不知道從何下手,然后就去論壇中發(fā)一個(gè)貼,最后等著別人去回復(fù),當(dāng)見(jiàn)沒(méi)人回復(fù)就開(kāi)始抱怨。這種做法是不可取的,有想法是好的,我們要實(shí)現(xiàn)自己的想法也是有前提的,首先,我們對(duì)這部分知識(shí)了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問(wèn)題,再去發(fā)貼問(wèn),這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問(wèn)串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事啊。見(jiàn)多識(shí)廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來(lái)。自己平時(shí)也要多寫(xiě)代碼,多練習(xí)(這一點(diǎn)我做的不好,寫(xiě)的少)。
最后,我想說(shuō)的是嵌入式系統(tǒng)的學(xué)習(xí)和研究一旦我們達(dá)到了一定的水平后,其實(shí)很簡(jiǎn)單,就是如何去看CPU和相關(guān)芯片的Datasheet!
這個(gè)題目很大,給人一種感覺(jué)我好像很成功,其實(shí)不然。實(shí)際上自己水平不高,甚至很低,但是做過(guò)了一些曲折的學(xué)習(xí)道路,同時(shí)把自己真實(shí)的學(xué)習(xí)歷程表達(dá)出來(lái),希望對(duì)后來(lái)者有借鑒的意義,甚幸!
工作三年、幾成廢人!
我XX年畢業(yè)于華中地區(qū)的一個(gè)理工科大學(xué),專(zhuān)業(yè)是機(jī)械電子,我當(dāng)時(shí)已經(jīng)簽了一家內(nèi)陸某個(gè)省級(jí)機(jī)關(guān)工作,家里八輩是農(nóng)民,并且很偏遠(yuǎn),能夠進(jìn)入這樣的地方是祖墳有風(fēng)水。但在畢業(yè)前夕有個(gè)進(jìn)入it的機(jī)會(huì),我本想進(jìn)去的,家里人極力反對(duì),阻力可想而知。同時(shí)要交4000元的違約金,對(duì)我來(lái)說(shuō)是天文數(shù)字。大學(xué)里的費(fèi)用很多是借的,幾乎將近一半的費(fèi)用是在大學(xué)勤工儉學(xué)掙的,為了省錢(qián),高中一個(gè)學(xué)期回家一次,大學(xué)一年回去一次。并且我個(gè)人也有特殊的人生背景(悲景更確切),這里不多說(shuō)了,寫(xiě)十篇也寫(xiě)不完,同時(shí)偏離主題。這樣我就參加了工作。一張報(bào)紙一杯茶的日子,幾乎下班后有種很空虛和恐慌的感覺(jué)。在工作中雖然是與自己專(zhuān)業(yè)有點(diǎn)關(guān)系,但是很少。專(zhuān)業(yè)幾乎荒廢。我自己也思考,如果再不出去,自己將會(huì)成廢人,只好讓國(guó)家養(yǎng)了。兩年后決定出去,但是幾成廢人,誰(shuí)要呢,只好到學(xué)校去鍍金。這是中國(guó)教育和社會(huì)的悲哀!
至于專(zhuān)業(yè)就改為計(jì)算機(jī)方面,聽(tīng)說(shuō)好找工作,我說(shuō)實(shí)話(huà)不是很對(duì)計(jì)算機(jī)特別感興趣,生存第一需要。不要笑我,哈哈!
考研成績(jī)出來(lái),超過(guò)了國(guó)家線(xiàn)幾十分。那個(gè)方向要兩個(gè),我第三,但是那年非碘,不面試就按分?jǐn)?shù)來(lái)排,自然我落選了。其實(shí)給我面試機(jī)會(huì)也不一定要我,哈哈,自己幾斤幾兩很清楚。
最后調(diào)劑到另外一個(gè)學(xué)校,交錢(qián),咬咬牙,交吧!現(xiàn)在仍然債臺(tái)高筑!
進(jìn)入學(xué)校前夕
為什么要把這段列出,看后就知道了。
單位有網(wǎng)絡(luò),經(jīng)常上網(wǎng)查些英語(yǔ)資料,在那里唯獨(dú)英語(yǔ)沒(méi)有丟很多。于是我就在網(wǎng)上查資料,學(xué)什么好呢,最后確定學(xué)嵌入式把,聽(tīng)說(shuō)跟硬件相對(duì)比較緊密!而我在大學(xué)里多少學(xué)習(xí)了數(shù)字電路,單片機(jī)等,所以多少也有所利用,不會(huì)真的一無(wú)所知。當(dāng)然在這之
前也自學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)組成原理等。c語(yǔ)言在大學(xué)就學(xué)了。哈哈這就是我的家底。
我知道自己的基礎(chǔ)差,于是我就拿操作系統(tǒng),數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)、c++來(lái)看,機(jī)關(guān)有這個(gè)好處,空余時(shí)間多,于是平常就看書(shū),很痛苦,沒(méi)有人請(qǐng)教。
另外就上網(wǎng)到論壇上去,我就到各個(gè)專(zhuān)業(yè)的技術(shù)論壇,其實(shí)是電子論壇和嵌入式論壇。我?guī)缀鯖](méi)有發(fā)帖,幾乎把幾個(gè)大型的出名的論壇的帖子翻遍了,雖然有很多重復(fù)的,我才知道嵌入式是個(gè)什么東東。這些帖子對(duì)我以后的學(xué)習(xí)產(chǎn)生了極大的影響。
最關(guān)鍵兩點(diǎn):
1、嵌入式是什么?
2、嵌入式需要哪些知識(shí)?
知道了這兩點(diǎn),好辦!我就開(kāi)始規(guī)劃學(xué)習(xí)路線(xiàn)。計(jì)算機(jī)的基本理論不能丟,于是重點(diǎn)看組成原理,數(shù)據(jù)機(jī)構(gòu),操作系統(tǒng)、c++。同時(shí)論壇上了解到,實(shí)時(shí)操作系統(tǒng)ucos是一個(gè)很好的嵌入式操作系統(tǒng),對(duì)初學(xué)者很好。于是我就買(mǎi)了一本書(shū),但是代碼在電腦里調(diào)不通,網(wǎng)上也有很多相同的問(wèn)題,我就看書(shū),分析代碼,一遍不行就兩遍,三遍,這樣才看了入了門(mén),才知道什么是進(jìn)程。原來(lái)看操作系統(tǒng)書(shū)時(shí),根本就不知道進(jìn)程是個(gè)什么東西。
在這段時(shí)間掌握的東西不多,但是,對(duì)我以后的影響很大,我想起了大學(xué)時(shí)一個(gè)同學(xué)跟我說(shuō)過(guò)了一句話(huà):大學(xué)里最重要的不是學(xué)到了什么,最重要的是學(xué)會(huì)怎么學(xué)!大概是這個(gè)意思。
進(jìn)入我的避難所
對(duì)我來(lái)講,再次進(jìn)入大學(xué)不再是大學(xué),而是避難所。希望這次進(jìn)入給我喘氣和養(yǎng)精蓄銳的機(jī)會(huì)和時(shí)間。我是這樣認(rèn)為和實(shí)踐的。
在學(xué)校我有三件事:上課,上圖書(shū)館,上網(wǎng)。
對(duì)于上課,學(xué)校開(kāi)了很多課程,非常好,很多是名人名師講解,于是很多同學(xué)都想學(xué),都去聽(tīng)。我也考慮過(guò),最后放棄。我是這樣認(rèn)為的,時(shí)間是有限的,什么都想學(xué),什么都學(xué)不成。于是我把我自己學(xué)的課進(jìn)行了分化,一般的課程通過(guò)就行,重要的一定好好學(xué)。我希望不要什么爭(zhēng)論學(xué)習(xí)課程多和少的問(wèn)題,這僅僅是我的看法。所以我的成績(jī)應(yīng)該是很差的。分?jǐn)?shù)低。好在后來(lái)的單位沒(méi)有要我的成績(jī)單,否則就慘了。
我個(gè)人感覺(jué)是上圖書(shū)館的效率比在寢室里高多了,這是我的經(jīng)驗(yàn)。
首先,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。嵌入式有如下幾個(gè)突出的有點(diǎn)1。系統(tǒng)內(nèi)核小,2專(zhuān)用性強(qiáng),3系統(tǒng)精簡(jiǎn)4高實(shí)時(shí)性O(shè)S5嵌入式系統(tǒng)的應(yīng)用程序可以沒(méi)有操作系統(tǒng)直接在芯片上運(yùn)行,6嵌入式系統(tǒng)需要開(kāi)發(fā)工具和環(huán)境。
嵌入式系統(tǒng)是近幾年才風(fēng)靡起來(lái)的,但是這個(gè)概念并非新近才出現(xiàn)。從20世紀(jì)七十年代單片機(jī)(最早的單片機(jī)是Intel公司的8048,出現(xiàn)在1976年)的出現(xiàn)到今天各式各樣的嵌入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史。經(jīng)過(guò)30年的發(fā)展,嵌入式技術(shù)已經(jīng)日趨成熟,在中國(guó)嵌入式機(jī)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶(hù)的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。
其次,嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門(mén)最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專(zhuān)用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。
嵌入式系統(tǒng)是軟硬結(jié)合的學(xué)科,通常有兩類(lèi)人會(huì)去專(zhuān)研嵌入式:一類(lèi)是學(xué)電子工程、通信工程等偏硬件專(zhuān)業(yè)的,另一類(lèi)是學(xué)軟件、計(jì)算機(jī)專(zhuān)業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開(kāi)發(fā)。我是軟件專(zhuān)業(yè)的學(xué)習(xí)嵌入式,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。嵌入式應(yīng)用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統(tǒng),POS網(wǎng)絡(luò)及電子商務(wù),環(huán)境工程與自然,機(jī)器人,機(jī)電產(chǎn)品方面應(yīng)用等方面。其中目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點(diǎn)菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢(shì)。例外還有很多地方用到了嵌入式系統(tǒng),最近飛利浦和ARM共同推出32位RISC嵌入式控制器,適用于工業(yè)控制,采用最先進(jìn)的0。18微米CMOS嵌入式閃存處理技術(shù),操作電壓可以低至1。2伏,它還能降低25%到30%的制造成本,在工業(yè)領(lǐng)域中對(duì)最終用戶(hù)而言是一套極具成本效益的解決方案。
本人本科學(xué)的是電子信息工程專(zhuān)業(yè),其實(shí)這個(gè)專(zhuān)業(yè)和嵌入式?jīng)]有多大的關(guān)系,要說(shuō)有關(guān)系就是簡(jiǎn)單的講了下C語(yǔ)言語(yǔ)法,學(xué)完之后還不知道什么是C語(yǔ)言,只記住了char,int,long等占幾個(gè)字節(jié),if, while,for循環(huán)什么的,感覺(jué)也就能算一些小學(xué)就會(huì)的題目,全國(guó)計(jì)算機(jī)二級(jí)C語(yǔ)言也就糊涂的過(guò)了。我這個(gè)專(zhuān)業(yè)沒(méi)學(xué)過(guò)C++,一開(kāi)始不知道什么是面向?qū)ο?,這可能會(huì)讓人笑話(huà)了。不過(guò)這說(shuō)的是實(shí)話(huà),本科的時(shí)候,學(xué)院安排的課程大部分偏硬件部分,動(dòng)手機(jī)會(huì)比較多,自然而然比較喜歡硬件方面。
在大二的時(shí)候就聽(tīng)學(xué)長(zhǎng)說(shuō),單片機(jī)很難學(xué),那時(shí)候經(jīng)學(xué)長(zhǎng)介紹,淘寶買(mǎi)了本郭天祥老師出的書(shū)《51單片機(jī)C語(yǔ)言教程》,一開(kāi)始還真是不怎么懂,感覺(jué)有點(diǎn)像是看天書(shū),然后硬著頭皮去看,當(dāng)我把51的結(jié)構(gòu)看完了,就不像一開(kāi)始那樣一頭霧水了,自己在紙上把51的結(jié)構(gòu)圖默畫(huà)一遍,然后再把各個(gè)寄存器功能寫(xiě)一下,各個(gè)功能口的結(jié)構(gòu)粗略畫(huà)了下,然后覺(jué)得51整體已在我心中了,雖然沒(méi)有什么作用,但是至少懂得這門(mén)課要怎么去學(xué)習(xí)。其實(shí)有些時(shí)候不是這個(gè)東西你不會(huì),而是在不會(huì)的時(shí)候自己先告訴自己這個(gè)太難了,自己先放棄了。
在大三的時(shí)候,第一學(xué)期課比較少,我就經(jīng)常待在圖書(shū)館,會(huì)去蠻看些專(zhuān)業(yè)相關(guān)的書(shū)籍,現(xiàn)在想想,那時(shí)候也是機(jī)緣巧合下,看到了一本書(shū)《從51到ARM》,講述的是從51系列單片機(jī)的一般知識(shí)出發(fā),將arm處理器和51系列單片機(jī)進(jìn)行對(duì)比,引導(dǎo)讀者去理解和學(xué)習(xí)arm處理器的知識(shí)。那個(gè)時(shí)候也有考慮到以后就業(yè)的問(wèn)題,就想到一件事情,如果去應(yīng)聘工作的話(huà),每個(gè)工科院校電子信息類(lèi)的畢業(yè)生都會(huì)異口同聲地說(shuō):我會(huì)51系列單片機(jī)。當(dāng)他說(shuō)這句話(huà)的時(shí)候,他和別人是站在同一起跑線(xiàn)上的。可我們完全有可能和別人不站在同一起跑線(xiàn)上。正是這本書(shū)給我開(kāi)啟了另外一扇大門(mén),讓我初步了解了嵌入式。后來(lái)去報(bào)考全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)教程——嵌入式系統(tǒng)開(kāi)發(fā)技術(shù),在圖書(shū)館奮斗了兩個(gè)月,最后取得優(yōu)秀的成績(jī),也讓我進(jìn)一步了解嵌入式系統(tǒng)。
在大四的時(shí)候,我們有嵌入式的選修課,不過(guò)當(dāng)時(shí)因?yàn)榭佳械木壒?,就沒(méi)有去上過(guò)這門(mén)課,好可惜呀!但是,在選擇讀研研究方向的時(shí)候我還是毅然選擇了嵌入式方向,我知道這將成為我未來(lái)三年研究的方向。這學(xué)期(研一下學(xué)期),很開(kāi)心能夠再次接觸嵌入式系統(tǒng)這門(mén)課程,對(duì)于導(dǎo)師教的這門(mén)課程,我覺(jué)得自己上課還是蠻認(rèn)真聽(tīng)講的,當(dāng)然也被師在臺(tái)上那講得頭頭是道,溫文儒雅的風(fēng)姿所吸引。對(duì)于沒(méi)有學(xué)過(guò)微機(jī)8086的我,有些時(shí)候,老師用微機(jī)與嵌入式的對(duì)比讓我頭腦沒(méi)有相關(guān)概念......
首先,我對(duì)嵌入式在概念上有了一個(gè)比較精確的了解。嵌入式是指以應(yīng)用為中心,以計(jì)算機(jī)為基礎(chǔ),并且軟硬件可裁剪,適用于對(duì)功能、可靠性、成本、體積和功耗有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。它由硬件平臺(tái)和系統(tǒng)軟件組成。硬件平臺(tái)指嵌入式處理器和與之通過(guò)接口連接的外圍硬件平臺(tái)。系統(tǒng)軟件是指實(shí)時(shí)操作系統(tǒng)和用戶(hù)應(yīng)用軟件。
談到硬件部分,我首先想到的是嵌入式處理器那些外圍功能模塊。對(duì)于這部分的學(xué)習(xí),我當(dāng)初花了好長(zhǎng)時(shí)間看《深入淺出ARM7——LPC2400》這本書(shū),現(xiàn)在想想覺(jué)得自己學(xué)習(xí)方法沒(méi)用對(duì),完全沒(méi)有那個(gè)必要,自己卻花了大把時(shí)間在看這些寄存器引腳的使用,因?yàn)閱渭兊目催^(guò)之后還是很容易忘的,之后在進(jìn)行實(shí)驗(yàn)的時(shí)候還是翻書(shū)來(lái)查就證明了這一點(diǎn)。不過(guò)一些最基本的模塊,例如通用輸入/輸出口(GPIO),通用異步收發(fā)器(UART),向量中斷控制器(VIC),外部中斷輸入和定時(shí)器/計(jì)數(shù)器還是需要看書(shū)認(rèn)真去記住那些常用的引腳功能。對(duì)于CPU異常這部分,我一開(kāi)始以為異常就是中斷,因?yàn)樘幚沓绦蛄鞒淘O(shè)計(jì)是相似的,都是請(qǐng)求處理器打斷正常的程序執(zhí)行流程,進(jìn)入特定程序的一種機(jī)制。當(dāng)時(shí)還對(duì)老師提出的一個(gè)看法有點(diǎn)疑義,51可以處理中斷嵌套而ARM處理器卻不能?我當(dāng)時(shí)腦子里面就在想:中斷不都是有硬件設(shè)備產(chǎn)生的,那按常理來(lái)講ARM處理器也可以處理的呀。后來(lái)在認(rèn)真查書(shū),發(fā)現(xiàn)CPU異常有7種:復(fù)位,數(shù)據(jù)中止,中斷,快中斷,預(yù)取中止,未定義,軟件中斷。而異常向量會(huì)使CPU轉(zhuǎn)入異常入口地址執(zhí)行程序,開(kāi)始了異常處理。同理的話(huà),中斷向量使CPU轉(zhuǎn)入中斷入口地址執(zhí)行程序,開(kāi)始了中斷處理。即當(dāng)發(fā)生IRQ中斷時(shí),程序返回地址被存入該IRQ中斷模式下的LR,如果繼續(xù)發(fā)生IRQ中斷,那第二次的中斷返回地址也還是被存入該IRQ中斷模式下的LR中,那先前發(fā)生中斷時(shí)候存入的程序返回地址將被覆蓋掉,導(dǎo)致不能返回正確的位置。在我解決這個(gè)問(wèn)題的期間,每次睡前思維準(zhǔn)會(huì)定格在這問(wèn)題上,久久不能繞出來(lái),其實(shí)有時(shí)候查書(shū)還是最好的解決方案,因?yàn)榫W(wǎng)絡(luò)資源只能提供給我們部分的參考資料。
對(duì)于ARM匯編語(yǔ)言這部分的學(xué)習(xí),我認(rèn)為是需要重視的,學(xué)匯編不是說(shuō)用這語(yǔ)言做多牛逼的事情,問(wèn)題的關(guān)鍵在于,學(xué)透了匯編會(huì)使你真正理解計(jì)算機(jī)。另外一方面,只要以后在嵌入式工作中你遲早會(huì)在某個(gè)陰暗的角落里遇到匯編?!安还苣愠姓J(rèn)不承認(rèn),現(xiàn)在的CPU沒(méi)有直接跑高級(jí)語(yǔ)言的,哪怕是虛擬機(jī)也都是類(lèi)似匯編的指令集。當(dāng)遇到崩潰分析,性能優(yōu)化甚至編譯器抽風(fēng)等等的時(shí)候,匯編是你最后一根救命稻草(這句話(huà)是福來(lái)師兄講的)?!睘榇怂o了我們一份資料,周立功lpc21xx/lpc22xx系列ARM7啟動(dòng)代碼分析,主要講述的是startup。s文件的分析,看了下才發(fā)現(xiàn)老師上課講的那個(gè)啟動(dòng)代碼分析很多不理解之處這里都有詳細(xì)的介紹,這分析太精辟了。
學(xué)ARM7這么久,我認(rèn)為從硬件上講,一方面就是學(xué)習(xí)接口電路設(shè)計(jì),另一方面就是學(xué)習(xí)匯編和C語(yǔ)言的板級(jí)編程。如果從軟件上講,就是要學(xué)習(xí)基于ARM處理器的操作系統(tǒng)層面的驅(qū)動(dòng)和移植。這些對(duì)于我們初學(xué)者來(lái)說(shuō)必須明確,要么從硬件著手開(kāi)始學(xué),要么從操作系統(tǒng)的熟悉到應(yīng)用開(kāi)始學(xué),但不管學(xué)什么,只要不是純的操作系統(tǒng)級(jí),硬件的寄存器類(lèi)的東西還是要能看懂的,基于板級(jí)的匯編和C編程還是要會(huì)的。
μC/OS—II是一種基于優(yōu)先級(jí)的搶占式多任務(wù)實(shí)時(shí)操作系統(tǒng),包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同步(信號(hào)量,郵箱,消息隊(duì)列)和內(nèi)存管理等功能。它可以使各個(gè)任務(wù)獨(dú)立工作,互不干涉,很容易實(shí)現(xiàn)準(zhǔn)時(shí)而且無(wú)誤執(zhí)行,使實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)和擴(kuò)展變得容易,使應(yīng)用程序的設(shè)計(jì)過(guò)程大為減化。μC /OS—II是一個(gè)完整的、可移植、可固化、可裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核。μC/OS—II絕大部分的代碼是用ANSI的C語(yǔ)言編寫(xiě)的,包含一小部分匯編代碼,使之可供不同架構(gòu)的微處理器使用。
μC/OS—II可以大致分成內(nèi)核結(jié)構(gòu)、任務(wù)管理、時(shí)間管理、任務(wù)之間通信與同步4個(gè)部分。內(nèi)核結(jié)構(gòu)是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運(yùn)行、中斷進(jìn)出的前導(dǎo)、時(shí)鐘節(jié)拍、任務(wù)調(diào)度、事件處理等多部分。任務(wù)管理部分中的內(nèi)容都是與任務(wù)的操作密切相關(guān)的。包括任務(wù)的建立、刪除、掛起、恢復(fù)等等。因?yàn)棣藽/OS—II是以任務(wù)為基本單位調(diào)度的,所以這部分內(nèi)容也相當(dāng)重要。μC/OS—II中的最小時(shí)鐘單位是timetick(時(shí)鐘節(jié)拍),任務(wù)延時(shí)等操作是在時(shí)間管理這部分完成的。任務(wù)之間通信與同步為事件處理部分,包括信號(hào)量、郵箱、郵箱隊(duì)列、事件標(biāo)志等部分;主要用于任務(wù)間的互相聯(lián)系和對(duì)臨界資源的訪(fǎng)問(wèn)。μC/OS—Ⅱ操作系統(tǒng)是在main()中建立的,首先要系統(tǒng)初始化,OSInit(),初始化系統(tǒng)所有的變量和數(shù)據(jù)結(jié)構(gòu)。然后進(jìn)行任務(wù)的創(chuàng)建,OSTaskCreate();之后進(jìn)行多任務(wù)的啟動(dòng),OSStart()。在進(jìn)行任務(wù)的并行處理的時(shí)候,一個(gè)任務(wù)的程序是順序執(zhí)行的,而不同任務(wù)的程序卻是并行執(zhí)行的。從應(yīng)用程序的觀(guān)點(diǎn)來(lái)看,此處的并行處理只是一個(gè)假象。而實(shí)際上它是通過(guò)實(shí)時(shí)操作系統(tǒng)的內(nèi)核控制任務(wù)之間的切換來(lái)實(shí)現(xiàn)的,也就是任務(wù)調(diào)度啦。
μCOS—Ⅱ總是運(yùn)行進(jìn)入就緒態(tài)任務(wù)中優(yōu)先級(jí)最高的那一個(gè)。當(dāng)創(chuàng)建新任務(wù)時(shí),或當(dāng)前任務(wù)調(diào)用一些可能把自己掛起的系統(tǒng)函數(shù)(如OSMBoxPend)時(shí),內(nèi)核就要進(jìn)行任務(wù)切換。在上述的場(chǎng)合,任務(wù)級(jí)的調(diào)度是由函數(shù)OSSched()完成的。
在一個(gè)多任務(wù)的應(yīng)用工程中,任務(wù)之間并不是完全獨(dú)立的,它們存在一些需相互配合的處理,這些相互配合是靠任務(wù)間的通訊或同步,信號(hào)量、郵箱、消息隊(duì)列可以實(shí)現(xiàn)這種任務(wù)與任務(wù),任務(wù)與中斷服務(wù)函數(shù)間的通訊與同步。
郵箱可以使一個(gè)任務(wù)或者中斷服務(wù)子程序向另一個(gè)任務(wù)發(fā)送一個(gè)指針型的變量。而信號(hào)量不可以,其只能發(fā)送信號(hào)量。消息隊(duì)列可以使一個(gè)任務(wù)或者中斷服務(wù)子程序向另一個(gè)任務(wù)發(fā)送以指針?lè)绞蕉x的變量。因具體的應(yīng)用有所不同,每個(gè)指針指向的數(shù)據(jù)結(jié)構(gòu)變量也有所不同,實(shí)際上,我們可以將消息隊(duì)列看作多個(gè)郵箱組成的數(shù)組,只是它們共用一個(gè)等待任務(wù)列表。
我們實(shí)驗(yàn)所用的ARM開(kāi)發(fā)工具是ADS1。2。ARMADS全稱(chēng)為ARM Developer Suite,是ARM公司推出的新一代ARM集成開(kāi)發(fā)工具?,F(xiàn)在ADS的最新版本是1。2,支持軟件調(diào)試及JTAG硬件仿真調(diào)試、支持匯編、C語(yǔ)言、C++源程序,具有編譯效率高、系統(tǒng)庫(kù)功能強(qiáng)等特點(diǎn)。在安裝ADS1。2的時(shí)候出現(xiàn)過(guò)小問(wèn)題,當(dāng)時(shí)我的電腦是64位的,安裝完之后顯示不了,后來(lái)百度查找到原因,竟然是文件夾放錯(cuò)地方,應(yīng)該放在Program Files(x86)這個(gè)文件夾中。后來(lái)有同學(xué)問(wèn)我這方面的問(wèn)題,但是發(fā)現(xiàn)他們的ADS1。2安裝不了的原因是因?yàn)長(zhǎng)icence弄錯(cuò)了。在打開(kāi)CodeWarrior for ARM Developer Suite的時(shí)候,一定要記得選DebugInChipRAM,否則Make都出現(xiàn)很多error,而且那些幾乎都是未定義函數(shù)的錯(cuò)誤。之后就進(jìn)行Debug,調(diào)試成功之后會(huì)跳出AXD的界面,選擇Options里面的ConfigureTarget,再添加H—JTAG的文件,之后點(diǎn)擊GO,程序會(huì)跳出匯編語(yǔ)言的界面,再點(diǎn)擊下就跳到C語(yǔ)言程序入口地址,之后再點(diǎn)擊下GO,程序就開(kāi)始跑起來(lái)。前面所述的這些步驟是理想情況下程序自身沒(méi)有發(fā)生錯(cuò)誤,當(dāng)然在調(diào)試過(guò)程中,還是有很多硬件上的問(wèn)題,一方面是有些開(kāi)發(fā)板可能用久了,用JTAG并口連接的時(shí)候接觸不良,很容易自動(dòng)掉線(xiàn),常出現(xiàn)未連接設(shè)備的的Error,還有一方面是跑程序過(guò)程常會(huì)出現(xiàn)兼容性的問(wèn)題,導(dǎo)致程序AXD調(diào)試時(shí)候會(huì)出現(xiàn)卡在某個(gè)部分一直進(jìn)入死循環(huán),這個(gè)后來(lái)是解決了,但是偶爾還是會(huì)出現(xiàn)這個(gè)BUG。
通過(guò)這學(xué)期對(duì)嵌入式的學(xué)習(xí),我發(fā)現(xiàn)自己尚未掌握的知識(shí)點(diǎn)還是蠻多的,尤其是對(duì)μC/OS—II的移植方面,我只是理論上粗略了解,沒(méi)有經(jīng)過(guò)實(shí)驗(yàn)的操作。還有對(duì)存儲(chǔ)器加速模塊(MAM)這方面不夠了解,主要一方面當(dāng)初在做消息隊(duì)列采集實(shí)驗(yàn)(KeySem_SampdataQeue),這個(gè)模塊被代替掉,不需要使用它,所以后來(lái)也沒(méi)有去掌握相關(guān)知識(shí)點(diǎn)。對(duì)于任務(wù)就緒算法這部分,我只是上課的時(shí)候聽(tīng)“懂”了,課后自己再看完全懵了。對(duì)于CAN總線(xiàn)調(diào)試的部分,老師上課沒(méi)有講到這部分的介紹與應(yīng)用,但是后來(lái)通過(guò)自己對(duì)實(shí)驗(yàn)室?guī)熜謧兯龅恼n題初步了解,發(fā)現(xiàn)我自己有必要去弄懂它的構(gòu)造和原理。
“看書(shū)不要希望一次就會(huì),一次就明白是什么意思,也不要死記硬背,看不明白也沒(méi)關(guān)系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就記住了,遇到的少的,忘記也就忘記了?!币廊挥浀卯?dāng)初不懂怎么解決某個(gè)問(wèn)題的時(shí)候請(qǐng)教李碩師兄,師兄對(duì)我說(shuō)的這番話(huà)。自己在μC/OS—II這部分內(nèi)容掙扎了好久,現(xiàn)在想想,覺(jué)得當(dāng)初不應(yīng)該一上來(lái)就直接閱讀內(nèi)核源代碼,看了一些自己把頭撞破也想不明白的事,這樣直接正面打擊我學(xué)習(xí)嵌入式的積極性。學(xué)習(xí)啊,還是得要循序漸進(jìn)。如果你想學(xué)習(xí)嵌入式一定要有塊學(xué)習(xí)板。看再多的視頻,看再多的書(shū),也不如自己動(dòng)手試一下,看著很簡(jiǎn)單的東西,做起來(lái)就可能遇到很多的問(wèn)題,遇到問(wèn)題找到原因,解決問(wèn)題,只有這樣才能學(xué)到東西。記得我第一次仿寫(xiě)led的驅(qū)動(dòng),想自己試一下,可是自己一試,就出了好多的問(wèn)題,那個(gè)led弄了我一天才把led燈點(diǎn)亮。所以不要眼高手低。
對(duì)于初學(xué)者,有一點(diǎn)小建議,我們拿到一個(gè)開(kāi)發(fā)板,很興奮也很激動(dòng),想法自然也很多,想用開(kāi)發(fā)板實(shí)現(xiàn)自己的這個(gè)想法,實(shí)現(xiàn)那個(gè)想法,然后又不知道從何下手,然后就去論壇中發(fā)一個(gè)貼,最后等著別人去回復(fù),當(dāng)見(jiàn)沒(méi)人回復(fù)就開(kāi)始抱怨。這種做法是不可取的,有想法是好的,我們要實(shí)現(xiàn)自己的想法也是有前提的,首先,我們對(duì)這部分知識(shí)了解嗎?如果不了解就去google一下(最好別用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到問(wèn)題,再去發(fā)貼問(wèn),這樣也顯得咱們有水平。比如自己連串口是什么都不太清楚呢,就問(wèn)串口通信怎么做啊,就是人家把代碼給咱,咱也不明白是怎么回事啊。見(jiàn)多識(shí)廣,熟能生巧。多看代碼,要從代碼中讀出代碼的意思來(lái)。自己平時(shí)也要多寫(xiě)代碼,多練習(xí)(這一點(diǎn)我做的不好,寫(xiě)的少)。
最后,我想說(shuō)的是嵌入式系統(tǒng)的學(xué)習(xí)和研究一旦我們達(dá)到了一定的水平后,其實(shí)很簡(jiǎn)單,就是如何去看CPU和相關(guān)芯片的Datasheet!
4月10號(hào),為期一個(gè)階段的Linux開(kāi)發(fā)基礎(chǔ)培訓(xùn)課程圓滿(mǎn)結(jié)束,回首這些天所留下的點(diǎn)點(diǎn)滴滴,感觸深深,學(xué)習(xí)上知識(shí)點(diǎn)的積累,靈活運(yùn)用的過(guò)程中感受到了Linux操作的快速高效性能,這也是我所追求的效率!
當(dāng)初初涉培訓(xùn)課程的第一門(mén)課程時(shí),都說(shuō)Linux操作很繁瑣復(fù)雜,心里總有些顧忌,帶著種種不安與些許拼博的決心,開(kāi)始了自我提升階段的“充電”,由徐海兵老師教授我們基礎(chǔ)課程的培訓(xùn),我們則像著小學(xué)生般認(rèn)真的記著筆記,仔細(xì)聽(tīng)著并學(xué)會(huì)如何去在實(shí)踐中運(yùn)用所學(xué)的Linux下的各種強(qiáng)大的命令集。
在Unit 1中,徐老師詳細(xì)生動(dòng)的為我們講述了有關(guān)Linux的誕生、初成長(zhǎng)以及輝煌的發(fā)展至今,今后應(yīng)用范圍則愈來(lái)愈廣泛,講解了為L(zhǎng)inux這個(gè)偉大的OS做出巨大貢獻(xiàn)的一位位出色的、偉大的人物,他們那種學(xué)習(xí)鉆研的精神、鍥而不舍的信念、勇于把握住難得的機(jī)會(huì),從小處著手,踏踏實(shí)實(shí)的創(chuàng)造出了對(duì)人類(lèi)科技發(fā)展做出卓越貢獻(xiàn)的Linux(Unix)系統(tǒng),他們的種種,都值得我們?nèi)ド羁谭词?、刻苦學(xué)習(xí)、傳承并永遠(yuǎn)發(fā)展下去。
查看ip地址和重啟網(wǎng)絡(luò)服務(wù)是我學(xué)的第一個(gè)命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到遠(yuǎn)程登錄軟件可用xmanager。
secureCRT是我們常用的,安裝好后利用其登錄到了Red hat Linux,需要知道Linux主機(jī)的ip地址。徐老師為我們介紹了重要內(nèi)容:SHELL,即運(yùn)行程序的程序,如echo $$SHELL可查看SHELL的環(huán)境變量是csh還是bash。指令pwd可查看當(dāng)前所在路徑,passwd:更改Linux下的密碼,僅限r(nóng)oot用戶(hù)有此權(quán)限,當(dāng)然我們是利用虛擬機(jī)VMware程序來(lái)運(yùn)行Linux OS的,懂得了如何設(shè)置虛擬機(jī)的網(wǎng)卡設(shè)置、暫停、恢復(fù)、全屏等。
簡(jiǎn)單的學(xué)習(xí)后進(jìn)入U(xiǎn)nit 2,命令行的句法讓我懂得了用法規(guī)則,一系列的命令功能強(qiáng)大:
date顯示當(dāng)前年月時(shí)間星期之類(lèi)的;
more指令與less重要但不常用;
cat用于查看短小的文件內(nèi)容,常用!
mkdir命令用于在當(dāng)前目錄下創(chuàng)建新的目錄;
ls顯示當(dāng)前目錄下所有文件;cd更改文件路徑,如cd 、cd 。當(dāng)前目錄;
rmdir刪除空文件夾;
rm指令很強(qiáng)大,用于刪除空目錄及非空目錄下的指定或全部文件;
man真男人,幫助手冊(cè);
history指令用于顯示編寫(xiě)過(guò)的命令集,以history序號(hào)可顯示序號(hào)所指命令;
echo回寫(xiě)命令,很重要,我需要繼續(xù)學(xué)習(xí);
exit指從多重SHELL退出來(lái)。
首先,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁減,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。嵌入式有如下幾個(gè)突出的有點(diǎn)1。系統(tǒng)內(nèi)核小,2專(zhuān)用性強(qiáng),3系統(tǒng)精簡(jiǎn)4高實(shí)時(shí)性O(shè)S5嵌入式系統(tǒng)的應(yīng)用程序可以沒(méi)有操作系統(tǒng)直接在芯片上運(yùn)行,6嵌入式系統(tǒng)需要開(kāi)發(fā)工具和環(huán)境。
嵌入式系統(tǒng)是近幾年才風(fēng)靡起來(lái)的,但是這個(gè)概念并非新近才出現(xiàn)。從20世紀(jì)七十年代單片機(jī)(最早的單片機(jī)是Intel公司的8048,出現(xiàn)在1976年)的出現(xiàn)到今天各式各樣的嵌入式微處理器,微控制器的大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)有了近30年的發(fā)展歷史。經(jīng)過(guò)30年的發(fā)展,嵌入式技術(shù)已經(jīng)日趨成熟,在中國(guó)嵌入式機(jī)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶(hù)的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。
其次,嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門(mén)最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專(zhuān)用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。
嵌入式系統(tǒng)是軟硬結(jié)合的學(xué)科,通常有兩類(lèi)人會(huì)去專(zhuān)研嵌入式:一類(lèi)是學(xué)電子工程、通信工程等偏硬件專(zhuān)業(yè)的,另一類(lèi)是學(xué)軟件、計(jì)算機(jī)專(zhuān)業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開(kāi)發(fā)。我是軟件專(zhuān)業(yè)的學(xué)習(xí)嵌入式,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。嵌入式應(yīng)用在很多方面,具體的可以分為工業(yè)控制,交通管理,信息家電,家庭智能管理系統(tǒng),POS網(wǎng)絡(luò)及電子商務(wù),環(huán)境工程與自然,機(jī)器人,機(jī)電產(chǎn)品方面應(yīng)用等方面。其中目前在服務(wù)領(lǐng)域,如遠(yuǎn)程點(diǎn)菜器等已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢(shì)。例外還有很多地方用到了嵌入式系統(tǒng),最近飛利浦和ARM共同推出32位RISC嵌入式控制器,適用于工業(yè)控制,采用最先進(jìn)的0。18微米CMOS嵌入式閃存處理技術(shù),操作電壓可以低至1。2伏,它還能降低25%到30%的制造成本,在工業(yè)領(lǐng)域中對(duì)最終用戶(hù)而言是一套極具成本效益的解決方案。
嵌入式學(xué)習(xí)心得體會(huì),4月10號(hào),為期一個(gè)階段的Linux開(kāi)發(fā)基礎(chǔ)培訓(xùn)課程圓滿(mǎn)結(jié)束,回首這些天所留下的點(diǎn)點(diǎn)滴滴,感觸深深,學(xué)習(xí)上知識(shí)點(diǎn)的積累,靈活運(yùn)用的過(guò)程中感受到了Linux操作的快速高效性能,這也是我所追求的效率!
當(dāng)初初涉培訓(xùn)課程的第一門(mén)課程時(shí),都說(shuō)Linux操作很繁瑣復(fù)雜,心里總有些顧忌,帶著種種不安與些許拼博的決心,開(kāi)始了自我提升階段的"充電",由徐海兵老師教授我們基礎(chǔ)課程的培訓(xùn),我們則像著小學(xué)生般認(rèn)真的記著筆記,仔細(xì)聽(tīng)著并學(xué)會(huì)如何去在實(shí)踐中運(yùn)用所學(xué)的Linux下的各種強(qiáng)大的命令集。
在Unit 1中,徐老師詳細(xì)生動(dòng)的為我們講述了有關(guān)Linux的誕生、初成長(zhǎng)以及輝煌的發(fā)展至今,今后應(yīng)用范圍則愈來(lái)愈廣泛,講解了為L(zhǎng)inux這個(gè)偉大的OS做出巨大貢獻(xiàn)的一位位出色的、偉大的人物,他們那種學(xué)習(xí)鉆研的精神、鍥而不舍的信念、勇于把握住難得的機(jī)會(huì),從小處著手,踏踏實(shí)實(shí)的創(chuàng)造出了對(duì)人類(lèi)科技發(fā)展做出卓越貢獻(xiàn)的Linux(Unix)系統(tǒng),他們的種種,都值得我們?nèi)ド羁谭词?、刻苦學(xué)習(xí)、傳承并永遠(yuǎn)發(fā)展下去。
查看ip地址和重啟網(wǎng)絡(luò)服務(wù)是我學(xué)的第一個(gè)命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到遠(yuǎn)程登錄軟件可用xmanager。secureCRT是我們常用的,安裝好后利用其登錄到了Red hat Linux,需要知道Linux主機(jī)的ip地址。徐老師為我們介紹了重要內(nèi)容:SHELL,即運(yùn)行程序的程序,如echo $SHELL可查看SHELL的環(huán)境變量是csh還是bash。(學(xué)習(xí)心得 )指令pwd可查看當(dāng)前所在路徑,passwd:更改Linux下的密碼,僅限r(nóng)oot用戶(hù)有此權(quán)限,當(dāng)然我們是利用虛擬機(jī)VMware程序來(lái)運(yùn)行Linux OS的,懂得了如何設(shè)置虛擬機(jī)的網(wǎng)卡設(shè)置、暫停、恢復(fù)、全屏等。
簡(jiǎn)單的學(xué)習(xí)后進(jìn)入U(xiǎn)nit 2,命令行的句法讓我懂得了用法規(guī)則,一系列的命令功能強(qiáng)大:date顯示當(dāng)前年月時(shí)間星期之類(lèi)的;more指令與less重要但不常用;cat用于查看短小的文件內(nèi)容,常用!mkdir命令用于在當(dāng)前目錄下創(chuàng)建新的目錄;ls顯示當(dāng)前目錄下所有文件;cd更改文件路徑,如cd 、cd 。當(dāng)前目錄;rmdir刪除空文件夾;rm指令很強(qiáng)大,用于刪除空目錄及非空目錄下的指定或全部文件;man真男人,幫助手冊(cè);history指令用于顯示編寫(xiě)過(guò)的命令集,以history序號(hào)可顯示序號(hào)所指命令;echo回寫(xiě)命令,很重要,我需要繼續(xù)學(xué)習(xí);exit指從多重SHELL退出來(lái);Linux賬號(hào)下,可以增加用戶(hù)、刪除用戶(hù)、設(shè)置密碼:useradd、userdel、passwd。
注:所有的用戶(hù)的家目錄都在/home下面,唯獨(dú)root的家是在/root。點(diǎn)文件都是些SHELL的腳本程序,也稱(chēng)隱藏文件;環(huán)境變量常見(jiàn)的有:HOME PATH PWD,懂得了絕對(duì)路徑與相對(duì)路徑的對(duì)比概念。
最后進(jìn)入U(xiǎn)nit 3、
文件與文件處理的學(xué)習(xí)中,知道了Linux下支持的六種文件類(lèi)型:普通文件、目錄、設(shè)備文件、命名管道、符號(hào)鏈接、socket;Linux下文件系統(tǒng)的組織:倒立的樹(shù)形結(jié)構(gòu):/ /bin /boot /dev /home /lib /proc等文件目錄,ls –l指令很好很強(qiáng)大,顯示文件類(lèi)型與權(quán)限、所有者、字節(jié)大小、時(shí)間及文件名;touch可創(chuàng)建空文件,復(fù)制文件用指令cp,可選—i、—r等;重命名文件使用mv [—i];du顯示當(dāng)前目錄所占空間大??;wc命令顯示列表中文件的行數(shù)、字?jǐn)?shù)、字符數(shù);追加:cat [文件列表] 》目標(biāo)文件;find指令與grep重要,暫未學(xué)習(xí),自己在實(shí)踐中學(xué)習(xí),文件訪(fǎng)問(wèn)權(quán)限有:r w x;chmod指令可修改訪(fǎng)問(wèn)權(quán)限,如chmod 777 —R文件名。
輸入輸出重定向每個(gè)命令默認(rèn)打開(kāi)三個(gè)文件:標(biāo)準(zhǔn)輸入stdin,標(biāo)準(zhǔn)輸出stdout,標(biāo)準(zhǔn)錯(cuò)誤stderr,鍵盤(pán)為標(biāo)準(zhǔn)輸入,而控制臺(tái)則是標(biāo)準(zhǔn)輸出,文件描述符分別是0,1,2;最重要最常用的為輸出重定向>與錯(cuò)誤重定向2> ;echo添加的內(nèi)容>/ 》文件;Linux過(guò)濾器和管道:管道操作符:| ;即將某個(gè)命令的輸出與某個(gè)命令的標(biāo)準(zhǔn)輸入相連接,從而實(shí)現(xiàn)管道功能,例如ls –l |wc;管道和重定向操作符可同時(shí)用于一個(gè)命令行。