0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子工程师 来源:华仔 作者:华仔 2021-03-04 17:39 次阅读

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

U—BOOT简介

U—BOOT的全称是Universal Boot Loader,它遵循GPL条款的开放源码项目,支持多种处理器,如ARM、PowerPC、MIPS等,也支持LinuxVxWorks、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、全双工模式等。数据发送就是将上层协议打

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    一种利用wireshark对远程服务器/路由器网络抓包方法

    一种利用wireshark对远程服务器/路由器网络抓包方法
    的头像 发表于 09-21 08:03 332次阅读
    <b class='flag-5'>一种</b>利用wireshark对远程服务器/路由器<b class='flag-5'>网络</b>抓包<b class='flag-5'>方法</b>

    u-boot汇编启动阶段的相关操作介绍

    u-boot汇编启动阶段对系统的些初始化 当cpu交由u-boot接管进入u-boot后, 首先会到_start符号处开始执行初始化,
    的头像 发表于 12-07 11:22 425次阅读

    u-boot armv8链接脚本

    u-boot armv8链接脚本 进行源码分析之前,首先看看u-boot的链接脚本,通过链接脚本可以从整体了解u-boot的组成,并且
    的头像 发表于 12-07 11:19 478次阅读

    含受控源网络戴维宁等效电路的一种求解方法

    电子发烧友网站提供《含受控源网络戴维宁等效电路的一种求解方法.pdf》资料免费下载
    发表于 11-18 11:52 0次下载
    含受控源<b class='flag-5'>网络</b>戴维宁等效电路的<b class='flag-5'>一种</b>求解<b class='flag-5'>方法</b>

    【米尔-TIAM62开发板-接替335x-试用评测】+(二)配置U-Boot步骤实战

    科技有限公司茜茜的周日及时回复和帮助!感谢深圳市米尔科技有限公司提供的技术支持与帮助! 谢谢! 嵌入式系统开发的过程,理解并正确配置U-Boot是非常重要的
    发表于 11-13 12:36

    简单讲讲u-boot和bootloader有啥区别

    嵌入式软件开发,掌握u-boot 和 bootloader应该是必备的技能之,但很多工程师依然不知道它们到底是啥。
    的头像 发表于 11-09 12:24 999次阅读

    一种新型的最大功率跟踪实现方法太阳能充电器的应用

    电子发烧友网站提供《一种新型的最大功率跟踪实现方法太阳能充电器的应用.pdf》资料免费下载
    发表于 11-02 11:12 4次下载
    <b class='flag-5'>一种</b>新型的最大功率跟踪实现<b class='flag-5'>方法</b><b class='flag-5'>在</b>太阳能充电器<b class='flag-5'>中</b>的应用

    CAN通信协议里一种checksum校验和的方法

    看到了一种checksum校验和的方法,分享给大家
    的头像 发表于 10-31 12:58 3722次阅读
    CAN通信协议里<b class='flag-5'>一种</b>checksum校验和的<b class='flag-5'>方法</b>

    一种OQPSK信号的调制方法

    电子发烧友网站提供《一种OQPSK信号的调制方法.pdf》资料免费下载
    发表于 10-23 11:25 0次下载
    <b class='flag-5'>一种</b>OQPSK信号的调制<b class='flag-5'>方法</b>

    一种小型专用键盘的设计方法

    电子发烧友网站提供《一种小型专用键盘的设计方法.pdf》资料免费下载
    发表于 10-20 11:35 0次下载
    <b class='flag-5'>一种</b>小型专用键盘的设计<b class='flag-5'>方法</b>

    基于一种多电动机网络控制系统的设计方法

    电子发烧友网站提供《基于一种多电动机网络控制系统的设计方法.pdf》资料免费下载
    发表于 10-19 10:18 0次下载
    基于<b class='flag-5'>一种</b>多电动机<b class='flag-5'>网络</b>控制系统的设计<b class='flag-5'>方法</b>

    一种功能汽车行驶记录仪的嵌入式系统设计

    电子发烧友网站提供《一种功能汽车行驶记录仪的嵌入式系统设计.pdf》资料免费下载
    发表于 10-13 11:21 0次下载
    <b class='flag-5'>一种</b>多<b class='flag-5'>功能</b>汽车行驶记录仪的<b class='flag-5'>嵌入</b>式系统设计

    Spring Boot Actuator快速入门

    不知道大家写 Spring Boot 项目的过程,使用过 Spring Boot Actuator 吗?知道 Spring
    的头像 发表于 10-09 17:11 536次阅读

    千兆光模块还能满足现代网络需求吗?

    本文通过分析千兆光模块的技术特点和现在的网络需求,讨论了千兆光模块是否还能满足现代网络需求的问题。文章提出,
    的头像 发表于 10-09 10:04 353次阅读

    Spring Boot如何实现异步任务

    Spring Boot 提供了多种方式来实现异步任务,这里介绍三主要实现方式。 1、基于注解 @Async @Async 注解是 Spring 提供的一种轻量级异步方法实现方式,它可
    的头像 发表于 09-30 10:32 1203次阅读