新手入門應如何選擇 ARM 開發板?
要學arm了,有什麼開發板推薦?
要能跑系統的。
作者保留權利,有其它論壇和網站小編聯繫我,問是否可以轉載,作者本人允許轉載,但是一定要請註明知乎首發和作者!
*******嵌入式行業老司機系列文章抬頭***********************當年高考語文不及格,多年幾乎未動筆,知乎偶發一貼,一周內瀏覽量增加了2000,50+點贊。在接下來的一段時間,將陸續推出以下系列文章。
一:如何選擇單片機和Android-LInux-ARM開發板 鏈接:如何選擇單片機和Android-LInux-ARM開發板? - 嵌入式系統二:新手怎麼選擇ARM開發板——屠龍技 鏈接:新手入門應如何選擇 ARM 開發板? - 嵌入式小哥的回答三:為什麼學習了單片機之後要學習Android-Linux-ARM嵌入式技術 鏈接:為什麼學習了單片機之後要學習Android-Linux-ARM嵌入式技術? - 單片機四:文章名稱暫定:為什麼選擇三星嵌入式ARM開發板 鏈接:…滴滴……五:文章名稱未定:推薦書籍、學習方向,學習方法鏈接:…滴滴……
六:文章名稱暫定:怎麼使用開發板做產品 鏈接:…滴滴……七:其它,突然有了新的發展方向,再持續更新前六篇文章兩個月之內應該可以陸續完成,各位老司機到了一定年紀,都能體會到「男人到了一定年齡,時間都不是自己的了^_^」,沒有大把大把的時間做這個,更新的有點慢,希望能夠體諒,多多點贊。其它知乎已有非常好的相關問題答案鏈接:
……滴滴……大家不要撕逼,知乎上廣告什麼的也都有,瞎扯廣告的隨手舉報不用管它,只要給我點的贊和感謝,就可以壓倒廣告!
PS1:點贊的筆感謝的多的多呀!點贊後再感謝一下,讓我更有動力!PS2:另外好像有個公共編輯功能,誰能教教我,本人常看知乎文章,2016年3月才首次註冊^_^三年技成,而無所用其巧——談一下怎麼選擇ARM開發板
《莊子·列禦寇》:「朱泙漫學屠龍於支離益,殫千金之家,三年技成,而無所用其巧。
經常上知乎,一直以來都是匿名。無意間看到開發板這個問題,實在忍不住!註冊了個賬號結合自己的經歷出來說幾句,希望對後來者有所幫助!
- —---------------- 昨夜西風凋碧樹,獨上高樓,望盡天涯路 —----------------
曾經以為自己很聰明,後來發現自己是個勺子!
農村小屌絲一枚,勤奮,好學,性剛烈,帝都普通211大學,通信專業。在前些年,通信工程是非常熱門的專業,小地方的人信息滯後,誤入大坑。大一時候和一學長交流,當年華為大唐等大型公司在我們學校招通信工程本科畢業生的唯一要求是「男」「正常畢業」!現在本科畢業卻很難純粹的找到通信相關的工作,學校的很多課程進入工作幾乎沒有用,像數字信號處理,高頻電路等等,建議我們另尋出路。本人因為經濟原因,不可能再讀研究生,需要儘快解決物質的問題。當時有兩條路擺在面前,和計算機專業以及軟體工程專業的搶飯吃;或者和自動化電子專業的搶飯吃!
因為通信工程和自動化以及電子的專業課幾乎相同,計算機編程可以自學。經過「慎重考慮」,決定來個兩者結合,二者合一,軟硬兼修!唯一的選擇就是嵌入式行業。因為通信過程會或多或少的學習一些硬體專業課,模擬電路,數字電路等等;也會接觸到編程的知識,C語言當然是基礎課,然後VHDL以及MATLAB之類也需要用用,我不希望學的東西最後用不上(當年好純粹)。
看著周圍同學天天打遊戲,自己卻開始為將來打算,那個時候好佩服自己。 要進入嵌入式行業,一般需要先玩單片機8051。在某寶上挑了個最便宜的,花了一個月時間搞得差不多,什麼gpio點燈,矩陣,顯示屏,uart,i2c等等都弄明白了。大多數人就到了這裡,畢業之後就可以找到一份工作。可能在20年前,你屬於高科技人才,但是想想一個月就可以學會的東西,算哪門子的高科技?每年那麼多大學畢業生,你的競爭力在哪裡? 於是繼續進擊!向上吧少年!- —---------------- 三年技成,而無所用其巧 —----------------
不是我不夠努力,而是社會太複雜!
第一個月非常順利,可是接下來的差不多3年時間,就出現了「三年技成,而無所用其巧」的情況。 買了幾塊2440和210的開發板,進行了兩年多的修行。想想當時好可憐,怎麼沒有個人給我指導一下(在你一心前行的過程中,如果有人給你指導,給你個方向是多麼美好的一件事)。下面具體講講我的經歷。
當時在某寶的每一家賣2440的商鋪都提供不同特色的教程。當時心想,我要打十個!剛開是買的是y開頭的板子,老牌的,資料的確豐富,而且也相對便宜。從單片機的世界走出來,看到能夠跑操作系統,帶圖形界面,突然間感覺整個人都不一樣了,只能用兩個字形容「哇哇」。y開頭開發板,系統自帶wince的系統,wince需要C++或者C#,好吧,基礎不好那就學習唄(學習編程語言本身是沒有什麼問題的),語言學習完了之後,就開始基礎到wince架構體系,wince的各個API,這段經歷真是灰暗,wince架構極其複雜,當然如果是簡單的應用或者不那麼深入的學習,難度不大。當時每天記憶各種wince的API,終於使用熟練,並且寫了幾個小程序。
接著聽說t字頭的開發板在Qtopia方面做的非常好,要學習就學最棒的教材嘛!好幾百大洋沒了,Qtopia這個系統的確很棒,而且開源程度比wince要高,據說在產品應用上是有免費版本的,不想wince需要授權費。Qtopia的界面非常棒,不等不承認,結構清晰,比wince好學多了。接著又開始在Qtopia上學習,奶奶滴,半年有過去了,架構,圖形UI,驅動調用等等!接著是f字頭,據說有介紹如何在控制台編寫,看著console控制台能夠列印各個圖形,還有能玩俄羅斯方塊,貪吃蛇!當時毫不猶豫的就買買買,學學學!
接著是j字頭的,據說是在裸機上做的很好,還有系統的移植教程,看著好高端。好吧,買買買,學學學!而且這個板子教程都還需要花錢買的!這塊開發板教會了我一個人生道理,花錢的不一定是好貨,便宜免費的更有可能更好。
後來又買了210的板子,學習了Android2.0!
上面這些是能夠記得的板子! 可是最初的方向就被引到不歸路!前前後後買了好幾塊2440的開發板,花的錢幾乎都可以上一個培訓班了,想想真是心疼自己,當時在外面做各種兼職,發傳單、做服務生、做家教那麼辛苦,雖然現在看來不是很多,那個時候要掙這些錢,真是不容易!- —---------------- 撥開雲霧見月明 —----------------
有那麼一刻,心中幾百萬隻羊駝從內心中跑過,刀呢?我的刀呢?
大三下半年,要面臨找工作的問題了。第一次去看招聘要求,然後和老鄉、畢業的學長交流,收集到一些信息!突然間發現傻眼了!wince完全用不上!這是一個淘汰的技術!以前總以為微軟做事情靠譜,卻發現無論什麼公司的行為都是商業行為,wince用的人少了,自然就停止更新了,停止更新維護,接著用的公司就更少了。用的公司少了,新人就進不去,老人開始慢慢轉行!
最疼的疼是原諒,最黑的黑是絕望! Qtopia完全用不上!這個x度百科裡面就寫明白了,2009年就停止維護和更新了,現在嵌入式上用的是linux-qt,也就是QtE!所學習的什麼圖形界面之類的,全部沒用了!特別提醒,注意區分Qtopia和QtE!QtE現在用的也非常多,但是千萬不要學習Qtopia! 你給的諾言其實都是謊言,我怎麼會一直相信你到現在!控制台列印那個玩意呢?好吧,不說了,都是眼淚!你他媽逗我呢!
求心理陰影的面積! 移植呢?自己創建操作系統?那就是個噱頭。工作多年之後才知道那個應該叫BSP開發,所有的操作系統一定是超級大的公司推出的,而不是某個NB的老師能夠獨立完成的~動輒幾百萬上千萬的代碼,這些NB的老師能夠搞出來么?看一遍就要幾輩子!讓他們繼續吹牛逼吧,反正不上稅。 十萬隻羊駝從心中呼嘯而過!Android2.0呢?無用!Android從1.0到4.0每一個版本變化都極大,到了4.0,Android才大規模的在智能手機上應用,2.0見鬼去吧!
刀呢?我的刀呢!殺人不犯法多好!- —---------------- 衣帶漸寬終不悔,為伊消得人憔悴 —----------------
一直以為自己是那種與眾不同的人,到後來才發現,原來大多數人所追求的生活才是最值得的.
看到周圍的同學各有各的打算,有的家裡有關係不用擔心,有的要接手家裡的買賣,有的想考研進研究所,有的當公務員,有的覺得自己可以做銷售……類似我這樣準備從事技術的人,開始準備學習Android和iOS或者從事上位機編程,有的開始學習怎麼layout做硬體設計。 好吧,不得不重新暴走了,不就是Android換個版本么?學學學!於是默默的開始了Android學習,以前學習的東西除了硬體,除了語法幾乎都沒有用。 經過半年時間的突擊,簡歷簡歷,面試面試,終於找到一份差不多的工作! 後面的事情就不多說了,現在從事嵌入式Android的工作。- —---------------- 怎麼識別不良商家 —----------------
^-^突然間心情不好,不用詩詞了^-^
下面結合目前嵌入式的發展,給大家說說,怎麼識別不良商家! 嵌入式經過這些年的發展,淘汰了很多技術,新技術也很多,有的大浪淘沙保留了下來,有的卻隨風而去,淘汰技術卻留下了大量的陰影,成為嵌入式初學者最大的障礙。記住下面幾個凡是吧!(略微有點偏激,但都是肺腑之言)
凡是頁面上號稱能夠教移植Android,linux之類操作系統的,都讓它們滾蛋!那是幾百人一起做的事情。 凡是頁面上有wince的,並且大段大段的宣傳的,讓它們滾蛋!wince不支持多核,多少年前早完蛋了! 凡是頁面上出現Qtopia,並且放到顯眼位置的,讓它們滾蛋!7年前就完蛋的玩意,唬誰呢? 凡是頁面上出現Android1.0或者Android2.0,Android3.0這類玩意的,滾蛋吧!那玩意從來就沒什麼人用過! 凡是出現大規模的裸機視頻教程的,讓他滾蛋!除非你就是有錢任性,想隨便玩玩,或者永遠做單片機工作(這也是一種人生)。 另外,在學生時代,以為自己很獨立,具有獨立思想。實際卻很容易迷信某個人,某寶上貼出一張圖片,說有暢銷書出版,就崇拜的不得了。即使崇拜個人,那也是崇拜那個人後面的大團隊,而不是因為某一個人!所謂的名師滾蛋吧!這幾年潛伏在這些群里,發現同時和我同時購買那些板子的人絕大多數都沒能吃上嵌入式工程師這碗飯,如果不算單片機工程師(這個實在太簡單了,待遇也很低)!我想這和這些不良商家的惡意宣傳分不開的!
古斯塔夫·勒龐描述人類群體行為是「烏合之眾」,用在這方面真是貼切不過。一個不當的宣傳,另外一幫人也不得不這樣,帶壞了一大批商家,購買的人卻不告訴後來者自己學無所成,因為那樣會顯得自己很傻!導致最終受到傷害的是「群眾」——可憐的理科男。 象牙塔的孩子們,在花錢學習之前,去看看招聘要求,哪個工作招收的人多,招的急切,給的工資高,就去學!畢竟市場決定一切,而不是某位老師!- 最後分享幾個小段子!
曹操、袁紹、劉備遇一桃林,奈何牆高。操先入,操大呼,桃甜!紹、備隨之。咚咚!紹大怒,何不告之糞坑?曹操大笑,汝仿吾!
——佚名我們走後,他們會給你們修學校和醫院,會提高你們的工資。這不是因為他們良心發現,也不是因為他們變成了好人,而是因為我們來過
——切.格瓦拉彪悍的人生不用解釋
——老羅 —---------------- 華麗的分割線 有一定回復量就在這裡長期分享最新有用的嵌入式前言技術 —---------------- 現在嵌入式最通用的就是Android和QtE,還有Ubuntu在緩慢發展中。17年學習ARM開發板,那麼現在肯定是ARM9,那麼就要學習精通ARM體系結構及介面技術(基於4412開發板)第一步肯定是D1 ARM基礎(基於4412開發板)。那麼然後就可以繼續學習D2 ARM指令(基於4412開發板),這兩步也是入門學習,下面還有D3 ARM異常處理D4 ARM裸機開發D5 ARM通訊介面D6 ARM中斷機制D7 ARM波形控制。所以ARM9是目前跟工作還有入門最接近的開發板。
最好,詳細點,你要學ARM7,還是ARM9甚至ARM11及A8之類的
還有,你要用於什麼方面的?學習還是工作?若是工作的話,是消費電子,還是工控。。。ARM7,當做高級點的單片機來玩。。。但也可以跑小系統,例如ucos‖而ARM9之類的,用來跑系統,例如Linux,wince,android若學習的話,就用選用ARM9的三星S3C2440,友善和飛凌開發板都可以,而且現在不貴了
但若你基礎好點,想跑android的話,就搞個A8的三星S5PV210(開發板,友善和華天正都有賣)而三星的S3C6410,跑android的話,有點卡,而且只能用DDR,用不了DDR2,還有它的BGA球間距是0.5mm,而S5PV210是0.8mm。下面是若跑android的話,選S5PV210的理由。
1、同等的容量,DDR2要比DDR便宜很多2、BGA球間距0.5mm,布通PCB必須使用激光孔,球間距0.8mm,普通機械孔工藝就可以。PCB製作費,BGA間距0.8mm的便宜。3、跑安卓系統,CPU頻率要600MHz以上,最好800MHz4、主流的Android 2.2平板大都採用了ARM Coretex-A8/A9架構的CPU而用於工控的話,就用TI或者飛思卡爾的晶元,具體型號,網上查。嵌入式80%的知識和技能,其實都是跟開發板無關的:計算機知識、C編程技能、Linux操作、Linux系統編程技能、對Linux內核、操作系統的理解。
對於新手來說,如果連嵌入式基本的知識理論體系還沒建立,就玩板子,經常會遇到各種各樣的坑,無法解決,時間長了,會慢慢打擊學習的積極性。
很多人買了開發板,按照移植文檔,「移植」了u-boot、Linux內核,然後就感覺想再深入就無法深入了。所謂的「移植教程」,根本就不是移植!porting一個系統是一個人乾的事情嗎?那是晶元原廠一個團隊乾的事情!其實就是「安裝」。就像你在Windows下面安裝操作系統一樣。
如果想學習嵌入式,建議先把一些基礎打好,使用QEMU模擬虛擬開發板,在Ubuntu上搭建基本的u-boot+Linux+NFS開發環境,然後慢慢研究,等把基本的知識體系和嵌入式技能學習得差不多了,Linux玩熟了,再去弄開發板,效果絕對跟以前不一樣。
關於嵌入式學習路線,可以關註:使用QEMU搭建u-boot+Linux+NFS嵌入式開發環境視頻課程_共9課時_嵌入式_嵌入式Linux_視頻教程在線自學__51CTO學院_專業的IT技能學習平台
馬上就有arm的伺服器 和 pc了
我推薦 Atmel 的板子,做工中規中矩。
關鍵是 一個代碼寫得好,社區支持好。
對南朝鮮的三星板子從硬體到軟體我都很反感,很低級。ARM+Linux,嵌入式操作系統,先從單片機,再去學GPIO、定時器啥的,熟悉C語言操作硬體。然後去學Linux操作系統,shell語法等,然後再買一個ARM開發板(初期買2410足夠),學驅動開發啥的,建議去星創客學習。superedu.com.cn/
學習的話還是6410好一些,那些年開發板廠商推出的資料比較多,像飛凌之類的廠商都自己錄視頻,出培訓教材,並且那個時代學習者眾多,分享的資料也超多,後來的A8 A9之類的 學習資料都好少的,適合有一定基礎人學習下,不大適合小白。
上手了塊firefly rk3399開發板,正在研究學習,官網論壇上的資料的挺多的,板子性能強,推薦
現在有很多開源開發板,這部分開發板都相對比較靠譜,而且性價比比較高,比如樹莓派Raspberry Pi,還有beaglebone black等等,很多資料網上都能直接下載。
我當時買的是飛凌的s3c6410,對於學習來說,夠用了
Exynos 4412確實是最好的選擇了,推薦迅為電子的iTop-4412精英版
不知道題主有沒有單片機開發經驗,不知道是想做應用還是驅動?做驅動推薦2440,資料多,linux驅動框架基本差不多,學會2440,其他的是想通的,應用的話隨便找個符合需求的高性能板子就好了,沒啥區別
手中有2440的板子,正準備學習wince,看了這篇文章之後,後背發涼~手中還有北京迅為電子一塊三星4412的開發板,它是多核的,提供的Android版本好像還行,不知道是否建議學習下去。
選擇 ARM 開發板可以參考一下深圳葡萄雨技術的三星S5P4418開發板,或其高通MSM8916開發板,功能很強大,應該能滿足你的需求
2410和2440已經是很老的處理器,如果做新項目,考慮到成本和採購,應該選三星四核4412了
推薦閱讀:
※Linux 下什麼 IDE 開發工具最好?
※Linux 平台上有哪些功能齊全完善、實用高效、設計精美的軟體?
※Linux 下 zip 文件解壓亂碼如何解決?
※應用程序編譯後 只能在兼容該編譯器的平台上運行 , 為什麼 windows/linux 程序可以在多個系統版本間運行?
※gcc局部變數不用初始化么?