OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [doc/] [html/] [ref/] [hal-future-developments.html] - Diff between revs 28 and 174

Only display areas with differences | Details | Blame | View Log

Rev 28 Rev 174
<!-- 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
>Future developments</TITLE
>Future developments</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="The eCos Hardware Abstraction Layer (HAL)"
TITLE="The eCos Hardware Abstraction Layer (HAL)"
HREF="the-ecos-hardware-abstraction-layer.html"><LINK
HREF="the-ecos-hardware-abstraction-layer.html"><LINK
REL="PREVIOUS"
REL="PREVIOUS"
TITLE="Architecture HAL Porting"
TITLE="Architecture HAL Porting"
HREF="hal-porting-architecture.html"><LINK
HREF="hal-porting-architecture.html"><LINK
REL="NEXT"
REL="NEXT"
TITLE="The ISO Standard C and Math Libraries"
TITLE="The ISO Standard C and Math Libraries"
HREF="libc.html"></HEAD
HREF="libc.html"></HEAD
><BODY
><BODY
CLASS="CHAPTER"
CLASS="CHAPTER"
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-architecture.html"
HREF="hal-porting-architecture.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"
></TD
></TD
><TD
><TD
WIDTH="10%"
WIDTH="10%"
ALIGN="right"
ALIGN="right"
VALIGN="bottom"
VALIGN="bottom"
><A
><A
HREF="libc.html"
HREF="libc.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="CHAPTER"
CLASS="CHAPTER"
><H1
><H1
><A
><A
NAME="HAL-FUTURE-DEVELOPMENTS">Chapter 12. Future developments</H1
NAME="HAL-FUTURE-DEVELOPMENTS">Chapter 12. Future developments</H1
><P
><P
>The HAL is not complete, and will evolve and increase over
>The HAL is not complete, and will evolve and increase over
time. Among the intended developments are:</P
time. Among the intended developments are:</P
><P
><P
></P
></P
><UL
><UL
><LI
><LI
><P
><P
>Common macros for interpreting the contents of a saved
>Common macros for interpreting the contents of a saved
machine context. These would allow portable code, such as debug
machine context. These would allow portable code, such as debug
stubs, to extract such values as the program counter and stack pointer
stubs, to extract such values as the program counter and stack pointer
from a state without having to interpret a <SPAN
from a state without having to interpret a <SPAN
CLASS="STRUCTNAME"
CLASS="STRUCTNAME"
>HAL_SavedRegisters</SPAN
>HAL_SavedRegisters</SPAN
> structure
> structure
directly.</P
directly.</P
></LI
></LI
><LI
><LI
><P
><P
>Debugging support. Macros to set and clear hardware and
>Debugging support. Macros to set and clear hardware and
software breakpoints. Access to other areas of machine state may
software breakpoints. Access to other areas of machine state may
also be supported.</P
also be supported.</P
></LI
></LI
><LI
><LI
><P
><P
>Static initialization support. The current HAL provides a
>Static initialization support. The current HAL provides a
dynamic interface to things like thread context initialization and ISR
dynamic interface to things like thread context initialization and ISR
attachment. We also need to be able to define the system entirely
attachment. We also need to be able to define the system entirely
statically so that it is ready to go on restart, without needing to
statically so that it is ready to go on restart, without needing to
run code. This will require extra macros to define these
run code. This will require extra macros to define these
initializations.  Such support may have a consequential effect on the
initializations.  Such support may have a consequential effect on the
current HAL specification.</P
current HAL specification.</P
></LI
></LI
><LI
><LI
><P
><P
>CPU state control. Many CPUs have both kernel and user
>CPU state control. Many CPUs have both kernel and user
states. Although it is not intended to run any code in user state
states. Although it is not intended to run any code in user state
for the foreseeable future, it is possible that this may happen
for the foreseeable future, it is possible that this may happen
eventually. If this is the case, then some minor changes may be needed
eventually. If this is the case, then some minor changes may be needed
to the current HAL API to accommodate this. These should mostly
to the current HAL API to accommodate this. These should mostly
be extensions, but minor changes in semantics may also be required.</P
be extensions, but minor changes in semantics may also be required.</P
></LI
></LI
><LI
><LI
><P
><P
>Physical memory management. Many embedded systems have
>Physical memory management. Many embedded systems have
multiple memory areas with varying properties such as base address,
multiple memory areas with varying properties such as base address,
size, speed, bus width, cacheability and persistence. An API is
size, speed, bus width, cacheability and persistence. An API is
needed to support the discovery of this information about the machine's
needed to support the discovery of this information about the machine's
physical memory map.</P
physical memory map.</P
></LI
></LI
><LI
><LI
><P
><P
>Memory management control. Some embedded processors have
>Memory management control. Some embedded processors have
a memory management unit. In some cases this must be enabled to
a memory management unit. In some cases this must be enabled to
allow the cache to be controlled, particularly if different regions
allow the cache to be controlled, particularly if different regions
of memory must have different caching properties. For some purposes,
of memory must have different caching properties. For some purposes,
in some systems, it will be useful to manipulate the MMU settings
in some systems, it will be useful to manipulate the MMU settings
dynamically.</P
dynamically.</P
></LI
></LI
><LI
><LI
><P
><P
>Power management. Macros to access and control any power
>Power management. Macros to access and control any power
management mechanisms available on the CPU implementation. These
management mechanisms available on the CPU implementation. These
would provide a substrate for a more general power management system
would provide a substrate for a more general power management system
that also involved device drivers and other hardware components.</P
that also involved device drivers and other hardware components.</P
></LI
></LI
><LI
><LI
><P
><P
>Generic serial line macros. Most serial line devices operate
>Generic serial line macros. Most serial line devices operate
in the same way, the only real differences being exactly which bits
in the same way, the only real differences being exactly which bits
in which registers perform the standard functions. It should be
in which registers perform the standard functions. It should be
possible to develop a set of HAL macros that provide basic serial
possible to develop a set of HAL macros that provide basic serial
line services such as baud rate setting, enabling interrupts, polling
line services such as baud rate setting, enabling interrupts, polling
for transmit or receive ready, transmitting and receiving data etc.
for transmit or receive ready, transmitting and receiving data etc.
Given these it should be possible to create a generic serial line
Given these it should be possible to create a generic serial line
device driver that will allow rapid bootstrapping on any new platform.
device driver that will allow rapid bootstrapping on any new platform.
It may be possible to extend this mechanism to other device types.</P
It may be possible to extend this mechanism to other device types.</P
></LI
></LI
></UL
></UL
></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-architecture.html"
HREF="hal-porting-architecture.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="libc.html"
HREF="libc.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"
>Architecture HAL Porting</TD
>Architecture HAL Porting</TD
><TD
><TD
WIDTH="34%"
WIDTH="34%"
ALIGN="center"
ALIGN="center"
VALIGN="top"
VALIGN="top"
><A
><A
HREF="the-ecos-hardware-abstraction-layer.html"
HREF="the-ecos-hardware-abstraction-layer.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"
>The ISO Standard C and Math Libraries</TD
>The ISO Standard C and Math Libraries</TD
></TR
></TR
></TABLE
></TABLE
></DIV
></DIV
></BODY
></BODY
></HTML
></HTML
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.