一直想寫一寫嵌入式開發這些年的經驗,但一直沒能下筆,今天終于下定決心,來對這些年的經驗心得進行一個總結,是以,先寫一個前言吧,來對這些心得進行一個引述。
在聯考選專業的時候,因為小的時候,家裡有地,是以對自動化農業、機器人這些就很感興趣,也就誤打誤撞的,報考了自動化專業,自然而言的,工作後,也是就沉浸在了這個行業之中。其實,包括自己,在剛開始做這些的時候,對嵌入式開發的概念都是很模糊的。
那麼,什麼是嵌入式開發呢?
首先,我們要知道,什麼叫嵌入式,是單片機才叫做嵌入式嗎?答案是當然不是。
在一切智能化的裝置中,其所依托的,其實是半導體二極管的陣列組合,所有的邏輯行為,隻是不同的0和1的陣列組合方式,是以,凡是以半導體的陣列組合作為依托,來執行特定的邏輯行為的裝置平台,我們都可以稱為嵌入式,目前,常見的嵌入式的平台有單片機(MCU、MPU等)、FPGA、DSP這3種主流的器件種類(Android開發不同于PC開發和單片機開發,其是針對于特定作業系統的單純應用軟體的開發方式)。
但無論是哪一種器件,其實體形式都隻是功能實作的依托,但其中所運作的代碼和資料,才是這個器件的靈魂。
對于不同的器件,其開發方式是不一樣的,其需要的開發語言也是多樣的,是以便有了,C、VHDL、Verilog HDL、梯形圖等等諸多的基礎語言,而在開發中,為了具有更加容易了解、更加有趣的靈魂,也就有了Java、C#、C++、Python等等這些所謂的進階語言。但萬變不離其宗,無論任何語言,其最終都是要轉變為二進制檔案,都需要存儲在特定的位置,在特定的裝置平台上進行執行的,也是以,無論是何種語言,也就有了編譯、連結等轉換步驟。
對于單片機開發(含單片機、FPGA、DSP),其主要涉及的5塊分别為:外圍功能部分、算法、資料結構、通訊、邏輯時序。
對于Android開發和PC開發,則主要涉及的2塊為:UI設計、軟體平台及其工具元件。
在這個總結中,先對普通的單片機開發進行介紹,将按照單片機架構、單片機常用外圍功能介紹(序列槽、CAN、IIC、SPI等)、PCB的基本知識和Layout原則、編譯和連結原理、基本C文法和常用的子產品化封包套路、規範化的軟體開發流程的順序,對普通單片機開發進行介紹。