常見的ARM嵌入式學習問答

常見的ARM嵌入式學習問答,設計者和學習者最關心的10個問題:
1.          ARM嵌入式是學習硬件好還是學習軟件好?
2.          嵌入式軟件和硬件,哪一種職位待遇更高?或者說,在設計中哪一個更重要?
3.        學完51單片機後,想買ARM開發板繼續學習,是買ARM7還是ARM9?
4.        到底是學習哪種內核:ARM7、CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A8還是CORTEX-A9?
5.        ARM芯片如何選擇型號?
6.        學習ARM主要學習啥?
7.        是先學習基於操作系統的應用層程序的編程,還是先學習基於操作系統的驅動程序的編程?
8.        一定要學習GUI界面設計嗎?
9.        買哪種ARM開發板?
10.        電磁兼容號稱黑色藝術,請問如何學習硬件設計中的電磁兼容設計?

1.        ARM嵌入式是學習硬件好還是學習軟件好?

     答:

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

   另外一個需要強調的是,學習硬件還是軟件,還要看個人對硬件感興趣,還是對軟件感興趣?

2.        嵌入式軟件和硬件,哪一種職位待遇更高?或者說,在設計中哪一個更重要?

      答:

     剛進入職場時,一般來說嵌入式軟件的待遇會稍高一些。因爲之前說了,很多人沒有進入軟件設計的門檻內。但是軟件畢竟是青春性的職業,隨着年齡的增加和設計經驗、設計能力的增加,硬件設計的待遇水漲船高,慢慢會與軟件職位的待遇相同甚至高於軟件的職位。

     至於誰更重要,硬件相當於軀體,軟件相當於血液,缺一不可,沒有誰更重要的說法。如果從產品的角度看,硬件更重要一些。因爲在產品中出了問題,硬件的穩定性問題基本上只有找高手重新設計,如果是電路原理上的問題還可以直接增加或者減少元件來解決。軟件上不穩定問題基本上可以通過修改程序設計並重新下載程序到芯片中來解決。如果從設計的角度看,系統設計更重要,因爲系統設計要求懂一些軟件的基本設計,更要對硬件設計有相當的造詣,這樣他才能把握住系統設計的要求,正確提出設計方案。

3.      學完51單片機後,想買ARM開發板繼續學習,是買ARM7還是ARM9?

     答:

       如果你的單片機編程能力比較強,建議直接買ARM9的板子,跑linux系統的,學習嵌入式軟件編程。
       如果你的單片機編程能力比較一般,建議先購買CORTEX-M3的開發板,比如盤古STM32開發板和盤古LPC1768開發板,先學習32位ARM的編程(支持輕量級的操作系統,比如UCOS),鍛鍊實際的編程能力。有了一定的編程能力後,再買ARM9的板子,跑linux系統的,學習嵌入式軟件編程。
       總之就是多動手,遇到問題多了慢慢積累起來,就能夠融會貫通了!

5.      ARM芯片如何選擇型號?

答:

  ST公司:基於CORTEX-M3內核的芯片STM32F103、基於CORTEX-M4內核的芯片STM32F4,是目前最流行的CORTEX-M3內核的芯片。

  N XP公司:基於CORTEX-M3內核的芯片LPC1768、LPC1788、基於CORTEX-M0+內核的芯片LPC800系列,ARM9內核的芯片LPC3250,在設計中的認可率都比較高。

    ATMEL公司:一直採用ARM核心技術,最高也只採用到ARM9技術,旨在打造穩定的工業級芯片,不追求性能上的卓越,但求性能更加的可靠的工業級芯片。能克服各種惡劣的環境,及各種干擾,功耗低,讓工業控制能更加穩定有條不紊的進行。現在的ARM9內核芯片有AT91SAM9260、AT91SAM9263、AT91SAM9G45等


       德州儀器TI: 一直致力於研究處理速度更快,功能更加強大的芯片。更是採用ARM最新技術Cortex A8來提升芯片的性能。使得一些芯片的處理速度與X86架構的MCU不分伯仲。但是最近OMAP系列芯片據說被裁了,可能會退出市場。這讓選擇TI芯片的人心裏有點害怕!而且,TI的芯片更新速度太快,讓選擇他們芯片的廠家也無所適從。現在的CORTEX-A8內核芯片有AM3358、AM3359等。

SAMSUNG半導體: SAMSUNG生產ARM內核芯片的超高性價比是無人能敵的。正因爲這點,其芯片也得到很多廠家的親睞。例如S3C2440性價比極高,一般消費電子產品中應用較多,不適於在嚴苛的工控環境中使用。現在的ARM9內核芯片有S3C2440、CORTEX-A8內核芯片S5PV210等。

     最近老是看到不少個人和廠家宣傳:使用三星的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-M3、CORTEX-M4內核的芯片,可以運行裸機程序或者輕量級的UCOS系統,軟件上主要學習裸機程序的編程; ARM9、CORTEX-A8、CORTEX-A9內核的芯片,可以運行linux操作系統、android操作系統、wince操作系統等,學習基於操作系統的應用程序編程

7.      是先學習基於操作系統的應用層程序的編程,還是先學習基於操作系統的驅動程序的編程?

    答:

          基於操作系統的應用層程序的編程是嵌入式軟件設計的基礎,它基本上可以不需要熟悉底層硬件就可以完成程序設計,所以學習嵌入式linux應用程序編程買開發板時,只要可以運行linux系統的開發板都可以。。基於操作系統的驅動程序的編程設計,要求設計人員不僅要熟悉操作系統,還要熟悉底層硬件,最好有過基於寄存器的程序編寫經歷,對設計人員的要求比較高。

        現在的驅動程序的編程設計,芯片原廠大部分已經提供了。在芯片原廠做驅動程序設計的人員,水平會高得多,不過中國的芯片廠很少,大家暫時沒多少機會。從產品的設計角度看,驅動程序的設計難度已經降低。

        所以建議:先學習基於操作系統的應用層程序的編程,有了一定的編程經驗後再去學習基於操作系統的驅動程序的編程設計。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章