每一個(gè)嵌入式應(yīng)用軟件都會(huì)在某些時(shí)候訪問(wèn)最底層的固件和進(jìn)行一些硬件控制。 驅(qū)動(dòng)的設(shè)計(jì)和實(shí)施是確保一個(gè)系統(tǒng)能夠滿足其實(shí)時(shí)性要求的關(guān)鍵。以下五個(gè)竅門(mén)是每一個(gè)開(kāi)發(fā)者在設(shè)計(jì)驅(qū)動(dòng)程序時(shí)應(yīng)該考慮的。
1 扁平線電感- 使用設(shè)計(jì)模式
設(shè)計(jì)模式是一個(gè)用來(lái)處理那些在軟件中會(huì)重復(fù)出現(xiàn)的問(wèn)題的解決方案。 開(kāi)發(fā)人員可以選擇浪費(fèi)寶貴的時(shí)間和預(yù)算從無(wú)到有地重新發(fā)明一個(gè)解決方案,也可以從他的解決方案工具箱中選擇一個(gè)最適合解決這個(gè)問(wèn)題的方案。在微處理器出現(xiàn)之初,底層驅(qū)動(dòng)已經(jīng)很成熟了,那么,為什么不利用現(xiàn)有的成熟的解決方案呢?
驅(qū)動(dòng)程序設(shè)計(jì)模式大致分屬以下4個(gè)類別:bit bang、輪詢、中斷驅(qū)動(dòng)和直接存儲(chǔ)器訪問(wèn)(DMA)。
Bit bang模式:當(dāng)微控制器沒(méi)有內(nèi)外設(shè)去執(zhí)行功能的時(shí)候,或者當(dāng)所有的內(nèi)外設(shè)都已經(jīng)被使用了,而此時(shí)又有一個(gè)新的請(qǐng)求,那么開(kāi)發(fā)者就應(yīng)該選擇bit bang設(shè)計(jì)模式。Bit bang模式的解決方案很有效率,但通常需要大量的軟件開(kāi)銷來(lái)確保其實(shí)施的能力。bit bang模式可以讓開(kāi)發(fā)者手動(dòng)完成通信協(xié)議或外部行為。
輪詢模式用于簡(jiǎn)單地監(jiān)視一個(gè)輪詢調(diào)度方式中的事件。輪詢模式適用于非常簡(jiǎn)單的系統(tǒng),但許多現(xiàn)代應(yīng)用程序都需要中斷。
中斷可以讓開(kāi)發(fā)者在事件發(fā)生時(shí)進(jìn)行處理,而不用等代碼手動(dòng)檢查。
DMA(直接存儲(chǔ)器訪問(wèn))模式允許其它外圍設(shè)備來(lái)處理數(shù)據(jù)傳輸?shù)男枨?,而不需要?qū) http://www.siyinzg.com/電感生產(chǎn) 動(dòng)的干預(yù)。
2 - 了解實(shí)時(shí)行為
一個(gè)實(shí)時(shí)系統(tǒng)滿足是否能滿足實(shí)時(shí)需求取決于它的驅(qū)動(dòng)程序。寫(xiě)入能力差的驅(qū)動(dòng)是低效的,并可能使不知情的開(kāi)發(fā)者放棄系統(tǒng)的性能。設(shè)計(jì)者需要考慮驅(qū)動(dòng)的兩個(gè)特點(diǎn):阻塞和非阻塞。一個(gè)阻塞的驅(qū)動(dòng)程序在其完成工作之前會(huì)阻止其他任何軟件執(zhí)行操作。例如,一個(gè)USART驅(qū)動(dòng)程序可以把一個(gè)字符裝入傳輸緩沖區(qū),然后一直等到接收到傳輸結(jié)束標(biāo)志符才繼續(xù)執(zhí)行下一步操作。 大功率電感廠家 |大電流電感工廠