基于ARM7核處理器uC/OS-ii系統(tǒng)的Nos-Wlan移植
3 LPC2478處理器uC/OS-ii系統(tǒng)框圖
本文引用地址:http://www.ex-cimer.com/article/111153.htm該系統(tǒng)以NXP的LPC2478處理器為核心,外圍集成了FLASH,SDRAM,UART模塊,以太網(wǎng)接口模塊,USB OTG接口模塊,LCD液晶屏和觸摸屏模塊,以及以FPGA為核心的視頻采集模塊以及華大電子的Nos-Wlan模塊,該系統(tǒng)主要應(yīng)用于視頻監(jiān)控領(lǐng)域,其系統(tǒng)硬件框架如圖4所示:
圖 4 系統(tǒng)硬件框架
4 Nos-Wlan模塊軟件移植
根據(jù)華大電子Nos-Wlan軟件用戶手冊(cè),Nos-Wlan模塊軟件移植所調(diào)用的模塊內(nèi)部接口函數(shù)有:hedrv_Init,hedrv_UsbPlugIn,hedrv_UsbPullOut,hedrv_UsbRx,hedrv_UsbTxDone,hedrv_UsbControlDone,hedrv_TickFunction,所需要實(shí)現(xiàn)的模塊內(nèi)部回調(diào)函數(shù)有:hosts_UsbHostReset,hosts_UsbTx,hosts_UsbControl,Nos-Wlan模塊軟件移植代碼部分主要實(shí)現(xiàn)模塊內(nèi)部的初始化,模塊內(nèi)部所使用源時(shí)鐘注冊(cè),USB控制幀及批量傳輸幀的發(fā)送和接收。其中,系統(tǒng)USB HOST(OHCI)驅(qū)動(dòng)是基于周立功公司所提供的基于U盤(pán)的OHCI驅(qū)動(dòng)修改而來(lái),以適應(yīng)USB無(wú)線網(wǎng)卡的需求。
4.1 模塊初始化
模塊初始化函數(shù)aq3_usb_init,完成整個(gè)模塊的初始化,包括Nos Wifi模塊內(nèi)部?jī)?nèi)存池的初始化(調(diào)用模塊接口函數(shù)hedrv_Init)、USB傳輸部分主數(shù)據(jù)結(jié)構(gòu)的初始化、USB傳輸主線程的創(chuàng)建、模塊內(nèi)部源時(shí)鐘的初始化及網(wǎng)卡的初始化(調(diào)用模塊接口函數(shù)hedrv_UsbPlugIn),網(wǎng)卡初始化完成后模塊內(nèi)部會(huì)調(diào)用用戶注冊(cè)的初始化完成回調(diào)函數(shù)(DevInitDone,用戶實(shí)現(xiàn)),該函數(shù)由網(wǎng)卡初始化函數(shù)hedrv_UsbPlugIn的參數(shù)傳入。
4.2 模塊的卸載
模塊卸載函數(shù)aq3_usb_exit,完成整個(gè)模塊的卸載,包塊模塊主源時(shí)鐘的釋放、Nos Wifi模塊的卸載(調(diào)用模塊接口函數(shù)hedrv_UsbPullOut)及所申請(qǐng)資源的釋放等。
4.3 Nos-Wlan模塊臨界保護(hù)的實(shí)現(xiàn)
由于ucos-ii是實(shí)時(shí)的多任務(wù)嵌入式操作系統(tǒng),模塊需要對(duì)相關(guān)數(shù)據(jù)結(jié)構(gòu)進(jìn)行臨界保護(hù),其實(shí)現(xiàn)只需要使用ucos-ii提供的臨界保護(hù)函數(shù)即可:
void hosts_EnterCritical (void)
{
OS_ENTER_CRITICAL();
}
void hosts_LeaveCritical (void)
{
OS_EXIT_CRITICAL();
}
4.4 模塊源時(shí)鐘
模塊的源時(shí)鐘時(shí)由系統(tǒng)tick定時(shí)器產(chǎn)生的,驅(qū)動(dòng)向系統(tǒng)tick服務(wù)程序注冊(cè)定時(shí)器超時(shí)回調(diào)函數(shù),該函調(diào)函數(shù)進(jìn)行計(jì)時(shí),當(dāng)10ms定時(shí)時(shí)間到時(shí),該函數(shù)調(diào)用模塊定時(shí)器超時(shí)處理回調(diào)函數(shù)hedrv_TickFunction。
評(píng)論