<!-- Copyright (C) 2003 Red Hat, Inc. -->
|
<!-- Copyright (C) 2003 Red Hat, Inc. -->
|
<!-- This material may be distributed only subject to the terms -->
|
<!-- This material may be distributed only subject to the terms -->
|
<!-- and conditions set forth in the Open Publication License, v1.0 -->
|
<!-- and conditions set forth in the Open Publication License, v1.0 -->
|
<!-- or later (the latest version is presently available at -->
|
<!-- or later (the latest version is presently available at -->
|
<!-- http://www.opencontent.org/openpub/). -->
|
<!-- http://www.opencontent.org/openpub/). -->
|
<!-- Distribution of the work or derivative of the work in any -->
|
<!-- Distribution of the work or derivative of the work in any -->
|
<!-- standard (paper) book form is prohibited unless prior -->
|
<!-- standard (paper) book form is prohibited unless prior -->
|
<!-- permission is obtained from the copyright holder. -->
|
<!-- permission is obtained from the copyright holder. -->
|
<HTML
|
<HTML
|
><HEAD
|
><HEAD
|
><TITLE
|
><TITLE
|
>HAL Structure</TITLE
|
>HAL Structure</TITLE
|
><meta name="MSSmartTagsPreventParsing" content="TRUE">
|
><meta name="MSSmartTagsPreventParsing" content="TRUE">
|
<META
|
<META
|
NAME="GENERATOR"
|
NAME="GENERATOR"
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
"><LINK
|
"><LINK
|
REL="HOME"
|
REL="HOME"
|
TITLE="eCos Reference Manual"
|
TITLE="eCos Reference Manual"
|
HREF="ecos-ref.html"><LINK
|
HREF="ecos-ref.html"><LINK
|
REL="UP"
|
REL="UP"
|
TITLE=" Porting Guide"
|
TITLE=" Porting Guide"
|
HREF="hal-porting-guide.html"><LINK
|
HREF="hal-porting-guide.html"><LINK
|
REL="PREVIOUS"
|
REL="PREVIOUS"
|
TITLE=" Porting Guide"
|
TITLE=" Porting Guide"
|
HREF="hal-porting-guide.html"><LINK
|
HREF="hal-porting-guide.html"><LINK
|
REL="NEXT"
|
REL="NEXT"
|
TITLE="Virtual Vectors (eCos/ROM Monitor Calling Interface)"
|
TITLE="Virtual Vectors (eCos/ROM Monitor Calling Interface)"
|
HREF="hal-calling-if.html"></HEAD
|
HREF="hal-calling-if.html"></HEAD
|
><BODY
|
><BODY
|
CLASS="SECTION"
|
CLASS="SECTION"
|
BGCOLOR="#FFFFFF"
|
BGCOLOR="#FFFFFF"
|
TEXT="#000000"
|
TEXT="#000000"
|
LINK="#0000FF"
|
LINK="#0000FF"
|
VLINK="#840084"
|
VLINK="#840084"
|
ALINK="#0000FF"
|
ALINK="#0000FF"
|
><DIV
|
><DIV
|
CLASS="NAVHEADER"
|
CLASS="NAVHEADER"
|
><TABLE
|
><TABLE
|
SUMMARY="Header navigation table"
|
SUMMARY="Header navigation table"
|
WIDTH="100%"
|
WIDTH="100%"
|
BORDER="0"
|
BORDER="0"
|
CELLPADDING="0"
|
CELLPADDING="0"
|
CELLSPACING="0"
|
CELLSPACING="0"
|
><TR
|
><TR
|
><TH
|
><TH
|
COLSPAN="3"
|
COLSPAN="3"
|
ALIGN="center"
|
ALIGN="center"
|
>eCos Reference Manual</TH
|
>eCos Reference Manual</TH
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
WIDTH="10%"
|
WIDTH="10%"
|
ALIGN="left"
|
ALIGN="left"
|
VALIGN="bottom"
|
VALIGN="bottom"
|
><A
|
><A
|
HREF="hal-porting-guide.html"
|
HREF="hal-porting-guide.html"
|
ACCESSKEY="P"
|
ACCESSKEY="P"
|
>Prev</A
|
>Prev</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="80%"
|
WIDTH="80%"
|
ALIGN="center"
|
ALIGN="center"
|
VALIGN="bottom"
|
VALIGN="bottom"
|
>Chapter 11. Porting Guide</TD
|
>Chapter 11. Porting Guide</TD
|
><TD
|
><TD
|
WIDTH="10%"
|
WIDTH="10%"
|
ALIGN="right"
|
ALIGN="right"
|
VALIGN="bottom"
|
VALIGN="bottom"
|
><A
|
><A
|
HREF="hal-calling-if.html"
|
HREF="hal-calling-if.html"
|
ACCESSKEY="N"
|
ACCESSKEY="N"
|
>Next</A
|
>Next</A
|
></TD
|
></TD
|
></TR
|
></TR
|
></TABLE
|
></TABLE
|
><HR
|
><HR
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
WIDTH="100%"></DIV
|
WIDTH="100%"></DIV
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H1
|
><H1
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="HAL-PORTING-STRUCTURE">HAL Structure</H1
|
NAME="HAL-PORTING-STRUCTURE">HAL Structure</H1
|
><P
|
><P
|
>In order to write an eCos HAL it's a good idea to have at least a
|
>In order to write an eCos HAL it's a good idea to have at least a
|
passing understanding of how the HAL interacts with the rest of the
|
passing understanding of how the HAL interacts with the rest of the
|
system.</P
|
system.</P
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H2
|
><H2
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="AEN8659">HAL Classes</H2
|
NAME="AEN8659">HAL Classes</H2
|
><P
|
><P
|
>The eCos HAL consists of four HAL sub-classes. This table gives a
|
>The eCos HAL consists of four HAL sub-classes. This table gives a
|
brief description of each class and partly reiterates the description
|
brief description of each class and partly reiterates the description
|
in <A
|
in <A
|
HREF="hal-architecture-variant-and-platform.html"
|
HREF="hal-architecture-variant-and-platform.html"
|
>Chapter 7</A
|
>Chapter 7</A
|
>. The links
|
>. The links
|
refer to the on-line CVS tree (specifically to the sub-HALs used by
|
refer to the on-line CVS tree (specifically to the sub-HALs used by
|
the PowerPC MBX target).</P
|
the PowerPC MBX target).</P
|
><DIV
|
><DIV
|
CLASS="INFORMALTABLE"
|
CLASS="INFORMALTABLE"
|
><A
|
><A
|
NAME="AEN8663"><P
|
NAME="AEN8663"><P
|
></P
|
></P
|
><TABLE
|
><TABLE
|
BORDER="1"
|
BORDER="1"
|
CLASS="CALSTABLE"
|
CLASS="CALSTABLE"
|
><THEAD
|
><THEAD
|
><TR
|
><TR
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>HAL type</TH
|
>HAL type</TH
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Description</TH
|
>Description</TH
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Functionality Overview</TH
|
>Functionality Overview</TH
|
></TR
|
></TR
|
></THEAD
|
></THEAD
|
><TBODY
|
><TBODY
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Common HAL <A
|
>Common HAL <A
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/common/current?cvsroot=ecos"
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/common/current?cvsroot=ecos"
|
TARGET="_top"
|
TARGET="_top"
|
>(hal/common)</A
|
>(hal/common)</A
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Configuration options and functionality shared by all HALs.</TD
|
>Configuration options and functionality shared by all HALs.</TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Generic debugging functionality, driver API, eCos/ROM monitor
|
>Generic debugging functionality, driver API, eCos/ROM monitor
|
calling interface, and tests.</TD
|
calling interface, and tests.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Architecture HAL <A
|
>Architecture HAL <A
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/arch/current?cvsroot=ecos"
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/arch/current?cvsroot=ecos"
|
TARGET="_top"
|
TARGET="_top"
|
>(hal/<architecture>/arch)</A
|
>(hal/<architecture>/arch)</A
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Functionality specific to the given architecture. Also default
|
>Functionality specific to the given architecture. Also default
|
implementations of some functionality which can be overridden by
|
implementations of some functionality which can be overridden by
|
variant or platform HALs.</TD
|
variant or platform HALs.</TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Architecture specific debugger functionality (handles single
|
>Architecture specific debugger functionality (handles single
|
stepping, exception-to-signal conversion, etc.),
|
stepping, exception-to-signal conversion, etc.),
|
exception/interrupt vector definitions and handlers, cache
|
exception/interrupt vector definitions and handlers, cache
|
definition and control macros, context switching code, assembler
|
definition and control macros, context switching code, assembler
|
functions for early system initialization, configuration options,
|
functions for early system initialization, configuration options,
|
and possibly tests. </TD
|
and possibly tests. </TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Variant HAL <A
|
>Variant HAL <A
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/mpc8xx/current?cvsroot=ecos"
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/mpc8xx/current?cvsroot=ecos"
|
TARGET="_top"
|
TARGET="_top"
|
>(hal/<architecture>/<variant>)</A
|
>(hal/<architecture>/<variant>)</A
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Some CPU architectures consist of a number variants, for example
|
>Some CPU architectures consist of a number variants, for example
|
MIPS CPUs come in both 32 and 64 bit versions, and some variants
|
MIPS CPUs come in both 32 and 64 bit versions, and some variants
|
have embedded features additional to the CPU core.</TD
|
have embedded features additional to the CPU core.</TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Variant extensions to the architecture code (cache,
|
>Variant extensions to the architecture code (cache,
|
exception/interrupt), configuration options, possibly drivers for
|
exception/interrupt), configuration options, possibly drivers for
|
variant on-core devices, and possibly tests.</TD
|
variant on-core devices, and possibly tests.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Platform HAL <A
|
>Platform HAL <A
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/mbx/current?cvsroot=ecos"
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/mbx/current?cvsroot=ecos"
|
TARGET="_top"
|
TARGET="_top"
|
>(hal/<architecture>/<platform>)</A
|
>(hal/<architecture>/<platform>)</A
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Contains functionality and configuration options specific to the
|
>Contains functionality and configuration options specific to the
|
platform.</TD
|
platform.</TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Early platform initialization code, platform memory layout
|
>Early platform initialization code, platform memory layout
|
specification, configuration options (processor speed, compiler
|
specification, configuration options (processor speed, compiler
|
options), diagnostic IO functions, debugger IO functions,
|
options), diagnostic IO functions, debugger IO functions,
|
platform specific extensions to architecture or variant code
|
platform specific extensions to architecture or variant code
|
(off-core interrupt controller), and possibly tests.</TD
|
(off-core interrupt controller), and possibly tests.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Auxiliary HAL <A
|
>Auxiliary HAL <A
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/quicc/current?cvsroot=ecos"
|
HREF="http://sourceware.cygnus.com/cgi-bin/cvsweb.cgi/ecos/packages/hal/powerpc/quicc/current?cvsroot=ecos"
|
TARGET="_top"
|
TARGET="_top"
|
>(hal/<architecture>/<module>)</A
|
>(hal/<architecture>/<module>)</A
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Some variants share common modules on the core. Motorola's PowerPC
|
>Some variants share common modules on the core. Motorola's PowerPC
|
QUICC is an example of such a module.</TD
|
QUICC is an example of such a module.</TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Module specific functionality (interrupt controller, simple
|
>Module specific functionality (interrupt controller, simple
|
device drivers), possibly tests.</TD
|
device drivers), possibly tests.</TD
|
></TR
|
></TR
|
></TBODY
|
></TBODY
|
></TABLE
|
></TABLE
|
><P
|
><P
|
></P
|
></P
|
></DIV
|
></DIV
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H2
|
><H2
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="AEN8696">File Descriptions</H2
|
NAME="AEN8696">File Descriptions</H2
|
><P
|
><P
|
>Listed below are the files found in various HALs, with a short
|
>Listed below are the files found in various HALs, with a short
|
description of what each file contains. When looking in existing HALs
|
description of what each file contains. When looking in existing HALs
|
beware that they do not necessarily follow this naming scheme.
|
beware that they do not necessarily follow this naming scheme.
|
If you are writing a new HAL, please try to follow it as
|
If you are writing a new HAL, please try to follow it as
|
closely as possible. Still, no two targets are the same, so sometimes
|
closely as possible. Still, no two targets are the same, so sometimes
|
it makes sense to use additional files.</P
|
it makes sense to use additional files.</P
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H3
|
><H3
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="AEN8699">Common HAL</H3
|
NAME="AEN8699">Common HAL</H3
|
><DIV
|
><DIV
|
CLASS="INFORMALTABLE"
|
CLASS="INFORMALTABLE"
|
><A
|
><A
|
NAME="AEN8701"><P
|
NAME="AEN8701"><P
|
></P
|
></P
|
><TABLE
|
><TABLE
|
BORDER="1"
|
BORDER="1"
|
CLASS="CALSTABLE"
|
CLASS="CALSTABLE"
|
><THEAD
|
><THEAD
|
><TR
|
><TR
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>File</TH
|
>File</TH
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Description</TH
|
>Description</TH
|
></TR
|
></TR
|
></THEAD
|
></THEAD
|
><TBODY
|
><TBODY
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/dbg-thread-syscall.h</TT
|
>include/dbg-thread-syscall.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines the thread debugging syscall function. This is used by
|
>Defines the thread debugging syscall function. This is used by
|
the ROM monitor to access the thread debugging API in the RAM
|
the ROM monitor to access the thread debugging API in the RAM
|
application. .</TD
|
application. .</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/dbg-threads-api.h</TT
|
>include/dbg-threads-api.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines the thread debugging API. .</TD
|
>Defines the thread debugging API. .</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/drv_api.h</TT
|
>include/drv_api.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines the driver API.</TD
|
>Defines the driver API.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/generic-stub.h</TT
|
>include/generic-stub.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines the generic stub features.</TD
|
>Defines the generic stub features.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_if.h</TT
|
>include/hal_if.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines the ROM/RAM calling interface API.</TD
|
>Defines the ROM/RAM calling interface API.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_misc.h</TT
|
>include/hal_misc.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines miscellaneous helper functions shared by all HALs.</TD
|
>Defines miscellaneous helper functions shared by all HALs.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_stub.h</TT
|
>include/hal_stub.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines eCos mappings of GDB stub features.</TD
|
>Defines eCos mappings of GDB stub features.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/dbg-threads-syscall.c</TT
|
>src/dbg-threads-syscall.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Thread debugging implementation.</TD
|
>Thread debugging implementation.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/drv_api.c</TT
|
>src/drv_api.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Driver API implementation. Depending on configuration this
|
>Driver API implementation. Depending on configuration this
|
provides either wrappers for the kernel API, or a minimal
|
provides either wrappers for the kernel API, or a minimal
|
implementation of these features. This allows drivers to be written
|
implementation of these features. This allows drivers to be written
|
relying only on HAL features.</TD
|
relying only on HAL features.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/dummy.c</TT
|
>src/dummy.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Empty dummy file ensuring creation of libtarget.a.</TD
|
>Empty dummy file ensuring creation of libtarget.a.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/generic-stub.c</TT
|
>src/generic-stub.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Generic GDB stub implementation. This provides the
|
>Generic GDB stub implementation. This provides the
|
communication protocol used to communicate with GDB over a serial
|
communication protocol used to communicate with GDB over a serial
|
device or via the network.</TD
|
device or via the network.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/hal_if.c</TT
|
>src/hal_if.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>ROM/RAM calling interface implementation. Provides wrappers from
|
>ROM/RAM calling interface implementation. Provides wrappers from
|
the calling interface API to the eCos features used for the
|
the calling interface API to the eCos features used for the
|
implementation.</TD
|
implementation.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/hal_misc.c</TT
|
>src/hal_misc.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Various helper functions shared by all platforms and
|
>Various helper functions shared by all platforms and
|
architectures.</TD
|
architectures.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/hal_stub.c</TT
|
>src/hal_stub.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Wrappers from eCos HAL features to the features required by the
|
>Wrappers from eCos HAL features to the features required by the
|
generic GDB stub.</TD
|
generic GDB stub.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/stubrom/stubrom.c</TT
|
>src/stubrom/stubrom.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>The file used to build eCos GDB stub images. Basically a
|
>The file used to build eCos GDB stub images. Basically a
|
cyg_start function with a hard coded breakpoint.</TD
|
cyg_start function with a hard coded breakpoint.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/thread-packets.c</TT
|
>src/thread-packets.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>More thread debugging related functions.</TD
|
>More thread debugging related functions.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/thread-pkts.h</TT
|
>src/thread-pkts.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines more thread debugging related function.</TD
|
>Defines more thread debugging related function.</TD
|
></TR
|
></TR
|
></TBODY
|
></TBODY
|
></TABLE
|
></TABLE
|
><P
|
><P
|
></P
|
></P
|
></DIV
|
></DIV
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H3
|
><H3
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="AEN8776">Architecture HAL</H3
|
NAME="AEN8776">Architecture HAL</H3
|
><P
|
><P
|
>Some architecture HALs may add extra files for architecture
|
>Some architecture HALs may add extra files for architecture
|
specific serial drivers, or for handling interrupts and exceptions if it
|
specific serial drivers, or for handling interrupts and exceptions if it
|
makes sense.</P
|
makes sense.</P
|
><P
|
><P
|
>Note that many of the definitions in these files are only
|
>Note that many of the definitions in these files are only
|
conditionally defined - if the equivalent variant or platform headers
|
conditionally defined - if the equivalent variant or platform headers
|
provide the definitions, those override the generic architecture
|
provide the definitions, those override the generic architecture
|
definitions.</P
|
definitions.</P
|
><DIV
|
><DIV
|
CLASS="INFORMALTABLE"
|
CLASS="INFORMALTABLE"
|
><A
|
><A
|
NAME="AEN8780"><P
|
NAME="AEN8780"><P
|
></P
|
></P
|
><TABLE
|
><TABLE
|
BORDER="1"
|
BORDER="1"
|
CLASS="CALSTABLE"
|
CLASS="CALSTABLE"
|
><THEAD
|
><THEAD
|
><TR
|
><TR
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>File</TH
|
>File</TH
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Description</TH
|
>Description</TH
|
></TR
|
></TR
|
></THEAD
|
></THEAD
|
><TBODY
|
><TBODY
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/arch.inc</TT
|
>include/arch.inc</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Various assembly macros used during system initialization.</TD
|
>Various assembly macros used during system initialization.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/basetype.h</TT
|
>include/basetype.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Endian, label, alignment, and type size definitions. These
|
>Endian, label, alignment, and type size definitions. These
|
override common defaults in CYGPKG_INFRA.</TD
|
override common defaults in CYGPKG_INFRA.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_arch.h</TT
|
>include/hal_arch.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Saved register frame format, various thread, register and stack
|
>Saved register frame format, various thread, register and stack
|
related macros.</TD
|
related macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_cache.h</TT
|
>include/hal_cache.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Cache definitions and cache control macros.</TD
|
>Cache definitions and cache control macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_intr.h</TT
|
>include/hal_intr.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Exception and interrupt definitions. Macros for configuring and
|
>Exception and interrupt definitions. Macros for configuring and
|
controlling interrupts. eCos real-time clock control macros.</TD
|
controlling interrupts. eCos real-time clock control macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_io.h</TT
|
>include/hal_io.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Macros for accessing IO devices.</TD
|
>Macros for accessing IO devices.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/<arch>_regs.h</TT
|
>include/<arch>_regs.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Architecture register definitions.</TD
|
>Architecture register definitions.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/<arch>_stub.h</TT
|
>include/<arch>_stub.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Architecture stub definitions. In particular the register frame
|
>Architecture stub definitions. In particular the register frame
|
layout used by GDB. This may differ from the one used by eCos.</TD
|
layout used by GDB. This may differ from the one used by eCos.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/<arch>.inc</TT
|
>include/<arch>.inc</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Architecture convenience assembly macros.</TD
|
>Architecture convenience assembly macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/<arch>.ld</TT
|
>src/<arch>.ld</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Linker macros.</TD
|
>Linker macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/context.S</TT
|
>src/context.S</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Functions handling context switching and setjmp/longjmp.</TD
|
>Functions handling context switching and setjmp/longjmp.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/hal_misc.c</TT
|
>src/hal_misc.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Exception and interrupt handlers in C. Various other utility
|
>Exception and interrupt handlers in C. Various other utility
|
functions.</TD
|
functions.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/hal_mk_defs.c</TT
|
>src/hal_mk_defs.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Used to export definitions from C header files to assembler
|
>Used to export definitions from C header files to assembler
|
header files.</TD
|
header files.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/hal_intr.c</TT
|
>src/hal_intr.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Any necessary interrupt handling functions.</TD
|
>Any necessary interrupt handling functions.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/<arch>stub.c</TT
|
>src/<arch>stub.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Architecture stub code. Contains functions for translating eCos
|
>Architecture stub code. Contains functions for translating eCos
|
exceptions to UNIX signals and functions for single-stepping.</TD
|
exceptions to UNIX signals and functions for single-stepping.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/vectors.S</TT
|
>src/vectors.S</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Exception, interrupt and early initialization code.</TD
|
>Exception, interrupt and early initialization code.</TD
|
></TR
|
></TR
|
></TBODY
|
></TBODY
|
></TABLE
|
></TABLE
|
><P
|
><P
|
></P
|
></P
|
></DIV
|
></DIV
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H3
|
><H3
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="AEN8851">Variant HAL</H3
|
NAME="AEN8851">Variant HAL</H3
|
><P
|
><P
|
>Some variant HALs may add extra files for variant specific serial
|
>Some variant HALs may add extra files for variant specific serial
|
drivers, or for handling interrupts/exceptions if it makes sense.</P
|
drivers, or for handling interrupts/exceptions if it makes sense.</P
|
><P
|
><P
|
>Note that these files may be mostly empty if the CPU variant can be
|
>Note that these files may be mostly empty if the CPU variant can be
|
controlled by the generic architecture macros. The definitions present
|
controlled by the generic architecture macros. The definitions present
|
are only conditionally defined - if the equivalent platform headers
|
are only conditionally defined - if the equivalent platform headers
|
provide the definitions, those override the variant definitions.</P
|
provide the definitions, those override the variant definitions.</P
|
><DIV
|
><DIV
|
CLASS="INFORMALTABLE"
|
CLASS="INFORMALTABLE"
|
><A
|
><A
|
NAME="AEN8855"><P
|
NAME="AEN8855"><P
|
></P
|
></P
|
><TABLE
|
><TABLE
|
BORDER="1"
|
BORDER="1"
|
CLASS="CALSTABLE"
|
CLASS="CALSTABLE"
|
><THEAD
|
><THEAD
|
><TR
|
><TR
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>File</TH
|
>File</TH
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Description</TH
|
>Description</TH
|
></TR
|
></TR
|
></THEAD
|
></THEAD
|
><TBODY
|
><TBODY
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/var_arch.h</TT
|
>include/var_arch.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Saved register frame format, various thread, register and stack
|
>Saved register frame format, various thread, register and stack
|
related macros.</TD
|
related macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/var_cache.h</TT
|
>include/var_cache.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Cache related macros.</TD
|
>Cache related macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/var_intr.h</TT
|
>include/var_intr.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Interrupt related macros.</TD
|
>Interrupt related macros.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/var_regs.h</TT
|
>include/var_regs.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Extra register definitions for the CPU variant.</TD
|
>Extra register definitions for the CPU variant.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/variant.inc</TT
|
>include/variant.inc</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Various assembly macros used during system initialization.</TD
|
>Various assembly macros used during system initialization.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/var_intr.c</TT
|
>src/var_intr.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Interrupt functions if necessary.</TD
|
>Interrupt functions if necessary.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/var_misc.c</TT
|
>src/var_misc.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>hal_variant_init function and any necessary extra functions.</TD
|
>hal_variant_init function and any necessary extra functions.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/variant.S</TT
|
>src/variant.S</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Interrupt handler table definition.</TD
|
>Interrupt handler table definition.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/<arch>_<variant>.ld</TT
|
>src/<arch>_<variant>.ld</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Linker macros.</TD
|
>Linker macros.</TD
|
></TR
|
></TR
|
></TBODY
|
></TBODY
|
></TABLE
|
></TABLE
|
><P
|
><P
|
></P
|
></P
|
></DIV
|
></DIV
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H3
|
><H3
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="AEN8898">Platform HAL</H3
|
NAME="AEN8898">Platform HAL</H3
|
><P
|
><P
|
>Extras files may be added for platform specific serial
|
>Extras files may be added for platform specific serial
|
drivers. Extra files for handling interrupts and exceptions will be
|
drivers. Extra files for handling interrupts and exceptions will be
|
present if it makes sense.</P
|
present if it makes sense.</P
|
><DIV
|
><DIV
|
CLASS="INFORMALTABLE"
|
CLASS="INFORMALTABLE"
|
><A
|
><A
|
NAME="AEN8901"><P
|
NAME="AEN8901"><P
|
></P
|
></P
|
><TABLE
|
><TABLE
|
BORDER="1"
|
BORDER="1"
|
CLASS="CALSTABLE"
|
CLASS="CALSTABLE"
|
><THEAD
|
><THEAD
|
><TR
|
><TR
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>File</TH
|
>File</TH
|
><TH
|
><TH
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Description</TH
|
>Description</TH
|
></TR
|
></TR
|
></THEAD
|
></THEAD
|
><TBODY
|
><TBODY
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/hal_diag.h</TT
|
>include/hal_diag.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines functions used for HAL diagnostics output. This would
|
>Defines functions used for HAL diagnostics output. This would
|
normally be the ROM calling interface wrappers, but may also be the
|
normally be the ROM calling interface wrappers, but may also be the
|
low-level IO functions themselves, saving a little overhead.</TD
|
low-level IO functions themselves, saving a little overhead.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/platform.inc</TT
|
>include/platform.inc</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Platform initialization code. This includes memory controller,
|
>Platform initialization code. This includes memory controller,
|
vectors, and monitor initialization. Depending on the architecture,
|
vectors, and monitor initialization. Depending on the architecture,
|
other things may need defining here as well: interrupt decoding,
|
other things may need defining here as well: interrupt decoding,
|
status register initialization value, etc.</TD
|
status register initialization value, etc.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/plf_cache.h</TT
|
>include/plf_cache.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Platform specific cache handling.</TD
|
>Platform specific cache handling.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/plf_intr.h</TT
|
>include/plf_intr.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Platform specific interrupt handling.</TD
|
>Platform specific interrupt handling.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/plf_io.h</TT
|
>include/plf_io.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>PCI IO definitions and macros. May also be used to override
|
>PCI IO definitions and macros. May also be used to override
|
generic HAL IO macros if the platform endianness differs from that of
|
generic HAL IO macros if the platform endianness differs from that of
|
the CPU.</TD
|
the CPU.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/plf_stub.h</TT
|
>include/plf_stub.h</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Defines stub initializer and board reset details.</TD
|
>Defines stub initializer and board reset details.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/hal_diag.c</TT
|
>src/hal_diag.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>May contain the low-level device drivers. But these may also
|
>May contain the low-level device drivers. But these may also
|
reside in plf_stub.c</TD
|
reside in plf_stub.c</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/platform.S</TT
|
>src/platform.S</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Memory controller setup macro, and if necessary interrupt
|
>Memory controller setup macro, and if necessary interrupt
|
springboard code.</TD
|
springboard code.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/plf_misc.c</TT
|
>src/plf_misc.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Platform initialization code.</TD
|
>Platform initialization code.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/plf_mk_defs.c</TT
|
>src/plf_mk_defs.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Used to export definitions from C header files to assembler
|
>Used to export definitions from C header files to assembler
|
header files.</TD
|
header files.</TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
><TT
|
><TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>src/plf_stub.c</TT
|
>src/plf_stub.c</TT
|
></TD
|
></TD
|
><TD
|
><TD
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
VALIGN="TOP"
|
VALIGN="TOP"
|
>Platform specific stub initialization and possibly the low-level
|
>Platform specific stub initialization and possibly the low-level
|
device driver.</TD
|
device driver.</TD
|
></TR
|
></TR
|
></TBODY
|
></TBODY
|
></TABLE
|
></TABLE
|
><P
|
><P
|
></P
|
></P
|
></DIV
|
></DIV
|
><P
|
><P
|
>The platform HAL also contains files specifying the platform's
|
>The platform HAL also contains files specifying the platform's
|
memory layout. These files are located in
|
memory layout. These files are located in
|
<TT
|
<TT
|
CLASS="FILENAME"
|
CLASS="FILENAME"
|
>include/pkgconf</TT
|
>include/pkgconf</TT
|
>.</P
|
>.</P
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><H3
|
><H3
|
CLASS="SECTION"
|
CLASS="SECTION"
|
><A
|
><A
|
NAME="AEN8954">Auxiliary HAL</H3
|
NAME="AEN8954">Auxiliary HAL</H3
|
><P
|
><P
|
>Auxiliary HALs contain whatever files are necessary to provide the
|
>Auxiliary HALs contain whatever files are necessary to provide the
|
required functionality. There are no predefined set of files required
|
required functionality. There are no predefined set of files required
|
in an auxiliary HAL.</P
|
in an auxiliary HAL.</P
|
></DIV
|
></DIV
|
></DIV
|
></DIV
|
></DIV
|
></DIV
|
><DIV
|
><DIV
|
CLASS="NAVFOOTER"
|
CLASS="NAVFOOTER"
|
><HR
|
><HR
|
ALIGN="LEFT"
|
ALIGN="LEFT"
|
WIDTH="100%"><TABLE
|
WIDTH="100%"><TABLE
|
SUMMARY="Footer navigation table"
|
SUMMARY="Footer navigation table"
|
WIDTH="100%"
|
WIDTH="100%"
|
BORDER="0"
|
BORDER="0"
|
CELLPADDING="0"
|
CELLPADDING="0"
|
CELLSPACING="0"
|
CELLSPACING="0"
|
><TR
|
><TR
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="left"
|
ALIGN="left"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="hal-porting-guide.html"
|
HREF="hal-porting-guide.html"
|
ACCESSKEY="P"
|
ACCESSKEY="P"
|
>Prev</A
|
>Prev</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="34%"
|
WIDTH="34%"
|
ALIGN="center"
|
ALIGN="center"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="ecos-ref.html"
|
HREF="ecos-ref.html"
|
ACCESSKEY="H"
|
ACCESSKEY="H"
|
>Home</A
|
>Home</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="right"
|
ALIGN="right"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="hal-calling-if.html"
|
HREF="hal-calling-if.html"
|
ACCESSKEY="N"
|
ACCESSKEY="N"
|
>Next</A
|
>Next</A
|
></TD
|
></TD
|
></TR
|
></TR
|
><TR
|
><TR
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="left"
|
ALIGN="left"
|
VALIGN="top"
|
VALIGN="top"
|
>Porting Guide</TD
|
>Porting Guide</TD
|
><TD
|
><TD
|
WIDTH="34%"
|
WIDTH="34%"
|
ALIGN="center"
|
ALIGN="center"
|
VALIGN="top"
|
VALIGN="top"
|
><A
|
><A
|
HREF="hal-porting-guide.html"
|
HREF="hal-porting-guide.html"
|
ACCESSKEY="U"
|
ACCESSKEY="U"
|
>Up</A
|
>Up</A
|
></TD
|
></TD
|
><TD
|
><TD
|
WIDTH="33%"
|
WIDTH="33%"
|
ALIGN="right"
|
ALIGN="right"
|
VALIGN="top"
|
VALIGN="top"
|
>Virtual Vectors (eCos/ROM Monitor Calling Interface)</TD
|
>Virtual Vectors (eCos/ROM Monitor Calling Interface)</TD
|
></TR
|
></TR
|
></TABLE
|
></TABLE
|
></DIV
|
></DIV
|
></BODY
|
></BODY
|
></HTML
|
></HTML
|
|
|