一种在U—BooT中嵌入千兆网络功能的方法

发布者:平和宽容最新更新时间:2007-03-02 来源: 电子设计应用关键字:处理器  程序  存储 手机看文章 扫描二维码
随时随地手机看文章
引言

U-BOOT是德国DENX小组开发的用于多种嵌入式微处理器的引导加载程序,它是系统上电后运行的第一段程序代码,用于初始化目标板硬件,为嵌入式操作系统提供目标板硬件配置信息,并装载、引导和运行嵌入式操作系统等。U—BOOT支持网络功能,在下载操作系统内核和大的文件系统时,比其它不支持网络的引导加载程序速度更快、更方便。目前U—BOOT仅支持10M/100M的网络功能,随着科学技术发展,千兆网络功能必将大量应用在嵌入式系统中。本文介绍了一种让U—BOOT支持千兆网络功能的方法,可以使U—BOOT功能更加强大,使用更加方便。

U—BOOT简介

U—BOOT的全称是Universal Boot Loader,它遵循GPL条款的开放源码项目,支持多种处理器,如ARM、PowerPC、MIPS等,也支持Linux、VxWorks、QNX、RTEMS、ARTOS、LynxOS等嵌入式操作系统。

U-BOOT包含两种不同的工作模式:启动加载模式和下载模式。启动加载模式也称为自主模式,即U—BOOT从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,这种模式是U—BOOT的正常工作模式。下载模式就是在开发或生产过程中,U—BOOT通过网络连接等通信手段从主机下载操作系统内核和文件系统等到目标机的RAM中,然后再写到目标机上的FLASH类固态存储设备中。U—BOOT允许用户在这两种工作模式间进行切换,系统启动时会延时等待一段时间,如果这时用户没有按键,U—BOOT就默认进入启动加载模式。

U—BOOT代码采用一种高度模块化的编程方式,可以很方便地在不同的硬件平台上进行移植。U—BOOT下包含多个目录,如图1所示。其中BOARD目录下存放了所有其支持的目标板子目录,比如BOARD/SMDK2440/就是本文将要用到的目标板;COMMON目录是与体系结构无关的文件,实现各种命令的C文件;CPU目录存放了其支持的CPU类型,比如arm920t、mips、mpc8260和nios等,每个特定的子目录中都包括cpu.c和interrupt.c、start.s;DRIVERS目录存放了各种外设接口的驱动程序,其中就包含本文用到的千兆网络的驱动程序;FS目录存放了一些文件系统,U—BOOT现在支持cramfs、fat、fdos、jffs2和registerfs;net目录存放的是与网络有关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现,INCLUDE目录存放了一些相关头文件,还有对各种硬件平台支持的汇编文件、系统的配置文件和对文件系统支持的文件。

硬件平台

本文使用的硬件平台是基于S3C2440A的开发板和基于非PCI千兆以太网控制芯片AX88180的嵌入式网卡,如图2所示。S3C2440A是ARM920T核的16/32位RISC嵌入式微处理器,运行频率高达500MHz,开发板上有64M NAND闪存、64M SDRAM;网卡由MAC芯片AX88180、PHY芯片88E1111、RJ45等电路组成;S3C2440A目标板与网卡之间采用目标板32位扩展总线相连接,在产品设计时也可以将这两部分设计在同一块板上。

驱动程序

在U-BOOT中嵌入千兆网络功能需要设计千兆网卡驱动程序,并在U—BOOT中进行移植,在相应的硬件平台上实现通过千兆网口下载等功能。网卡驱动程序主要由初始化程序eth_init(bd_t*bd)、关闭网络设备程序eth_halt(void)、发送数据包程序eth_send(volatilevoid*packet,intlength)、接收数据包程序inteth_rx(void)等组成。初始化程序的工作主要是配置和初始化硬件,在初始化程序里可以完成对网络控制芯片AX88180和PHY芯片的配置,比如将接口设置为1000Mbps、全双工模式等。数据发送就是将上层协议打包好的数据放在发送数据缓冲区,然后由网卡发送到网络上;数据接收就是在网卡接收到网络传来的数据包产生中断后,从缓冲区将数据取出交给上层协议程序进行解包处理。中断服务程序处理网卡发送数据包后、接收到数据包后产生的中断以及PHY产生的中断等。

网卡初始化程序如下:

int eth_init(bd_t*bd)

