⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 redboot_rebuilding.sgml

📁 eCos/RedBoot for勤研ARM AnywhereII(4510) 含全部源代码
💻 SGML
📖 第 1 页 / 共 2 页
字号:
<!-- {{{ Banner                         -->

<!-- =============================================================== -->
<!--                                                                 -->
<!--     redboot_rebuilding.sgml                                     -->
<!--                                                                 -->
<!--     RedBoot Documentation                                       -->
<!--                                                                 -->
<!-- =============================================================== -->
<!-- ####COPYRIGHTBEGIN####                                          -->
<!--                                                                 -->
<!-- =============================================================== -->
<!-- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.  -->
<!-- This material may be distributed only subject to the terms      -->
<!-- and conditions set forth in the Open Publication License, v1.0  -->
<!-- or later (the latest version is presently available at          -->
<!-- http://www.opencontent.org/openpub/)                            -->
<!-- Distribution of the work or derivative of the work in any       -->
<!-- standard (paper) book form is prohibited unless prior           -->
<!-- permission obtained from the copyright holder                   -->
<!-- =============================================================== -->
<!--                                                                 -->      
<!-- ####COPYRIGHTEND####                                            -->
<!-- =============================================================== -->
<!-- #####DESCRIPTIONBEGIN####                                       -->
<!--                                                                 -->
<!-- ####DESCRIPTIONEND####                                          -->
<!-- =============================================================== -->

<!-- }}} -->

<chapter id="Rebuilding-Redboot">
<title>Rebuilding RedBoot</title>
<sect1>
<title>Introduction</title>
<para><indexterm><primary>rebuilding RedBoot</primary></indexterm><indexterm>
<primary>RedBoot</primary><secondary>rebuilding</secondary></indexterm>
RedBoot is built as an application on top of eCos. The makefile rules
for building RedBoot are part of the eCos CDL package, so it's
possible to build eCos from the <application>Configuration
Tool</application>, as well as from the command line using
<application>ecosconfig</application>.</para>

<para>Building RedBoot requires only a few steps: selecting the
platform and the RedBoot template, importing a platform specific
configuration file, and finally starting the build.</para>

<para>The platform specific configuration file makes sure the settings
are correct for building RedBoot on the given platform. Each platform
should provide at least two of these configuration files:
<filename>redboot_RAM.ecm</filename> for a RAM mode RedBoot
configuration and <filename>redboot_ROM.ecm</filename> or
<filename>redboot_ROMRAM.ecm</filename> for a ROM or ROMRAM mode
RedBoot configuration. There may be additional
configuration files according to the requirements of the particular
platform.</para>

<para>The RedBoot build process results in a number of files in the
install <filename class="directory">bin</filename> directory. The ELF
file <filename>redboot.elf</filename> is the pricipal
result. Depending on the platform CDL, there will also be generated
versions of RedBoot in other file formats, such as
<filename>redboot.bin</filename> (binary format, good when doing an
update of a primary RedBoot image, see <xref
linkend="update-primary-image">), <filename>redboot.srec</filename>
(Motorola S-record format, good when downloading a RAM mode image for
execution), and <filename>redboot.img</filename> (stripped ELF format,
good when downloading a RAM mode image for execution, smaller than the
.srec file). Some platforms may provide additional file formats and
also relocate some of these files to a
particular address making them more suitable for downloading using a
different boot monitor or flash programming tools.</para>

<para>The platform specific information in <xref
linkend="Installation-and-Testing"> should be consulted, as there may
be other special instructions required to build RedBoot for particular
platforms.</para>

<sect2>
<title>Rebuilding RedBoot using <application>ecosconfig</application></title>

<para>To rebuild RedBoot using the
<application>ecosconfig</application> tool, create a temporary
directory for building RedBoot, name it according to the desired
configuration of RedBoot, here RAM:
<screen>
$ <userinput>mkdir /tmp/redboot_RAM</userinput>
$ <userinput>cd /tmp/redboot_RAM</userinput>
</screen>
</para>

<para>Create the build tree according to the chosen platform, here
using the Hitachi Solution Engine 7751 board as
an example:
<note><para>It is assumed that the environment variable
ECOS_REPOSITORY points to the eCos/RedBoot source tree.</para></note>
<screen>
$ <userinput>ecosconfig new se7751 redboot</userinput>
U CYGPKG_HAL_SH_7750, new inferred value 0
U CYGPKG_HAL_SH_7751, new inferred value 1
U CYGHWR_HAL_SH_IRQ_USE_IRQLVL, new inferred value 1
U CYGSEM_HAL_USE_ROM_MONITOR, new inferred value 0
U CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM, new inferred value 0
U CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS, new inferred value 1
U CYGFUN_LIBC_STRING_BSD_FUNCS, new inferred value 0
U CYGPKG_NS_DNS_BUILD, new inferred value 0
</screen>
Replace the platform name ("se7751") with the appropriate name for the
chosen platform.
</para>

<para>Then import the appropriate platform RedBoot configuration file,
here for RAM configuration:
<screen>
$ <userinput>ecosconfig import <filename>${ECOS_REPOSITORY}/hal/sh/se7751/<replaceable>VERSION</replaceable>/misc/redboot_RAM.ecm</filename></userinput>
$ <userinput>ecosconfig tree</userinput>
</screen>
Replace architecture ("sh"), platform ("se7751") and version
("<replaceable>VERSION</replaceable>") with those appropriate for the
chosen platform and the version number of its HAL package. Also
replace the configuration name ("redboot_RAM.ecm") with that of the
appropriate configuration file.
</para>

<para>RedBoot can now be built:
<screen>
$ <userinput>make</userinput>
</screen>
</para>

<para>The resulting RedBoot files will be in the associated
install directory, in this example, <filename
class="directory">./install/bin</filename>.</para>

<para>In <xref linkend="Installation-and-Testing"> each platform's
details are described in the form of shell variables. Using those,
the steps to build RedBoot are:
<programlisting>
export REDBOOT_CFG=redboot_ROM
export VERSION=<replaceable>VERSION</replaceable>
mkdir /tmp/${REDBOOT_CFG}
cd /tmp/${REDBOOT_CFG}
ecosconfig new ${TARGET} redboot
ecosconfig import ${ECOS_REPOSITORY}/hal/${ARCH_DIR}/${PLATFORM_DIR}/${VERSION}/misc/${REDBOOT_CFG}.ecm
ecosconfig tree
make
</programlisting>
To build for another configuration, simply change the
<replaceable>REDBOOT_CFG</replaceable> definition accordingly. Also
make sure the <replaceable>VERSION</replaceable> variable matches the
version of the platform package.
</para>
</sect2>


<sect2>
<title>Rebuilding RedBoot from the <application>Configuration Tool</application></title>

<para>To rebuild RedBoot from the <application>Configuration
Tool</application>, open the template window (<guimenuitem>Build->Templates</guimenuitem>) and
select the appropriate Hardware target and in Packages select
"redboot". Then press OK. Depending on the platform, a number of
conflicts may need to be resolved before the build can be started;
select "Continue".</para>

<para>Import the desired RedBoot configuration file from the platform HAL
(<guimenuitem>File->Import...</guimenuitem>).  Depending on the platform, a number of
conflicts may need to be resolved before the build can be started;
select "Continue". For example, if the platform selected is Hitachi
SE7751 board and the RAM configuration RedBoot should be built, import
the file
<filename>hal/sh/se7751/<replaceable>VERSION</replaceable>/misc/redboot_RAM.ecm</filename>.</para>

<para>Save the configuration somewhere suitable with enough disk space
for building RedBoot (<guimenuitem>File->Save...</guimenuitem>). Choose the name according to
the RedBoot configuration, for example
<filename>redboot_RAM.ecc</filename>.</para>

<para>Then start the build (<guimenuitem>Build->Library</guimenuitem>) and wait for it to
complete. The resulting RedBoot files will be in the associated
install directory, for the example this would be <filename
class="directory">redboot_RAM_install/bin</filename>.</para>

<para>As noted above, each platform's details are described in <xref
linkend="Installation-and-Testing">. Use the information provided in
the shell variables to find the configuration file - the path to it is
<filename>${ECOS_REPOSITORY}/hal/${ARCH_DIR}/${PLATFORM_DIR}/${VERSION}/misc/${REDBOOT_CFG}.ecm</filename>,
where <replaceable>ECOS_REPOSITORY</replaceable> points to the

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -