回覆列表
  • 1 # 橋的那邊

    我認為應該學習一下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程式設計

  • 中秋節和大豐收的關聯?
  • 你用過的最好用的聽歌軟體是什麼?比如天天動聽?