嵌入式軟硬件模塊化開發(fā)和工具性總結(jié)
模塊化開發(fā)
在我們學(xué)習(xí)電子電路、單片機(jī)電路及嵌入式軟件開發(fā)的時(shí)候,總喜歡一塊一塊的學(xué),一塊一塊的研究調(diào)試,這樣我們能更快更好的掌握。
同樣在做產(chǎn)品設(shè)計(jì)開發(fā)的時(shí)候,我們也應(yīng)該發(fā)揚(yáng)這種模塊化開發(fā)的思想。比如一個(gè)產(chǎn)品的硬件有電源模塊電路、主控單元的最小系統(tǒng)、外部數(shù)據(jù)存儲(chǔ)、外部的各種通信接口,以及外圍的各種模擬量數(shù)字量的采集與控制電路,有的還少不了顯示電路等等。所以一個(gè)產(chǎn)品會(huì)有很多種模塊化電路組成,這些功能模塊又會(huì)對(duì)應(yīng)相應(yīng)的驅(qū)動(dòng)程序及功能模塊程序。
所以在產(chǎn)品開發(fā)的過(guò)程中我一直要求自己遵循模塊化開發(fā)的的理念,因?yàn)檫@樣會(huì)給我們帶來(lái)很多好處,比如:
1.在產(chǎn)品開發(fā)過(guò)程中軟硬件的調(diào)試,我們能更快更好的找出模塊內(nèi)存在的BUG,能更好的避免在做整合的時(shí)候出現(xiàn)更多的問(wèn)題。
2.能更好的優(yōu)化和升級(jí)產(chǎn)品。我們?cè)趦?yōu)化產(chǎn)品的時(shí)候只需要優(yōu)化和調(diào)試一部分模塊而不會(huì)牽一發(fā)而動(dòng)全身,這樣對(duì)優(yōu)化后的產(chǎn)品的穩(wěn)定性也能有更好的保證。
3.能做好更多的技術(shù)積累,對(duì)公司和對(duì)工程師個(gè)人而言能做到雙贏。積累的技術(shù)功能模塊能為公司保存更多的技術(shù)實(shí)力,對(duì)新產(chǎn)品的開發(fā)和已有產(chǎn)品的維護(hù)升級(jí)都至關(guān)重要。而我們工程師也能積累更多產(chǎn)品開發(fā)所需要的功能模塊設(shè)計(jì)。我們可以把這些積累作為一個(gè)個(gè)我們已經(jīng)打造好的工具,等到用的時(shí)候可以直接拿來(lái)用,既方便又穩(wěn)定可靠。
工具性總結(jié)
我一直主張?jiān)陂_發(fā)和學(xué)習(xí)的時(shí)候,不要盲目的做和學(xué),要有效的利用我們上面說(shuō)的模塊化,把可以重復(fù)利用的電路或程序代碼有效的模塊化接口化,經(jīng)過(guò)測(cè)試和穩(wěn)定性驗(yàn)證的程序模塊,是可以有效重復(fù)利用的,我們把這些模塊工具化。
我在做開發(fā)的時(shí)候都針對(duì)不同的MCU,都會(huì)自己封裝一套對(duì)應(yīng)的底層驅(qū)動(dòng)庫(kù),比如GPIO,我就做一個(gè)gpio.c和一個(gè)gpio.h的文件,在不同的項(xiàng)目開發(fā)中,我就只需要包含這兩個(gè)文件,用的時(shí)候,只要調(diào)用gpio的初始化和操作函數(shù)就可以了,如果我們每次都在程序中直接對(duì)io的寄存器操作,那么這些代碼是不是在其他項(xiàng)目中就不能重復(fù)利用了呢,每次我們還都要重復(fù)的編寫這些代碼,這樣也會(huì)帶來(lái)很多問(wèn)題,比如程序的可讀性,可修改性以及可測(cè)試性等。
隨著我們不斷的學(xué)習(xí)總結(jié),我們會(huì)積累更多的電路或程序模塊工具,在以后的開發(fā)過(guò)程中,我們就可以拿出我們?yōu)樽约捍蛟斓倪@些工具,像搭積木一樣的來(lái)開發(fā)產(chǎn)品。
這樣一來(lái),我們的產(chǎn)品開發(fā)是不是變得更加高效,而且每一個(gè)工具化的模塊都是以前經(jīng)過(guò)測(cè)試驗(yàn)證的,這樣也能為我們?cè)诋a(chǎn)品開發(fā)過(guò)程中節(jié)省大量的測(cè)試調(diào)試和驗(yàn)證的時(shí)間。
做很多事情都是這樣,立足當(dāng)下,思考未來(lái),總結(jié)規(guī)劃,今天的點(diǎn)滴付出,肯定能換來(lái)明天的美好結(jié)果。