source: rtems/doc/cpu_supplement/m68k.t @ 3e066540

4.104.114.95
Last change on this file since 3e066540 was 3e066540, checked in by Joel Sherrill <joel.sherrill@…>, on 12/03/07 at 22:23:02

2007-12-03 Joel Sherrill <joel.sherrill@…>

  • cpu_supplement/arm.t, cpu_supplement/i386.t, cpu_supplement/m68k.t, cpu_supplement/mips.t, cpu_supplement/powerpc.t, cpu_supplement/sh.t, cpu_supplement/sparc.t, cpu_supplement/tic4x.t, user/conf.t: Moved most of the remaining CPU Table fields to the Configuration Table. This included pretasking_hook, predriver_hook, postdriver_hook, idle_task, do_zero_of_workspace, extra_mpci_receive_server_stack, stack_allocate_hook, and stack_free_hook. As a side-effect of this effort some multiprocessing code was made conditional and some style clean up occurred.
  • Property mode set to 100644
File size: 24.3 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-2002.
3@c  On-Line Applications Research Corporation (OAR).
4@c  All rights reserved.
5@c
6@c  $Id$
7@c
8
9@ifinfo
10@end ifinfo
11@chapter Motorola M68xxx and Coldfire Specific Information
12
13The Real Time Executive for Multiprocessor Systems (RTEMS)
14is designed to be portable across multiple processor
15architectures.  However, the nature of real-time systems makes
16it essential that the application designer understand certain
17processor dependent implementation details.  These processor
18dependencies include calling convention, board support package
19issues, interrupt processing, exact RTEMS memory requirements,
20performance data, header files, and the assembly language
21interface to the executive.
22
23This document discusses the Motorola MC68xxx
24architecture dependencies in this port of RTEMS.  The MC68xxx
25family has a wide variety of CPU models within it.  The part
26numbers for these models are generally divided into MC680xx and
27MC683xx.  The MC680xx models are more general purpose processors
28with no integrated peripherals.  The MC683xx models, on the
29other hand, are more specialized and have a variety of
30peripherals on chip including sophisticated timers and serial
31communications controllers.
32
33It is highly recommended that the Motorola MC68xxx
34RTEMS application developer obtain and become familiar with the
35documentation for the processor being used as well as the
36documentation for the family as a whole.
37
38@subheading Architecture Documents
39
40For information on the Motorola MC68xxx architecture,
41refer to the following documents available from Motorola
42(@file{http//www.moto.com/}):
43
44@itemize @bullet
45@item @cite{M68000 Family Reference, Motorola, FR68K/D}.
46@end itemize
47
48@subheading MODEL SPECIFIC DOCUMENTS
49
50For information on specific processor models and
51their associated coprocessors, refer to the following documents:
52
53@itemize  @bullet
54@item @cite{MC68020 User's Manual, Motorola, MC68020UM/AD}.
55
56@item @cite{MC68881/MC68882 Floating-Point Coprocessor User's
57Manual, Motorola, MC68881UM/AD}.
58@end itemize
59
60@c
61@c  COPYRIGHT (c) 1988-2002.
62@c  On-Line Applications Research Corporation (OAR).
63@c  All rights reserved.
64@c
65@c  $Id$
66@c
67
68@section CPU Model Dependent Features
69
70
71Microprocessors are generally classified into
72families with a variety of CPU models or implementations within
73that family.  Within a processor family, there is a high level
74of binary compatibility.  This family may be based on either an
75architectural specification or on maintaining compatibility with
76a popular processor.  Recent microprocessor families such as the
77SPARC or PowerPC are based on an architectural specification
78which is independent or any particular CPU model or
79implementation.  Older families such as the M68xxx and the iX86
80evolved as the manufacturer strived to produce higher
81performance processor models which maintained binary
82compatibility with older models.
83
84RTEMS takes advantage of the similarity of the
85various models within a CPU family.  Although the models do vary
86in significant ways, the high level of compatibility makes it
87possible to share the bulk of the CPU dependent executive code
88across the entire family.  Each processor family supported by
89RTEMS has a list of features which vary between CPU models
90within a family.  For example, the most common model dependent
91feature regardless of CPU family is the presence or absence of a
92floating point unit or coprocessor.  When defining the list of
93features present on a particular CPU model, one simply notes
94that floating point hardware is or is not present and defines a
95single constant appropriately.  Conditional compilation is
96utilized to include the appropriate source code for this CPU
97model's feature set.  It is important to note that this means
98that RTEMS is thus compiled using the appropriate feature set
99and compilation flags optimal for this CPU model used.  The
100alternative would be to generate a binary which would execute on
101all family members using only the features which were always
102present.
103
104This chapter presents the set of features which vary
105across SPARC implementations and are of importance to RTEMS.
106The set of CPU model feature macros are defined in the file
107cpukit/score/cpu/m68k/m68k.h based upon the particular CPU
108model defined on the compilation command line.
109
110@subsection CPU Model Name
111
112The macro CPU_MODEL_NAME is a string which designates
113the name of this CPU model.  For example, for the MC68020
114processor, this macro is set to the string "mc68020".
115
116@subsection Floating Point Unit
117
118The macro M68K_HAS_FPU is set to 1 to indicate that
119this CPU model has a hardware floating point unit and 0
120otherwise.  It does not matter whether the hardware floating
121point support is incorporated on-chip or is an external
122coprocessor.
123
124@subsection BFFFO Instruction
125
126The macro M68K_HAS_BFFFO is set to 1 to indicate that
127this CPU model has the bfffo instruction.
128
129@subsection Vector Base Register
130
131The macro M68K_HAS_VBR is set to 1 to indicate that
132this CPU model has a vector base register (vbr).
133
134@subsection Separate Stacks
135
136The macro M68K_HAS_SEPARATE_STACKS is set to 1 to
137indicate that this CPU model has separate interrupt, user, and
138supervisor mode stacks.
139
140@subsection Pre-Indexing Address Mode
141
142The macro M68K_HAS_PREINDEXING is set to 1 to indicate that
143this CPU model has the pre-indexing address mode.
144
145@subsection Extend Byte to Long Instruction
146 
147The macro M68K_HAS_EXTB_L is set to 1 to indicate that this CPU model
148has the extb.l instruction.  This instruction is supposed to be available
149in all models based on the cpu32 core as well as mc68020 and up models.
150@c
151@c  COPYRIGHT (c) 1988-2002.
152@c  On-Line Applications Research Corporation (OAR).
153@c  All rights reserved.
154@c
155@c  $Id$
156@c
157
158@section Calling Conventions
159
160
161Each high-level language compiler generates
162subroutine entry and exit code based upon a set of rules known
163as the compiler's calling convention.   These rules address the
164following issues:
165
166@itemize @bullet
167@item register preservation and usage
168@item parameter passing
169@item call and return mechanism
170@end itemize
171
172A compiler's calling convention is of importance when
173interfacing to subroutines written in another language either
174assembly or high-level.  Even when the high-level language and
175target processor are the same, different compilers may use
176different calling conventions.  As a result, calling conventions
177are both processor and compiler dependent.
178
179@subsection Processor Background
180
181The MC68xxx architecture supports a simple yet
182effective call and return mechanism.  A subroutine is invoked
183via the branch to subroutine (bsr) or the jump to subroutine
184(jsr) instructions.  These instructions push the return address
185on the current stack.  The return from subroutine (rts)
186instruction pops the return address off the current stack and
187transfers control to that instruction.  It is is important to
188note that the MC68xxx call and return mechanism does not
189automatically save or restore any registers.  It is the
190responsibility of the high-level language compiler to define the
191register preservation and usage convention.
192
193@subsection Calling Mechanism
194
195All RTEMS directives are invoked using either a bsr
196or jsr instruction and return to the user application via the
197rts instruction.
198
199@subsection Register Usage
200
201As discussed above, the bsr and jsr instructions do
202not automatically save any registers.  RTEMS uses the registers
203D0, D1, A0, and A1 as scratch registers.  These registers are
204not preserved by RTEMS directives therefore, the contents of
205these registers should not be assumed upon return from any RTEMS
206directive.
207
208@subsection Parameter Passing
209
210RTEMS assumes that arguments are placed on the
211current stack before the directive is invoked via the bsr or jsr
212instruction.  The first argument is assumed to be closest to the
213return address on the stack.  This means that the first argument
214of the C calling sequence is pushed last.  The following
215pseudo-code illustrates the typical sequence used to call a
216RTEMS directive with three (3) arguments:
217
218@example
219@group
220push third argument
221push second argument
222push first argument
223invoke directive
224remove arguments from the stack
225@end group
226@end example
227
228The arguments to RTEMS are typically pushed onto the
229stack using a move instruction with a pre-decremented stack
230pointer as the destination.  These arguments must be removed
231from the stack after control is returned to the caller.  This
232removal is typically accomplished by adding the size of the
233argument list in bytes to the current stack pointer.
234
235@subsection User-Provided Routines
236
237All user-provided routines invoked by RTEMS, such as
238user extensions, device drivers, and MPCI routines, must also
239adhere to these calling conventions.
240
241@c
242@c  COPYRIGHT (c) 1988-2002.
243@c  On-Line Applications Research Corporation (OAR).
244@c  All rights reserved.
245@c
246@c  $Id$
247@c
248
249@section Memory Model
250
251
252A processor may support any combination of memory
253models ranging from pure physical addressing to complex demand
254paged virtual memory systems.  RTEMS supports a flat memory
255model which ranges contiguously over the processor's allowable
256address space.  RTEMS does not support segmentation or virtual
257memory of any kind.  The appropriate memory model for RTEMS
258provided by the targeted processor and related characteristics
259of that model are described in this chapter.
260
261@subsection Flat Memory Model
262
263The MC68xxx family supports a flat 32-bit address
264space with addresses ranging from 0x00000000 to 0xFFFFFFFF (4
265gigabytes).  Each address is represented by a 32-bit value and
266is byte addressable.  The address may be used to reference a
267single byte, word (2-bytes), or long word (4 bytes).  Memory
268accesses within this address space are performed in big endian
269fashion by the processors in this family.
270
271Some of the MC68xxx family members such as the
272MC68020, MC68030, and MC68040 support virtual memory and
273segmentation.  The MC68020 requires external hardware support
274such as the MC68851 Paged Memory Management Unit coprocessor
275which is typically used to perform address translations for
276these systems.  RTEMS does not support virtual memory or
277segmentation on any of the MC68xxx family members.
278
279@c
280@c  Interrupt Stack Frame Picture
281@c
282@c  COPYRIGHT (c) 1988-2002.
283@c  On-Line Applications Research Corporation (OAR).
284@c  All rights reserved.
285@c
286@c  $Id$
287@c
288
289@section Interrupt Processing
290
291
292Different types of processors respond to the
293occurrence of an interrupt in its own unique fashion. In
294addition, each processor type provides a control mechanism to
295allow for the proper handling of an interrupt.  The processor
296dependent response to the interrupt modifies the current
297execution state and results in a change in the execution stream.
298Most processors require that an interrupt handler utilize some
299special control mechanisms to return to the normal processing
300stream.  Although RTEMS hides many of the processor dependent
301details of interrupt processing, it is important to understand
302how the RTEMS interrupt manager is mapped onto the processor's
303unique architecture. Discussed in this chapter are the MC68xxx's
304interrupt response and control mechanisms as they pertain to
305RTEMS.
306
307@subsection Vectoring of an Interrupt Handler
308
309Depending on whether or not the particular CPU
310supports a separate interrupt stack, the MC68xxx family has two
311different interrupt handling models.
312
313@subsubsection Models Without Separate Interrupt Stacks
314
315Upon receipt of an interrupt the MC68xxx family
316members without separate interrupt stacks automatically perform
317the following actions:
318
319@itemize @bullet
320@item To Be Written
321@end itemize
322
323@subsubsection Models With Separate Interrupt Stacks
324
325Upon receipt of an interrupt the MC68xxx family
326members with separate interrupt stacks automatically perform the
327following actions:
328
329@itemize @bullet
330@item saves the current status register (SR),
331
332@item clears the master/interrupt (M) bit of the SR to
333indicate the switch from master state to interrupt state,
334
335@item sets the privilege mode to supervisor,
336
337@item suppresses tracing,
338
339@item sets the interrupt mask level equal to the level of the
340interrupt being serviced,
341
342@item pushes an interrupt stack frame (ISF), which includes
343the program counter (PC), the status register (SR), and the
344format/exception vector offset (FVO) word, onto the supervisor
345and interrupt stacks,
346
347@item switches the current stack to the interrupt stack and
348vectors to an interrupt service routine (ISR).  If the ISR was
349installed with the interrupt_catch directive, then the RTEMS
350interrupt handler will begin execution.  The RTEMS interrupt
351handler saves all registers which are not preserved according to
352the calling conventions and invokes the application's ISR.
353@end itemize
354
355A nested interrupt is processed similarly by these
356CPU models with the exception that only a single ISF is placed
357on the interrupt stack and the current stack need not be
358switched.
359
360The FVO word in the Interrupt Stack Frame is examined
361by RTEMS to determine when an outer most interrupt is being
362exited. Since the FVO is used by RTEMS for this purpose, the
363user application code MUST NOT modify this field.
364
365The following shows the Interrupt Stack Frame for
366MC68xxx CPU models with separate interrupt stacks:
367
368@ifset use-ascii
369@example
370@group
371               +----------------------+
372               |    Status Register   | 0x0
373               +----------------------+   
374               | Program Counter High | 0x2
375               +----------------------+   
376               | Program Counter Low  | 0x4
377               +----------------------+   
378               | Format/Vector Offset | 0x6
379               +----------------------+   
380@end group
381@end example
382@end ifset
383
384@ifset use-tex
385@sp 1
386@tex
387\centerline{\vbox{\offinterlineskip\halign{
388\strut\vrule#&
389\hbox to 2.00in{\enskip\hfil#\hfil}&
390\vrule#&
391\hbox to 0.50in{\enskip\hfil#\hfil}
392\cr
393\multispan{3}\hrulefill\cr
394& Status Register && 0x0\cr
395\multispan{3}\hrulefill\cr
396& Program Counter High && 0x2\cr
397\multispan{3}\hrulefill\cr
398& Program Counter Low && 0x4\cr
399\multispan{3}\hrulefill\cr
400& Format/Vector Offset && 0x6\cr
401\multispan{3}\hrulefill\cr
402}}\hfil}
403@end tex
404@end ifset
405
406@ifset use-html
407@html
408<CENTER>
409  <TABLE COLS=2 WIDTH="40%" BORDER=2>
410<TR><TD ALIGN=center><STRONG>Status Register</STRONG></TD>
411    <TD ALIGN=center>0x0</TD></TR>
412<TR><TD ALIGN=center><STRONG>Program Counter High</STRONG></TD>
413    <TD ALIGN=center>0x2</TD></TR>
414<TR><TD ALIGN=center><STRONG>Program Counter Low</STRONG></TD>
415    <TD ALIGN=center>0x4</TD></TR>
416<TR><TD ALIGN=center><STRONG>Format/Vector Offset</STRONG></TD>
417    <TD ALIGN=center>0x6</TD></TR>
418  </TABLE>
419</CENTER>
420@end html
421@end ifset
422
423@subsection CPU Models Without VBR and RAM at 0
424
425This is from a post by Zoltan Kocsi <zoltan@@bendor.com.au> and is
426a nice trick in certain situations.  In his words:
427
428I think somebody on this list asked about the interupt vector
429handling w/o VBR and RAM at 0.  The usual trick is
430to initialise the vector table (except the first 2 two entries, of
431course) to point to the same location BUT you also add the vector
432number times 0x1000000 to them. That is, bits 31-24 contain the vector
433number and 23-0 the address of the common handler.
434Since the PC is 32 bit wide but the actual address bus is only 24,
435the top byte will be in the PC but will be ignored when jumping
436onto your routine.
437
438Then your common interrupt routine gets this info by loading the PC
439into some register and based on that info, you can jump to a vector
440in a vector table pointed by a virtual VBR:
441
442@example
443//
444//  Real vector table at 0
445//
446 
447    .long   initial_sp
448    .long   initial_pc
449    .long   myhandler+0x02000000
450    .long   myhandler+0x03000000
451    .long   myhandler+0x04000000
452    ...
453    .long   myhandler+0xff000000
454   
455   
456//
457// This handler will jump to the interrupt routine   of which
458// the address is stored at VBR[ vector_no ]
459// The registers and stackframe will be intact, the interrupt
460// routine will see exactly what it would see if it was called
461// directly from the HW vector table at 0.
462//
463
464    .comm    VBR,4,2        // This defines the 'virtual' VBR
465                            // From C: extern void *VBR;
466
467myhandler:                  // At entry, PC contains the full vector
468    move.l  %d0,-(%sp)      // Save d0
469    move.l  %a0,-(%sp)      // Save a0
470    lea     0(%pc),%a0      // Get the value of the PC
471    move.l  %a0,%d0         // Copy it to a data reg, d0 is VV??????
472    swap    %d0             // Now d0 is ????VV??
473    and.w   #0xff00,%d0     // Now d0 is ????VV00 (1)
474    lsr.w   #6,%d0          // Now d0.w contains the VBR table offset
475    move.l  VBR,%a0         // Get the address from VBR to a0
476    move.l  (%a0,%d0.w),%a0 // Fetch the vector
477    move.l  4(%sp),%d0      // Restore d0
478    move.l  %a0,4(%sp)      // Place target address to the stack
479    move.l  (%sp)+,%a0      // Restore a0, target address is on TOS
480    ret                     // This will jump to the handler and
481                            // restore the stack
482
483(1) If 'myhandler' is guaranteed to be in the first 64K, e.g. just
484    after the vector table then that insn is not needed.
485
486@end example
487
488There are probably shorter ways to do this, but it I believe is enough
489to illustrate the trick. Optimisation is left as an exercise to the
490reader :-)
491
492
493@subsection Interrupt Levels
494
495Eight levels (0-7) of interrupt priorities are
496supported by MC68xxx family members with level seven (7) being
497the highest priority.  Level zero (0) indicates that interrupts
498are fully enabled.  Interrupt requests for interrupts with
499priorities less than or equal to the current interrupt mask
500level are ignored.
501
502Although RTEMS supports 256 interrupt levels, the
503MC68xxx family only supports eight.  RTEMS interrupt levels 0
504through 7 directly correspond to MC68xxx interrupt levels.  All
505other RTEMS interrupt levels are undefined and their behavior is
506unpredictable.
507
508@subsection Disabling of Interrupts by RTEMS
509
510During the execution of directive calls, critical
511sections of code may be executed.  When these sections are
512encountered, RTEMS disables interrupts to level seven (7) before
513the execution of this section and restores them to the previous
514level upon completion of the section.  RTEMS has been optimized
515to insure that interrupts are disabled for less than
516RTEMS_MAXIMUM_DISABLE_PERIOD microseconds on a
517RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ Mhz MC68020 with
518zero wait states.  These numbers will vary based the
519number of wait states and processor speed present on the target board.
520[NOTE:  The maximum period with interrupts disabled is hand calculated.  This
521calculation was last performed for Release
522RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
523
524Non-maskable interrupts (NMI) cannot be disabled, and
525ISRs which execute at this level MUST NEVER issue RTEMS system
526calls.  If a directive is invoked, unpredictable results may
527occur due to the inability of RTEMS to protect its critical
528sections.  However, ISRs that make no system calls may safely
529execute as non-maskable interrupts.
530
531@subsection Interrupt Stack
532
533RTEMS allocates the interrupt stack from the
534Workspace Area.  The amount of memory allocated for the
535interrupt stack is determined by the interrupt_stack_size field
536in the CPU Configuration Table.  During the initialization
537process, RTEMS will install its interrupt stack.
538
539The MC68xxx port of RTEMS supports a software managed
540dedicated interrupt stack on those CPU models which do not
541support a separate interrupt stack in hardware.
542
543
544@c
545@c  COPYRIGHT (c) 1988-2002.
546@c  On-Line Applications Research Corporation (OAR).
547@c  All rights reserved.
548@c
549@c  $Id$
550@c
551
552@section Default Fatal Error Processing
553
554
555Upon detection of a fatal error by either the
556application or RTEMS the fatal error manager is invoked.  The
557fatal error manager will invoke the user-supplied fatal error
558handlers.  If no user-supplied handlers are configured,  the
559RTEMS provided default fatal error handler is invoked.  If the
560user-supplied fatal error handlers return to the executive the
561default fatal error handler is then invoked.  This chapter
562describes the precise operations of the default fatal error
563handler.
564
565@subsection Default Fatal Error Handler Operations
566
567The default fatal error handler which is invoked by
568the fatal_error_occurred directive when there is no user handler
569configured or the user handler returns control to RTEMS.  The
570default fatal error handler disables processor interrupts to
571level 7, places the error code in D0, and executes a stop
572instruction to simulate a halt processor instruction.
573
574@c
575@c  COPYRIGHT (c) 1988-2002.
576@c  On-Line Applications Research Corporation (OAR).
577@c  All rights reserved.
578@c
579@c  $Id$
580@c
581
582@section Board Support Packages
583
584
585An RTEMS Board Support Package (BSP) must be designed
586to support a particular processor and target board combination.
587This chapter presents a discussion of MC68020 specific BSP
588issues.   For more information on developing a BSP, refer to the
589chapter titled Board Support Packages in the RTEMS
590Applications User's Guide.
591
592@subsection System Reset
593
594An RTEMS based application is initiated or
595re-initiated when the MC68020 processor is reset.  When the
596MC68020 is reset, the processor performs the following actions:
597
598@itemize @bullet
599@item The tracing bits of the status register are cleared to
600disable tracing.
601
602@item The supervisor interrupt state is entered by setting the
603supervisor (S) bit and clearing the master/interrupt (M) bit of
604the status register.
605
606@item The interrupt mask of the status register is set to
607level 7 to effectively disable all maskable interrupts.
608
609@item The vector base register (VBR) is set to zero.
610
611@item The cache control register (CACR) is set to zero to
612disable and freeze the processor cache.
613
614@item The interrupt stack pointer (ISP) is set to the value
615stored at vector 0 (bytes 0-3) of the exception vector table
616(EVT).
617
618@item The program counter (PC) is set to the value stored at
619vector 1 (bytes 4-7) of the EVT.
620
621@item The processor begins execution at the address stored in
622the PC.
623@end itemize
624
625@subsection Processor Initialization
626
627The address of the application's initialization code
628should be stored in the first vector of the EVT which will allow
629the immediate vectoring to the application code.  If the
630application requires that the VBR be some value besides zero,
631then it should be set to the required value at this point.  All
632tasks share the same MC68020's VBR value.  Because interrupts
633are enabled automatically by RTEMS as part of the initialize
634executive directive, the VBR MUST be set before this directive
635is invoked to insure correct interrupt vectoring.  If processor
636caching is to be utilized, then it should be enabled during the
637reset application initialization code.
638
639In addition to the requirements described in the
640Board Support Packages chapter of the Applications User's
641Manual for the reset code which is executed before the call to
642initialize executive, the MC68020 version has the following
643specific requirements:
644
645@itemize @bullet
646@item Must leave the S bit of the status register set so that
647the MC68020 remains in the supervisor state.
648
649@item Must set the M bit of the status register to remove the
650MC68020 from the interrupt state.
651
652@item Must set the master stack pointer (MSP) such that a
653minimum stack size of MINIMUM_STACK_SIZE bytes is provided for
654the initialize executive directive.
655
656@item Must initialize the MC68020's vector table.
657@end itemize
658
659Note that the BSP is not responsible for allocating
660or installing the interrupt stack.  RTEMS does this
661automatically as part of initialization.  If the BSP does not
662install an interrupt stack and -- for whatever reason -- an
663interrupt occurs before initialize_executive is invoked, then
664the results are unpredictable.
665
666@c
667@c  COPYRIGHT (c) 1988-2002.
668@c  On-Line Applications Research Corporation (OAR).
669@c  All rights reserved.
670@c
671@c  $Id$
672@c
673
674@section Processor Dependent Information Table
675
676
677Any highly processor dependent information required
678to describe a processor to RTEMS is provided in the CPU
679Dependent Information Table.  This table is not required for all
680processors supported by RTEMS.  This chapter describes the
681contents, if any, for a particular processor type.
682
683@subsection CPU Dependent Information Table
684
685The MC68xxx version of the RTEMS CPU Dependent
686Information Table contains the information required to interface
687a Board Support Package and RTEMS on the MC68xxx.  This
688information is provided to allow RTEMS to interoperate
689effectively with the BSP.  The C structure definition is given
690here:
691
692@example
693@group
694typedef struct @{
695  unsigned32   interrupt_stack_size;
696  /* end of fields required on all CPUs */
697@} rtems_cpu_table;
698@end group
699@end example
700
701@table @code
702
703@item interrupt_stack_size
704is the size of the RTEMS
705allocated interrupt stack in bytes.  This value must be at least
706as large as MINIMUM_STACK_SIZE.
707
708@end table
Note: See TracBrowser for help on using the repository browser.