当前位置: 首页 > 专利查询>中南大学专利>正文

一种Bootloader层驱动无线网络的方法技术

技术编号:10353868 阅读:182 留言:0更新日期:2014-08-27 10:20
本发明专利技术提出了一种Bootloader层驱动无线网络的方法,该方法实现了在Bootloader下的无线通信,即在操作系统启动之前,在硬件结构上实现信息的无线互传,该方法包括:在linux kernel中对无线网络驱动进行裁剪、重写,裁剪之后的driver文件,包含加载、初始化、打开关闭、数据传输等功能模块;在Bootloader下对网络驱动程序加载的修改设置方法,包括对config命令的预设、裁剪后的driver文件的位置配置。对driver的加载,发生在Bootloader启动的第二阶段,Bootloader顺序启动,加载相对应的网卡接口检测程序,在网卡与接口握手成功后,Bootloader主程序跳转至driver入口,通信开始。

【技术实现步骤摘要】
—种Bootloader层驱动无线网络的方法
本专利技术属于操作系统
,涉及Boot loader开发技术和无线驱动移植技术。
技术介绍
Bootloader是在操作系统内核运行起来之前运行的一段小程序,通过这段小程序,可初始化硬件设备、建立内存空间映射图,为操作系统启动提供基本的运行环境。在嵌入式系统中,整个软件系统的加载启动任务都是由Bootloader来完成的。Bootloader加载操作系统过程分为两个阶段。第一阶段使用汇编来实现,它完成一些依赖于CPU体系结构的初始化,并调用第二段的代码;第二段则通常使用C语言来实现,这样可以实现更加复杂的功能,而且代码会有更好的可读性和移植性。Bootloader启动的第一阶段中,首先将硬件初始化,为加载Bootloader第二段代码准备RAM空间,复制第二阶段代码到RAM中,设置好栈,跳转到第二阶段代码的C入口点。在第一阶段的进行的硬件初始化一般包括:关闭WATCHDOG,关中断,设置CPU的速度和时钟频率、RAM初始化等等。在Bootloader启动的第二阶段中,Bootloader首先初始化本阶段所要使用到的硬件设备,检测系统内存映射,将内存映像和文件系统从Flash或者server端读取到RAM中并为内核设置启动参数。Linux系统下W1-Fi模块正常工作所需的Host驱动包括WLAN和SDIO接口驱动两部分。WLAN驱动在整个数据收发过程中充当数据中转的角色,即接收上层用户应用程序的数据流,通过SDIO 口转发到W1-Fi硬件或响应W1-Fi硬件中断,并从硬件的缓冲区读取数据流,通过驱动程序注册的接口函数,发送到上层应用程序。而本专利技术提出的在Bootloader层驱动无线网络的方法,通过对Iinux操作系统下无线驱动进行裁剪,配置Bootloader结构,使得无线通信在操作系统之上运行,完成系统内核和板级信息的无线加载,提高了网络操作系统的开发效率。
技术实现思路
本专利技术要解决的技术问题在于克服上述现有技术的不足,提出,完善Bootloader下对无线驱动的支持,从而提高操作系统的开发效率。本专利技术针对上述技术问题而提出的技术方案包括提出一种在Bootloader层驱动无线网络的方法,该技术方法包括以下步骤:S1:在linux kernel中对无线网络驱动进行裁剪、重写,裁剪之后的driver主体,包含加载、初始化、打开关闭、数据传输等基本功能模块;S2:对linux kernel中无线驱动程序的裁剪过程中,通过拆分结构体,减少程序跳转,和对重要函数重写的方法实现,剔除系统资源相关元素,剔除总线结构。S3:在Boot loader下对网络驱动程序加载的设置方法进行修改,包括对config和makefile配置文件的修改。裁剪后的driver驱动文件位于Boot loader源码包中。无线驱动程序位于Bootloader下drivers文件夹内,包含一个C文件和对应的头文件。无线驱动程序存储与板级flash中,在Bootloader中顺序执行,并且在操作系统启动执行之前,实现数据下载和反馈功能。S4:添加对网卡操作的commond指令,无线驱动程序的主程序和头文件由config指令定义时实现封装。S5:修改相应板级头文件中对于默认网络驱动程序的指令信息,屏蔽有线加载操作系统的功能,直接跳转至无线加载接口。使Boot loader在顺序执行过程中,首先启动板级硬件,检测网络接口,由网络接口程序跳转至无线驱动接口。与现有技术相比,本专利技术的Uboot下无线网卡通信技术,通过对linux kernel内无线网卡驱动的裁剪与Uboot底层文件的相应配置,使得无线网卡驱动在操作系统启动之前得以运行,实现无线网络驱动脱离系统文件资源运行,节省了网络驱动启动时间,实现了在无操作系统情况下对server端数据的下载通信,提高了网络开发效率。【附图说明】图1为本专利技术开发步骤图;图2为本专利技术驱动裁剪流程图;图3为本专利技术无线网卡驱动流程图;【具体实施方式】下面结合一个方法实例对本专利技术的技术和有益效果进一步进行阐述。该实例是基于开发板0K6410,该移动设备平台包括:ARM架构CPU,型号为S3C6410,存储模块为 Nand Flash ;无线模块选用 WM-G-MR-09 (marvel18686)。本实例采用Uboot作为Bootloader的实例。驱动无线网络的方法包括在Iinuxkernel中对无线网络驱动进行裁剪、重写。裁剪之后的driver文件包含加载、初始化、打开关闭、数据传输等功能模块;包含在Bootloader下对网络驱动程序加载的修改设置方法;包括对config命令的预设,裁剪后的driver文件的位置配置。SlOl:参见图2,对linux kernel中src_8686文件进行裁剪,剔除了系统资源的总线结构、net_device结构体、注册、加载元素,保持驱动在算法上的稳定性。S201:在 linux_src_8686 裁剪中,首先修改 wlan_main.c,将 wlan_open()、wlan_close O、wlan_hard_start_xmit ()、wlan_tx_timeout ()、wlan_get_stats ()、wlan_set_mac_address ()、wlan_add_card ()、wlan_remove_card ()、wlan_send_rxskbQ ()、wlan_interrupt ()这些功能函数的wlan_private*priv = dev- > priv ;指针语句,修改为赋值语句 wlan_orivate = priv。S202:在 wlan_open()、wlan_close ()、wlan_hard_start_xmit ()、wlan_tx_timeout () > wIan_get_starts/wIan_set_mac_address ()、wlan_add_card() > wlan_remove_card()、wlan_send_rxskbQ()、wlan_interrupt ()这些功能函数中修改为包含如下元素的 struct net_device 结构体:open = wlan_open, close = wlan_close, hard_startxmit=wlan_hard_startxmit.tx_timeout = wlan_tx_timeou, wlan_get_starts, set_mac_address = wIan_set_mac_address, add_card = wlan_add_card, remove_card = wlan_remove_card, send_rxskbQ = wlan_send_rxskbQ, interrupt = wlan_interrupt。去除wlan_cleanup_module ()和 wlan_ins_module ()函数。S203:对于wlan_hard_start_xmit (),采用重写的方式,屏蔽掉与总线结构和注册函数以及系统资源调用的元素,仅重写数据接受和传输部分。本文档来自技高网
...

【技术保护点】
一种Bootloader层驱动无线网络的方法,本方法实现了在Bootloader下的无线通信,包括在linux kernel中对无线网络驱动进行裁剪、重写,裁剪之后的driver文件,包含加载、初始化、打开关闭、数据传输等功能模块;在Bootloader下对网络驱动程序加载的修改设置方法,包括对conflg命令的预设,裁剪后的driver文件的位置配置。

【技术特征摘要】
1.一种Bootloader层驱动无线网络的方法,本方法实现了在Bootloader下的无线通信,包括在linux kernel中对无线网络驱动进行裁剪、重写,裁剪之后的driver文件,包含加载、初始化、打开关闭、数据传输等功能模块;在Bootloader下对网络驱动程序加载的修改设置方法,包括对conflg命令的预设,裁剪后的driver文件的位置配置。2.根据权利要求1所述的方法,其特征在于,无线驱动程序运行于操作系统启动之前,驱动文件位于Bootloader源码包中。3.根据权利要求1所述的方法,...

【专利技术属性】
技术研发人员:熊永华吴敏王慧昭黄素珍李天远
申请(专利权)人:中南大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1