- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ecos下wlan驱动实现
Ecos操作系统下wlan驱动程序的实现 CYGBLD_HAL_TABLE_BEGIN,CYGBLD_HAL_TABLE_END可定义一个全局的段.ecos.table.xxxx.data CYGBLD_HAL_TABLE_ENTRY可将声明的变量置于某全局段.ecos.table.xxx.data中 宏展开 类构造函数执行实现对初始化函数的调用 初始化函数cyg_net_init() 类构造函数如何被执行 函数Cyg_hal_invoke_constructors() Rtlxxxx_wlan_init()完成以下操作: Tx descriptor format (before transmitting, OWN=1) Tx descriptor format (after transmitting, OWN=0) 硬件指针 报文接收过程 报文发送过程 * * * * 初始化过程 Tx/Rx descriptor 报文接收过程 报文发送过程 在support.c: CYG_HAL_TABLE_BEGIN( __NETDEVTAB__, netdev ); CYG_HAL_TABLE_END( __NETDEVTAB_END__, netdev ); __asm__(.section \.ecos.table.netdev.begin\,\aw\\n \ .globl __NETDEVTAB__\n \ .type __NETDEVTAB__,object\n \ .p2align __xstring(CYGARC_P2ALIGNMENT) \n \ __xstring(CYG_LABEL_DEFN(_label)) :\n \ .previous\n \ ) #define CYG_HAL_TABLE_END( _label, _name ) \ __asm__(.section \.ecos.table.netdev.finish\,\aw\\n \ .globl __NETDEVTAB_END__\n \ .type __NETDEVTAB_END__,object\n \ .p2align __xstring(CYGARC_P2ALIGNMENT) \n \ __xstring(CYG_LABEL_DEFN(_label)) :\n \ .previous\n \ ) 在netdev.h extern cyg_netdevtab_entry_t __NETDEVTAB__[], __NETDEVTAB_END__; 在dev_wlan_mips_rtl8186.inl NETDEVTAB_ENTRY( rtlxxxx_wlan_netdev0, rtl8186_CYGDAT_DEVS_WLAN_MIPS_REALTEK_RTL8186_WLAN0_NAME, rtlxxxx_wlan_init, rtlxxxx_wlan0_priv_data ); #define CYGDAT_DEVS_WLAN_MIPS_REALTEK_RTL8186_WLAN0_NAME wlan0 NETDEVTAB_ENTRY( rtlxxxx_wlan_netdev0, rtl8186_wlan “, rtlxxxx_wlan_init, rtlxxxx_wlan0_priv_data ); static bool rtlxxxx_wlan_init(struct cyg_netdevtab_entry *tab); cyg_netdevtab_entry_t rtlxxxx_wlan_netdev0 __attribut
文档评论(0)