嵌入式系統近來年是當前熱門有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(SetTopBox)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等都是典型的嵌入式系統。
正如嵌入式行業的快速發展,吸引了大多數的人去學習嵌入式,那么對于一些嵌入式學習的人而言,如果把一些基礎的東西學完了,如何能夠進一步的成長,大家該學習哪些書籍呢?如果沒有讀過計算機專業的基礎課程,那么計算機基礎課程是一定要學習的。
數據結構、離散數學、操作系統、編譯原理這四門課學習完。數據結構和操作系統兩門課程一定要細心學習,這個是基礎理論。特別是數據結構,建議學習《數據結構(C語言版)》。再找一本國外的,一共兩本,學個一年。把書上的例子都用C寫一遍。一些重要的代碼需要背下來。側重對算法空間和時間的分析。
C語言的書,我并不推薦某個具體的書。只是買一本講得比較全面的。如果學習C++的話,并不推薦《C++Primer》作為基本的學習。這本書對泛型做了較為深入的闡述。是的深入的教材。在單片機里泛型用得少,甚至C++用得少。寫書的人一般水平都不低,把一本書吃透,理解透,水平也不會低。選好了,要有把這本書讀上10遍的決心。我當年選了一本不是太好的C++的書,看了幾十遍,書籍都翻斷了,書中的優點,錯誤,還有疏漏都找出來了。做了各種各樣的標記。
什么是好的代碼?怎樣評估一個好的代碼?這方面的書,我還真沒怎么看到。所以我一般推薦同事讀一下《 MISRA C/C++編程規范》 之類的書,如《高質量C/C++編程》,《effectiveC++》。這兩本書需要和基本的C/C++書呼應起來。但我更加推薦去讀一下,LDRA、C++test的幫助文件。這兩個是非常有名的靜態測試軟件,對代碼非常詳細詳盡的靜態評估。其評估指標是非常具有意義的。學習幫助,了解這些評估指標,對提高編程的質量有非常高的工程意義。
能寫出好的代碼了,下面就是和自己的職業發展相關的了,如果主攻Linux方面的嵌入式,好書太多了。我也就不推薦了。如果主攻RTOS類的嵌入式或前后臺這種,我倒建議看看些OO方法或UML建模方面的書,操作系統原理的書。再加上代碼的研讀,諸如像uC/OS-II這種書,可讀可不讀。也許讀后,你覺得還不如看其他的方法,操作系統原理+讀代碼。