forked from Imagelibrary/rtems
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and passing address of _Thread_Dispatch to _CPU_Initialize. Clean up comments.
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/types.h: Do not define boolean, single_precision,
|
* rtems/score/types.h: Do not define boolean, single_precision,
|
||||||
|
|||||||
@@ -34,15 +34,12 @@ unsigned int arm_cpu_mode = 0x13;
|
|||||||
|
|
||||||
/* _CPU_Initialize
|
/* _CPU_Initialize
|
||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* INPUT PARAMETERS: NONE
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* This routine performs processor dependent initialization.
|
||||||
* thread_dispatch - address of ISR dispatching routine (unused)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void)
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -699,9 +699,7 @@ void _CPU_Context_Initialize(
|
|||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ARM_EXCEPTION_RESET = 0,
|
ARM_EXCEPTION_RESET = 0,
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-12-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2008-12-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* cpu.c, cpu_asm.c: Remove warnings -- even if code is just temporary.
|
* cpu.c, cpu_asm.c: Remove warnings -- even if code is just temporary.
|
||||||
|
|||||||
@@ -22,34 +22,16 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* NO_CPU Specific Information:
|
* NO_CPU Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
|
void _CPU_Initialize(void)
|
||||||
|
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
printk( "AVR CPU Initialize\n" );
|
printk( "AVR CPU Initialize\n" );
|
||||||
|
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -468,22 +468,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
|
|||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/*
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* AVR Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -936,9 +920,7 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/types.h: Do not define boolean, single_precision,
|
* rtems/score/types.h: Do not define boolean, single_precision,
|
||||||
|
|||||||
@@ -21,8 +21,7 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* NO_CPU Specific Information:
|
* NO_CPU Specific Information:
|
||||||
*
|
*
|
||||||
@@ -37,23 +36,8 @@ extern void _CPU_NMI_handler(void);
|
|||||||
extern void _CPU_Exception_handler(void);
|
extern void _CPU_Exception_handler(void);
|
||||||
extern void _CPU_Unhandled_Interrupt_handler(void);
|
extern void _CPU_Unhandled_Interrupt_handler(void);
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void)
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*_CPU_Thread_dispatch_pointer = thread_dispatch;*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -563,22 +563,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
|||||||
*/
|
*/
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup CPUInterrupt
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine @ref _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
/* SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -1097,16 +1081,11 @@ void _CPU_Context_Initialize(
|
|||||||
/**
|
/**
|
||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*
|
*
|
||||||
* @param[in] cpu_table is the CPU Dependent Configuration Table
|
|
||||||
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
* Port Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup CPUInterrupt
|
* @ingroup CPUInterrupt
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/types.h: Do not define boolean, single_precision,
|
* rtems/score/types.h: Do not define boolean, single_precision,
|
||||||
|
|||||||
@@ -21,32 +21,14 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* C4x Specific Information:
|
* C4x Specific Information:
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void)
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (CPU_HARDWARE_FP == TRUE)
|
#if (CPU_HARDWARE_FP == TRUE)
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
|
|||||||
@@ -580,24 +580,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
|
|||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/*
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* C4x Specific Information:
|
|
||||||
*
|
|
||||||
* This port should not require this.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -1078,9 +1060,7 @@ void _CPU_Context_Initialize(
|
|||||||
* XXXanswer
|
* XXXanswer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* rtems/score/cpu.h: Do not unroll any code on this target and use a
|
* rtems/score/cpu.h: Do not unroll any code on this target and use a
|
||||||
|
|||||||
@@ -19,28 +19,12 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void)
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -451,22 +451,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
|
|||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/*
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* H8300 Specific Information:
|
|
||||||
*
|
|
||||||
* XXX
|
|
||||||
*/
|
|
||||||
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -997,9 +981,7 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
* XXX
|
* XXX
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/types.h: Do not define boolean, single_precision,
|
* rtems/score/types.h: Do not define boolean, single_precision,
|
||||||
|
|||||||
@@ -25,14 +25,10 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
void _CPU_Initialize(void)
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
#if CPU_HARDWARE_FP
|
#if CPU_HARDWARE_FP
|
||||||
register uint16_t fp_status asm ("ax");
|
register uint16_t fp_status asm ("ax");
|
||||||
@@ -65,7 +61,6 @@ void _CPU_Initialize(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*PAGE
|
/*PAGE
|
||||||
|
|||||||
@@ -386,9 +386,7 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-12-05 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2008-12-05 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* .cvsignore: New file.
|
* .cvsignore: New file.
|
||||||
|
|||||||
@@ -23,32 +23,15 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* LM32 Specific Information:
|
* LM32 Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
void _CPU_Initialize(void)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -572,24 +572,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
|||||||
*/
|
*/
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup CPUInterrupt
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine @ref _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
#if 0
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -1100,15 +1082,11 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
/**
|
/**
|
||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*
|
*
|
||||||
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
* Port Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup CPUInterrupt
|
* @ingroup CPUInterrupt
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* rtems/score/cpu.h: Use a 16 bit object id on this target.
|
* rtems/score/cpu.h: Use a 16 bit object id on this target.
|
||||||
|
|||||||
@@ -19,16 +19,14 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* NO_CPU Specific Information:
|
* NO_CPU Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
void _CPU_Initialize(void)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
asm volatile( "ldc #__var_vects,intb" );
|
asm volatile( "ldc #__var_vects,intb" );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1041,15 +1041,11 @@ void _CPU_Context_Restart_self(
|
|||||||
/**
|
/**
|
||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*
|
*
|
||||||
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
* Port Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup CPUInterrupt
|
* @ingroup CPUInterrupt
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-10-28 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2008-10-28 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* Makefile.am, preinstall.am, rtems/score/cpu.h: Now performs context
|
* Makefile.am, preinstall.am, rtems/score/cpu.h: Now performs context
|
||||||
|
|||||||
@@ -18,16 +18,14 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* NO_CPU Specific Information:
|
* NO_CPU Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
void _CPU_Initialize(void)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -569,22 +569,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
|||||||
*/
|
*/
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup CPUInterrupt
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine @ref _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -1094,15 +1078,11 @@ void _CPU_Context_Restart_self(
|
|||||||
/**
|
/**
|
||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*
|
*
|
||||||
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
* Port Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup CPUInterrupt
|
* @ingroup CPUInterrupt
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/m68k.h: Don't include rtems/score/types.h,
|
* rtems/score/m68k.h: Don't include rtems/score/types.h,
|
||||||
|
|||||||
@@ -18,15 +18,12 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - entry pointer to thread dispatcher
|
|
||||||
*
|
*
|
||||||
* OUTPUT PARAMETERS: NONE
|
* OUTPUT PARAMETERS: NONE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void)
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
#if ( M68K_HAS_VBR == 0 )
|
#if ( M68K_HAS_VBR == 0 )
|
||||||
/* fill the isr redirect table with the code to place the format/id
|
/* fill the isr redirect table with the code to place the format/id
|
||||||
|
|||||||
@@ -632,9 +632,7 @@ extern const unsigned char _CPU_m68k_BFFFO_table[256];
|
|||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/types.h: Do not define boolean, single_precision,
|
* rtems/score/types.h: Do not define boolean, single_precision,
|
||||||
|
|||||||
@@ -70,12 +70,10 @@ ESF_PTR_TYPE __exceptionStackFrame = 0;
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
|
||||||
* thread_dispatch - address of dispatching routine
|
* thread_dispatch - address of dispatching routine
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
void _CPU_Initialize(void)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
|
|||||||
@@ -632,23 +632,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
|
|||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/*
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
|
|
||||||
*
|
|
||||||
* NOTE: Not needed on this port.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*/
|
*/
|
||||||
@@ -1061,9 +1044,7 @@ extern void mips_break( int error );
|
|||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/types.h: Do not define boolean, single_precision,
|
* rtems/score/types.h: Do not define boolean, single_precision,
|
||||||
|
|||||||
@@ -19,32 +19,15 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* NO_CPU Specific Information:
|
* NO_CPU Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
void _CPU_Initialize(void)
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -604,22 +604,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
|||||||
*/
|
*/
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup CPUInterrupt
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine @ref _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -1145,16 +1129,11 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
/**
|
/**
|
||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*
|
*
|
||||||
* @param cpu_table (in) is the CPU Dependent Configuration Table
|
|
||||||
* @param thread_dispatch (in) is the address of @ref _Thread_Dispatch
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
* Port Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup CPUInterrupt
|
* @ingroup CPUInterrupt
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-10-02 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2008-10-02 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* cpu_asm.c, rtems/score/cpu.h, rtems/score/types.h: Corrections and
|
* cpu_asm.c, rtems/score/cpu.h, rtems/score/types.h: Corrections and
|
||||||
|
|||||||
@@ -20,30 +20,15 @@
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* NO_CPU Specific Information:
|
* NO_CPU Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
void _CPU_Initialize(void)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -562,22 +562,6 @@ SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
|||||||
*/
|
*/
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/**
|
|
||||||
* @ingroup CPUInterrupt
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine @ref _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
|
||||||
*
|
|
||||||
* XXX document implementation including references if appropriate
|
|
||||||
*/
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*
|
*
|
||||||
@@ -1081,15 +1065,11 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
/**
|
/**
|
||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*
|
*
|
||||||
* @param[in] thread_dispatch is the address of @ref _Thread_Dispatch
|
|
||||||
*
|
|
||||||
* Port Specific Information:
|
* Port Specific Information:
|
||||||
*
|
*
|
||||||
* XXX document implementation including references if appropriate
|
* XXX document implementation including references if appropriate
|
||||||
*/
|
*/
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup CPUInterrupt
|
* @ingroup CPUInterrupt
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-30 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2008-09-30 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* cpu.c: Fine tune conditional so _CPU_ISR_install_vector is in CPU Kit
|
* cpu.c: Fine tune conditional so _CPU_ISR_install_vector is in CPU Kit
|
||||||
|
|||||||
@@ -39,30 +39,13 @@ extern proc_ptr _Hardware_isr_Table[];
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
void _CPU_Initialize(void)
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
register uint32_t level = 0;
|
register uint32_t level = 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not an easy way to initialize the FP context
|
* If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -428,18 +428,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
|
|||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/*
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*/
|
|
||||||
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*/
|
*/
|
||||||
@@ -825,9 +813,7 @@ extern uint8_t _bit_set_table[];
|
|||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* rtems/score/types.h: Do not define boolean, single_precision,
|
* rtems/score/types.h: Do not define boolean, single_precision,
|
||||||
|
|||||||
@@ -38,8 +38,7 @@ const CPU_Trap_table_entry _CPU_Trap_slot_template = {
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*
|
*
|
||||||
* Output Parameters: NONE
|
* Output Parameters: NONE
|
||||||
*
|
*
|
||||||
@@ -47,9 +46,7 @@ const CPU_Trap_table_entry _CPU_Trap_slot_template = {
|
|||||||
* The SPARC's assembly code can reference it directly with no problems.
|
* The SPARC's assembly code can reference it directly with no problems.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void)
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
#if (SPARC_HAS_FPU == 1)
|
#if (SPARC_HAS_FPU == 1)
|
||||||
Context_Control_fp *pointer;
|
Context_Control_fp *pointer;
|
||||||
|
|||||||
@@ -883,9 +883,7 @@ void _CPU_Context_Initialize(
|
|||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and
|
||||||
|
passing address of _Thread_Dispatch to _CPU_Initialize. Clean up
|
||||||
|
comments.
|
||||||
|
|
||||||
2008-12-01 Joel Sherrill <joel.sherrill@OARcorp.com>
|
2008-12-01 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||||||
|
|
||||||
* cpu.c: Links hello again.
|
* cpu.c: Links hello again.
|
||||||
|
|||||||
@@ -276,14 +276,10 @@ uint32_t _CPU_ISR_Get_level( void )
|
|||||||
*
|
*
|
||||||
* This routine performs processor dependent initialization.
|
* This routine performs processor dependent initialization.
|
||||||
*
|
*
|
||||||
* INPUT PARAMETERS:
|
* INPUT PARAMETERS: NONE
|
||||||
* thread_dispatch - address of dispatching routine
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
void _CPU_Initialize(void)
|
||||||
void _CPU_Initialize(
|
|
||||||
void (*thread_dispatch) /* ignored on this CPU */
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* If something happened where the public Context_Control is not
|
* If something happened where the public Context_Control is not
|
||||||
@@ -294,19 +290,6 @@ void _CPU_Initialize(
|
|||||||
if ( sizeof(Context_Control_overlay) > sizeof(Context_Control) )
|
if ( sizeof(Context_Control_overlay) > sizeof(Context_Control) )
|
||||||
_CPU_Fatal_error(0x100 + 1);
|
_CPU_Fatal_error(0x100 + 1);
|
||||||
|
|
||||||
/*
|
|
||||||
* The thread_dispatch argument is the address of the entry point
|
|
||||||
* for the routine called at the end of an ISR once it has been
|
|
||||||
* decided a context switch is necessary. On some compilation
|
|
||||||
* systems it is difficult to call a high-level language routine
|
|
||||||
* from assembly. This allows us to trick these systems.
|
|
||||||
*
|
|
||||||
* If you encounter this problem save the entry point in a CPU
|
|
||||||
* dependent variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_Thread_dispatch_pointer = thread_dispatch;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX; If there is not an easy way to initialize the FP context
|
* XXX; If there is not an easy way to initialize the FP context
|
||||||
* during Context_Initialize, then it is usually easier to
|
* during Context_Initialize, then it is usually easier to
|
||||||
|
|||||||
@@ -528,18 +528,6 @@ SCORE_EXTERN Context_Control_fp _CPU_Null_fp_context;
|
|||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_low;
|
||||||
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
SCORE_EXTERN void *_CPU_Interrupt_stack_high;
|
||||||
|
|
||||||
/*
|
|
||||||
* With some compilation systems, it is difficult if not impossible to
|
|
||||||
* call a high-level language routine from assembly language. This
|
|
||||||
* is especially true of commercial Ada compilers and name mangling
|
|
||||||
* C++ ones. This variable can be optionally defined by the CPU porter
|
|
||||||
* and contains the address of the routine _Thread_Dispatch. This
|
|
||||||
* can make it easier to invoke that routine at the end of the interrupt
|
|
||||||
* sequence (if a dispatch is necessary).
|
|
||||||
*/
|
|
||||||
|
|
||||||
SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Nothing prevents the porter from declaring more CPU specific variables.
|
* Nothing prevents the porter from declaring more CPU specific variables.
|
||||||
*/
|
*/
|
||||||
@@ -875,9 +863,7 @@ extern void _CPU_Context_Initialize(
|
|||||||
* This routine performs CPU dependent initialization.
|
* This routine performs CPU dependent initialization.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _CPU_Initialize(
|
void _CPU_Initialize(void);
|
||||||
void (*thread_dispatch)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _CPU_ISR_install_raw_handler
|
* _CPU_ISR_install_raw_handler
|
||||||
|
|||||||
Reference in New Issue
Block a user