欢迎来到天天文库
浏览记录
ID:40491357
大小:61.25 KB
页数:7页
时间:2019-08-03
《Redboot修改实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Redboot修改实例在通常情况下,嵌入式开发中都需要对bootload部分的代码进行修改,以适应实际的需求。本文以redboot为例,说明了如何修改redboot源码以使其具备1.启动时提供LOGO图片显示 2.为实现量产,在命令行下提供自动配置网络的命令autoconfig 3.为实现量产,在命令行下提供自动更新文件的命令update 4.为实现量产,在命令行下提供自动配置脚本的命令autoexecRedboot适用的运行环境为基于ARM架构的硬件环境,包括运行环境见表3.1。表
2、3.1Redboot是RedHat公司开发的一个独立运行在嵌入式系统上的BootLoad程序,是目前比较流行的一个功能强大、可移植性好的BootLoad。Redboot是一个采用eCos开发环境开发的应用程序,并采用了eCos的硬件抽象层作为基础,但它完全可以脱离eCos环境运行,并用来引导人和其他的嵌入式操作系统,如Linux、WinCE等。eCos实现系统可配置机制的核心就在于它是由许多个组件构成,包括调度内核组件、硬件抽象层、文件系统组件、网络协议栈等,用户可以根据不同的需求选择组件,并对一些特定的配置选项进行设置,就
3、可以构造出满足特定应用需求的系统。所有的组件都在组件库中,组件库其实是一个包含了eCos所有系统组件的文件夹,其路径对应于“/eCos-2.0/packages”,该目录的内容如下所示☆ compat 包含支持与POSIX和uITRON3.0标准兼容的组件文件包 ☆ cygmon 生成Cygmon调试监视器的配置文件包 ☆ devs eCos支持的所有外部设备驱动,如串口、以太网等
4、 ☆ error 包含各种常见的错误和状态描述代码,便于系统调试时报告错误和状态 ☆ fs 包含ROM和RAM文件系统包 ☆ hal 包含所有硬件抽象层的目标硬件配置文件包 ☆ infra 包含系统定义的基本结构,如数据类型、宏定义、系统启动方式选择 ☆ io I/O子系统文件包,建立在外
5、部设备驱动上层从而与特定硬件无关 ☆ isoinfra 包含的文件包提供支持ISO标准C库和兼容POSIX标准的接口 ☆ kernel 提供eCos内核功能的配置文件包 ☆ language 包含ISO的C库和math库 ☆ net 提供TCP/IP协议栈支持的文件包 ☆ redboot
6、 包含生成Redboot调试监视器的配置文件包 ☆ services 包含提供动态内存分配和文件压缩与解压功能的库文件与硬件相关的文件按照如上所述,分别对应以下的子目录: “/eCos-2.0/packages/hal/arm”:ArchitecturHAL “/eCos-2.0/packages/hal/arm/arm9”:VariantHAL “/eCos-2.0/packages/hal/arm/arm9/ep93xx”
7、:PlatformHAL为了实现本文开头的四项特殊功能,需要修改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/
8、src/main.c”ep93xx_misc的修改在本例中,开发平台上添加了一块FPGA芯片,通过该FPGA实现了对LCD的控制,因此对于raster的初始化过程有所不同。该部分的修改,主要目的是提供“启动时提供LOGO图片显示”的功能。增加__FPGA_LCD__宏定义 增
此文档下载收益归作者所有