Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300785
  • 博文数量: 52
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 587
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-09 09:24
个人简介

水滴

文章分类

全部博文(52)

文章存档

2021年(3)

2019年(8)

2018年(32)

2017年(9)

我的朋友

分类: LINUX

2019-02-25 17:20:32

rt28xx_open分析

    上一节我们分析到,当驱动唤醒,调用函数resume,函数中调用接口rt28xx_open来进行相关初始化。

1. 清除power save节电状态
    RTMP_DRIVER_MCU_SLEEP_CLEAR()
    调用函数RTMP_COM_IoctlHandle设置mcu sleep 状态 
2. 初始化ioctl结构
    net_dev->wireless_handlers = (struct iw_handler_def *) &rt28xx_ap_iw_handler_def;
    rt28xx_ap_iw_handler_def结构定义了相关ioctl接口, 定义了iw支持的命令参数
3. 注册中断处理针对PCI
   RtmpOSIRQRequest ->rt2860_interrupt
4. 注册网络设备中断处理
   RTMP_DRIVER_IRQ_INIT->rtmp_irq_init(pAd);
  通过ioctl进行中断初始化工作
5. 芯片和其它相关初始化,内存分配等
   rt28xx_init(pAd, mac, hostname)
   函数中调用接口:
   a.初始化 任务\数据结构\状态机\定时器
   MlmeInit()->WpaStateMachineInit wpa状态机初始化
   b.网络任务初始化
   RtmpNetTaskInit->RTMP_OS_TASKLET_INIT(pAd, &pObj->rx_done_task, rx_done_tasklet, (unsigned long)pAd)->rx_done_tasklet->rtmp_rx_done_handle->提供无线数据、管理、控制报文、处理接口:
 

    c.读取用户配置文件/etc/Wireless/RT2860/RT2860.dat
      RTMPReadParametersHook(pAd);
    d. 启动AP
      APStartUp(pAd);

阅读(3844) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~