對比STM32,ARM9研究方向的猜想

歡迎轉載,請註明出處,本文地址:http://blog.csdn.net/jk050802/article/details/8583733。

聯繫郵箱:[email protected]


2013年的寒假,受老師的邀請,去到東莞實習了10天。雖然不是第一次去,但是這次的體會和上次有了很大的不同。這篇文章本來想從東莞回來就寫了,但是一直拖到現在才寫。

在東莞,我工作位置的旁邊是一個約27歲的大學生,他的職位大概是嵌入式工程師,他每天都在使用上了ucos2的STM32芯片進行編程。剛好我在學ARM9+LINUX,於是有時候我們也私下討論了一下STM32和ARM9的那些事兒。

STM32是這幾年很火的,有哈佛架構,性價比高,開發使用的函數庫齊全等優點,這個芯片我本來也想在大一下的時候買塊開發板來學,不過後來項目需要,所以學了ARM9。

在講之前,問一個問題。假設有這樣的一個項目,讓你做一個數字示波器的控制和顯示部分的模塊,而採集模塊和保護由其他芯片完成。問你應該採用ARM9還是STM32?(本文的ARM9代表馮諾依曼架構的芯片,而STM32代表的是哈佛架構的芯片)

個人覺得可能用STM32會實際很多。主要原因如下:

1.             芯片成本高。STM32的芯片大概十幾元一片,而且像單片機一樣,幾乎一塊芯片就可以做出一個最小系統。對比ARM9,不但要買相對比較貴的ARM9芯片,還要買上Nand flash和nor flash才能做出最小系統。TQ2440的核心板淘寶就買到200多了。

2.             做PCB的複雜。據說採用ARM9芯片的TQ2440的開發板中,它的最小系統用到6層板。據說做6層板,一次開模費就要1K多了。而且假如不按照TQ2440,選用自己的硬件方案來做最小系統,不知道又要畫多少次板纔行。

3.             對於項目,假如採用普通的界面(如儀器類界面)加普通的外設(如按鍵,串口等),真的要上Linux嗎?上Linux系統的確會增加不少難度。從驅動編寫,到Qt程序編寫,再到系統移植等,從內核到應用層,這對於不少人來說,的確有不少難度。假如功夫不到家,還可能開發週期延長,甚至做出來的產品還不如用STM32做得好。而這方面STM32雖然是有點瑕疵,但是也做得不錯。

4.             採用ARM9比STM32需要更多的人手。對於ARM9,假設上了Linux系統,又要做驅動,又要做界面,還要搞系統移植,每一項都是挺有挑戰性的。大型項目用STM32可能就做不來了,但是小型項目,STM32的確不需要太多人手就能完成。而且,聘請一個嵌入式Linux的工程師也是價格不菲的。

以上就是我覺得ARM9的不足之處了。從上面看出來,假如用ARM9去開發一個用51單片機,或者用STM32就能完成的項目,真的有點大材小用了。所以,我覺得學ARM9,就應該研究一些STM32等哈佛架構的芯片無法比擬的方向。哈哈,假如別人用STM32或者AVR甚至51就能完成大部分功能,要你的ARM9幹什麼啊。

學ARM9,其實好多時間就是在學Linux。因爲Linux這個操作系統真的很強大了,比ucos要豐富得多。因此,下面我覺得學ARM9可以研究的一些方向:

1.      網絡通信類。衆所周知,世界上絕大部分的超級計算機和服務器都是採用Linux的。這歸功於Linux優秀的網絡棧。Linux的網絡棧的出錯機率小,支持的網絡協議豐富。通信協議從互聯網的到如今流行的wifi,藍牙等都能夠支持。網絡這方面是STM32等哈佛架構的單片機無法比擬的。

2.      文件管理類。Linux有虛擬文件系統,支持絕大部分的文件系統,可以對磁盤裏面的文件進行很好的管理。因此假如一些如MP4,PDA等需要對多文件操作的項目,更多會採用ARM9。

3.      絢麗的多界面類(或遊戲機類)。普通的界面(如示波器等),用STM32是可以完成的。但是對於複雜的界面,用Linux就好多了。在Linux上,可以用Qt等軟件製作特殊的絢麗的界面。此外,太多的界面也會讓STM32喫不消。多界面會使程序的空間增大得很快,對於Linux那樣,採用虛擬內存管理,1G的程序可以在只有128M的物理內存的機器上跑。但是STM32就不行了,沒有MMU就沒有虛擬內存的功能(暫時看來是沒有MMU),假如128M的物理內存的機器就只能跑不超過128M的程序。況且,STM32有128M的內存嗎?

4.      多種芯片的支持。Linux的可移植性好,假如一個項目需要換另外一種CPU,只要移植好Linux和相應的驅動,應用層基本不用改。但是移植Linux也是不容易的。

ARM9最大的優勢就是可以跑Linux系統。假如能夠真正發揮出Linux系統的優勢,真的能讓STM32等哈佛架構的單片機感到望塵莫及。但是STM32等哈佛架構的芯片,對於大部分中小型普通類控制項目,也是很有優勢的。

既然選擇了,就要風雨兼程。選擇了STM32,就要挖掘STM32獨特的優勢,學精它;選擇了ARM9,就要發揮出嵌入式Linux的優勢。學東西最怕就是見到一樣好就學一樣,祝大家能夠放下浮躁的心,學到自己喜歡的東西。學精一門總比樣樣都學而學而不精要好。

                                                                                                                                            Yin

                                                                                                                                     20130216

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章