diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-01-03 16:36:23 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-01-03 16:36:23 +0000 |
commit | fe7acdcf8b56a38212a7212493b4e07a70914d0f (patch) | |
tree | 9bd123ee54ad23b7ee3ce7455d7a35514828445a /c/src/exec/score/cpu/m68k | |
parent | 2001-01-03 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-fe7acdcf8b56a38212a7212493b4e07a70914d0f.tar.bz2 |
2001-01-03 Joel Sherrill <joel@OARcorp.com>
* rtems/score/cpu.h: Added _CPU_Initialize_vectors().
* cpu_asm.S: Modify to properly dereference _ISR_Vector_table
now that it is dynamically allocated.
Diffstat (limited to 'c/src/exec/score/cpu/m68k')
-rw-r--r-- | c/src/exec/score/cpu/m68k/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/exec/score/cpu/m68k/cpu_asm.S | 4 | ||||
-rw-r--r-- | c/src/exec/score/cpu/m68k/rtems/score/cpu.h | 3 |
3 files changed, 11 insertions, 2 deletions
diff --git a/c/src/exec/score/cpu/m68k/ChangeLog b/c/src/exec/score/cpu/m68k/ChangeLog index 533d182258..13ec23bbf5 100644 --- a/c/src/exec/score/cpu/m68k/ChangeLog +++ b/c/src/exec/score/cpu/m68k/ChangeLog @@ -1,3 +1,9 @@ +2001-01-03 Joel Sherrill <joel@OARcorp.com> + + * rtems/score/cpu.h: Added _CPU_Initialize_vectors(). + * cpu_asm.S: Modify to properly dereference _ISR_Vector_table + now that it is dynamically allocated. + 2000-12-19 Joel Sherrill <joel@OARcorp.com> * cpu.c: Do not read or write raw interrupt vector table if diff --git a/c/src/exec/score/cpu/m68k/cpu_asm.S b/c/src/exec/score/cpu/m68k/cpu_asm.S index 3d663372a0..5f29d67469 100644 --- a/c/src/exec/score/cpu/m68k/cpu_asm.S +++ b/c/src/exec/score/cpu/m68k/cpu_asm.S @@ -177,10 +177,10 @@ SYM (_ISR_Handler): addql #1,SYM (_ISR_Nest_level) | one nest level deeper #endif /* CPU_HAS_SOFTWARE_INTERRUPT_STACK == 1 */ + movel SYM (_ISR_Vector_table),a0 | a0= base of RTEMS table #if ( M68K_HAS_PREINDEXING == 1 ) - movel @( SYM (_ISR_Vector_table),d0:w:1),a0| fetch the ISR + movel (a0,d0:w:1),a0 | a0 = address of user routine #else - movel # SYM (_ISR_Vector_table),a0 | a0 = base of RTEMS table addal d0,a0 | a0 = address of vector movel (a0),a0 | a0 = address of user routine #endif diff --git a/c/src/exec/score/cpu/m68k/rtems/score/cpu.h b/c/src/exec/score/cpu/m68k/rtems/score/cpu.h index 2353332620..c1d3f6ac58 100644 --- a/c/src/exec/score/cpu/m68k/rtems/score/cpu.h +++ b/c/src/exec/score/cpu/m68k/rtems/score/cpu.h @@ -309,12 +309,15 @@ SCORE_EXTERN _CPU_ISR_handler_entry _CPU_ISR_jump_table[256]; * ISR handler macros * * These macros perform the following functions: + * + initialize the RTEMS vector table * + disable all maskable CPU interrupts * + restore previous interrupt level (enable) * + temporarily restore interrupts (flash) * + set a particular level */ +#define _CPU_Initialize_vectors() + #define _CPU_ISR_Disable( _level ) \ m68k_disable_interrupts( _level ) |