{

memset(&axlocal,0,sizeof(AX88180_PRIVATE));

RESET_MAC;

DISABLE_INTERRUPT;

WRITE_MACREG(CMD,WAKEMOD);

tmp16=bd->bi_enetaddr[1];

macid0_val=(tmp16<<8) │ bd>bi_enetaddr[0];

tmp16=bd->bi_enetaddr[3];

macid1_val=(tmp16<<8)│ bd>bi_enetaddr[2];

tmp16=bd->bi_enetaddr[5];

macid2_val=(tmpl6<<8)│ bd>bi_enetaddr[4];

WRITE_MACREG(MACID0,macid0_val);

WRITE_MACREG(MACID1,macid1_val);

WRITE_MACREG(MACID2,macid2_val);

ax88180_PHY_initial();

ax88180_meida_config();

WRITE_MACREG(RXFILTER,DEFAULT_RXFILTER);

INT TXRX VARIABLES;

READ_MACREG(ISR,tmp_regval);

PRINTK(INIT_MSG,”ax88180;The interrupt status=0x%081x\n”.tmp_regval);

if(tmp_regval)

WRITE_MACREG(ISR,tmp_regval);

WRITE_MACREO(CMD,RXEN │ TXEN │ WAKEMOD);

return0;}

驱动移植

驱动移植是在基于S3C2440A硬件平台的U—BOOT中添加驱动程序代码和相关配置,具体如下:

1.在drivers/目录中添加网口设备驱动程序ax88180.c和ax88180.h。

2.在lib_arm/board.C中相应位置(参考CS8900)添加如下代码:

#ifdef CONFIG_DRIVER_AX88180

extern Void ax88180_get_enetaddr(uchar*addr);

#endif

#ifdef CONFIG_DRIVER_AX88180

ax88180_get_enetaddr(gd一>bd>bi_enetaddr);

#endif

3.在include/configs/smdk2440.h中相应位置(参考CS8900)添加如下代码:

#define CONFIG_DRIVER_AX88180 1 #define AX88180_BASE

Ox08000000

4.最后在drivers/Makefile中加入ax88180.o,重新编译生成U—BOOT即可。

结语

U-BOOT广泛应用在嵌入式系统中,本文阐述的方法可以使U-BOOT功能更强大、使用更方便,文中介绍的硬件平台给嵌入式系统千兆网络功能的设计提供了一定的指导。本设计虽然基于S3C2440A平台,对其它类似的系统也有很好的借鉴作用,本文介绍的方法已经在产品中得到应用,效果良好。

关键字:处理器  程序  存储 引用地址:一种在U—BooT中嵌入千兆网络功能的方法

上一篇:基于73M2901的远程数据传输系统
下一篇:MAX9217/MAX9218在视频链路中传输音频数据

推荐阅读最新更新时间:2024-05-07 15:54

海思半导体获得一系列ARM Mali图形处理器授权
2012年5月21日,中国深圳和英国剑桥——海思半导体(HiSilicon)和ARM®今日联合宣布,海思半导体已获得一系列ARM Mali™ 图形处理器(GPU)授权,包括市场领先的Mali-400 MP GPU和最新的高性能Mali-T658 GPU。通过这些新的授权,海思半导体能够为移动、消费和家庭设备生产厂商提供更多的图形处理器性能选择。在此之前,海思半导体已经取得了最新的ARM CortexTM处理器技术的授权,用于下一代设备。 这些新的授权将为海思半导体带来杰出的图形处理性能,其支持的范围可从目前使用于领先移动和消费设备中的一流图形处理解决方案,延伸到下一代图像与创新的产品需求。随着移动和消费市场的多元化发展,图形处理
[单片机]
使用LabVIEW FPGA模块设计IP核
  对于利用LabVIEW FPGA实现RIO目标平台上的定制硬件的工程师与开发人员,他们可以很容易地利用所推荐的组件设计构建适合其应用的、可复用且可扩展的代码模块。基于已经验证的设计进行代码模块开发,将使现有IP在未来应用中得到更好的复用,也可以使在不同开发人员和内部组织之间进行共享和交换的代码更好服用。   代码模块   任一项软件开发工作均包括函数、子例程、对象和代码模块,以及其他较大架构的基础构建模块的开发。当设计一个应用时,各个函数与操作均被识别和实现。然后,这些构建模块被组合与集成以形成更大的应用。通过长期开发不同应用的过程,一个开发小组或团队将创建表示常见操作的代码模块库,并对其进行复用以更快速地构建未来的应用。开
