- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
华大电子Nos-Wlan模块在基于ARM7核处理器uC/OS-ii系统的移植
LPC2478处理器uC/OS-ii系统框图
该系统以NXP的LPC2478处理器为核心,外围集成了FLASH,SDRAM,UART模块,以太网接口模块,USB OTG接口模块,LCD液晶屏和触摸屏模块,以及以FPGA为核心的视频采集模块以及华大电子的Nos-Wlan模块,该系统主要应用于视频监控领域,其系统硬件框架如图4所示:
图4:系统硬件框架。
Nos-Wlan模块软件移植
根据华大电子Nos-Wlan软件用户手册,Nos-Wlan模块软件移植所调用的模块内部接口函数有:hedrv_Init,hedrv_UsbPlugIn,hedrv_UsbPullOut,hedrv_UsbRx,hedrv_UsbTxDone,hedrv_UsbControlDone,hedrv_TickFunction,所需要实现的模块内部回调函数有:hosts_UsbHostReset,hosts_UsbTx,hosts_UsbControl,Nos-Wlan模块软件移植代码部分主要实现模块内部的初始化,模块内部所使用源时钟注册,USB控制帧及批量传输帧的发送和接收。其中,系统USB HOST(OHCI)驱动是基于周立功公司所提供的基于U盘的OHCI驱动修改而来,以适应USB无线网卡的需求。
·模块初始化
模块初始化函数aq3_usb_init,完成整个模块的初始化,包括Nos Wi-Fi模块内部内存池的初始化(调用模块接口函数hedrv_Init)、USB传输部分主数据结构的初始化、USB传输主线程的创建、模块内部源时钟的初始化及网卡的初始化(调用模块接口函数hedrv_UsbPlugIn),网卡初始化完成后模块内部会调用用户注册的初始化完成回调函数(DevInitDone,用户实现),该函数由网卡初始化函数hedrv_UsbPlugIn的参数传入。
·模块的卸载
模块卸载函数aq3_usb_exit,完成整个模块的卸载,包块模块主源时钟的释放、Nos Wi-Fi模块的卸载(调用模块接口函数hedrv_UsbPullOut)及所申请资源的释放等。
Nos-Wlan模块临界保护的实现
由于ucos-ii是实时的多任务嵌入式操作系统,模块需要对相关数据结构进行临界保护,其实现只需要使用ucos-ii提供的临界保护函数即可:
void hosts_EnterCritical (void)
{
OS_ENTER_CRITICAL();
}
void hosts_LeaveCritical (void)
{
OS_EXIT_CRITICAL();
}