都說嵌入式學習難,難於上青天,其實否則,不管學習什麼,只要找對了一個好的學習方法,每每會事半功倍。html
第一部分 對嵌入式系統的一些大體瞭解面試
嵌入式被應用於哪些行業?網絡
嵌入式應用於工業控制、安防、醫療器械、智能家居、車載、金融等行業!模塊化
嵌入式系統的一些簡單瞭解:工具
一、 嵌入式系統與普通的PC或者notebook不一樣,嵌入式系統的外形尺寸、功耗、外部適配器等各類特徵必須知足應用的要求和限制;學習
二、 嵌入式系統簡單的說就是面向特定應用設計的專用計算機系統;操作系統
3, 使用低功耗的X86級別的CPU,採用模塊化的設計,配置了最基本的計算機周邊配備而製成。這種計算機一般採用Windows操做系統;設計
四、 嵌入式系統的軟件包括操做系統燒錄在一塊電路板上;htm
五、 嵌入式系統的CPU能夠是:4位、8位、16位、32位;接口
6, 嵌入式系統更多的表現爲SoC的特色,也就是把整個系統都集成在一個芯片上,例如,ATMEL的arm7的芯片91sam7x128/256等;用戶能夠得到廉價而功能強大的嵌入式系統;
嵌入式系統的體系結構有哪些?
CPU RAM ROM或者flash ram AD DA I/O Usart USB CAN 以太網
第二部分:正確的學習之路
最正確的學習道路 - 從8位mcu到canbus到ARM7
第一步:熟悉8位mcu
嵌入式技術學習的路線:8位mcu(51或者avr...)+can2.0B+arm7+arm9。
做爲低端的嵌入式系統,選擇8位mcu做爲入門是比較適中的,而8位mcu中,相比pic、avr、freescale等等8位單片機來講,又以選擇51核的單片機做爲學習8位mcu的首選來更加合適。固然這個觀點是仁者見仁智者見智;若是須要理由的話,那麼也許如下這些理由能夠做爲參考:
1. 51上積累了大量的優秀的代碼和其它資源;網絡上這樣的資源太多了,幾乎就是不花錢的;
2. 生產51內核的單片機的廠家不少,好比:ATMEL、華邦、LG、飛利浦、STC(宏晶科技)、TI、…
3. 51單片機在細分低端市場,面向不一樣的行業應用,廠家推出了不一樣的產品,如LPC900系列,STC的12CXXXX系列;在功能、價格、功耗,體積,封裝、抗干擾等方面來知足行業用戶的需求;例如,如今的51單片機愈來愈多的集成了A/D、D/A、SPI、I2C、PWM、內部時鐘、看門狗、eeprom、ISP/IAP等等,已經跟傳統的ATMEL的89C51/52有了很大的差異!功能愈來愈強大的同時成本愈來愈低,並且不擔憂某個廠家缺貨..
第二步:熟悉can2.0A/B,在精通51的基礎上,熟悉can2.0A/B
CAN具備的特色
1. 採用無損壞的仲裁技術;
2. 8字節的短幀傳送,故傳輸時間短、抗干擾性強;
3. 高速,最高速度可達1Mbit/s;
4. 具備多種錯誤校驗方式如CRC及其餘校驗措施,數據出錯率極低;並且在嚴重錯誤的狀況下,節點會自動離線,避免影響總線上其它節點;Rs485常常是一個節點影響了總線上全部的節點;
5. 能夠作到全區廣播、分區廣播和點對點通信;
6. 多主方式,多主之間又能夠分紅是主節點和次節點;各節點都可在任意時刻主動向網絡上的其餘節點發送信息,信盈達嵌入式物聯網智能硬件等企鵝要妖氣嗚嗚吧九零就一不分主從,通訊靈活;發送的時候總線自動仲裁主次;主節點佔有優先權;
7. Can控制器自動過濾幀號不符的幀;大大減輕了CPU的負擔;
做爲一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通信控制方式,CAN總線已被普遍應用於各個行業之中。
第三步:熟悉ARM7,掌握ARM這個超級單片機(32位)
2、 學最新最有用的東西。
記住一句話:不管是在哪個開發行業中,要學就學最新,最有用的東西!
對於嵌入式系統的學習者,一款已通過時的技術學它作什麼?難道學了不能致用是對的?
在這裏我推薦你們學習51系列的單片機,學好了就能畢業出去生存而學習了51+canbus可以讓你如虎添翼;
3、 分模塊學習嵌入式系統
任何一門學問,可貴就是入門;而入門,就是要有一個完整的知識體系;
拿到一個電路設計的任務的時候,或者拿到一塊完整系統的電路板的時候,怎樣去分析它的系統構成呢?
做爲一個電子系統,它的構成一般是:
1. 單片機最小系統
2. 配置(內存、時鐘、看門狗、eeprom)
3. 開關量輸入
4. 開關量輸出
5. 模擬量輸入
6. 模擬量輸出
7. 人機界面(按鍵+液晶顯示/LED顯示)
8. 通信接口和協議
4、站在前人的肩膀上學習
當你拿到一個不會的任務或者學習一個不會的東西的時候怎麼辦呢?你本身冥思苦想,苦苦思考,就是想不出來,最後感嘆一句:真難學?
這你就錯了,不知道不要緊,你原本就是在一點點學習,原本就沒有經驗,怎麼會一會兒就解決了全部的問題呢,那樣的話,我能夠告訴你:你不用學了。因此當面臨這些問題時,不要錢,咱們先把問題分紅一個個小模塊,每一個小模塊百度去,你就會發現,咦?下載過來學吧!
學習就是把前輩的東西拿來用,本身累積經驗,長此以往你也成高手了!
5、精通一門技術足以,門門相通。
你們切身經歷的一件事就是,面試的時候簡歷上寫的會的技能一大堆,什麼html了,asp了,硬件了什麼的,都懂,可這些,企業會看嗎?
企業關心的,不是你會多少?而是你是否精通一門,在精通一門的基礎上,略懂其餘。
而對於嵌入式領域來講,我我的認爲對於在校的學生,應該重點放在c語言的熟練上;一方面是由於硬件沒有實際的實踐,很難能拿得出手,固然實踐的成本也高;固然本身動手作一個學習板仍是頗有必要的,信盈達嵌入式物聯網智能硬件企鵝意義氣嗚嗚吧久零就易,也不算很難;還有就是在企業中,軟件和硬件的配置基本上是1:4的狀況;對於成熟產品,基本上,硬件修改的狀況很是小,升級都是在軟件的功能的增長和完善上。
6、第一份工做,不求薪資,只求長經驗。
第一份工做是你步入社會的重要的一步,走好第一步,能夠少走2~3年末的彎路;
然而,你的份工做能不能作嵌入式開發,首先就要看你是否具備嵌入式的必定基礎或者取得一些嵌入式開發的經驗,若是你不是,那一開始不要計較工資的高低而是幹了再說,哪怕是到實驗室打雜,也比干點別的再回過頭來作嵌入式的開發要強。
7、 保持合理規劃時間,勤奮學習,才能在嵌入式中不斷提升本身
如今社會競爭這麼激烈,因此每一個人都在去努力培養本身的核心競爭力,只有成爲技術專家+行業專業才能在這個行業立足不倒。
因此咱們要有一個明確的職業生涯的規劃,同時要有一個達到這個目標的能夠實施的準確的時間表。抓緊時間,提升效率最重要的因素之一。
8、 嵌入式系統設計的3個境界 - 熟練、熟能生巧、系統設計的思想
熟練:熟練掌握c語言、電路模塊、eda工具;
熟能生巧:幹活多了,從中悟出不少的技巧;幹得活又快又好,這是熟能生巧;
系統設計:不知足於熟能生巧,而開始考慮,代碼重複使用,代碼設計的標準化、模塊化;使得後來的開發能在一個標準的平臺上進行;對嵌入式系統設計有了本身的獨到的看法。
也還可使用另外的標準來做爲嵌入式系統設計的境界:
可靠性高:在一樣的成本下,作出來的東西可靠性高於競爭對手;
可靠性高的狀況下成本更低:能用比競爭對手成本更低的電路設計做出可靠性更高的產品;
在此基礎之上,功能更增強大,用戶使用更方便:進入到行業專家的境界了。
9、 學習就要- 快、準、狠
看準嵌入式系統設計能夠做爲傍身之技的話,那就要:
快:下手要快,看到如今形勢良好,想學那就趕忙學;
準:抓住8位mcu、can總線、arm7這樣的道路,不走冤枉路;
狠:學習就要刻苦,吃了就學,睡醒就學,想要成功總要付出點什麼。