模組化開發
在我們學習電子電路、微控制器電路及嵌入式軟體開發的時候,總喜歡一塊一塊的學,一塊一塊的研究除錯,這樣我們能更快更好的掌握。
同樣在做產品設計開發的時候,我們也應該發揚這種模組化開發的思想。比如乙個產品的硬體有電源模組電路、主控單元的最小系統、外部資料儲存、外部的各種通訊介面,以及外圍的各種模擬量數字量的採集與控制電路,有的還少不了顯示電路等等。所以乙個產品會有很多種模組化電路組成,這些功能模組又會對應相應的驅動程式及功能模組程式。
所以在產品開發的過程中我一直要求自己遵循模組化開發的的理念,因為這樣會給我們帶來很多好處,比如:
1.在產品開發過程中軟硬體的除錯,我們能更快更好的找出模組內存在的bug,能更好的避免在做整合的時候出現更多的問題。
2.能更好的優化和公升級產品。我們在優化產品的時候只需要優化和除錯一部分模組而不會牽一髮而動全身,這樣對優化後的產品的穩定性也能有更好的保證。
3.能做好更多的技術積累,對公司和對工程師個人而言能做到雙贏。積累的技術功能模組能為公司儲存更多的技術實力,對新產品的開發和已有產品的維護公升級都至關重要。而我們工程師也能積累更多產品開發所需要的功能模組設計。我們可以把這些積累作為乙個個我們已經打造好的工具,等到用的時候可以直接拿來用,既方便又穩定可靠。
工具性總結
我一直主張在開發和學習的時候,不要盲目的做和學,要有效的利用我們上面說的模組化,把可以重複利用的電路或程式**有效的模組化介面化,經過測試和穩定性驗證的程式模組,是可以有效重複利用的,我們把這些模組工具化。
我在做開發的時候都針對不同的mcu,都會自己封裝一套對應的底層驅動庫,比如gpio,我就做乙個gpio.c和乙個gpio.h的檔案,在不同的專案開發中,我就只需要包含這兩個檔案,用的時候,只要呼叫gpio的初始化和操作函式就可以了,如果我們每次都在程式中直接對io的暫存器操作,那麼這些**是不是在其他專案中就不能重複利用了呢,每次我們還都要重複的編寫這些**,這樣也會帶來很多問題,比如程式的可讀性,可修改性以及可測試性等。
隨著我們不斷的學習總結,我們會積累更多的電路或程式模組工具,在以後的開發過程中,我們就可以拿出我們為自己打造的這些工具,像搭積木一樣的來開發產品。
這樣一來,我們的產品開發是不是變得更加高效,而且每乙個工具化的模組都是以前經過測試驗證的,這樣也能為我們在產品開發過程中節省大量的測試除錯和驗證的時間。
做很多事情都是這樣,立足當下,思考未來,總結規劃,今天的點滴付出,肯定能換來明天的美好結果。
嵌入式軟硬體協作簡單例子分析
乙個典型的soc架構有cpu 匯流排 儲存器 外設。cpu負責指令的取指 解碼 執行 匯流排給每個cpu外圍裝置指定一些位址,包括儲存器和一些其他裝置。cpu通過這些位址開始的一些暫存器來控制這些硬體。以s3c2440為例,從0x0000 0000 0x4000 000對應儲存器空間,它被分成8個b...
自己動手打造嵌入式Linux軟硬體開發環境
linux和uclinux 1991年8月,芬蘭的乙個學生在comp.os.minix新聞組貼上了以下這段話 你好所有使用minix的人 我正在為386 486 at做乙個免費的作業系統 只是為了愛好,不會象gnu那樣很大很專業.這名學生就是linus torvalds,而他所說的 愛好 就變成我們...
嵌入式工程師的軟硬體之路
一般的學習軟體的人比較適合走偏軟的道路。硬體道路 第一步 pcb設計,一般為開發板的電路裁減和擴充,由開發板原理圖為基礎,畫出pcb和封裝庫,設計自己的電路。第二步 sopc技術,一般為fpga,cpld開發,利用vhdl等硬體描述語言做專用晶元開發,寫出自己的邏輯電路,基於alter或xilinu...