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] - Blame information for rev 174

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 28 unneback
<!-- 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
>Future developments</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 HAL Porting"
26
HREF="hal-porting-architecture.html"><LINK
27
REL="NEXT"
28
TITLE="The ISO Standard C and Math Libraries"
29
HREF="libc.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-porting-architecture.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="libc.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-FUTURE-DEVELOPMENTS">Chapter 12. Future developments</H1
85
><P
86
>The HAL is not complete, and will evolve and increase over
87
time. Among the intended developments are:</P
88
><P
89
></P
90
><UL
91
><LI
92
><P
93
>Common macros for interpreting the contents of a saved
94
machine context. These would allow portable code, such as debug
95
stubs, to extract such values as the program counter and stack pointer
96
from a state without having to interpret a <SPAN
97
CLASS="STRUCTNAME"
98
>HAL_SavedRegisters</SPAN
99
> structure
100
directly.</P
101
></LI
102
><LI
103
><P
104
>Debugging support. Macros to set and clear hardware and
105
software breakpoints. Access to other areas of machine state may
106
also be supported.</P
107
></LI
108
><LI
109
><P
110
>Static initialization support. The current HAL provides a
111
dynamic interface to things like thread context initialization and ISR
112
attachment. We also need to be able to define the system entirely
113
statically so that it is ready to go on restart, without needing to
114
run code. This will require extra macros to define these
115
initializations.  Such support may have a consequential effect on the
116
current HAL specification.</P
117
></LI
118
><LI
119
><P
120
>CPU state control. Many CPUs have both kernel and user
121
states. Although it is not intended to run any code in user state
122
for the foreseeable future, it is possible that this may happen
123
eventually. If this is the case, then some minor changes may be needed
124
to the current HAL API to accommodate this. These should mostly
125
be extensions, but minor changes in semantics may also be required.</P
126
></LI
127
><LI
128
><P
129
>Physical memory management. Many embedded systems have
130
multiple memory areas with varying properties such as base address,
131
size, speed, bus width, cacheability and persistence. An API is
132
needed to support the discovery of this information about the machine's
133
physical memory map.</P
134
></LI
135
><LI
136
><P
137
>Memory management control. Some embedded processors have
138
a memory management unit. In some cases this must be enabled to
139
allow the cache to be controlled, particularly if different regions
140
of memory must have different caching properties. For some purposes,
141
in some systems, it will be useful to manipulate the MMU settings
142
dynamically.</P
143
></LI
144
><LI
145
><P
146
>Power management. Macros to access and control any power
147
management mechanisms available on the CPU implementation. These
148
would provide a substrate for a more general power management system
149
that also involved device drivers and other hardware components.</P
150
></LI
151
><LI
152
><P
153
>Generic serial line macros. Most serial line devices operate
154
in the same way, the only real differences being exactly which bits
155
in which registers perform the standard functions. It should be
156
possible to develop a set of HAL macros that provide basic serial
157
line services such as baud rate setting, enabling interrupts, polling
158
for transmit or receive ready, transmitting and receiving data etc.
159
Given these it should be possible to create a generic serial line
160
device driver that will allow rapid bootstrapping on any new platform.
161
It may be possible to extend this mechanism to other device types.</P
162
></LI
163
></UL
164
></DIV
165
><DIV
166
CLASS="NAVFOOTER"
167
><HR
168
ALIGN="LEFT"
169
WIDTH="100%"><TABLE
170
SUMMARY="Footer navigation table"
171
WIDTH="100%"
172
BORDER="0"
173
CELLPADDING="0"
174
CELLSPACING="0"
175
><TR
176
><TD
177
WIDTH="33%"
178
ALIGN="left"
179
VALIGN="top"
180
><A
181
HREF="hal-porting-architecture.html"
182
ACCESSKEY="P"
183
>Prev</A
184
></TD
185
><TD
186
WIDTH="34%"
187
ALIGN="center"
188
VALIGN="top"
189
><A
190
HREF="ecos-ref.html"
191
ACCESSKEY="H"
192
>Home</A
193
></TD
194
><TD
195
WIDTH="33%"
196
ALIGN="right"
197
VALIGN="top"
198
><A
199
HREF="libc.html"
200
ACCESSKEY="N"
201
>Next</A
202
></TD
203
></TR
204
><TR
205
><TD
206
WIDTH="33%"
207
ALIGN="left"
208
VALIGN="top"
209
>Architecture HAL Porting</TD
210
><TD
211
WIDTH="34%"
212
ALIGN="center"
213
VALIGN="top"
214
><A
215
HREF="the-ecos-hardware-abstraction-layer.html"
216
ACCESSKEY="U"
217
>Up</A
218
></TD
219
><TD
220
WIDTH="33%"
221
ALIGN="right"
222
VALIGN="top"
223
>The ISO Standard C and Math Libraries</TD
224
></TR
225
></TABLE
226
></DIV
227
></BODY
228
></HTML
229
>

powered by: WebSVN 2.1.0

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