📄 hal-future-developments.html
字号:
<!-- Copyright (C) 2003 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 is obtained from the copyright holder. --><HTML><HEAD><TITLE>Future developments</TITLE><meta name="MSSmartTagsPreventParsing" content="TRUE"><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="eCos Reference Manual"HREF="ecos-ref.html"><LINKREL="UP"TITLE="The eCos Hardware Abstraction Layer (HAL)"HREF="the-ecos-hardware-abstraction-layer.html"><LINKREL="PREVIOUS"TITLE="Architecture HAL Porting"HREF="hal-porting-architecture.html"><LINKREL="NEXT"TITLE="The ISO Standard C and Math Libraries"HREF="libc.html"></HEAD><BODYCLASS="CHAPTER"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">eCos Reference Manual</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="hal-porting-architecture.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="libc.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="CHAPTER"><H1><ANAME="HAL-FUTURE-DEVELOPMENTS">Chapter 12. Future developments</H1><P>The HAL is not complete, and will evolve and increase overtime. Among the intended developments are:</P><P></P><UL><LI><P>Common macros for interpreting the contents of a savedmachine context. These would allow portable code, such as debugstubs, to extract such values as the program counter and stack pointerfrom a state without having to interpret a <SPANCLASS="STRUCTNAME">HAL_SavedRegisters</SPAN> structuredirectly.</P></LI><LI><P>Debugging support. Macros to set and clear hardware andsoftware breakpoints. Access to other areas of machine state mayalso be supported.</P></LI><LI><P>Static initialization support. The current HAL provides adynamic interface to things like thread context initialization and ISRattachment. We also need to be able to define the system entirelystatically so that it is ready to go on restart, without needing torun code. This will require extra macros to define theseinitializations. Such support may have a consequential effect on thecurrent HAL specification.</P></LI><LI><P>CPU state control. Many CPUs have both kernel and userstates. Although it is not intended to run any code in user statefor the foreseeable future, it is possible that this may happeneventually. If this is the case, then some minor changes may be neededto the current HAL API to accommodate this. These should mostlybe extensions, but minor changes in semantics may also be required.</P></LI><LI><P>Physical memory management. Many embedded systems havemultiple memory areas with varying properties such as base address,size, speed, bus width, cacheability and persistence. An API isneeded to support the discovery of this information about the machine'sphysical memory map.</P></LI><LI><P>Memory management control. Some embedded processors havea memory management unit. In some cases this must be enabled toallow the cache to be controlled, particularly if different regionsof memory must have different caching properties. For some purposes,in some systems, it will be useful to manipulate the MMU settingsdynamically.</P></LI><LI><P>Power management. Macros to access and control any powermanagement mechanisms available on the CPU implementation. Thesewould provide a substrate for a more general power management systemthat also involved device drivers and other hardware components.</P></LI><LI><P>Generic serial line macros. Most serial line devices operatein the same way, the only real differences being exactly which bitsin which registers perform the standard functions. It should bepossible to develop a set of HAL macros that provide basic serialline services such as baud rate setting, enabling interrupts, pollingfor transmit or receive ready, transmitting and receiving data etc.Given these it should be possible to create a generic serial linedevice driver that will allow rapid bootstrapping on any new platform.It may be possible to extend this mechanism to other device types.</P></LI></UL></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="hal-porting-architecture.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ecos-ref.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="libc.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Architecture HAL Porting</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="the-ecos-hardware-abstraction-layer.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">The ISO Standard C and Math Libraries</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -