;;; -*- asm -*-
|
;;; -*- asm -*-
|
;;; $Id: vectors.a51 395 2011-07-17 22:02:55Z mueller $
|
;;; $Id: vectors.a51 395 2011-07-17 22:02:55Z mueller $
|
;;;
|
;;;
|
;;;-----------------------------------------------------------------------------
|
;;;-----------------------------------------------------------------------------
|
;;; Interrupt vectors
|
;;; Interrupt vectors
|
;;;-----------------------------------------------------------------------------
|
;;;-----------------------------------------------------------------------------
|
;;; Code taken from USRP2 firmware (GNU Radio Project), version 3.0.2,
|
;;; Code taken from USRP2 firmware (GNU Radio Project), version 3.0.2,
|
;;; Copyright 2003 Free Software Foundation, Inc.
|
;;; Copyright 2003 Free Software Foundation, Inc.
|
;;;-----------------------------------------------------------------------------
|
;;;-----------------------------------------------------------------------------
|
;;; This code is part of usbjtag. usbjtag is free software; you can redistribute
|
;;; This code is part of usbjtag. usbjtag is free software; you can redistribute
|
;;; it and/or modify it under the terms of the GNU General Public License as
|
;;; it and/or modify it under the terms of the GNU General Public License as
|
;;; published by the Free Software Foundation; either version 2 of the License,
|
;;; published by the Free Software Foundation; either version 2 of the License,
|
;;; or (at your option) any later version. usbjtag is distributed in the hope
|
;;; or (at your option) any later version. usbjtag is distributed in the hope
|
;;; that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
;;; that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
;;; GNU General Public License for more details. You should have received a
|
;;; GNU General Public License for more details. You should have received a
|
;;; copy of the GNU General Public License along with this program in the file
|
;;; copy of the GNU General Public License along with this program in the file
|
;;; COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin
|
;;; COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin
|
;;; St, Fifth Floor, Boston, MA 02110-1301 USA
|
;;; St, Fifth Floor, Boston, MA 02110-1301 USA
|
;;;-----------------------------------------------------------------------------
|
;;;-----------------------------------------------------------------------------
|
|
|
;;; N.B. This object module must come first in the list of modules
|
;;; N.B. This object module must come first in the list of modules
|
|
|
.module vectors
|
.module vectors
|
|
|
;;; ----------------------------------------------------------------
|
;;; ----------------------------------------------------------------
|
;;; standard FX2 interrupt vectors
|
;;; standard FX2 interrupt vectors
|
;;; ----------------------------------------------------------------
|
;;; ----------------------------------------------------------------
|
|
|
.area CSEG (CODE)
|
.area CSEG (CODE)
|
.area GSINIT (CODE)
|
.area GSINIT (CODE)
|
.area CSEG (CODE)
|
.area CSEG (CODE)
|
__standard_interrupt_vector::
|
__standard_interrupt_vector::
|
__reset_vector::
|
__reset_vector::
|
ljmp s_GSINIT
|
ljmp s_GSINIT
|
|
|
;; 13 8-byte entries. We point them all at __isr_nop
|
;; 13 8-byte entries. We point them all at __isr_nop
|
ljmp __isr_nop ; 3 bytes
|
ljmp __isr_nop ; 3 bytes
|
.ds 5 ; + 5 = 8 bytes for vector slot
|
.ds 5 ; + 5 = 8 bytes for vector slot
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
ljmp __isr_nop
|
ljmp __isr_nop
|
.ds 5
|
.ds 5
|
|
|
__isr_nop::
|
__isr_nop::
|
reti
|
reti
|
|
|
;;; ----------------------------------------------------------------
|
;;; ----------------------------------------------------------------
|
;;; the FIFO/GPIF autovector. 14 4-byte entries.
|
;;; the FIFO/GPIF autovector. 14 4-byte entries.
|
;;; must start on a 128 byte boundary.
|
;;; must start on a 128 byte boundary.
|
;;; ----------------------------------------------------------------
|
;;; ----------------------------------------------------------------
|
|
|
. = __reset_vector + 0x0080
|
. = __reset_vector + 0x0080
|
|
|
__fifo_gpif_autovector::
|
__fifo_gpif_autovector::
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
|
|
|
|
;;; ----------------------------------------------------------------
|
;;; ----------------------------------------------------------------
|
;;; the USB autovector. 32 4-byte entries.
|
;;; the USB autovector. 32 4-byte entries.
|
;;; must start on a 256 byte boundary.
|
;;; must start on a 256 byte boundary.
|
;;; ----------------------------------------------------------------
|
;;; ----------------------------------------------------------------
|
|
|
. = __reset_vector + 0x0100
|
. = __reset_vector + 0x0100
|
|
|
__usb_autovector::
|
__usb_autovector::
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
ljmp __isr_nop
|
ljmp __isr_nop
|
nop
|
nop
|
|
|