可以推薦一些學習微機原理,單片機,嵌入式或者FPGA的經典書籍,可以少走彎路?

例如我所知的51的有郭天祥的書我看了,確實很好,ARM有《權威指南》,FPGA有《深入淺出玩轉FPGA》,還有《VERILOG那些事》還有哪些看過的自認為很好的,硬體方面的也可以


不要看書,各家晶元或者工具裡面自帶的文檔和示例工程才是權威,各種亂七八糟的書多數都是翻譯了事(而且翻譯的沒有最渣,只有更渣)

——————————————————————————————————————

看來不少人都被各種騙錢的xx入門xx指南坑過,其實就好比你買了個冰箱,想要學會怎麼用你會去看廠家的說明書而不是在淘寶上看買家曬單。

以FPGA為例,個人習慣用Xilinx的,他家作為買晶元的,肯定是盼著能多賣一點,恨不得手把手地教會你怎麼用,而且還想讓你做出好產品,想讓你的產品大賣,然後你才能多買幾片不是么。所以你可以看到他家的文檔幾乎是面面俱到,而且在各個可能的應用場景都給你開發過原型系統來給你參考。

原廠的文檔千好萬好只有一點不好——那就是都是英文的。但是怎奈主流IC廠商都在英美呢,所以既然題主想要干這行,必須克服對英文文檔的恐懼。


多動手做才是王道,就像 @時國懷 提到的,你不實際做過看一百遍書都記不住。

同意 @王天祺 的觀點。盡信書不如無書。

現在的很多書在排版和編輯的時候都可能會有些點寫錯或寫反的。而且這些書大多都是只出一版賺完錢就走人。有錯漏也不會補上。(除非你買第二第三版的書)

各個晶元廠家自己出的Datasheet和使用指南、應用方案等Pdf文檔都是免費下載的。廠家為了保證信息的準確性,會定期更新Datasheet並給出舊版的勘誤表。

我剛畢業時候,公司要求我使用PIC單片機,在學校只學過51的。當時工資低還沒個固定住所,懶得拖一大堆教科書跑來跑去,就直接在Microchip的官網下載Datasheet文檔和使用指南在本本上看。就著公司的PIC開發板做實驗,半個月就掌握了PIC16/18系列的晶元。


當你從事嵌入式開發的時候,不太可能讓你一個人設計一個完整的系統,通常只是參與設計一個小模塊,因此直接學大框架設計是沒有必要的,嵌入式開發人員最需要的是基本功,所以,先鍛煉好C語言能力。

看書不會讓你少走多少彎路,動手編碼才能真正讓你少走彎路。

多讀代碼,提升自己掌握大規模代碼(比如超過十萬行的模塊)的能力。

多寫代碼,熟悉各種基本演算法,熟悉函數指針數組、各種狀態機編寫等基本C語言技能,這些都是動手做出來的,看書,未必管用。

先趕緊開始寫代碼吧。

舉幾個例子:

1、Linux內核中使用了大量的do {}while(0) 這種宏定義,為什麼這麼用?

2、宏定義里用#代表什麼意思?

3、如何快速統計一個int型整數的二進位數里有多少個1?

……

動手寫才能理解,看書,過後就忘了。


FPGA入門書2本,需要通讀:

《Verilog HDL設計與驗證》 吳繼華 王誠

《FPGA Prototyping by Verilog Examples》Pong P. Chu

我對黑金的編碼風格存有異議,所以不推薦。


王天祺 說的非常對

我記得我很多年前第一次用PIC16F877A的時候,不懂去官網查資料,在噹噹上買了一本北航的XXX從入門到精通。

結果有個地方印錯了........半個月卡在一個寄存器配置位上........(不說了,都是淚)

晶元官網上所有你要的資料都有!!!

數據手冊,應用筆記,範例模型,運算公式模型,程序範例模板,應用案例,等等

其他地方只能參考,絕對不要篤信。

另外,對某些大學教授,一年能出幾十上百本類似工具書的現狀,我只能鄙視!深深的鄙視!

真希望大學剛剛畢業的孩子們,不要再走彎路了,直接去晶元官網找資料。


*******datasheet.pdf


51單片機:郭天翔《十天學會單片機》

STM32:正點原子《STM32不完全手冊》

Arduino:奈何《Arduino程序設計基礎》

DSP:顧衛鋼《手把手教你學DSP》

Altera:特權《深入淺出玩轉FPGA》

Xilinx:何賓《FPGA權威指南》

Linux:鳥哥《鳥哥的Linux私房菜》


唯一一本認真看過的51單片機書:8051微控制器和嵌入式系統 。入門與系統學習51單片機力薦!


&<&<時間觸發嵌入式系統設計模式&>&>

比較老的書但是很經典值得一讀,裡面提供了很多典型的設計模式和硬體電路,可以避免走很多彎路

&<&&>

我教授推薦的書,如果想研究硬實時嵌入式系統的話可以參考下


王天祺 說的非常對

在學校做TI的430,用戶指南,數據手冊,官方代碼 這三樣有了比什麼資料書都好。市場上的那些書(只針對430相關書籍)都是第一個人翻譯錯了,後面的人跟著抄錯,還有很多重要的細節沒有翻譯出來。相當反感一些《xx天玩轉xx》之流的書籍。


Building embedded systems, Programmable Hardware

It has both MCU and FPGA

http://www.amazon.com/Building-Embedded-Systems-Programmable-Hardware/dp/148421918X/


推薦閱讀:

ARM 和 x86 架構相比,各自的發展前景怎麼樣?
X86和ARM架構的處理器能效差異為什麼會這麼大?
關於手機晶元,台積電、ARM、三星、蘋果、MTK 是什麼關係?
ARM處理器會預取指令,那麼我們修改PC寄存器時,被預取的指令是否是被直接丟棄了?
樹莓派 (Raspberry Pi) 的性能如何?

TAG:ARM | 硬體 | 嵌入式系統 | 現場可編輯邏輯門陣列FPGA | 單片機 |