2010-09-25 60 views
2

全部 我對C++有一個好的命令,但是我從未在設備編程上做過任何事情。我對數字邏輯設計有了一些基本的瞭解。但我是電子學完全Noob。目前,我對微控制器編程產生了極大的興趣。對設備編程感興趣。從哪裏開始

從哪裏開始?

我不認爲人們真的需要大量的電子知識來運行微控制器上的程序。

我正在使用Linux。我已經下載了Keil。從來沒有試圖通過葡萄酒來運行它。我已經在Windows中運行它。但是代碼的工作原理並不完全清楚。儘管我可以將邏輯理解爲它的C語言,但它仍然像我一樣迷茫。
我只需要一個快速啓動。

回答

3

SO不是問這類問題的最佳網站。 PC的編程和嵌入式系統的編程之間有很大的區別,其他SE站點專門用於物理計算。我得到這個電子郵件羅伯特Cartaino週二:

...除非從 任何最後一分鐘的利息[chiphacker.com],我們將推出[electronics.stackexchange.com] 要麼明天[週三9/22]或星期四的 。

所以,去承諾electronics.stackexchange.comhere,並瀏覽chiphacker.com而你等待。看看這些問題上Chiphacker:

有計劃的進入路徑到嵌入式系統時,你應該考慮幾件事情節目。

  • 你想做什麼?
  • 你知道該怎麼做?
  • 你學習速度有多快?

我在下面的段落中列出了幾個選項。

您標記了您的問題linux-device-driver,這是否意味着您想要在Linux中使用自定義設備?如果你的意思是embedded-linux,那麼你就進入了一大類微控制器。我建議你看看BeagleBoard,也可以看看this Chiphacker question的其他選項。如果你想做嵌入式Linux,並且想要構建你自己的電路板,那麼你首先需要在更簡單的嵌入式系統設計中積累一些經驗。

您還標記了您的問題avr,它是Atmel製造的流行微控制器類(查看avrfreaks forum瞭解更多信息)。我開始學習ATmega324p上的嵌入式系統;他們真的有很棒的文檔,很容易使用,並且與其他大多數處理器相比,avr上的網站數量更多。

如果你想要一個更簡單的學習曲線,我建議看看Arduino環境。它使用了與C/C++非常相似的Wiring,Arduino可以通過'shields'進行增強,這些模塊可以插入Arduino主板以增加功能。這是你的快速啓動。

一個好的學習途徑是熟悉Arduino,然後建立自己的AVR板(可能是一個Linux設備,像一個遊戲杆),然後使用基於ARM的開發工具包,最後轉到構建你自己的嵌入式Linux板。如果您不介意陡峭的學習曲線,則可以跳過幾個步驟,或者在某個特定級別的功能滿足您的需求時隨時停止。你不一定需要「電子學方面的大量知識才能在微控制器上運行程序」,這是事實,但在你嘗試點亮一個LED或連接兩個設備之前,你應該瞭解一些基本的東西,例如電壓和電流。

最後,你在你的問題中說過你已經安裝了Keil IDE。雖然這是一個很好且頗受歡迎的IDE,但我建議你學習使用基於gcc的命令行工具鏈。使用嵌入式系統時出現錯誤的方法有很多種,而IDE在所有發生的事情上添加了一層魔力。雖然這可以很好,但我在嘗試學習系統時極力倡導最小化魔法。當事情不能自動工作時,你需要了解低級別的東西。這個建議在使用Arduino時並不適用,Arduino旨在(並且確保)使所有的自動化工作都能正常工作。

+0

不錯答案。但是在開始之前我是否需要購買任何東西?需要多少費用 ?或者我應該使用模擬器來學習? – 2010-09-26 13:20:22

+0

@user - 絕對買東西。如果您可以購買30美元的Arduino,或者甚至是價格爲4.30美元的MSP430套件(不建議作爲第一套產品),您將會獲得更多的滿足感,並獲得更好的鼓勵繼續學習。 – 2010-09-29 02:25:28

0

sparkfun.com有很多電路板,arduino家族和其他。我推薦armmite pro,而不是arduino pro的lillypad,因爲沒有涉及到焊接,因爲你需要/想要正確的usb串行/電源。 mbed2的價格更高一些,藍色的LED在眼睛上很殘酷,但易於使用。因爲上述任何一項都不需要在他們的沙箱中玩,你可以使用固定環境等,但不是必需的。

如果是linux開發,那麼我推薦在beagleboard.org上使用hawkboard.org,使beagleboard的可用開銷大約是開發板本身的兩倍,只有購買某種東西才能使用它。但是你可以在你的臺式機/筆記本電腦上學習linux驅動程序,而不必與嵌入式系統混淆。

模擬器是一個很好的開始,我有一個叫thumbnail http://github.com/dwelch67/thumbulator/wiki/thumbulator,在pic12和msp430上工作。 Qemu是好東西,模擬了很多處理器,非常適合模擬虛擬linux系統,學習linux驅動程序開發等。但是瞭解(虛擬/仿真)處理器正在做什麼並不是目標。我發現它具有可見性很有用。 gdb也包含一些模擬器。 mame與他們一起裝載,但像qemu設計用於快速仿真而不是用於教育。視覺男孩挺進很好。仿真從來不是完美的,所以最終你想要在硬件上運行,但是仿真器和編譯器工具是免費的,在你購買硬件之前你可以學習很多東西。儘管如此,你仍然無法從模擬器學習大量的內容,將程序加載到flash/ram中,使用jtag或其他接口進行調試。 i2c,spi等