]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/hal-general-principles.html
Initial revision
[karo-tx-redboot.git] / doc / html / ref / hal-general-principles.html
1 <!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2 <!-- This material may be distributed only subject to the terms      -->
3 <!-- and conditions set forth in the Open Publication License, v1.0  -->
4 <!-- or later (the latest version is presently available at          -->
5 <!-- http://www.opencontent.org/openpub/).                           -->
6 <!-- Distribution of the work or derivative of the work in any       -->
7 <!-- standard (paper) book form is prohibited unless prior           -->
8 <!-- permission is obtained from the copyright holder.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >General principles</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
14 <META
15 NAME="GENERATOR"
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17 "><LINK
18 REL="HOME"
19 TITLE="eCos Reference Manual"
20 HREF="ecos-ref.html"><LINK
21 REL="UP"
22 TITLE="The eCos Hardware Abstraction Layer (HAL)"
23 HREF="the-ecos-hardware-abstraction-layer.html"><LINK
24 REL="PREVIOUS"
25 TITLE="Architecture, Variant and Platform"
26 HREF="hal-architecture-variant-and-platform.html"><LINK
27 REL="NEXT"
28 TITLE="HAL Interfaces"
29 HREF="hal-interfaces.html"></HEAD
30 ><BODY
31 CLASS="CHAPTER"
32 BGCOLOR="#FFFFFF"
33 TEXT="#000000"
34 LINK="#0000FF"
35 VLINK="#840084"
36 ALINK="#0000FF"
37 ><DIV
38 CLASS="NAVHEADER"
39 ><TABLE
40 SUMMARY="Header navigation table"
41 WIDTH="100%"
42 BORDER="0"
43 CELLPADDING="0"
44 CELLSPACING="0"
45 ><TR
46 ><TH
47 COLSPAN="3"
48 ALIGN="center"
49 >eCos Reference Manual</TH
50 ></TR
51 ><TR
52 ><TD
53 WIDTH="10%"
54 ALIGN="left"
55 VALIGN="bottom"
56 ><A
57 HREF="hal-architecture-variant-and-platform.html"
58 ACCESSKEY="P"
59 >Prev</A
60 ></TD
61 ><TD
62 WIDTH="80%"
63 ALIGN="center"
64 VALIGN="bottom"
65 ></TD
66 ><TD
67 WIDTH="10%"
68 ALIGN="right"
69 VALIGN="bottom"
70 ><A
71 HREF="hal-interfaces.html"
72 ACCESSKEY="N"
73 >Next</A
74 ></TD
75 ></TR
76 ></TABLE
77 ><HR
78 ALIGN="LEFT"
79 WIDTH="100%"></DIV
80 ><DIV
81 CLASS="CHAPTER"
82 ><H1
83 ><A
84 NAME="HAL-GENERAL-PRINCIPLES">Chapter 8. General principles</H1
85 ><P
86 >The HAL has been implemented according to the following general
87 principles:</P
88 ><P
89 ></P
90 ><OL
91 TYPE="1"
92 ><LI
93 ><P
94 >             The HAL is implemented in C and assembler, although the
95               eCos kernel is largely implemented in C&#0043;&#0043;.
96               This is to permit the HAL the widest possible
97               applicability.</P
98 ></LI
99 ><LI
100 ><P
101 >All interfaces to the HAL are implemented by
102               CPP macros. This allows them to be implemented as inline
103               C code, inline assembler or function calls to external C
104               or assembler code. This allows the most efficient
105               implementation to be selected without affecting the
106               interface. It also allows them to be redefined if the
107               platform or variant HAL needs to replace or enhance a definition
108               from the architecture HAL.</P
109 ></LI
110 ><LI
111 ><P
112 >The HAL provides simple, portable mechanisms for dealing
113 with the hardware of a wide range of architectures and platforms.
114 It is always possible to bypass the HAL and program the hardware
115 directly, but this may lead to a loss of portability. </P
116 ></LI
117 ></OL
118 ></DIV
119 ><DIV
120 CLASS="NAVFOOTER"
121 ><HR
122 ALIGN="LEFT"
123 WIDTH="100%"><TABLE
124 SUMMARY="Footer navigation table"
125 WIDTH="100%"
126 BORDER="0"
127 CELLPADDING="0"
128 CELLSPACING="0"
129 ><TR
130 ><TD
131 WIDTH="33%"
132 ALIGN="left"
133 VALIGN="top"
134 ><A
135 HREF="hal-architecture-variant-and-platform.html"
136 ACCESSKEY="P"
137 >Prev</A
138 ></TD
139 ><TD
140 WIDTH="34%"
141 ALIGN="center"
142 VALIGN="top"
143 ><A
144 HREF="ecos-ref.html"
145 ACCESSKEY="H"
146 >Home</A
147 ></TD
148 ><TD
149 WIDTH="33%"
150 ALIGN="right"
151 VALIGN="top"
152 ><A
153 HREF="hal-interfaces.html"
154 ACCESSKEY="N"
155 >Next</A
156 ></TD
157 ></TR
158 ><TR
159 ><TD
160 WIDTH="33%"
161 ALIGN="left"
162 VALIGN="top"
163 >Architecture, Variant and Platform</TD
164 ><TD
165 WIDTH="34%"
166 ALIGN="center"
167 VALIGN="top"
168 ><A
169 HREF="the-ecos-hardware-abstraction-layer.html"
170 ACCESSKEY="U"
171 >Up</A
172 ></TD
173 ><TD
174 WIDTH="33%"
175 ALIGN="right"
176 VALIGN="top"
177 >HAL Interfaces</TD
178 ></TR
179 ></TABLE
180 ></DIV
181 ></BODY
182 ></HTML
183 >