diff options
Diffstat (limited to 'c/src/lib/libcpu/m68k/mcf5206/timer/timerisr.S')
-rw-r--r-- | c/src/lib/libcpu/m68k/mcf5206/timer/timerisr.S | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/m68k/mcf5206/timer/timerisr.S b/c/src/lib/libcpu/m68k/mcf5206/timer/timerisr.S new file mode 100644 index 0000000000..e1a10d19bc --- /dev/null +++ b/c/src/lib/libcpu/m68k/mcf5206/timer/timerisr.S @@ -0,0 +1,49 @@ +/* + * Handle MCF5206 TIMER2 interrupts. + * + * All code in this routine is pure overhead which can perturb the + * accuracy of RTEMS' timing test suite. + * + * See also: Read_timer() + * + * To reduce overhead this is best to be the "rawest" hardware interupt + * handler you can write. This should be the only interrupt which can + * occur during the measured time period. + * + * An external counter, Timer_interrupts, is incremented. + * + * Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia + * Author: Victor V. Vengerov <vvv@oktet.ru> + * + * This file based on work: + * Author: + * David Fiddes, D.J@fiddes.surfaid.org + * http://www.calm.hw.ac.uk/davidf/coldfire/ + * + * COPYRIGHT (c) 1989-1998. + * On-Line Applications Research Corporation (OAR). + * Copyright assigned to U.S. Government, 1994. + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include "asm.h" +#include "bsp.h" +#include "mcf5206/mcf5206e.h" + +BEGIN_CODE + PUBLIC(timerisr) +SYM(timerisr): + move.l a0, a7@- + move.l #MCF5206E_TER(BSP_MEM_ADDR_IMM, 2), a0 + move.b # (MCF5206E_TER_REF + MCF5206E_TER_CAP), (a0) + addq.l #1,SYM(Timer_interrupts) | increment timer value + move.l a7@+, a0 + rte +END_CODE +END |