欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何提高單片機(jī)程序的可靠性實(shí)時(shí)性測量準(zhǔn)確性

錢艷冰2年前16瀏覽0評論

如何提高單片機(jī)程序的可靠性實(shí)時(shí)性測量準(zhǔn)確性?

題主提到的單片機(jī)程序的可靠性、實(shí)時(shí)性,

軟件架構(gòu)起著決定性的作用,單片機(jī)程序的軟件架構(gòu)有以下幾點(diǎn)需要考慮:

1)分層分模塊

單片機(jī)程序至少分為三個(gè)層次,包括硬件驅(qū)動層,中間層,和應(yīng)用層。

硬件驅(qū)動層主要實(shí)現(xiàn)對硬件的驅(qū)動控制,包括輸入按鍵檢測,AD采樣,UART/IIC/SPI的收發(fā),系統(tǒng)定時(shí)時(shí)鐘的產(chǎn)生、定時(shí)事件傳送、事件銷毀,輸入指示燈控制,LCD顯示控制,F(xiàn)LASH讀寫等等。

中間層作為硬件驅(qū)動層和應(yīng)用層之間的中間處理模塊,負(fù)責(zé)將應(yīng)用層控制硬件驅(qū)動層的公共邏輯抽象提煉,而設(shè)計(jì)成一些能脫離應(yīng)用層獨(dú)立運(yùn)行的模塊。比如UART數(shù)據(jù)的收發(fā),當(dāng)應(yīng)用層需要發(fā)送數(shù)據(jù)時(shí),需要調(diào)用UART硬件驅(qū)動層的發(fā)送函數(shù)將數(shù)據(jù)填入發(fā)送緩存,再通過UART的發(fā)送中斷或DMA將數(shù)據(jù)逐一送出,當(dāng)有多個(gè)應(yīng)用層都需要往UART發(fā)送數(shù)據(jù)時(shí),需要有隊(duì)列的機(jī)制,需要有先進(jìn)先出的機(jī)制等等,而且有些應(yīng)用層的UART數(shù)據(jù)需要有對端的應(yīng)答,在超時(shí)沒有收到應(yīng)答時(shí),需要超時(shí)重發(fā)。當(dāng)多個(gè)應(yīng)用層模塊需要通過UART發(fā)送數(shù)據(jù)時(shí),每一個(gè)應(yīng)用層模塊都需要處理這樣的邏輯,將會使軟件異常臃腫無法維護(hù)。這個(gè)時(shí)候需要有一個(gè)串口數(shù)據(jù)的收發(fā)模塊,將所有應(yīng)用層的數(shù)據(jù)填入隊(duì)列,通過狀態(tài)機(jī)按先進(jìn)先出將報(bào)文從隊(duì)列取出,通過硬件驅(qū)動層的接口發(fā)送出去,同時(shí)通過狀態(tài)機(jī)處理數(shù)據(jù)應(yīng)答,超時(shí)重發(fā)等機(jī)制,這樣一來,應(yīng)用層的模塊只需要閉著眼睛調(diào)中間層的函數(shù)接口傳送報(bào)文,并且檢測中間層返回的狀態(tài),做一些事件處理即可。

應(yīng)用層是根據(jù)產(chǎn)品的功能抽象,根據(jù)不同的功能模塊劃分,包括,設(shè)備設(shè)置、UI顯示、應(yīng)用邏輯控制等等。每一個(gè)應(yīng)用層的功能模塊都要配合狀態(tài)機(jī)實(shí)現(xiàn),狀態(tài)機(jī)的每一個(gè)狀態(tài)都有一個(gè)狀態(tài)函數(shù),每一個(gè)狀態(tài)函數(shù)都有定時(shí)器,子狀態(tài)等等,之后就是按照邏輯根據(jù)不同的事件切換狀態(tài)。

這個(gè)問題太大了,未完待續(xù)

java串口接收延遲,如何提高單片機(jī)程序的可靠性實(shí)時(shí)性測量準(zhǔn)確性