[测试测量]
UG-2864HSWEG0或ssd1306与stm32源程序+Proteus仿真
我在做这个仿真的时候也遇到了一定问题,现附上proteus仿真模拟图和源代码供大家参考。大家在用这块屏幕取字模的时候一定要注意是行列式还是列行试。注意在打印数组的时候要注意他的页与行的变换。加油 仿真原理图如下 单片机源程序如下: #include sys.h #include usart.h #include delay.h //unsigned char a = mengxinyu ; unsigned char a ={//孟 /* 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m
[单片机]
UG-2864HSWEG0或ssd1306与stm32源<font color='red'>程序</font>+Proteus仿真
Lcd.h头文件下载-字符型液晶LCD的AVR单片机驱动程序头文件
/***************************************************************************** 单 位:广西民族大学物理与电子工程学院07物本班 文件名称:Lcd.h 文件标识:_LCD_H_ 摘 要:字符型液晶LCD的AVR单片机驱动程序头文件 当前版本:V2.0 *****************************************************************************/ #ifndef _LCD_H_ #define _LCD_H_ #include BaiYuAvrKuD
[单片机]
ADC0832模数转换MSP430单片机程序+电路图
下面是电路图: ADC0832封装图 ADC0832与单片机连接图 ADC0832时序图 程序源码下载: #include msp430f2121.h #define DO (P1IN&BIT7) #define uchar unsigned char #define uint unsigned int /*********************************************** sbit cs=P2^0; sbit clk=P2^1; sbit DI=P2^2; sbit DO=P2^6; ***************************************
[单片机]
ADC0832模数转换MSP430单片机<font color='red'>程序</font>+电路图
Commvault荣获HPE年度存储合作伙伴称号
全球企业云和本地环境数据管理软件的公认领导者Commvault(纳斯达克代码:CVLT)近日宣布在HPE合作伙伴线上峰会上被授予“2020年HPE年度存储伙伴”称号。 Commvault凭借出色的产品性能、对客户的坚定承诺和专业成就广受业界认可,同时专注于创新发展,不断帮助客户简化智能数据保护工作。 围绕HPE的存储和服务器产品系列,Commvault和HPE共同提供了数据备份、恢复和管理的集成解决方案,包括企业备份恢复、基于HyperScale™技术的可扩展性、云原生集成、HPE存储硬件快照集成等。 Commvault和HPE存储系统的紧密集成,特别是在混合云环境中,可以帮助客户降低风险和成本,同时简化数据管理。 C
[网络通信]
韩国非存储芯片市场份额仅 3.3%,约为中国大陆一半
9 月 4 日消息,韩国产业经济贸易研究院 9 月 3 日发表的《全球非存储半导体市场格局及政策影响》报告显示,去年韩国在全球非存储半导体领域的市场份额仅为 3.3%,仅为日本的三分之一和中国大陆的二分之一。 报告显示,去年全球非存储半导体市场的总规模去年为 593 万亿韩元(IT之家备注:当前约 3.27 万亿元人民币)。按地区来看的话,美国占据主导地位,占 54.5%,其次是欧洲(11.8%)、中国台湾地区(10.3%)、日本(9.2%)和中国大陆(6.5%)。 据称,韩国的市场份额仅为 20 万亿韩元,占比 3.3%,在全球主要半导体价值链参与者中排名垫底。 去年韩国的非存储半导体总销售额达 1510 亿美元(当前约 1.1
[半导体设计/制造]
耐600℃高温存储器问世,有助开发极端环境下人工智能计算系统  
美国宾夕法尼亚大学科学家研制出一款可在600℃高温下持续工作60小时的存储器。这一耐受温度是目前商用存储设备的两倍多,表明该存储器具有极强的可靠性和稳定性,有望在可导致电子或存储设备故障的极端环境下大显身手,也为在恶劣条件下进行密集计算的人工智能系统奠定了基础。相关论文发表于新一期《自然·电子学》杂志。 最新存储设备示意图。 图片来源:《自然·电子学》 研究人员表示,这款存储器是一种非易失性设备,能在无电源状态下长期保留存储其上的信息。相较之下,传统硅基闪存在温度超过200℃时便开始失效,导致设备故障和信息丢失。 最新存储器使用铁电氮化铝钪(AlScN)研制而成。AlScN具有存储优势,因为它能在去除外部电场后,在更高温度下
[手机便携]
耐600℃高温<font color='red'>存储</font>器问世,有助开发极端环境下人工智能计算系统  
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved