學習嵌入式的感想(來自分享)

一.學會裸奔:從51出發。
在這個階段有三個目標:
1.學會看原理圖,熟悉掌握IIC,SPI等等協議(之後會發現無論MCU或是SOC怎麼變可是這些協議仍是同樣的)。
2.瞭解51單片機的工做原理,明白其是怎樣執行程序的,內部資源有哪些(串口,DAC,ADC等)。
3.熟悉C語言在單片機編程中的運用(瞭解C語言基本語法)。
---》這個階段我推薦幾個好的資源吧!
1.霖峯的天狼心51單片機入門視頻教程(免費的)。
書籍我推薦
1.北航的51單片機初級教程(原理性的東西比較多)。
2.郭天祥的51單片機的書(實用型的東西比較多)。
可能你們是以爲原理性的東西沒用,我以爲很是有用,它能讓你明白爲何這麼作,而不只僅教你這樣作就好。

二.初識操做系統:STM32與ucosII。
在這個階段有四個目標:
1.瞭解一些高級協議如USB(圈圈教你學USB入門最佳),SD卡,TCP/IP(閱讀uIP源碼)等。
2.初步接觸ARM體系MCU(明白ARM和51的區別,它又是怎樣取指、譯指的。程序又是怎樣燒寫到內部的FLASH的。到底RAM是起怎麼做用的)。
3.接觸操做系統,ucosII(麻雀雖小五臟俱全)是入門操做系統的神器(明白爲何用操做系統,怎樣才能稱得上操做系統,任務的切換、調度,怎樣動態的分配內存等)。
4.深刻理解C語言,明白結構體(在stm32頭文件中處處都是結構體以及結構體指針)怎們用,函數指針(stm32自帶的USB協議處處都是函數指針)是什麼一回事,鏈表(ucos的TCB和任務就緒表就是鏈表結構)用在什麼地方。
在這個階段我推薦跟着原子學,可能你們會以爲我在拍馬屁(這是原子的論壇)。爲何跟着原子學我就說說個人理由吧!
1. 原子的源碼是寄存器版本的跟51是無縫對接的,學了51的人很容易上手的。不像市面其餘的開發板一開始就是庫函數,其實都是MDK自帶稍加修改而已。搞的 我是雲裏霧裏。多是我太菜了。固然庫函數開發也是一種很好方法(只是我的認爲不適合初學者,初學者老是會去找似成相識的感受,或是站在之前的基礎上學習 新知識)。
2.原子的代碼質量很高(裏面涵蓋c語言基本及一些高級用法),幾乎上都是他本身實現的。特別是兩個綜合實驗(怎樣實現GUI,怎樣實現程序的後臺執行)是值得咱們去研讀的。
3.原子是一個腳踏實地的工程師(實幹精神)。爲何呢?由於他代碼是一個一個敲出來的(不像本人太浮躁每樣東西都學的是半桶水可能尚未吧!)。
---》我推薦幾個好的資源吧!
書籍我就不推薦了原子都推薦了。免費視頻我推薦3個
1.劉凱的STM32視頻教程(免費)。
2.劉洋的STM32視頻教程(庫函數版本的視頻。後面是收費的,買他的開發板就能夠免費看。講的比較詳細)。
3.劉凱的ucosII視頻教程(免費)只是梳理性的講解知識點,最好是視頻和書一塊兒看。
到了這裏可能會有些朋友會有疑問有了STM32我爲何還要學51,我也只能回答你1+1=2.(基礎很重要,冰凍三尺非一日之寒。)
仍是要吐槽一下哦,原子是個大牛,別但願大牛能手把手教你學STM32。

三.深刻ARM,初識LINUX,深刻Linux。
1.從裸機程序(不用集成開發環境能讓你明白程序是怎樣生成.bin的,從編輯到編譯瞭解編譯器究竟是個什麼東東)到Uboot(就是一個大型的裸機程序,擁有強大的文字交互能力)再到編譯Linux內核再到寫驅動(瞭解Linux內核的強大的數據結構)。
2.從ARM9出發,深刻了解ARM,進而瞭解電腦的工做原理(自從接觸了ARM9(linux)我逐漸明白基本的電腦工做原理)。
3.不得不說linux是個偉大的做品,開源讓咱們共同進步。
4.gui子系統(這會咱們最好奇的地方,我點點鼠標就能安裝程序、運行程序。裏面究竟是什麼緣由)。人類是很是感性的,gui是人們最直觀的感受。在這個很重視產品體驗的時代,不得不gui很重要。
可能你們會疑問爲何有ARM cotex-A系列還學ARM9幹嗎?
這 也就比如有了STM32還要學51幹嗎!ARM9資料最全,你學習中遇到的問題之前確定有人遇到過這就能解決你的問題,學習東西老是從簡單的入門,開發產 品老是挑選性價比最高的那個,款且ARM系列的SOC原理是相通的,正所謂一理統統百理(韋東山一位嵌入式大牛)。你若是是學習的話追「芯」是追不贏的。
---》這部分我推薦幾個好的資源吧!
1.國嵌的視頻(免費的)框架性的東西只能是初步瞭解。
2.韋東山的Linux視頻(第一期免費,後面是收費的(二期280,三期180)對於學生來講比較貴)。
至於書籍是無數了太多了我也推薦幾本吧!
1.Linux源碼情景分析
2.Linux驅動詳解
3.Linux徹底開發手冊
我我的認爲學習是按部就班的一步一個腳印的來若是上部分沒理解(到位)透徹的話到時候確定要返工(本人就是這樣的)linux

相關文章
相關標籤/搜索