新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM7核处理器uC/OS-ii系统的Nos-Wlan移植

基于ARM7核处理器uC/OS-ii系统的Nos-Wlan移植

作者:余俊(北京中电华大电子设计有限责任公司) 时间:2010-07-23 来源:电子产品世界 收藏

  3 LPC2478处理器系统框图

本文引用地址://m.amcfsurvey.com/article/111153.htm

  该系统以NXP的LPC2478处理器为核心,外围集成了FLASH,SDRAM,UART模块,以太网接口模块,USB OTG接口模块,LCD液晶屏和触摸屏模块,以及以FPGA为核心的视频采集模块以及华大电子的模块,该系统主要应用于视频监控领域,其系统硬件框架如图4所示:

  图 4 系统硬件框架

  4模块软件移植

  根据华大电子软件用户手册,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()驱动是基于周立功公司所提供的基于U盘的驱动修改而来,以适应USB无线网卡的需求。

  4.1 模块初始化

  模块初始化函数aq3_usb_init,完成整个模块的初始化,包括Nos Wifi模块内部内存池的初始化(调用模块接口函数hedrv_Init)、USB传输部分主数据结构的初始化、USB传输主线程的创建、模块内部源时钟的初始化及网卡的初始化(调用模块接口函数hedrv_UsbPlugIn),网卡初始化完成后模块内部会调用用户注册的初始化完成回调函数(DevInitDone,用户实现),该函数由网卡初始化函数hedrv_UsbPlugIn的参数传入。

  4.2 模块的卸载

  模块卸载函数aq3_usb_exit,完成整个模块的卸载,包块模块主源时钟的释放、Nos Wifi模块的卸载(调用模块接口函数hedrv_UsbPullOut)及所申请资源的释放等。

  4.3 Nos-Wlan模块临界保护的实现

  由于ucos-ii是实时的多任务嵌入式操作系统,模块需要对相关数据结构进行临界保护,其实现只需要使用ucos-ii提供的临界保护函数即可:

  void hosts_EnterCritical (void)

  {

  OS_ENTER_CRITICAL();

  }

  void hosts_LeaveCritical (void)

  {

  OS_EXIT_CRITICAL();

  }

  4.4 模块源时钟

  模块的源时钟时由系统tick定时器产生的,驱动向系统tick服务程序注册定时器超时回调函数,该函调函数进行计时,当10ms定时时间到时,该函数调用模块定时器超时处理回调函数hedrv_TickFunction。



评论


相关推荐

技术专区

关闭