(3)修改启动脚本
在uClinux完成内核初始化之后,由init(void *)内核调用/bin/init,然后执行/etc/re脚本的命令。
可以利用这个脚本完成系统上电后的自动配置,或运行用户程序。
(4)内核配置与编译
需要建立一个交叉编译环境来完成内核和应用程序的编译,生成ROMFS文件系统,并最终形成一个固化文件。www.uClinux.org也提供这样一个工具包。正确安装后,就可以进行编译了。首先进入源代码目录uClinuxdist,执行make xconfig,在弹出的对话框中选择“Target Platform Selection”,然后进行相应配置。配置完毕后,在源代码目录执行“make dep”以及“make”,就得到了所要的二进制内核映像image.bin,可以直接下载到硬件平台运行。
3.3 路由器软件
移植成功后的uClinux操作系统只向用户提供了一个最基本的系统平台,针对实际应用还必须编写用户所必需的驱动程序和应用软件。MCF5272集成了2个UART控制器、1个从USB控制器和1个以太网控制器。我们又扩展了1个主USB控制器和4个UART控制器,为这些设备编写相应的驱动程序,并且在uClinux和驱动程序的基础上,实现路由器软件(包括路由模块、协议转换模块和无线网络节点浏览Internet代理模块)。
在路由模块中,可根据具体的情况选择适当的路由协议进行加载。根据实际情况,在骨干网中采用按需路由协议AODV。其基本实现思想是:当骨干网某一路由请求节点有分组发送并发现没有到达目的节点的有效路由时,它将启动路由建立过程,即组建一个路由寻找分组RREQ(Route Request Message)并在网络中泛洪寻址。路由表中有到目的节点有效路由,并组建一个路由响应分组RREP(Route Reply Message)并反向回播给路由请求节点建立路由,否则继续泛洪RREQ分组。如果路由请求节点再收到RREP分组,说明网络中已经建立到目的节点的路由,可以直接发送数据分组,否则可能继续发起下一次路由建立过程,也可以对数据丢弃处理。这里值得注意的是,每一个节点在接收RREQ的时候会反向建立到路由发起节点的路由(反向建链过程),以使得RREP可以沿此路径返回源节点;同时,每个节点在接收RREP的时候会正在向建立到目的节点的路由(正向建链过程)以使得分组可以沿此路径将分组传输给目的节点。在上述寻找路由的过程中,RREQ和RREP中均包含路由信息和节点的序号标识,以用来进行路由更新及避免路由闭环。
结语
近年来,嵌入式系统与Linux系统的有机结合,已广泛应用于网络通信、工业控制、机顶盒 、PDA等诸多领域。本文提出了一种基于嵌入式Linux平台的多协议路由器的设计方案,目前该设计方案已经实现。实践证明,此多协议路由器易于实现、性能稳定、运行效率较高,可应用于分级式Ad Hoc网络。
(参考链接: http://linux.ccidnet.com/art/310/20060925/908873_1.html)
|