2012-03-22 68 views
13

我期待着從頭開始學習編程嵌入式系統。過了一段時間,我發現自己有點困惑。嵌入式編程...剛開始

我可以編程C和C++,但我不知道從哪裏開始嵌入式編程,我應該購買某種設備來練習,使用微處理器模擬器(如果有的話,哪一個?) - 東西像這樣,任何建議或資源在哪裏開始是非常受歡迎的。

+1

您可能想要縮小目標範圍。 「嵌入式系統」的運行範圍可以從32位1GHz ARM CPU,1GB RAM,32GB存儲,運行Linux;直至具有1KB RAM的8位微控制器完全不運行O/S。試着想象一下,更具體地說,你想創造什麼樣的東西,然後從那裏開始。 – 2012-03-22 16:31:35

+0

C/C++?選一個。 – Puppy 2012-03-22 16:48:51

+0

@DeadMG:在上下文中很明顯他意味着他可以在兩者中編程。只爲你,我說得更清楚。 – Clifford 2012-03-22 17:28:43

回答

8

在我看來,跳過Arduino。我一直認爲它對於非程序員來說是一種愚蠢的系統。開始尋找可以讓你將C知識應用於儘可能低水平的東西。您想了解中斷向量如何工作,您的有限RAM如何限制堆棧以及如何調試。

查看飛思卡爾的8位和16位微控制器,尤其是HCS08或HCS12。內置調試接口(後臺調試模式)有100-200美元和一些低於100美元的開發系統。這些也是比Arduino更高的性能和內存。 CodeWarrior軟件是免費的(代碼大小限制,但在大多數情況下,限制數量大於這些設備上的閃存量),並且功能齊全。我不知道你是否可以用Arduino設置代碼調試斷點,但你可以用這些。 CodeWarrior還有另一個好處 - 當你首先要深入研究數據表以理解不同模塊的內存映射寄存器是如何工作的(例如,如何清除標誌,如何設置模式等等),CodeWarrior處理器專家將爲您提供針對特定HCSxx衍生產品及其特定模塊的功能。由於大多數這些產品重複使用衍生產品之間的邏輯,但有一些細微差別,重用代碼是有意義的。處理器專家從10年前開始就已經走過了很長一段路。從長遠來看,這對開發時間來說是一個巨大的節省,因爲這些函數負責編寫非常低級別的動作(例如,使用一個C函數調用來爲xx/yy佔空比配置PWM定時器輸出引腳)。

然後,您可以使用一些操作系統,或者您可以升級到ARM或ePPC。我知道至少有一個Linux和一個網絡服務器附帶的HCS12演示板,你可以隨時消除你的第一次開發,然後在你準備好後再把它放回原處。飛思卡爾在提供教程,應用筆記和文檔方面也非常出色,但他們的網站有時很難瀏覽。我想這只是一個大型生態系統的症狀。祝你好運!

+1

在我看來,Arduino(設備)是一個相當不錯的便宜的uC開發平臺。只是不要使用Arduino庫。 – 2012-12-02 20:47:58

4

有幾個嵌入式平臺在那裏很受愛好者的歡迎和非常容易使用。 Arduino可能是最受歡迎的。電路板很便宜(20-30美元),易於使用,並有很多優秀的軟件。 Arduino平臺的主要網站是。你會發現很多鏈接到其他資源,可以幫助你開始。

您可能想要查看SparkFun,它主要是電子零件(包括Arduino和其他有用的電路板)和工具的愛好者級供應商。他們的網站上有a lot of great content,以幫助您開始使用硬件和軟件。

2

您有很多選擇!我想你會從一個模擬器開始(不管你使用什麼類型的嵌入式操作系統,可能你不會使用x86 CPU)。如果您使用X86 CPU,則不需要任何仿真器,但可能需要虛擬機。

你用「arm」標記了你的問題,所以我想你想用一個ARM處理器(那麼你需要一個仿真器)。開始尋找here,你會發現從嵌入式編程開始的教程和資源。

3

人們可以劃分嵌入式系統分爲兩大類:

  • 那些運行完整OS。如果有文件記載的方式來獲取操作系統並啓動它,那麼除了需要構建或下載交叉編譯器之外,這些操作的處理方式與桌面操作不同。對於像手機這樣的東西,當然,環境的贊助商會提供帶有調試器的精心設計的開發環境。

  • 那些在所謂的「裸機」上運行程序的人。這些只會比你的程序和語言運行時加載的多一點。 (有些是真的簡單的狀態,並且運行一個簡單的解釋或彙編語言。這些都不再需要複雜的編程的優勢,只是爲了建立集成的外圍設備。)

你可能不需要仿真器或其他硬件調試設置,實際上,您甚至可能不需要硬件即可開始使用。如果可能的話,嘗試在虛擬機中進行初始開發。

一如既往,你會得到你所支付的。在一個商業項目中,有很多環境可用,但這些可能不太用於機器人項目等。

有很多平臺都有合理數量的支持。最近的憤怒(由於其顯着的35美元的價格點)是the Raspberry Pi,然而,它目前不是立即可用的。

2

我建議嘗試一些TI的EZ430系列開發工具。其中一些工具可以低至20美元的價格購買,並且具有基本的功能,以及擴展它們的方法。您可以輕鬆購買兩個eZ430-F2013,讓他們相互交談或與另一臺計算機交談。 TI爲其MSP430s提供了Code Composer Studio,它是免費且全功能的(基於Eclipse),因此編程環境非常易於用戶使用。 TI還提供大量涵蓋系統大部分功能的代碼示例。

對於MSP430,您將按照其「裸機」代碼進行編程,因此您不僅要編程C,而且還要切換輸出和位衝突。但是看起來你有興趣在這個級別學習它,所以這是一個很好的開始。

另一方面,如果你想要一個嵌入式操作系統(如Linux)檢查出gumstix網站。

2

因爲您的問題提供的應用程序類型,性能要求和預算等信息很少,所以沒有答案會特別關注。

但是,考慮到我會建議你選擇ARM架構器件,只是因爲它包含了幾美元的器件和MIPS 10的性能,以及板上應用處理器的小片上存儲器成本例如幾百美元可以運行Linux,WinCE或Android。

喜歡與否ARM在嵌入式系統世界中無處不在;在設計和市場份額方面,其他一切都是利基。簡單的開發/評估板上的基於Cortex-M3的器件是一個很好的開始。但是,如果您不考慮工具和調試硬件的成本,您會感到沮喪。

+0

有沒有我可以使用的一些軟件工具,以便我可以嘗試進行一點編程?例如,一些使用微處理器仿真器的教程?或者你建議立即開始使用物理芯片? – nuno 2012-03-22 17:46:51

+1

+1是爲了試圖讓OP縮小問題的範圍。我向OP建議他或她花一些時間來決定嵌入式設備_必須做什麼。如果它必須做到一切,它將成爲更昂貴的電路板之一。如果它只是一個遙測設備或簡單的東西(例如冰箱或其他東西的溫度監測),它可以是一個更便宜的電路板。 – ldav1s 2012-03-22 18:44:08

+0

我同意我的問題的範圍可以是非常通用的 - 對不起。我只是想了解如何開始做一些非常簡單的程序,只是爲了好玩。所以我想我只是簡單地從一些簡單/便宜的主板甚至是一個仿真器開始,如果可能的話 – nuno 2012-03-22 19:07:37