第一篇:師兄的嵌入式入門學習經驗
我是08屆惠州學院電子系的畢業生,現在從事于linux嵌入式研發工作。本人寫這一篇所謂的“嵌入式入門學習法”,是因為自己一開始學習嵌入式的時候,電子系里幾乎沒有人可以帶自己入門或者教授相關學習方法,基本上都是自己摸索著學習,可想而知,這過程蛋疼的程度讓人想死。所以希望通過這一年來自己的學習,整理出一條學習路線給以后電子系的師弟們作參考。
廢話不多說,進入正題。首先大家應該理解兩個概念,什么是處理器,什么是控制器。相信很多電子系的學生,一開始是從玩51單片機開始進入電子研發領域的,再者就是AVR單片機,參加過飛思卡爾智能車比賽的同學,應該也玩過16位的飛思卡爾單片機芯片。那么,我們所使用的單片機,它就是一個控制器,我們在其芯片上進行編程,也就是計算機領域所謂的編寫出應用程序。而像計算機系的同學,他們所寫的軟件都是在處理器上面跑的,就像我們的PC機一樣。但是當你一開始接觸嵌入式的時候,我們一般是從ARM芯片入門的,ARM具備了控制器和處理器的特性,它具有我們平時玩的單片機一樣的IO功能口,也具有處理器一樣可以搭載龐大的操作系統的特性。從這點上看,其實電子系的學生只要具備了操作系統的知識,入手嵌入式其實并不是件難事。
然而當你選擇了嵌入式學習并把它當做職業發展方向一樣對待的時候,請記住,一當堅持下去了,你將選擇了一條和玩單片機完全不同的道路。可以說,玩單片機的人,以后可以從事自動控制領域的相關工作,可以從事FPGA/CPLD這種芯片編程制作工作,也可以從事小家電領域的工作。但是玩嵌入式的電子系的學生,一開始便成為轉行計算機工作的學生了,你每天都是對著電腦編寫程序,沒錯,你就是個軟件工程師,計算機軟件工程師。當然,別懷疑自己選錯方向,電子系的學生學習驅動開發自然有他的優勢,但是,請別只讓自己成為一個驅動程序開發者(雖然工作已經挺高的了),電子系的學生完全有能力成為一個系統級別的嵌入式專家。請記得,你玩硬件出身的,你只要軟硬都會,整個產品你都可以了如指掌。
那么,我們如何來開展嵌入式學習呢。
*****************************************************************************************************************************
嵌入式五大板塊介紹
*****************************************************************************************************************************
首先,你應該了解嵌入式分為幾大板塊。
我一一講解你跟它們,在你畢業從事嵌入式工作時所接觸的程度,以及你在學校至少要學習到什么樣的程序才可以。
應用程序,分為有用戶界面的應用程序和沒有用戶界面的應用程序,前者可以簡單說是我們平時所看到的軟件。當然一般的嵌入式的軟件是用QT語言編寫出來的,計算機系的同學一般都從事這方面的工作,而沒有用戶界面的應用程序,電子系的同學是必須得會的。因為應用程序的編寫是用linux系統所提供的接口所編寫出來的,對于以后我們開發linux內核和驅動程序都是幫助非常大的(很簡單,你要調試驅動或者內核,你肯定要寫應用程序)。當然,一開始找工作,企業很希望你精通應用程序,因為這是最基本的要求,也是畢業生進入企業后唯一最能幫上忙的能力。
文件系統,在學校的時候要了解其特性和相關使用,至少必須知道你所用到和見到的文件系統的特性是什么。每一個文件系統的誕生都有它的需求所在,而了解它對以后每一個階段學習都會有幫助。但是為什么說了解就好,因為開發文件系統這活,至少要有五六年的工作經驗才可能涉及到的。所以,了解好文件系統,也學下移植文件系統吧。
Linux內核,是一個幾千萬代碼組成的程序,汗,入門時想懂它,基本不可能,不過基本相關知識點還是要懂的,怎么懂,稍后介紹。
驅動程序,簡單地說,就是把硬件的功能通過一定的封裝技術打包起來,供應給linux內核調用。那么也就是說,看datasheet就必不可少啦。Datasheet,你懂的,哥不多說。
Bootloader,是一個引導芯片初始化工作和引導內核啟動的程序包,基本上現在所用到的bootloader是U-BOOT。就U-BOOT目前來說,大部分工作都是在修改ARM初始化部分,也就是說,首先匯編語言你要懂,其次是ARM體系結構你要懂,還有就是相關ARM的datasheet你要會看。
說到這里,其實可以說,電子系的學生學習嵌入式,優勢就在于你看了很多datasheet和對硬件比較了解,開發驅動程序和bootloader會比較順手。但是,入門學習嵌入式,先從開發驅動程序和bootloader入手?當然不是。
*****************************************************************************************************************************
嵌入式入門學習規劃
*****************************************************************************************************************************
第一階段
先按著國嵌的視頻教程開始,把虛擬機安裝好,在虛擬機里面安裝好linux發行版,也就是紅帽子、fedora這些系統,最好裝國嵌用的發行版。然后把相關命令學習一下,比如怎么查看內核版本,怎么解壓安裝包,怎么進入root權限,怎么打開文件,還有怎么編寫程序,什么是交叉編譯工具。其實就是把國嵌的第一階段學習下,對整個linux環境和歷史有個大概的了解。
第二階段
首先去計算機系那邊找本《計算機操作系統》的書,花半個月的時間,把計算機系統了解一遍,什么是文件系統,什么是進程,什么是文件,什么是上下文等等。但是不要深入去了解,要通讀,就是說要把里面的概念理解清楚就好,但是有關于算法的,就不用去深入理解了,知道有這東西就行。為什么說要先了解操作系統呢,其實電子系的學生學習嵌入式,最頭疼的地方就是一點都不了解操作系統是什么。就打個比方,輸入命令這東西以前基本沒怎么接觸,可在嵌入式開發的過程中,輸入命令是最基本的事情。
第三階段
買一本叫做《Linux C程序設計大全》回來,一是對C語言進行復習以及指針這塊知識進行學習;二是對Linux C語言學習,比如Linux C的編程風格和規范性;三是這本書的內容結構非常好,基于linux內核編程,由淺到深,算是涵蓋了所有的linux編程內容。所以你搞完它,基本是對嵌入式應用程序編程應該入門了;四是這本書錯誤滿多的,你要按著它所寫的程序一個個試著自己去編寫運行,當你發現錯誤的時候試著去尋找解決辦法,這樣你會很深刻地記住很多知識點。那,這本書大概要花一個半月的時間去學習吧。
第四階段
搞一本有關linux內核的書籍,像《linux內核設計與實現》,把整個linux內核進行大致的了解,比如了解驅動程序在里面算什么。但是你肯定會疑惑,就只是為了了解驅動程序在內核中充當什么角色?NONONO,其實寫驅動程序,就是在寫內核。所以內核的很多機制很多接口你要懂。所以你先要去了解它。
第五階段
從《嵌入式Linux應用開發完全手冊》里對驅動開發進行學習吧,先了解驅動開發是什么,驅動開發具體的開發流程是什么。然后先自己對字符型的設備進行學習,開發出相應的驅動程序。
第六階段
好了,如果學習到這里,不知道你要找工作了沒。如果你想繼續,那么就開始U-BOOT的相關學習吧,這方面的學習也就一本書《ARM 體系結構》,然后按著網上流傳的教程進行學習,當然最好有開發板,推薦MINI2440,這貨還是挺權威的。
第七階段
到了這里,相信你對嵌入式開發已經算是入門了吧,嵌入式開發有哪些工作你也應該了如指掌,呵呵,五個東東:應用程序開發、文件系統移植、linux內核移植、驅動程序開發與移植、U-BOOT移植。當然最好配合開發板進行學習喔。然后在畢業前,請把應用程序開發學精,把C語言學透點,這樣子去找工作是沒問題的。當然,能夠抽空學習C++也是很不錯的,linux內核的編程思想很多都是參考C++面向對象思想的。為什么會用到,是因為面向對象的編程語言好管理和容易擴展開發,至于精粹嘛,自己去了解哈。
喔,對了,還有一本書很好,《Unix高級編程》!最好學習下哦,我說整本都要喔!
*****************************************************************************************************************************
結尾
*******************************************************************************
**********************************************
就寫到這里吧,這是我自己一路苦B過來,最后總結出來的。至于效果怎么樣,我也不
敢肯定什么。只能說一句:學習嵌入式,如果你愛上它,那么就堅持下去,它會給你帶來很多意想不到的收獲與升值。
最后還想給大家說下平時如果沒有老師幫忙或者同學幫忙,怎么辦。網絡資源很重要哦。論壇,Q群。論壇最好自己專注一個,多問多看,但是論壇的回復沒有Q群那么及時。但是在這里有件個事情要告訴大家的,就是向別人問問題的時候一定要有邏輯,不然像一些人一樣:“怎么學嵌入式?”這么一句話,汗,哥,請問誰有去鳥你呢。
所以,大致可以這樣子去問
1.你目前在做什么內容,要達到什么效果
2.你目前所遇到的問題是什么
3.錯誤或者問題所產生的提示是什么,比如把“超級終端的錯誤信息提示”截圖給大家看一下
行吧,我也不是牛人,只是希望未來電子系的師弟們能越走得越來越順,為自己的父母多爭點氣。加油!
(文中涉及到“電子系”和“計算機系”等分類字眼,作者并無議論誰好誰壞之意,只是想借“電子系”和“計算機系”兩個詞來分別說明各個專業所學習科目不同而帶來,對學習嵌入式的一些障礙而已。如文中所寫內容有對“電子系”和“計算機系”學生有不敬之意,在此說聲“對不起”!)
第二篇:嵌入式入門激勵文章
這是一篇嵌入式入門激勵文章,百度上流傳已久
? 同濟大學軟件學院院長談嵌入式方向選擇
? 時間:2007-01-09
? 嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。
嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。
一類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜軟件系統往往力不從心(例如嵌入式操作系統原理和復雜應用軟件等)。
另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫BSP和硬件驅動程序。嵌入式硬件設計完后,各種功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統的最主要工作(目前有很多公司將硬件設計包給了專門的硬件公司,稍復雜的硬件都交給臺灣或國外公司設計,國內的硬件設計力量很弱,很多嵌入式公司自己只負責開發軟件,因為公司都知道,嵌入式產品的差異很大程度在軟件上,在軟件方面是最有“花頭”可做的),所以我們搞軟件的人完全不用擔心我們在嵌入式市場上的用武之地,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。
從事嵌入式軟件開發的好處是:
(1)目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。
(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。一個產品型號開發完了,往往有較長一段空閑時間(或只是對軟件進行一些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作范圍相對狹窄,所涉及的專業技術范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下一個客戶要換成一個完全不同的軟件開發平臺,那就苦了。
(3)哪天若想創業,搞自已的產品,那么嵌入式是一個不錯的主意,這可不像應用軟件那樣容易被盜版。土木學院有一個叫啟明星的公司開發出一個好象叫“工程e”的掌上PDA(南校區門口有廣告),施工技術人員用該PDA可當場進行土木概預算和其它土木計算,據說銷路特好。我認識的某大學老師,他開發的飯館用的點菜PDA(WinCE平臺,可無線連網和上網),據他說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。我記得00級2+2班當年有一組同學在學Windows程序設計課程時用VC++設計了一個功能很強的點菜系統做為課程項目,當時真想建議他們將這個軟件做成PDA,估計會有些銷路(上海火車站南廣場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。這些PDA的硬件設計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。
從事嵌入式軟件開發的缺點是:
(1)入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適于此行。
(2)這方面的企業數量要遠少于企業計算類企業。特別是從事嵌入式的小企業數量較多(小企業要搞自己的產品創業),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導體、Microtek、研華、華為、中興通信、上廣電等制造類企業)。這些企業的習慣思維方式是到電子、通信等偏硬專業找人。由于我院以前畢業生以企業計算為主,所以我院與這些企業聯系相對較少。我院正積極努力,目前已與其中部分公司建立了聯系,爭取今后能有我院同學到這些企業中實習或就業。
(3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數公司也并無此要求,只要有經驗即可。
我院同學若學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統方面,應是我們的強項。對于搞嵌入式軟件的人,最重要的技術顯然是(實際上很多公司的招聘廣告上就是這樣寫的):
(1)掌握主流嵌入式微處理器的結構與原理
(2)必須掌握一個嵌入式操作系統
(3)必須熟悉嵌入式軟件開發流程并至少做過一個嵌入式軟件項目。
我院在嵌入式軟件方面最重要的課程包括:
(1)嵌入式微處理器結構與應用:這是一門嵌入式硬件基礎課程,我院用這門課取代了傳統的“微機原理與接口”課程(目前國內已有少部分高校IT專業這樣做了,因為講x86微機原理與接口很難找到實際用處,只為教學而已)。我們說過,嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應對ARM處理器工作原理和接口技術有充分了解,包括ARM的匯編指令系統。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節省內存又運行高速的最優代碼(嵌入式軟件設計特別講究時空效率),怎么能寫出驅動程序(驅動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,將來若同學到公司中從事嵌入式軟件開發,公司都會給你一本該設備的硬件規格說明書(xxx Specification),您必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設計軟件。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實驗室10月份建好后,您做了一些實驗后就會覺得看得見摸得著。還有同學對ARM匯編不感興趣,以為嵌入式開發用C語言就足夠了。其實不應僅是將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎么能在該處理器寫出最優的C語言代碼。在嵌入式開發的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。
[小知識] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占據了絕對主流(資料說手機中幾乎100%都是ARM處理器)。ARM是一個只賣知識產權的公司,目前獲得購買了ARM CPU核授權許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎上進行了一些外圍擴展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是采用ARM 9內核,指令一級是相同的)。而眾多中小公司又購買了這些處理器,設計了各種各樣的開發板,如華恒等國內很多著名嵌入式公司都生產基于Samsung S3C2410的開發板,供最終用戶使用或供教學實驗。在ARM這個食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,而華恒等則是蝦米,最終用戶(想我們要采購嵌入式開發板的實驗室)則是喂蝦米的。Intel早期生產的是低端ARM(Strong ARM,相當于ARM 7),現在轉向主要生產高端ARM(即Intel Xscale處理器,相當于ARM 10,主要用在高端PDA上,如HP和DELL生產的PDA都采用Intel Xscale,價格較高)。目前應用最多的是ARM 7和ARM 9兩類處理器。ARM 7較便宜,可跑uclinux(是一個不支持高級內存管理功能的嵌入式Linux系統)、Vxworks、uc/os II等實時操作系統,但因處理器不帶內存管理單元MMU(無內存分頁和地址映射機制,所以不能使用虛擬內存),所以不能跑Windows CE,另外通用Linux中的某些內存管理功能也不能用在ARM 7上。ARM 9是一個帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數功能。以上是我的一點了解,可能有不對的地方。我們學院正在建設的嵌入式實驗室(10月底到貨)包括30套ARM 7系統(擬采用Samsung S3C44b0x開發板,主要用于嵌入式處理器結構、嵌入式linux課程實驗),10套ARM 9系統(擬采用Samsung S3C2410x開發板,主要用于Windows CE課程建設),每套實驗板都配了高速仿真器,價格都很貴(比我們招標的DELL PC還貴),很容易損壞,同學應愛護使用。
(2)嵌入式操作系統類課程
除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操作系統Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統(當然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了。目前最重要的RTOS主要包括:
第一類、傳統的經典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開發平臺。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),并且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。像Bell-alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。
第二類、嵌入式Linux操作系統:Linux的前途除作為服務器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟件多、呼擁者眾,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,并且實時性不強。目前應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑;另一類是跑在ARM 9上的,一般是將Linux 2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM 9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發難度稍大。另外,目前我們能發現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由于ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但由于ucOS/II功能有限,實用用得較少,所以我院不將其作為教學重點,要學習就應學直接實用的,比如 uClinux就很實用。況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟件,對加深操作系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux開發。目前在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人;三是熟悉Linux內核裁減和優化的人。我院在該嵌入式Linux方面的課程系列是:本科生操作系統必修課,然后是Linux程序設計選修課,最后是嵌入式Linux系統選修課。我院在Linux方面目前已有較強力量,魏老師和張老師熟悉Linux開發,金老師和唐老師熟悉Linux系統管理。
第三類、Windows CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已占據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發平臺主要為WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由于WinCE開發都是大家熟悉的VC++環境,所以我院學過Windows程序設計課程的同學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低于嵌入式Linux。對于急于完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不同的側重點,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統專用于PDA上(掌上電腦),另一個是MS SmartPhone操作系統用于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺。在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?我院可能是全國高校中唯一一家開設專門的“Windows CE嵌入式操作系統”課程的學校,這主要是基于以下原因:我院本身前面便有Windows程序設計課程,同學學過VC++后再學WinCE,非常方便自然,通過學習WinCE同樣也可了解嵌入式軟件的一般開發過程,對Linux有懼怕心理的同學也很合適。很顯然,嵌入式Linux永遠不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推LINUX已好長時間,但您能看到幾個在PC機上真正使用LINUX的用戶?據我觀察,目前在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮;二是微軟亞洲研究院對我院WinCE課程的支持計劃,我們也很希望將來我院能有同學通過微軟的面試去實習。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之一,他們很需要精通WinCE的人。
總結關于嵌入式操作系統類課程,若您覺得自己功底較深且能鉆研下去,則可去學嵌入式Linux;若您覺得自己VC++功底較好且想短平快地學嵌入式開發,則我院的WinCE課程是最好的選擇。
(3)嵌入式開發的其它相關軟件課程
搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關領域包括:
A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。為此,我院已預訂了一位能開設數字圖像處理課程的博士。
B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數嵌入式設備都要連入局域網或Internet,所以首先應掌握TCP/IP協議及其編程,這是需首要掌握的基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是是很重要的。無結通信協議包括無線局域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。
C、網絡與信息安全技術:如加密技術,數字證書CA等。我院有這方面的選修課。
D、DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件專業的課程,對于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統、數字信號處理等課程基礎,對于學習MPEG編解碼原理會有很大幫助。
(4)嵌入式開發的相關硬件基礎
對于軟件工程專業的學生,從事嵌入式軟件開發,像數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程是較重要的。另外,匯編語言、C/C++、數據結構和算法、特別是操作系統等軟件基礎課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點應是在嵌入式軟件,特別操作系統級軟件,那將是我們的優勢。
我們的研究生里有些是學電子、通信類專業過來的,有較好的模擬電路和單片機基礎,學嵌入式非常合適。嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術,這方面的人目前市場上也很缺。
(5)題外話
另外,能寫驅動程序的人目前是非常緊缺的(驅動程序也可歸于嵌入式范疇),包括桌面Windows中的DDK開發環境和WDM驅動程序。公司每時每刻都要推出新產品,每一個新產品出來了,要能被操作系統所使用,是必須寫驅動程序的。寫驅動程序就必須掌握操作系統(如Windows或Linux)的內部工作原理,還涉及到少量硬件知識,難度較大,所以這方面的人很難找。想成為高手的同學,也可從驅動程序方面獲得突破。我可說一下自己的經歷,三年前我曾短暫地在一家公司寫過WinCE驅動程序(正是因為知道這方面的人緊缺,所以才要做這方面的事),盡管那以前從未做過驅動程序,應聘那個職位時正是看準了公司是很難招聘到這方面的人,既然都找不到人,驅動還得有人做,這正是可能有機會切入這一領域的大好機會。面試時大講自己寫過多少萬行匯編程序,對計算機工作原理如何清楚,簡歷中又寫著我曾閱讀完兩本關于Windows Driver Model的兩本英文原版書,寫過幾個小型的驅動程序練習程序(其實根本沒寫過,我們的同學將來千萬不要像我這樣,早練就些過硬功夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個典型的反面教材),居然一切都PASS(當然最重要的是筆試和面試問題還說得過去),這只能說明這一領域找人的困難程度。公司本就未指望找到搞過驅動的人,找個有相關基礎的人就算不錯了。做了以后,發現也并不是怎樣難的。其實搞驅動程序的工作是很舒服的,搞完一個版本就會空一段時間,只有等公司新的芯片推出或新的OS出現后,才需要再去開發新一版驅動,那時有將近一個月時間空閑著在等WinCE.NET Beta版推出,準備將驅動程序升級到CE.NET上,現在在軟件學院工作整日忙,無限懷念那段悠閑時光。
很巧合,最近本人無意中再次體會到了嵌入式的迷人之處。上周我那用了3年的手機終于不能WORK了。此次更新,除要求有手機常見功能外,最好有MP3功能(現在很多英語聽力都有MP3文件),最好有英漢詞典,最好還能讀WORD文檔。最后選了個滿足以上條件的最便宜的手機DOPOD 515(斬了我2.2K,但想想這也算自己對嵌入式事業的支持,這樣便也想開了),算得上最低檔的智能手機了。回來一查,手機的about顯示,本手機Processor是ARM,其OS是MS Smartphone(即WinCE.NET 4.2),這么巧合,簡直可做為學習嵌入式課程的產品案例了(等我們的WinCE課程開得有聲有色后,希望能從微軟研究院搞些Smartphone來開發開發)。有OS的手機果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download時都可被自動轉換成smartphone格式,真是爽。完全可用Windows CE自己開發一些需要的程序download到自己的手機上。現在市面銷售PDA智能手機火爆,MS總是財源滾滾。但我已發現國產的ARM+LINUX手機出現在市面上,價格只1.2K。
要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每個搞嵌入式的人都可選一條路,條條大路通羅馬。
? 來源:嵌入式在線
? 嵌入式軟件工程師 培訓獲得政府補助
? 嵌入式在線 時間:2007-04-02
? 為促進我國服務外包產業健康快速發展,加強行業的能力建設,加大對服務外包人才培養的支持力度,國家商務部門設立“千百十工程”服務外包人才培訓資金,并對中國服務外包基地上海示范區(漕河涇開發區)舉辦的服務外包人才培訓予以支持。
開發區軟件園培訓中心舉辦的嵌入式軟件工程師培訓作為服務外包領域的緊缺人才得到了該專項資金資助,對符合條件的學員提供高額補貼。
由于在通訊、醫療、航天航空、過程控制等眾多領域的廣泛應用,被稱為PC和因特網之后偉大發明的嵌入式智能,已成為繼IT網絡技術后又一迅速發展的技術方向。但同其快速發展相比,教育機構技術和培養的相對滯后,使得嵌入式軟件人才存在巨大缺口。
在未來相當長的時間內,嵌入式軟件人才都將是企業爭奪的目標,嵌入式軟件工程師也將是最熱門的職業之一。
第三篇:25年嵌入式經驗
我的25年嵌入式生涯
作者:周立功,出處:程序員雜志
對于今天很多的年輕人來說,一味注重技術至上的觀念刻骨銘心,其實很多時候努力并非一定有回報。
在這篇文章里,我不打算將創業的艱辛與喜悅重新回憶一遍,我確實不想去誤導大家,因為我所處的年代是一個物質缺乏的年代,成功相對來說要容易得多。每個人的成長經歷都有其個性化的東西,每個人的成功創業經驗雖然有一些可以遵循的普遍規律,但一般來說都很難復制,成功需要不斷地創新。
對于今天很多的年輕人來說,一味注重技術至上的觀念刻骨銘心,其實很多時候努力并非一定有回報。事實上,有不少出類拔萃的人才往往做出來的產品就是賣不掉,因為設計者壓根兒就不了解用戶的需求和心理以及產品功能的恰當定義,而總想在同事及其老板面前賣弄自己的技術和產品功能。其實有很多思維性的東西恰恰是很多人所忽視的,因為從一開始的出發點就錯了,怎么可能取得輝煌的成績呢?所以有時擁有卓越的技術并不一定代表人生的成功,很多企業就是死在一些自命不凡的“卓越人才”手中。
它山之石可以攻玉,減少“階段0”的開發
有所“創造”確實是人人期待的,令人矚目的發明雖然激動人心卻談何容易,人們時常將蓋茨沒有任何爆炸性的發明作為茶余飯后的笑料,我們不妨從另外一個角度去探索微軟的成功奧妙從而為我們所用。
確實不假,蓋茨的DOS源代碼是從帕特森手上“買”來的。這些年來,我收集了世界各地中英文版有關微軟的專著來比較研究,大家僅僅注意到蓋茨為建立整個行業架構標準的遠見,并嘆服蓋茨深得市場運作經驗的精髓,我認為這些研究成果都是后來者研究微軟成功經驗,是“牽強附會”不可復制的理論總結。
當初微軟公司還僅僅是一家很稚嫩的公司,可以說生存下去是蓋茨作為老板唯一的使命。事實上,正當蓋茨決定動手來寫IBM所要的OS時,原計劃在一年左右完成,但IBM公司只給了他幾個月的時間。盡管帕特森的QDOS并不完善錯誤百出,但為了履行對IBM的承諾,蓋茨購買了QDOS改貼標簽后賣給了IBM公司。蓋茨對此心知肚明,因為他知道如果用一年的時間來做OS的開發,他將失去與巨人IBM的合作機會,那是一種浪費。付一小部分的技術費用沒有關系,只要能獲得Know-how,獲得更高的利潤就好了。通過支付權利金引入技術,然后以模仿的方式學習他人的技術,再改造成符合IBM需要即可。“買”――只要有現成的就不需要自己開發,這就是蓋茨的過人之處,而且恰恰是很多人忽視的地方,值得我們所有人學習和仿效。蓋茨就是由于沒有“階段0”,從而大幅度地降低開發風險。
當年,我是一個人單槍匹馬借了2.15萬元出來創業的,可以說是負資產,后來才開始有伙伴注資6萬元。沒有經驗怎么辦?我有一個非常好習慣,讀書從不拘泥于他人的觀點,也滿足于人云亦云,否則那就是聽別人講故事,那不是您的東西,有入寶山空手而歸。我認為,要想成功就必須“研究”成功者的軌跡,向成功者學習。
下面我會把我“第一桶金”的故事告訴你,這也是盡量減少“階段0”開發一個非常典型的例子。
當年,《羊城晚報》幾乎每天都有半版廣告刊登信息臺(聽歌、悄悄話等)廣告,一打聽廣告費每天幾十萬。當時相信不少人在利用公費電話在撥打這些信息臺。后來我送貨到客戶那里發現電話機都外加了一個鐵殼并上了一把鎖,從看到那一幕開始,我決定做電話加密碼鎖,鎖長途電話0字頭,手機、BB機、信息臺的9字頭。通過朋友介紹,福州某公司有這個技術,于是我打了一個試探性的電話,使用5000元購買方案和源代碼,對方非常爽快地同意了。我生怕有變立即坐飛機到福州去,很快就見到了鄭新建工程師,他原來在福州某公司工作,我見到他的時候已經離開了福州某公司,但仍然自己寫一些產品解決方案,通過福州某公司銷售。買到方案與源代碼之后,我立即帶樣機到各地去做測試,發現這臺樣機兼容性太差,而且市場已經開始在賣的產品也存在同樣的問題,我想只要解決好兼容性的問題,如果在任何地區交換機局域網都能夠使用,那就是最好的產品不愁沒有市場。
我當時既沒有資金也沒有生產和銷售經驗,到底怎么將技術變成市場上所需要的產品呢?那是因為我找到了生產電話分線器的廣州市白云區百新電器廠的老板陳國亮,由他生產和銷售,每銷售一臺產品給我提成。以這個項目為起點,我們使用PIC單片機的數量很快就達到了每月100K以上,一年以后Microchip香港公司經理Andi主動找上門來將當時的廣州強力電子研究所發展成為了授權分銷商。
毫不否認蓋茨的遠見和判斷力是微軟至關重要的核心競爭力,但蓋茨也絕非天才,否則蓋茨就不會在瀏覽器上輸給網景了,盡管微軟使用的很多技術都不是微軟所發明的,但毫不妨礙微軟獨步天下。
注重核心技術,其余的外包
通過創業以來第一個項目的成功,我深深地體會到商業模式比技術本身更重要。通過十多年的努力,我們設計的“鐵將軍(Steel Mate)”品牌汽車防盜器、汽車倒車雷達不僅成為了全世界范圍的“隱性冠軍”,而且為GE等世界著名汽車廠商售前市場提供配套產品,與此同時我們為智能卡酒店門鎖廠商設計與制造的各種智能卡門鎖控制模塊在國內也一直處于第一名的地位。
他們為何能夠取得與眾不同的成功呢?其最大的長處就是產品創意與制造、簡約時尚風格的工業設計、模具制造技術以及精心打造的銷售渠道,這些廠商深刻明白“注重核心技術做自己擅長的,其余的外包分段取利”的基本道理,而對于我來說就是“智慧出租”,通過與強者合作獲得雙贏。
通過這些成功經驗的積累,我們開始全力以赴注重發展核心技術,將自己不擅長的技術全部外包。比如,我們長期投資清華大學計算機系,并建立以陳渝博士后為主Linux內核開發團隊,為公司底層的技術提供良好支撐,而我們自己則將精力集中于Linux驅動開發。這種分工合作、協同開發的模式贏得市場上寶貴的時間,并快速取得了應用成果。
也許有程序員會關心JTAG開發工具問題,那也是一個“外包”的項目。當時,我們在網上發現了一個由計算機愛好者業余時間設計的H-JTAG,這是一個比較穩定的調試器軟件,正好適合我們使用。于是我就同設計者聯系,并決定由周立功單片機資助他繼續開發,同時,其開發成果還免費提供給網上的用戶下載,保證它作為一個自由軟件。其實,無論是Linux還是H-JTAG都是開源軟件,如果擔心其它的同行因此受益而超越自己的話,難免需要在公司負擔很多開發人員,面面俱到地做許多事實上是重復的開發工作。其實,我們的合作伙伴都是所在領域的專家,如果自己從頭到尾去學習和開發,不僅搶了合作伙伴的飯碗,而且結果未必理想。這種情況下不但會延誤寶貴的商機,而且還會影響與合作伙伴之間的關系。其實只要引入我們企業長期積累和制定的嵌入式系統工程管理思想和規范,即可得到自己想要的結果:“做你最擅長的,其余的外包”,類似這樣的案例在周立功單片機將會越來越多。
專注與差異化生存
1999年1月23日我離開了原公司,先后分別創立了廣州周立功單片機發展有限公司與廣州致遠電子有限公司,分別從事貿易業務與產品制造。
作為代理商通過為客戶提供解決方案從而達到大批量銷售芯片是代理行業慣常使用的手段,而實際上通過設計能夠真正達到增值獲得豐厚回報的代理商卻少之又少。要知道過去公司的人才數量和資源是非常寶貴的,如果沒有正確的戰略,機會可能稍縱即逝。事實上創業開始的前幾年,我們一共為用戶設計了超過100個品類的產品,產品型號超過500種,可以說幾乎涉及到了各行各業,但能夠帶來穩定而豐厚回報的案例幾乎沒有。我經過一段時間的思考和報表分析發現,目前公司的業務做得太多、太雜,沒有將任何一個行業做精。于是我下定決心減少用戶數量集中精力在1-2個行業做強、做大,直至成為頂尖的行業專家,堅持十年如一日重點做好汽車配套產品與智能卡門鎖控制模塊的開發。通過多年的精耕細作,我們通過為直接用戶設計產品增值年銷售單片機的數量已經超過了1000萬片,無論是對用戶還是對半導體公司來說,我們無疑是一家非常有價值的代理商。
1999年5月,PHILIPS半導體公司邀請我去上海洽談是否有意向代理LPC700單片機,當我拿到用戶手冊時離去上海的時間只有5天。當時公司不像現在有250位大學生,總共只有8個人,怎么辦?我一邊寫商業計劃書,一邊與大家翻譯用戶手冊、打字和貼圖,面對機會就像抓住救命稻草一樣加班加點,每天只休息3-5個小時。第5天我趕到上海東亞富豪酒店時,我將整整齊齊的材料放在了來自美國PHILIPS半導體公司2位經理的面前,包括吃飯在內僅僅只洽談了2個小時,代理權就正式談下來了。事后他們告訴我,就是因為我與眾不同,專注且非常有個性。
風雨變換誘惑莫測,人怕出名豬怕壯,這是常理!隨后找上門來要求我們代理芯片的著名半導體公司不下10家。這時候,對于很多人來說不做什么就是一個艱難的選擇。此時,我認為不管對方開出的條件多好,有沖突的就是不做,性能不突出的也不做,如果能夠形成價值鏈互補,就一定要通過自己的努力和業績表現主動去“求”半導體公司授權給我們,我就是這樣取得了Keil、Catalyst、Sipex的代理權和信用額度。2004年SHARP半導體公司北京、日本、美國一共五位經理來到我的辦公室要求我代理SHARP的ARM,幫助SHARP在中國推廣以及制造用于全球銷售的開發套件,我根本沒有思考就一口回絕了,可以說SHARP給我的條件非常之好,特別是美國人覺得是非常不可思議的事情,作為商人這么好的賺錢機會都不要。為什么?我們之所以暫時“強大”,就是因為我們長期以來專注于發展PHILIPS半導體,集中精力對準焦點成為了小河里的大魚,進而才引起了眾人的關注。如果我們分散了精力,最后的結果一定會什么都不是!當決定專注的目標之后,接下來的就是想辦法如何做得與眾不同,這是一件不容易的事情。最重要的就是窮舉用戶最大的需求和競爭者最容易忽略之處,然后將其做到最好。為了推廣好PHILIPS的單片機和ARM,我們定位于幫助初學者快速入門,至今一共編寫出版了20多本專著,并將大部分版權全部捐獻給了出版社用于降低成本,同時我也還會繼續堅持將這項工作做下去、爭取做得更好。鄧小平有一句名言:“計算機要從娃娃抓起!”我認為,任何一個有遠見的廠商,要想成功地推廣嵌入式系統,一定要從在校大學生抓起,這必定是一件一舉多得的好事。既能夠提高企業的美譽度,又能獲得市場占有率,還能為學生提供實踐的理論基礎。為何很少有廠商或者代理商心甘情愿去做?這不僅可幫助企業建立差異化,而且還能夠給企業帶來長遠的利益,何樂而不為? 比如說,至今在國內任何一家代理商的網站上幾乎都找不到完整的芯片中文數據手冊、用戶手冊與應用手冊,不是我們的同行不知道其中的重要性。首先大家普遍認為這是半導體公司的份內之事,其次大家或許感到自己做好之后放到網站任由用戶免費下載,會給其它代理商占了便宜。但很多人卻始終不明白,這是滿足用戶需求制造公司服務差異化的最佳機會。
于是我們決心從網站入手堅持長期投資,做中國最好的嵌入式系統專業技術網站,建立專業的技術支持與開發團隊。特別是對于優質用戶的服務,網站還專門開通了“快速綠色通道”,如果這樣的用戶遇到問題,都是由我、分公司經理及其相關服務部門的經理牽頭負責實施“保姆式”的服務,我們實施的服務戰略就是:“用有限的資源為有效的用戶提供高質量的服務”。
“你若親近神,神就親近你!” 2001年8月一篇來自PHILIPS內部刊物的報道《風險意味著機會》,我是被推上了“本地英雄”封底人物欄目的第一位亞洲代理商;2004年PHILIPS半導體公司又給我授予了“優秀卓越貢獻獎”,來自全國各地的用戶連續多年通過《亞洲資源》媒體將我們公司評選為“本地十大最受客戶歡迎的分銷商”。沒有用戶崇高的忠誠度和長期的大力支持,我們不可能從1999年以來連續多年銷售單片機取得PHILIPS亞太區第一名的業績。
一個“人棄我取”的機會成就了我,盡管個人與團隊的努力至關重要,但可以毫不掩飾地說,如果沒有PHILIPS半導體經理的慧眼相馬,一定是巧婦難為無米之炊,業界不會再有我的一席之地。
在嵌入式系統應用技術方面與我們不相伯仲或者說比我們聰明能干的人才何止萬千,為何只有少數人能夠脫穎而出呢?就是因為想法太多、不專注,不能堅持在一個行業里面十年如一日地下苦功夫。但面對眾多的競爭者和后來者,我每天都如履薄冰,不敢有絲毫的懈怠,每天堅持學習到深夜,因為唯有不斷地學習和更新思維才有可能具備遠見并及時規避可能出現的失誤。
第四篇:剛才看到一位師兄的學習經驗(考研)
剛才看到一位師兄的學習經驗,他說的好全哦,就轉來給大家看看~~ 經驗一:如何延長學習時間?
1.到人不多不少的自習室自習。人多太擁擠,還容易缺氧,甚至會造成巨大的壓力。人少學習氛圍不濃,甚至會造成孤獨感,容易很快回寢室。
2.買一個坐墊,甚至買兩個。男生用坐墊可能很容易被大家鄙視,但是我的體驗是:不用坐墊最多坐6小時就很累了,而用坐墊可以堅持到10小時以上。后期用一個坐墊坐時間長了都受不了,我又買了一個。
3.找個研友,互相監督。找研友不是找考研伴侶,最好別找異性,首先找異性很費勁,而且絕對會分心。我很少看到成對的堅持的時間比我長。研友的關鍵素質是能坐,畢竟復習大多數時間是彼此獨立的。不過研友很牛當然更好,可以在吃飯或學累了休息時互相促進。一般很多人都是從暑期開始復習的,那時候就應該留意了,最好在暑期結束前找到。
4.適當午休。
5.聽mp3。在自習室很鬧、心情不好或者看書覺得惡心,但是還有學習任務沒完成時,聽mp3可能會有所幫助。邊聽mp3邊學習,甚至可以在自習室搖頭晃腦,只要動作不要太大影響別人學習就行。還可以干脆邊聽mp3,邊出去走走。(不過在沖刺階段我壓力很大,覺得時間緊得沒空聽mp3了就沒聽了)
經驗二:如何在炎炎夏日靜心復習?
1.打開自習室的門。自習室可能很悶熱,人又多,但是可能常常關著門。(可能是上大課關門習慣了)可以利用去廁所的時候順便把門打開。如果門常被風吹關就用垃圾桶頂住門。
2.準備一個毛巾。天熱容易出現流汗太多以至于進眼睛的情況,去洗手間用毛巾洗臉可比就用手洗捧水方便多了。而且在學郁悶了或者困的時候就可以去洗洗臉提神。
經驗三:如何安排作息?
1.中午最好午休。午休有以下好處:首先,飯后很困,學習效率不好,吃完飯馬上去學習一會就會困,在桌子上睡不爽且不說,睡醒了還會很累。其次,從早7點坐到晚上10點,就算坐N個坐墊都會覺得很累,晚上睡覺時平躺都會覺得背和屁股很痛難以入睡。中間加個午休就可以讓身體沒那么難受而且可以保持一整天學習的高效率。最后,中午吃飽了回去馬上睡也不舒服,可以在睡前聽些考研輔導班。這樣也不用專門找時間聽班,可以保證學習的連續性。
不過午休也有不好的地方:一方面,可能寢室氛圍不好影響聽班和午休的效果。(如其他人玩游戲或看電影把聲音放出來,聽班時會分散注意,午睡時可能影響睡眠質量甚至睡不著。)另一方面,午休時間過長會縮短下午學習時間。
所以,我一般都是吃完飯12點,回寢聽班到1:30,睡到2點。這個時間安排因人而異,可以適當縮短或延長。
2.每周至少放半天假。我當時的安排是周六下午休息。一般是飯后先聽會班,再睡會,然后去洗澡,回來再聽會班到晚飯時間出去學習。其實也可以完全休閑:看會電影、玩會游戲、看看搞笑的娛樂節目都無可厚非,都累了一周了。
3.在郁悶的時候可以適當放放假以調節心情。最多放假一天,而且在寢室無聊可以聽班,只是換一種方法學習。如果一周放假好幾天,反而學習一兩天,就不叫偶爾放松了,而是在長期的休閑中因內疚學一兩天習。
4.最好不要熬夜,12點以前最好睡覺。對我而言,一般接近12點睡,早上7點能自然醒。但是12點半左右睡,要8點才能自然醒。而且12點后的學習效率顯然不高,如果學興奮了還容易失眠,到快考試了很難把生物鐘調過來。
經驗四:如何利用電腦學習而不是被電腦所累?
我覺得這算是很簡單但是很有效的經驗:刪掉所有游戲和電影,用考研資料裝滿電腦。不過要下大決心。我在4月份偶爾郁悶還會玩魔獸爭霸,但是我發現玩一局動輒要1小時,要是玩RPG用時間更多。太浪費時間了,想想一個考研輔導班(比如馬哲的強化班、新東方唐靜的翻譯強化班)才要10小時左右,就是幾局魔獸。我就把魔獸爭霸刪掉了,直到考完才重裝。要知道現在網絡資源很豐富,刪掉的游戲電影想要很快就能找回來,就覺得刪掉也不可惜。而且要重裝游戲或者上網下載都很麻煩,每次想玩或看電影就會覺得麻煩,一想還有考研輔導班沒看完就順便聽班了。
經驗五:怎樣安排計劃?
1.一天的日程:我一般7點多起床,加上收拾東西、吃飯、去自習室,將近8點就能正式開始學習了。學到11點多去吃飯到12點回寢室。聽班到1:30,午睡到2點多,去自習室。2:30能到自習室,5點多去吃飯,吃飯到6點多,回自習室學到10點多清樓,回寢洗漱到11點,去自習室學到12點就睡了。
2.利用黃金時間,不放棄垃圾時間。對我而言,黃金時間是上午、下午、晚上的大塊時間,垃圾時間是飯后的一小時左右。
黃金時間:(除政治外,安排正好和考研的考試時間對應)
上午我一般就看數學,因為那個時段做數學正確率高,下午或晚上如果做數學會犯些低級錯誤,影響心情。
下午我一般做英語真題或看專業課書。
晚上8點到10點,我一般會看專業課書。
垃圾時間:
早飯后:背半小時單詞。
午飯后:聽班睡覺。
晚飯后到8點:看2小時政治。
3.計劃的方向要遵循,但具體怎么執行要保持靈活:也就是說不是什么時候想看什么就看什么,而是應該有個大體計劃:這個月看什么?這周看什么?今天看什么?因為人往往趨利避害,比如一個人數學強而專業課很弱,那他做數學題就很順,就愿意多做些數學題,而看專業課時就會經常受阻,甚至備受打擊,就不太想看專業課。但是對強項投入再多的時間總分也不會漲幾分,反而突破劣勢科目會讓總分大進。還有一點很重要的是:如果劣勢科目不好好抓,可能過不了小分線,那樣就算總分過線也沒用。今年英語就考得比較難,很多英語不好的考完都怕過不了小分線。
考研是個大工程,最好分階段,不同階段應有不同復習重點。
經驗六:用不用在外面租房子住?
如果寢室環境不好:寢室常年有人邊看電影或邊玩游戲邊放音箱、有人在寢室邊打牌邊打鬧、大多數人在找工作而且每天談論這個話題、最壞的情況是每天寢室夜話到你生物鐘不能承受的時間。在這種環境下,在經濟條件允許的情況下可以考慮出去租房子。
租房子也有不少缺點:1.去找房子、收拾房子、搬書進去都要花不少時間。2.很花銀子,我了解到的基本上每月光是房租就不低于300。3.很多租房子的人白天也都會去自習室學習,一般租的房子都在校外,這樣每天從校外到校內走路會浪費不少時間。4.也有些人會呆在租的屋里,但是常常睡得多,學得少。這樣租的屋反而成為考研路上的絆腳石。5.在外面住也
影響和住寢室的同學在考研方面交流。
不過建議要考外校的最好在最后一個月出去租房子住,因為即使全寢考研的難免在最后一個月比較緊張而在晚上經常討論考研到生物鐘難以忍受的境地。我就比較郁悶,在最后一個月重病兩次不說,出院后寢室經常夜話到12點半左右。我開始學到12點回到寢,但是聽他們聊半個小時反而更清醒常到1點后才睡得早,加上病還沒痊愈,要早上8點多才能起來,這樣白天的復習計劃就被打亂了。后來沒辦法,學到12點回寢看一下如果沒人說話了才進去睡,如果還在聊就繼續出去學到12點半回來,一般這時候他們都會睡了,我一會就能睡著了,早上7點半就能起來了。害得我生物鐘都被打亂了,到最后兩天根本就沒辦法調整過來。
經驗七:如何在和平踢座?
在自習室占座的書很多,但是人卻很少,為了不想換教室只有選擇踢座。踢座要有隨時被反踢的心理準備,而如果那人來了,我的做法是立即換個座踢,而不是和那個人起爭執。如果起爭執反而浪費時間,而且還會影響心情。踢的時間長了,反而習慣了,有時看到空座反而不想去坐,而想去踢一個座。這就是所謂的和平踢座,這樣就不怕到自習室沒座了。而且有時候那個占座的會因為內疚而收書離開。
經驗八:數學、政治、英語用不用做模擬題?
政治肯定得做模擬題以理解知識點,但是真題永遠比模擬題簡單很多,所以不用擔心模擬題錯了多少,最關鍵的是掌握住所有的知識點。
數學做全書的過程也算是做模擬題了,不過全書離真題還是遠得很。我做完全書后做真題才發現真題出得是何其陰險,命題專家挖了很多坑等著我們去跳。做套題還會有時間問題。但我當時由于時間很緊,連真題都沒做完一遍就開始考試了。雖然400題和合工大5套題都買了,就是沒時間做。就體驗考研來說是個遺憾,不過對于最后的考試來說沒什么損失,反而少受些折磨(據說400題相當打擊人,題目難度大,而且計算量很大,小題的計算量有時甚至比大題的計算量還大)。總之,數學可以不做模擬題,不過要研究透10年真題。當然如果有時間做幾套模擬題還是有幫助的。
英語不用做模擬題,所有的模擬題都會嚴重失真,這樣不僅會浪費時間,還會誤導解題思路。據說畢金獻的模擬題難度比考研還大,考試蟲的難度又比考研的低,根本無法用模擬題仿真。在題目難度不同的情況下,也沒法做一整套模擬題去看能不能在考場上在3個小時內做完卷子。我留了一套05年的真題在考前3天模擬了一下,發現翻譯和新題型比預計的要費時,而且新題型很難提高,在考場上就先做的作文,再做翻譯,最后做新題型。這樣寫作文不會很倉促,能保證作文質量。我寫作文時心情很好,雖然以前從來沒完整地寫過1篇,但是居然能在50分鐘內搞定一大一小兩個作文。回過頭來翻譯做了30分鐘(今年翻譯難)。還剩20分鐘,做新題型,由于題簡單,只用了10分鐘就搞定了。剩了10分鐘檢查了出了作文的幾個主謂一致的錯誤。
經驗九:是集中復習還是分多遍復習?
集中復習是指在近幾天內對某一章或某一專題看幾本復習資料。比如:復習數學的中值定理證明,既看教材,又看復習指南的相關部分,還看復習全書的相關部分。這樣復習的優點是在一段時間內能突破知識點,便于較全面地總結某一題型的各種解法,而且在一段較長的時間內不會忘記相關的知識點和解題方法。缺點是:1.整個科目的復習進度會減慢,可能導致后期沒時間做套題。2.如果不及時復習的話,會出現很多幾個月前集中復習的知識點和總結的方法遺忘的情況。3.考研輔導書很接近,所以會造成大量的時間重復做功。有人想是不
是可以重復的題直接跳過?其實輔導書上完全重復的題極少,而且在做同樣類型的題目時未必能立即反應出這個題做過。再說就算是完全重復的題,再解一遍也可以加強熟練度。
分多遍復習是指一遍的復習盡量用一本輔導書且不會過頭來復習,這樣在很短的時間內就能復習完一遍,然后可以進行
第五篇:嵌入式LINUX系統開發入門學習步驟和技能總結
嵌入式LINUX系統開發入門學習步驟和技能總結
對于很多學習嵌入式LINUX系統開發的人來說,經驗和技巧是很重要的,要不然就會落得一個事倍功半的效果。對于一個初學者或是一個零基礎的人來說,該從哪里著手學習,該買那種參考書?
這些問題也一直困擾著很多想在嵌入式LINUX系統開發有一番作為的人群,為此深圳達內福田培訓中心的老師們就嵌入式LINUX系統開發入門學習的步驟和經驗技巧做了些簡單的總結,希望可以幫助到更多這方面有需求的人群。
首先就是跟著深圳達內福田培訓老師們來了解下嵌入式LINUX系統開發入門學習的基本步驟:
1.Linux操作系統核心
課程主要包括Linux 的基本命令和linux培訓基礎編程知識,包括Linux的文件操作和目錄操作命令,VI編輯器,GCC編譯器,GDB調試器和 Make 項目管理工具等知識,為后續嵌入式linux學習做好準備。
2.C語言核心
講解在嵌入式開發編程中C語言的重要概念和編程技巧中的重點難點,以復習串講和實例分析的形式,重點介紹包括函數與程序結構,指針、數組和鏈表,庫函數的使用等知識。C語言在嵌入式軟件設計中的地位相當重要,學好C語言和數據結構將能為后續的學習、開發工作打下堅實基礎。
3.Linux編程核心
將了解到Linux系統中的進程的概念,從內核的角度了解進程的原理和實現。同時會掌握Linux下守護進程的編寫方法,了解Linux下幾種進程間通訊的方法,并具備編寫進程間通訊編程的能力。
4.ARM體系結構
了解ARM體系結構及工作原理,掌握ARM指令集,學會操作ARM處理器的基本方法。ARM處理器在嵌入式系統中有著廣泛應用,消費類市場幾乎90%以上產品都使用ARM處理器,掌握基于ARM的嵌入式軟件開發,學員可以有更為廣闊的用武之地。
5.嵌入式Linux移植
使學員快速掌握嵌入式系統開發的流程,系統移植的方法,Bootloader的原理,可以編寫自己的Bootloader。學習本課程的學員能夠從事嵌入式系統相關的項目開發。
學習嵌入式LINUX開發,必須注意學習的方式和方法!就把這個嵌 入式開發板當作一臺WINDOWS PC,就像用VC一樣在上面做開發(只是 開發模式由原來完全的本地開發變成宿主機--目標板的模式了)。絕對不要去盲目閱讀LINUX內核分析之類的書籍,對于初學者一兩年內根本用不到這個!就像在WINDOWS下開發永遠不要關心WINDOWS內核一個道理,不要因為LINUX
內核是源代碼開放的,就非要去研究LINUX內核。
在嵌入式板卡上做任何稍微復雜些的工作,心里沒底的話,就一定養成先在REDHAT LINUX PC測試的好習慣。無論你做GPRS/CDMA/PPP/ADSL撥號還是做USB無線網卡驅動,還是
SAMBA/VPN/SNMP等協議軟件,都先在REDHAT LINUX 上配置好,測試通過有了感覺之后再到嵌入式上試,因為ARMLINUX跟REDHAT LINUX對于我們開發人員而言幾乎沒有任何區別!切忌冒進!不要試圖去通讀CPU的manual,沒有用的,就像不要為了做嵌入式LINUX就要通讀LINUX內核源代碼分析一個道流。以目前實際的工作為主線,涉及到什么再去大致了解一下相關內容,例如我們第二步要做MODULES形式的驅動,那么這時去大致翻翻那本《LINUX驅動開發》一書的幾頁還是會有些幫助的,但也沒有必要全部通讀!
除此之外深圳達內福田培訓中心還有更多針對800多個核心知識點,近200萬字的在線文檔,近2000道針對所有知識點的在線測試近,200道課后作業描述文檔及作業在線評測平臺等共各個學員更加深入的學習,對于此也可以打電話咨詢下0755-82353533。
如果勵志成為一名真正的嵌入式軟件工程師一些必要的培訓還是需要的。