新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于网络加载的嵌入式BootLoader的设计与实现

基于网络加载的嵌入式BootLoader的设计与实现

作者:时间:2013-01-15来源:网络收藏

摘要:由于引导装载程序()的加载方式在产品开发初期阶段的广泛应用,因此基于设计与实现具有较强的实际意义。提出了基于加载的整套设计与解决方案,并将该方案应用到实际产品;C中。最后,通过BootLoad er引导装载过程的测试与分析,验证该方案的可行性与高效性。
关键词:;BootLoader;网络;;

从软件结构层次的角度来看,一般由引导装载程序(BootLoader,BSP)、操作系统和应用程序几部分组成。然而在有的嵌入式系统中,操作系统和应用程序存放在系统以外的设备中,如网络、硬盘等,整个系统只有引导装载程序。因此BootLoader是嵌入式系统设计中比较重要的一部分。
在嵌入式系统的引导中,按照应用程序存放位置,可以有3种不同的加载方式:固态存储媒体、磁盘以及网络,每种方式都会有自己特有的配置和用法。3种设置方式各有其优缺点,固态储存媒体启动方式一般适用于带有ROM/FLASH的嵌入式系统中,是大多数嵌入式设备的首选方案如手机,mp3等,但当应用程序较大的情况下,为了降低嵌入式设备的单价,磁盘启动方式也被大量使用,典型应用如SDH电信传输网络设备测试仪ANT-20等,而基于网络加载方式则是最便宜的嵌入式设备的应用方案,应用程序存放在网络服务器端,嵌入式设备启动时,只需要将它通过网络当到内存并运行,一方面可以快速解决应用程序升级问题,另一方面也可以降低嵌入设备的整体成本,且在开发初期这种方式也能大幅提高调试速度,典型的应用如嵌入式设备的瘦客户端。

1 基于网络加载的BootLoader方案设计
这种方案重点解决两个问题,一是嵌入式设备加电后启动前与服务器端之间的通信与联系,二是嵌入设备在启动过程中应用程序下载方式的实现。前者需要将嵌入式设备驱动起来,实现通信能力,网卡驱动是必须实现的步骤,后者需要通过相关的协议栈将应用程序下载到系统内存,运行起来。本文重点介始基于UDP/IP协议栈的(DHCP、TFIP、NFS)加载方案设计。
1.1 BooiLoader中网卡驱动的设计
网络适配器(网卡)一般由可编程数据链路控制器、曼彻斯特编码/译码器、收发器接口和控制电路等几部分组成,其中可编程数据链路控制器由微处理器和网络管理部分等组成,如图1所示。

本文引用地址:http://www.eepw.com.cn/article/148141.htm

c.JPG


在BootLoader网卡驱动设计中,主要包括3种基本的操作(文中以Realtek8139网卡作为实例进行具体分析):
1)网卡的初始化
应完成的工作是初始化网卡中的相关硬件,包括网卡中断向量的设置、网卡接收与发送缓冲区在内存中的映射、网卡数据结构的初始化等。
2)数据包发送
发送和发送控制部分负责帧的发送。发送部分接受来自“NBZ曼彻斯特转换器”的曼彻斯特码的数据,并在发送控制部分允许的条件下将数据发送到媒体,发送的数据称为TxD。发送控制部分判定是否进行发送,这种判定基于LAN管理部分和TxD来进行。
3)数据包的接收
接收和接收控制部分负责帧的接收。这一部分产生网络是否有载波存在的信号,产生的依据是从RxD中获得。因此,网络上来的信号一方面馈送给接收器,另一方面要馈送给接收控制部分。接收控制部分根据LAN管理部分和媒体上接收的信号判定是否使接收器工作。
1.2 网络服务器端应用方案的设计
在网络加载BootLoader中,使用到的应用层协议有DHCP、TFTP和NFS。目标平台在工作中,需要服务器端提供以上协议的服务:
1)建立服务器端的DHCP服务
该服务完成的功能是为目标平台提供有效的IP地址分配,保证目标平台与服务器之间正常通信时地址唯一。其配置过程如下:
在确信DHCP协议已经被正确安装后,需修改/etc/dhcpd.conf文件,例如:
d.JPG


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