找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 19496|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

對比stm32,arm9研究方向的猜想

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51707 發(fā)表于 2013-7-11 01:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       大二上的寒假,受老師的邀請,去到東莞實習(xí)了10天。雖然不是第一次去,但是這次的體會和上次有了很大的不同。這篇文章本來想從東莞回來就寫了,但是一直拖到現(xiàn)在才寫。在東莞,我工作位置的旁邊是一個約27歲的大學(xué)生,他的職位大概是嵌入式工程師,他每天都在使用上了ucos2的STM32芯片進行編程。剛好我在學(xué)ARM9+LINUX,于是有時候我們也私下討論了一下STM32和ARM9的那些事兒。
STM32是這幾年很火的,有哈佛架構(gòu),性價比高,開發(fā)使用的函數(shù)庫齊全等優(yōu)點,這個芯片我本來也想在大一下的時候買塊開發(fā)板來學(xué),不過后來項目需要,所以學(xué)了ARM9。

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

個人覺得可能用STM32會實際很多。主要原因如下:
         1. 芯片成本高。STM32的芯片大概十幾元一片,而且像單片機一樣,幾乎一塊芯片就可以做出一個最小系統(tǒng)。對比ARM9,不但要買相對比較貴的ARM9芯片,還要買上Nand flash和nor flash才能做出最小系統(tǒng)。TQ2440的核心板淘寶就買到200多了。
         2. 做PCB的復(fù)雜。據(jù)說采用ARM9芯片的TQ2440的開發(fā)板中,它的最小系統(tǒng)用到6層板。據(jù)說做6層板,一次開模費就要1K多了。而且假如不按照TQ2440,選用自己的硬件方案來做最小系統(tǒng),不知道又要畫多少次板才行。
         3. 對于項目,假如采用普通的界面(如儀器類界面)加普通的外設(shè)(如按鍵,串口等),真的要上Linux嗎?上Linux系統(tǒng)的確會增加不少難度。從驅(qū)動編寫,到Qt程序編寫,再到系統(tǒng)移植等,從內(nèi)核到應(yīng)用層,這對于不少人來說,的確有不少難度。假如功夫不到家,還可能開發(fā)周期延長,甚至做出來的產(chǎn)品還不如用STM32做得好。而這方面STM32雖然是有點瑕疵,但是也做得不錯。
        4. 采用ARM9比STM32需要更多的人手。對于ARM9,假設(shè)上了Linux系統(tǒng),又要做驅(qū)動,又要做界面,還要搞系統(tǒng)移植,每一項都是挺有挑戰(zhàn)性的。大型項目用STM32可能就做不來了,但是小型項目,STM32的確不需要太多人手就能完成。而且,聘請一個嵌入式Linux的工程師也是價格不菲的。

       以上就是我覺得ARM9的不足之處了。從上面看出來,假如用ARM9去開發(fā)一個用51單片機,或者用STM32就能完成的項目,真的有點大材小用了。所以,我覺得學(xué)ARM9,就應(yīng)該研究一些STM32等哈佛架構(gòu)的芯片無法比擬的方向。哈哈,假如別人用STM32或者AVR甚至51就能完成大部分功能,要你的ARM9干什么啊。
學(xué)ARM9,其實好多時間就是在學(xué)Linux。因為Linux這個操作系統(tǒng)真的很強大了,比ucos要豐富得多。

因此,下面我覺得學(xué)ARM9可以研究的一些方向:
       1. 網(wǎng)絡(luò)通信類。眾所周知,世界上絕大部分的超級計算機和服務(wù)器都是采用Linux的。這歸功于Linux優(yōu)秀的網(wǎng)絡(luò)棧。Linux的網(wǎng)絡(luò)棧的出錯幾率小,支持的網(wǎng)絡(luò)協(xié)議豐富。通信協(xié)議從互聯(lián)網(wǎng)的到如今流行的wifi,藍牙等都能夠支持。網(wǎng)絡(luò)這方面是STM32等哈佛架構(gòu)的單片機無法比擬的。
       2. 文件管理類。Linux有虛擬文件系統(tǒng),支持絕大部分的文件系統(tǒng),可以對磁盤里面的文件進行很好的管理。因此假如一些如MP4,PDA等需要對多文件操作的項目,更多會采用ARM9。
       3. 絢麗的多界面類(或游戲機類)。普通的界面(如示波器等),用STM32是可以完成的。但是對于復(fù)雜的界面,用Linux就好多了。在Linux上,可以用Qt等軟件制作特殊的絢麗的界面。此外,太多的界面也會讓STM32吃不消。多界面會使程序的空間增大得很快,對于Linux那樣,采用虛擬內(nèi)存管理,1G的程序可以在只有128M的物理內(nèi)存的機器上跑。但是STM32就不行了,沒有MMU就沒有虛擬內(nèi)存的功能(暫時看來是沒有MMU),假如128M的物理內(nèi)存的機器就只能跑不超過128M的程序。況且,STM32有128M的內(nèi)存嗎?
      4. 多種芯片的支持。Linux的可移植性好,假如一個項目需要換另外一種CPU,只要移植好Linux和相應(yīng)的驅(qū)動,應(yīng)用層基本不用改。但是移植Linux也是不容易的。
ARM9最大的優(yōu)勢就是可以跑Linux系統(tǒng)。假如能夠真正發(fā)揮出Linux系統(tǒng)的優(yōu)勢,真的能讓STM32等哈佛架構(gòu)的單片機感到望塵莫及。但是STM32等哈佛架構(gòu)的芯片,對于大部分中小型普通類控制項目,也是很有優(yōu)勢的。

        既然選擇了,就要風(fēng)雨兼程。選擇了STM32,就要挖掘STM32獨特的優(yōu)勢,學(xué)精它;選擇了ARM9,就要發(fā)揮出嵌入式Linux的優(yōu)勢。學(xué)東西最怕就是見到一樣好就學(xué)一樣,祝大家能夠放下浮躁的心,學(xué)到自己喜歡的東西。學(xué)精一門總比樣樣都學(xué)而學(xué)而不精要好。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:89196 發(fā)表于 2015-9-1 10:11 | 只看該作者
你們覺得,學(xué)完c語言單片機編程,再學(xué)習(xí)java語言,再學(xué)習(xí)嵌入式ARM9,這種方向可以嗎
回復(fù)

使用道具 舉報

板凳
ID:69732 發(fā)表于 2015-10-20 11:13 | 只看該作者
樓主說的不錯,曾經(jīng)一直糾結(jié)到底是不是該拋開32去學(xué)習(xí)ARM9后來發(fā)現(xiàn)其實學(xué)好一個,精通就好
回復(fù)

使用道具 舉報

地板
ID:301896 發(fā)表于 2020-4-15 23:09 | 只看該作者
樓主,現(xiàn)在搞的哪一個,感覺怎么樣
回復(fù)

使用道具 舉報

5#
ID:373684 發(fā)表于 2020-4-17 21:10 | 只看該作者
2013年的文章,,估計樓主現(xiàn)在做老板了吧
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表