1. gzyueqian
      13352868059

      嵌入式專家對新人的十個問題及解答,就讓專家告訴你嵌入式怎么學

      更新時間: 2018-10-27 10:59:32來源: 長沙嵌入式培訓瀏覽量:5022

          1. ARM嵌入式是學習硬件好還是學習軟件好?
          答:
          學習硬件好還是軟件好,如果你能精通其中的任何一個,都好!

          學硬件,絕大多數人大學畢業后都可以做硬件設計,這時候大家是一個差不多的水平線上,所以感覺上好像沒有門檻!但是電子產品設計的難點是穩定性,尤其是電磁兼容性的設計。N年之后,也許三年,也許五年,也許八年,總之年數不等,這時候水平上就有了高低之分:有些人設計出來的電子產品就是不怎么出問題,有些人設計出來的電子產品就是一直有問題。硬件的設計,是設計經驗和理論再學習的結合:電磁場與電磁波、微波與天線、高速信號處理、信號完整性、PCB布線的實際措施、系統電磁兼容的處理措施、電路調試的能力與解決電路故障的能力,等等,學軟件,很多人大學畢業后都無法從事這個設計工作,因為大家在學校的努力程度不同,很多人實際上還沒有進入編程的門檻內。但是進入門檻后,絕大多數人的水平會處于差不多相同的水平線上,極個別的水平高一些,體現在程序的穩定性和程序運行效率上。軟件的設計,主要體現在這兩點:單片機的硬件和軟件,因為主頻太低,很少出現穩定性的問題,軟件的工作量也小,很多單位的軟硬件都是一個人做。但是到了主頻很高的32位微處理器后,硬件的穩定性特別容易出問題,功能復雜度增大,硬件設計的難度增加了,軟件編程的工作量加大了,所以多數公司的軟件和硬件開始有多人分開設計。樹葉有專攻!大樹葉負責系統設計,各種小樹葉有的做硬件設計,有的做軟件編程。宗旨就是發揮各自的強項!完成的系統功能設計另外一個需要強調的是,學習硬件還是軟件,還要看個人對硬件感興趣,還是對軟件感興趣?


          2. 嵌入式軟件和硬件,哪一種職位待遇更高?或者說,在設計中哪一個更重要?
          答:
          剛進入職場時,一般來說嵌入式軟件的待遇會稍高一些。因為之前說了,很多人沒有進入軟件設計的門檻內。但是軟件畢竟是青春性的職業,隨著年齡的增加和設計經驗、設計能力的增加,硬件設計的待遇水漲船高,慢慢會與軟件職位的待遇相同甚至高于軟件的職位。
          至于誰更重要,硬件相當于軀體,軟件相當于血液,缺一不可,沒有誰更重要的說法。如果從產品的角度看,硬件更重要一些。因為在產品中出了問題,硬件的穩定性問題基本上只有找高手重新設計,如果是電路原理上的問題還可以直接增加或者減少元件來解決。軟件上不穩定問題基本上可以通過修改程序設計并重新下載程序到芯片中來解決。如果從設計的角度看,系統設計更重要,因為系統設計要求懂一些軟件的基本設計,更要對硬件設計有相當的造詣,這樣他才能把握住系統設計的要求,正確提出設計方案。
          3. 學完51單片機后,想買ARM開發板繼續學習,是買ARM7還是ARM9?
          答:
          如果你對單片機動手編程能力比較強,建議直接買ARM9的板子,跑linux系統的,學習嵌入式linux軟件編程,
          如果你的單片機動手編程能力比較一般,建議先購買CORTEX-M3的開發板,先學習32位ARM的編程(支持輕量級的操作系統,比如UCOS),鍛煉實際的動手編程能力。有了一定的編程能力后,再買ARM9的板子,跑linux系統的,學習嵌入式linux軟件編程。
          總之就是多動手,遇到問題多了慢慢積累起來,就能夠融會貫通了!
          4. 到底是學習哪種內核:ARM7、CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A5、CORTEX-A、CORTEX-A8還是CORTEX-A9?
          答:
          如果是學習硬件設計,CORTEX-M0、CORTEX-M0+、CORTEX-M3、CORTEX-M4內核的芯片,主頻較低,信號完整性和電磁兼容的要求不高,硬件設計相對來說簡單一些; ARM9、CORTEX-A5、CORTEX-A7、CORTEX-A8、CORTEX-A9內核的芯片,主頻高,對信號完整性和電磁兼容的要求也高,硬件設計相對來說復雜得多。
          如果是學習嵌入式軟件應用編程設計,ARM9、CORTEX-A5、CORTEX-A7、CORTEX-A8、CORTEX-A9內核都差不多,因為應用軟件編程基本上脫離開底層硬件的。
          首先說明基于ARM7內核的芯片現在已經很少了,大部分公司都陸續停產了。而且價格沒有優勢,主頻也不高,只能跑UCOS或者Uclinux系統。所以不建議花大量的時間去玩這種ARM7內核的芯片
          CORTEX-M3內核的芯片是目前用量比較大的32位ARM芯片,主頻約70MHz到120MHz之間,比如STM32F103、LPC1768等型號。CORTEX-M4內核的芯片支持DSP指令功能,主頻100MHz到200MHz之間,比如STM32F4等型號。這兩種內核的芯片可以基于庫函數進行編寫程序,或者基于寄存器直接編寫程序,可以跑輕量級的操作系統,比如UCOS等。此類芯片只適合設計不太復雜的產品,對網絡協議有一定要求的產品不建議使用該芯片。
          ARM9內核的芯片,是目前市場上運行嵌入式操作系統(linux、wince)主流的32位ARM芯片,主頻約180MHz到500MHz之間。
          CORTEX-A8和CORTEX-A9內核的芯片,可以運行多種嵌入式操作系統(linux、wince、android)。Cortex-A8處理器的速率可以在600MHz到超過1GHz的范圍內調節,能夠滿足那些需要工作在300mW以下的功耗優化的移動設備的要求。Cortex-A9處理器的速率可以到1GHz以上,支持多核。
          如果是初學者,學習庫函數編程的或者寄存器編程的,建議學習基于CORTEX-M3內核的芯片的開發;如果是學習linux的嵌入式軟件編程,建議學習基于ARM9內核的芯片的開發板;如果是學習Android的嵌入式軟件編程,建議學習基于CORTEX-A8和CORTEX-A9內核的芯片的開發板;
          5. 目前ARM的內核眾多,應該如何選擇芯片型號?
          答:
          CORTEX-M0+、CORTEX-M0內核芯片,主頻低,主要面向代替8位單片機編程的低端產品,比如家電、小家電等。
          CORTEX-M3內核芯片,主頻約50-120MHz左右,性價比高,適合不需要大型操作系統的產品設計,比如電機控制、音頻處理、工業控制等。
          CORTEX-M4內核的芯片,主頻約80-180MHz左右,比M3內核多了DSP浮點處理能力,Cortex-M4內核芯片的DSP性能比16位DSP芯片要好,但不及32位DSP芯片。Cortex-M4微控制器的目標應用包括復雜的電機控制、汽車電子、嵌入式音頻以及工業自動化。
          ARM9內核的芯片,主頻約140-500MHz,支持運行linux、wince操作系統,支持一定的圖形界面處理,適合網絡傳輸、視頻處理、工業控制等產品的設計。
          CORTEX-A5內核的芯片,主頻約500MHz-800MHz,8級整數流水線,低功耗,可以運行linux、android、wince嵌入式操作系統。CORTEX-A5雙核的性能相當于CORTEX-A7單核的性能,主要面向入門級智能手機、低成本智能移動終端、工業設備等。
          CORTEX-A7內核的芯片,支持多核,支持圖形處理,主頻約800MHzHz-1.2GHz ,13級整數流水線,可以運行linux、android、wince嵌入式操作系統,低功耗,主要面向智能手機等對功耗要求苛刻的產品。
          CORTEX-A8內核的芯片,單核,主頻約600MHzHz-1GHz ,13級整數流水線,可以運行linux、android、wince嵌入式操作系統,主要面向電力系統、數控行業、汽車電子、機器人視覺、媒體處理無線應用、數字家電、車載設備、通信設備、網絡終端等產品。
          CORTEX-A9內核的芯片,有單核、雙核、四核,支持圖形處理,主頻約1GHz-2GHz ,8級整數流水線,可以運行linux、android、wince嵌入式操作系統,CORTEX-A9雙核的性能相當于CORTEX-A7四核的性能,主要面向智能手機、上網本、電子閱讀器,數字電視、高清播放機等產品。
          CORTEX-A15內核的芯片,支持多核,支持圖形處理,主頻約1.5GHz-2.5GHz ,可以運行linux、android、wince嵌入式操作系統,主要面向智能手機、平板電腦、移動計算、高端數字家電、服務器等產品。
          ST公司:基于CORTEX-M0內核的芯片STM32F0系列、基于CORTEX-M3內核的芯片STM32F1系列、基于CORTEX-M4內核的芯片STM32F4系列,是目前的CORTEX-M系列內核的芯片。
          NXP公司:基于CORTEX-M3內核的芯片LPC1768、LPC1788、基于CORTEX-M0+內核的芯片LPC800系列,ARM9內核的芯片LPC3250,在設計中的認可率都比較高。
          ATMEL公司:多年采用ARM內核技術, ARM9內核的芯片做了很多年才開始升級更高的內核,旨在打造穩定的工業級芯片,不追求主頻上的卓越,但求性能更加的可靠的工業級芯片。能克服各種惡劣的環境,及各種干擾,功耗低,讓工業控制能更加穩定有條不紊的進行。現在的ARM9內核芯片有AT91SAM9260、AT91SAM9263、AT91SAM9G45,CORTEX-A5內核芯片SAM5D3X等
          Freescale公司:該公司的芯片穩定性也極高,多用于工業控制和汽車電子等。CORTEX-M3內核的芯片K系列,ARM9系列的芯片IMX.28,CORTEX-A8內核芯片I.MX53系列、CORTEX-A9內核芯片I.MX6系列等
          德州儀器TI: 一直致力于研究處理速度更快,功能更加強大的芯片。更是采用ARM技術Cortex A8來提升芯片的性能。使得一些芯片的處理速度與X86架構的MCU不分伯仲。但是近OMAP系列芯片據說被裁了,可能會退出市場。這讓選擇TI芯片的人心里有點害怕!而且,TI的芯片更新速度太快,讓選擇他們芯片的廠家也無所適從?,F在的CORTEX-A8內核芯片有AM3358、AM3359等。
          SAMSUNG半導體: SAMSUNG生產ARM內核芯片的超高性價比是無人能敵的。正因為這點, 其芯片也得到很多廠家的親睞。例如S3C2440性價比極高,一般消費電子產品中應用較多,不適于在嚴苛的工控環境中使用?,F在的ARM9內核芯片有S3C2440、CORTEX-A8內核芯片S5PV210、CORTEX-A9內核芯片Exynos-4412等。
          另外國內比較熱一些的CORTEX-A內核的芯片廠家如下:瑞芯微的CORTEX-A9內核芯片RK3066、RK3188;全志的CORTEX-A7內核芯片A31、A31S;晶晨的CORTEX-A9內核芯片GM8126-MX、S802;
          近老是看到不少個人和廠家宣傳:使用三星的2440或者三星公司的其他型號設計為工控產品,而且我聽到不少廠家說芯片的工作溫度都做過老化試驗,低溫可以到零下40度。這個低溫的實驗條件只是工業級的一個強制性溫度試驗條件,并不是在這個低溫下正常工作就是工控級芯片。工控級的應用真正難以實現的是在各種惡劣電磁環境下的穩定工作,穩定性是工控級應用的要素,這也就是為何ATMEL的芯片很多型號一賣就是十幾年,他們的芯片做的就是穩定。比如AT91RM9200、AT91SAM9260、AT91SAM9G45等.
          6.學習ARM主要學習啥?
          答:
          在硬件上主要學習ARM內核芯片的電路設計及其附加外圍電路(USB、SDIO、CAN、485、SPI、PCI等)設計以及高速數字信號處理、信號完整性設計、電磁兼容設計,說白了就是學習如何設計出高穩定的ARM系統電路。ARM內核(CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A8、CORTEX-A9等)的芯片,主頻越來越高,實現穩定性的設計難度越來越大。
          軟件上主要學學習基于操作系統的應用層程序的編程和基于操作系統的驅動程序編程或者基于庫函數的裸機程序編程等等。CORTEX-M0+、CORTEX-M0、CORTEX-M3、CORTEX-M4內核的芯片,可以運行裸機程序或者輕量級的UCOS系統,軟件上主要學習裸機程序的編程或者輕量級操作系統的編程; ARM9、CORTEX-A5、CORTEX-A7、CORTEX-A8、CORTEX-A9內核的芯片,可以運行linux操作系統、android操作系統、wince操作系統等,學習基于嵌入式操作系統的應用程序編程和驅動編程。
          7. 是先學習基于操作系統的應用層程序的編程,還是先學習基于操作系統的驅動程序的編程?
          答:
          基于操作系統的應用層程序的編程是嵌入式軟件設計的基礎,它基本上可以不需要熟悉底層硬件就可以完成程序設計,所以學習嵌入式linux 應用程序編程買開發板時,只要可以運行linux 系統的開發板都可以 。?;诓僮飨到y的驅動程序的編程設計,要求設計人員不僅要熟悉操作系統,還要熟悉底層硬件,有過基于寄存器的程序編寫經歷,對設計人員的要求比較高。
          學習驅動程序編程的基本過程:1.熟練對芯片進行裸機編程;2.熟練操作系統的應用編程;3.熟悉 linux 系統的內核;4.學習并熟練掌握linux 系統下的驅動編程;  
          現在的驅動程序的編程設計,芯片原廠和開發板廠家已經提供了絕大部分的驅動程序,相對來說可以減少設計者的壓力。
          所以建議:先學習基于操作系統的應用程序的編程,有了一定的編程經驗后再去學習基于操作系統的驅動程序的編程設計。
          8. 為何要學習嵌入式 linux、android,而不是學習其他的嵌入式系統?
          答:
          1.Linux、android 軟件是免費的,不收取版權費。
          2.Linux、android 嵌入式編程主要是以C 語言為主,編譯效率高,可以直接控制底層硬件;GUI 以C++語音進行編程。
          3.Linux、android 是開源的操作系統,你可以鉆研核心代碼,一定程度上可以設計出不受限制的編程。同時因為內核可裁剪,可以控制編譯后的代碼大小,進而采用存儲容量較低價的芯片以控制設計成本。
          4.Linux、android 在網上的資源豐富,設計人員可以免費獲得大量的參考設計代碼
          相比較來說:UCOS、ECOS 等輕量級的操作系統,與linux、wince、vxworks相比,軟件功能上存在一定限制,而且以UCOS 來說,缺乏自己的編譯器;微軟的wince 嵌入式系統、vxworks 嵌入式系統的版權費特別貴,大約每個產品100元左右,而且不開源,小公司基本上無法取得原廠的支持,很多編程因無法取得原廠的技術支持而無法實現。所以目前基本上都是學習嵌入式linux、android 編程。
          9. 一定要學習 GUI 界面設計嗎?
          答:
          嵌入式軟件的應用程序設計中,GUI 界面設計只是產品中支持液晶屏顯示的才會用到。而且,在實際的產品設計中,因為軟件的工作量比較大,軟件設計也是多人合作的,一般會有專人做GUI 界面設計的。因為一般的應用程序設計師基于C 語言的編程設計,GUI 界面設計基本上是基于C++語言或者JAVA 語言的編程,所以對初學者來說,還是有很大區別的,建議初學者在初的學習中不用花費太多的精力去學習GUI 界面設計。
          10. 買哪種 ARM 開發板?
          答:
          裸機程序(不運行操作系統)的開發板:
          建議購買基于STM32F103、STM32F4、LPC1768、LPC1788 等芯片的開發板,這些型號的芯片基本上已經獲得設計人員廣泛的認可了。
      有嵌入式操作系統的:
          如果從產品設計應用的角度看:如果是工控級電子產品設計的,請選擇ATMEL公司的AT91SAM9260 開發板、AT91SAM9G45 開發板或者選擇TI 的AM3359 開發板。如果是基于消費電子產品設計的,請選擇 SAMSUNG 的S3C2440 開發板、S5PV210 開發板;
          如果從學習的角度看:學習linux軟件編程的,不需要觸摸液晶屏的建議買AT91SAM9260開發板;學習linux軟件編程的,而且需要觸摸液晶屏的建議買AT91SAM9G45開發板或者S3C2440開發板。學習Android軟件編程的,建議買S5PV210開發板、AM3359開發板。
          11. 電磁兼容號稱黑色藝術,請問如何學習硬件設計中的電磁兼容設計?
          答:
          大家都知道電子產品設計中,穩定性是位的。在穩定性中難處理的是良好的電磁兼容設計。首先需要從理論上充實自己:電磁場和電磁波、微波與天線、高速數字信號處理、信號完整性分析、電路設計中的電磁兼容措施、電磁兼容的PCB布線措施、系統設計中的電磁兼容規劃、電磁干擾排查及電磁兼容測試中不良點的整改措施等等。其次需要在實際的設計中運用這些理論,在設計的初始階段就開始為解決電磁兼容做準備,并且需要在電磁兼容測試中結合自己的理解做出整改措施。
          也就是說,電磁兼容的能力是實際設計與理論再學習相結合的一個過程,需要長期的設計積累,不會在短時間內一蹴而就!

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日韩精品亚洲春色欧美激情 | 亚洲国产91麻豆 | 日本最新免费的一区二区 | 亚洲欧美国产制服 | 尹人香蕉99久久综合网站 | 亚洲欧美国产制服 |