Redboot修改实例.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Redboot修改实例

Redboot修改实例在通常情况下,嵌入式开发中都需要对bootload部分的代码进行修改,以适应实际的需求。本文以redboot为例,说明了如何修改redboot源码以使其具备1. 启动时提供LOGO图片显示?2. 为实现量产,在命令行下提供自动配置网络的命令autoconfig?3. 为实现量产,在命令行下提供自动更新文件的命令update?4. 为实现量产,在命令行下提供自动配置脚本的命令autoexecRedboot适用的运行环境为基于ARM架构的硬件环境,包括运行环境见表3.1。表3.1Redboot是Red Hat公司开发的一个独立运行在嵌入式系统上的BootLoad程序,是目前比较流行的一个功能强大、可移植性好的BootLoad。Redboot是一个采用eCos开发环境开发的应用程序,并采用了eCos的硬件抽象层作为基础,但它完全可以脱离eCos环境运行,并用来引导人和其他的嵌入式操作系统,如Linux、WinCE等。eCos实现系统可配置机制的核心就在于它是由许多个组件构成,包括调度内核组件、硬件抽象层、文件系统组件、网络协议栈等,用户可以根据不同的需求选择组件,并对一些特定的配置选项进行设置,就可以构造出满足特定应用需求的系统。所有的组件都在组件库中,组件库其实是一个包含了eCos所有系统组件的文件夹,其路径对应于“/eCos-2.0/packages”,该目录的内容如下所示☆?compat?包含支持与POSIX和uITRON3.0标准兼容的组件文件包?☆?cygmon?生成Cygmon调试监视器的配置文件包?☆?devs?eCos支持的所有外部设备驱动,如串口、以太网等?☆?error?包含各种常见的错误和状态描述代码,便于系统调试时报告错误和状态?☆?fs?包含ROM和RAM文件系统包?☆?hal?包含所有硬件抽象层的目标硬件配置文件包?☆?infra?包含系统定义的基本结构,如数据类型、宏定义、系统启动方式选择?☆??io?I/O子系统文件包,建立在外部设备驱动上层从而与特定硬件无关?☆?isoinfra?包含的文件包提供支持ISO标准C库和兼容POSIX标准的接口?☆??kernel?提供eCos内核功能的配置文件包?☆?language?包含ISO的C库和math库?☆?net?提供TCP/IP协议栈支持的文件包?☆?redboot?包含生成Redboot调试监视器的配置文件包?☆?services?包含提供动态内存分配和文件压缩与解压功能的库文件与硬件相关的文件按照如上所述,分别对应以下的子目录:?“/eCos-2.0/packages/hal/arm”:Architectur HAL?“/eCos-2.0/packages/hal/arm/arm9”:Variant HAL?“/eCos-2.0/packages/hal/arm/arm9/ep93xx”:Platform HAL为了实现本文开头的四项特殊功能,需要修改eCos中的部分代码。修改的文件为:?“/eCos-2.0/packages/hal/arm/arm9/ep93xx/v2_0/src/ep93xx_misc.c”?“/eCos-2.0/packages/redboot/v2_0/src/flash.c”?“/eCos-2.0/packages/redboot/v2_0/src/io.c”?“/eCos-2.0/packages/redboot/v2_0/src/main.c”ep93xx_misc的修改在本例中,开发平台上添加了一块FPGA芯片,通过该FPGA实现了对LCD的控制,因此对于raster的初始化过程有所不同。该部分的修改,主要目的是提供“启动时提供LOGO图片显示”的功能。增加__FPGA_LCD__宏定义?增加_RASTER_宏定义_RASTER_ 完成Raster设置并且显示开机界面。?_ FPGA_LCD _ 完成FPGA设置并且显示开机界面。Raster:?initRaster用来初始化LCD controller?LCD 界面定制在Nor Flash Address 0x60DC0000?Copy Kernel 到指定Address, Copy zImage 到0x800000(SDRAM Address)FPGA:?1. check chip 分区是否存在?2. 如果存在则Copy logo and chip 到指定地址。?3. 初始化FGPA。?4. 显示开机界面。?5. Copy Kernel 到指定地址。初始化FPGA流程:1. Config相关GPIO?a)????GPIO 0-7===D0~D7为输出?b)????GPIO 9,11,12===PROG_B,CSI_B,CCLK为输出 8,10

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档