我認為應該學習一下51和STM32,但是僅限於學習它的原理並了解它的應用,不用用來做太複雜的東西。利用51和STM32鞏固自己的C基礎、資料結構、計算機組成原理等基礎。
階段一
《The C Programming Language》【美】Brian W. Kernighan David M. Rithie;
《UNIX 環境高階程式設計》(沒必要一口氣看完當字典使也是不錯的);
《UNIX 網路程式設計》(同上);
以上兩本書重點:程序,執行緒,IPC以及基於socket的網路程式設計章節是重點,要掌握基於select/poll/epoll的高併發伺服器模型;
看完這兩本之後寫一些小軟體玩玩,天氣預報,計算器(逆波蘭),網路聊天室之類的,此外看一些開源庫,推薦libevent(對於初學者來說難度很大,不過這不是不看的理由),以此強化C語言,加深對網路程式設計和執行緒相關概念的理解及應用。
階段二
此時,題主可以買個STM32的開發板玩玩(基於庫開發和暫存器開發都要會),一定要熟讀datasheet以及STM32參考手冊,這期間一定要將常見的介面與匯流排搞明白了,如:串列埠,IIC,SPI,CAN,乙太網介面,SD和SDIO等,然後題主可以用其做一些小玩意,如:體溫計,平衡車,小四軸等等;
一定要多動手,多練,多動手,多練,多讀晶片datasheet,別做伸手黨……
然後嵌一個uCOS或者FreeRTOS玩玩,了解一下這些輕量級作業系統的原理,網上有一些電子書籍,題主可以自行查詢,推薦邵貝貝的書。
階段三
這一階段題主需要買一個ARM開發板了,可以選擇ARM+FPGA或者ARM+DSP,題主可以自行上網了解一下具體買哪一個
這時需要的書籍如下:
《鳥哥的linux私房菜》(linux平臺下的各種命令一定要熟爛於心啊);
《Linux與Unix Shell程式設計指南》(此書已絕版可以買二手,影印或者下電子版);
《ARM體系結構與程式設計》(杜春雷著,一定要配合UBOOT看);
《Linux裝置驅動開發》(LDD);
《Linux裝置驅動開發詳解》(宋寶華);
《深入理解Linux核心》;
《Linux核心原始碼情景分析》(毛德操著);
還有一些只要是程式設計就需要掌握的理論基礎:
《演算法導論》;
《資料結構與演算法分析》;
《深入理解計算機系統》;
《作業系統:精髓與設計原理》;
《編譯原理》;
為了紮實C語言還有如下不錯的書:
《C和指標》;
《高品質C++/C程式設計
我認為應該學習一下51和STM32,但是僅限於學習它的原理並了解它的應用,不用用來做太複雜的東西。利用51和STM32鞏固自己的C基礎、資料結構、計算機組成原理等基礎。
階段一
《The C Programming Language》【美】Brian W. Kernighan David M. Rithie;
《UNIX 環境高階程式設計》(沒必要一口氣看完當字典使也是不錯的);
《UNIX 網路程式設計》(同上);
以上兩本書重點:程序,執行緒,IPC以及基於socket的網路程式設計章節是重點,要掌握基於select/poll/epoll的高併發伺服器模型;
看完這兩本之後寫一些小軟體玩玩,天氣預報,計算器(逆波蘭),網路聊天室之類的,此外看一些開源庫,推薦libevent(對於初學者來說難度很大,不過這不是不看的理由),以此強化C語言,加深對網路程式設計和執行緒相關概念的理解及應用。
階段二
此時,題主可以買個STM32的開發板玩玩(基於庫開發和暫存器開發都要會),一定要熟讀datasheet以及STM32參考手冊,這期間一定要將常見的介面與匯流排搞明白了,如:串列埠,IIC,SPI,CAN,乙太網介面,SD和SDIO等,然後題主可以用其做一些小玩意,如:體溫計,平衡車,小四軸等等;
一定要多動手,多練,多動手,多練,多讀晶片datasheet,別做伸手黨……
然後嵌一個uCOS或者FreeRTOS玩玩,了解一下這些輕量級作業系統的原理,網上有一些電子書籍,題主可以自行查詢,推薦邵貝貝的書。
階段三
這一階段題主需要買一個ARM開發板了,可以選擇ARM+FPGA或者ARM+DSP,題主可以自行上網了解一下具體買哪一個
這時需要的書籍如下:
《鳥哥的linux私房菜》(linux平臺下的各種命令一定要熟爛於心啊);
《Linux與Unix Shell程式設計指南》(此書已絕版可以買二手,影印或者下電子版);
《ARM體系結構與程式設計》(杜春雷著,一定要配合UBOOT看);
《Linux裝置驅動開發》(LDD);
《Linux裝置驅動開發詳解》(宋寶華);
《深入理解Linux核心》;
《Linux核心原始碼情景分析》(毛德操著);
還有一些只要是程式設計就需要掌握的理論基礎:
《演算法導論》;
《資料結構與演算法分析》;
《深入理解計算機系統》;
《作業系統:精髓與設計原理》;
《編譯原理》;
為了紮實C語言還有如下不錯的書:
《C和指標》;
《高品質C++/C程式設計