TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    1

       1                    ;;   Do *not* directly modify this file.  It was   
       2                    ;;   generated by the Configuration Tool; any 
       3                    ;;   changes risk being overwritten.               
       4                    
       5                    ;; INPUT c6482_EMAC_Cfg.cdb
       6                    
       7                    ;; CONFIGURATION/VERSION INFORMATION
       8                            .asg "Thu Dec 28 21:21:10 2006", VERS$DATE
       9                    
      10                    ;; PROLOGUE
      11                            .include c6482_EMAC_Cfgcfg.h62
      12                            .copy confbeg.s62
 B     1                    ;
 B     2                    ;  Copyright 2006 by Texas Instruments Incorporated.
 B     3                    ;  All rights reserved. Property of Texas Instruments Incorporated.
 B     4                    ;  Restricted rights to use, duplicate or disclose this code are
 B     5                    ;  granted through contract.
 B     6                    ;
 B     7                    ;  @(#) DSP/BIOS_Kernel 5,2,3,14 10-05-2006 (cuda-r14)
 B     8                    ;
 B     9                    ;
 B    10                    ;  ======== confbeg.s62 ========
 B    11                    ;  The statements in this file are inserted at the beginning of 
 B    12                    ;  every BIOS configuration file.
 B    13                    ;
 B    14                    
 B    15                    
      13                    
      14                    ;; TYPE HEADERS
      15                            .include gbl.h62
      16                            .include mem.h62
      17                            .include obj.h62
      18                            .include buf.h62
      19                            .include pool.h62
 Q   114                        
      20                            .include clk.h62
      21                            .include prd.h62
      22                            .include rtdx.h62
      23                            .include hst.h62
      24                            .include hwi.h62
      25                            .include ecm.h62
      26                            .include swi.h62
      27                            .include tsk.h62
      28                            .include idl.h62
      29                            .include isrc.h62
      30                            .include log.h62
      31                            .include pip.h62
 +   636                    
      32                            .include sem.h62
      33                            .include mbx.h62
      34                            .include que.h62
      35                            .include lck.h62
      36                            .include sts.h62
      37                            .include sys.h62
 +   117                        
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    2

      38                            .include sio.h62
      39                            .include gio.h62
 +   132                        
      40                            .include dev.h62
      41                            .include udev.h62
      42                            .include dio.h62
      43                            .include dgn.h62
 +   215                    
      44                            .include dhl.h62
 +   197                    
      45                            .include dpi.h62
      46                            .include msgq.h62
 +   128                        
      47                            .include hook.h62
 +   260                    
      48                    
      49                    ;; TYPE ATTRIBUTES
      50          00000003  MEM$NUMOF           .set 3
      51          00000000  MEM$SETOF           .set 00H
      52          00000000  OBJ$NUMOF           .set 0
      53          00000000  OBJ$SETOF           .set 00H
      54          00000000  BUF$NUMOF           .set 0
      55          00000000  BUF$SETOF           .set 00H
      56          00000001  CLK$NUMOF           .set 1
      57          00000000  CLK$SETOF           .set 00H
      58          00000001  PRD$NUMOF           .set 1
      59          00000000  PRD$SETOF           .set 00H
      60          00000000  RTDX$NUMOF          .set 0
      61          00000000  RTDX$SETOF          .set 00H
      62          00000002  HST$NUMOF           .set 2
      63          00000003  HST$SETOF           .set 03H
      64          00000010  HWI$NUMOF           .set 16
      65          0000FFFF  HWI$SETOF           .set 0ffffH
      66          0000007C  ECM$NUMOF           .set 124
      67          FFFFFFFF  ECM$SETOF           .set 0ffffffffH
      68          00000002  SWI$NUMOF           .set 2
      69          00000000  SWI$SETOF           .set 00H
      70          00000002  TSK$NUMOF           .set 2
      71          00000000  TSK$SETOF           .set 00H
      72          00000003  IDL$NUMOF           .set 3
      73          00000000  IDL$SETOF           .set 00H
      74          00000000  ISRC$NUMOF          .set 0
      75          00000000  ISRC$SETOF          .set 00H
      76          00000001  LOG$NUMOF           .set 1
      77          00000000  LOG$SETOF           .set 00H
      78          00000000  PIP$NUMOF           .set 0
      79          00000000  PIP$SETOF           .set 00H
      80          00000000  SEM$NUMOF           .set 0
      81          00000000  SEM$SETOF           .set 00H
      82          00000000  MBX$NUMOF           .set 0
      83          00000000  MBX$SETOF           .set 00H
      84          00000000  QUE$NUMOF           .set 0
      85          00000000  QUE$SETOF           .set 00H
      86          00000000  LCK$NUMOF           .set 0
      87          00000000  LCK$SETOF           .set 00H
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    3

      88          00000001  STS$NUMOF           .set 1
      89          00000000  STS$SETOF           .set 00H
      90          00000000  SIO$NUMOF           .set 0
      91          00000000  SIO$SETOF           .set 00H
      92          00000000  DEV$NUMOF           .set 0
      93          00000000  DEV$SETOF           .set 00H
      94          00000000  UDEV$NUMOF          .set 0
      95          00000000  UDEV$SETOF          .set 00H
      96          00000000  DIO$NUMOF           .set 0
      97          00000000  DIO$SETOF           .set 00H
      98          00000000  DGN$NUMOF           .set 0
      99          00000000  DGN$SETOF           .set 00H
     100          00000000  DHL$NUMOF           .set 0
     101          00000000  DHL$SETOF           .set 00H
     102          00000000  DPI$NUMOF           .set 0
     103          00000000  DPI$SETOF           .set 00H
     104          00000000  HOOK$NUMOF          .set 0
     105          00000000  HOOK$SETOF          .set 00H
     106                    
     107                    ;; module GBL (ROM, PROCID, CLKIN, FREQ, DSPTYPE, DSPSUBTYPE, CLKTYPE, BIGENDIAN, USERINIT, USERINITFX
     108                            .global GBL$                     ; == 1
     109                            .global GBL_ROM                  ; c6482_EMAC_Cfgcfg.h62
     110                            .global GBL_PROCID               ; c6482_EMAC_Cfgcfg.h62
     111                            .global GBL_CLKIN                ; c6482_EMAC_Cfgcfg.h62
     112                            .global GBL_FREQ                 ; c6482_EMAC_Cfgcfg.h62
     113                            .global GBL_DSPTYPE              ; c6482_EMAC_Cfgcfg.h62
     114                            .global GBL_DSPSUBTYPE           ; c6482_EMAC_Cfgcfg.h62
     115                            .global GBL_CLKTYPE              ; c6482_EMAC_Cfgcfg.h62
     116                            .global GBL_BIGENDIAN            ; c6482_EMAC_Cfgcfg.h62
     117                            .global GBL_USERINIT             ; c6482_EMAC_Cfgcfg.h62
     118                            .global GBL_USERINITFXN          ; c6482_EMAC_Cfgcfg.cmd
     119                            .global GBL_ENABLEINST           ; c6482_EMAC_Cfgcfg.h62
     120                            .global GBL_SUPPORTCSL           ; c6482_EMAC_Cfgcfg.h62
     121                            .global GBL_TRCMASKVALUE         ; c6482_EMAC_Cfgcfg.h62
     122                            .global GBL_CALLCSLCFGINIT       ; c6482_EMAC_Cfgcfg.h62
     123                            .global GBL_CACHE                ; c6482_EMAC_Cfgcfg.h62
     124                            .global GBL_L2CONFIGURE          ; c6482_EMAC_Cfgcfg.h62
     125                            .global GBL_L1PMODE              ; c6482_EMAC_Cfgcfg.h62
     126                            .global GBL_L1DMODE              ; c6482_EMAC_Cfgcfg.h62
     127                            .global GBL_L2MODE               ; c6482_EMAC_Cfgcfg.h62
     128                            .global GBL_L2MAR0_31            ; c6482_EMAC_Cfgcfg.h62
     129                            .global GBL_L2MAR32_63           ; c6482_EMAC_Cfgcfg.h62
     130                            .global GBL_L2MAR64_95           ; c6482_EMAC_Cfgcfg.h62
     131                            .global GBL_L2MAR96_127          ; c6482_EMAC_Cfgcfg.h62
     132                            .global GBL_L2MAR128_159         ; c6482_EMAC_Cfgcfg.h62
     133                            .global GBL_L2MAR160_191         ; c6482_EMAC_Cfgcfg.h62
     134                            .global GBL_L2MAR192_223         ; c6482_EMAC_Cfgcfg.h62
     135                            .global GBL_L2MAR224_255         ; c6482_EMAC_Cfgcfg.h62
     136                            .global GBL_ENABLE_SK            ; c6482_EMAC_Cfgcfg.h62
     137                            .global GBL_GEMTRUECOMPEN        ; c6482_EMAC_Cfgcfg.h62
     138                            .global GBL_BCACHEREADADDR0      ; c6482_EMAC_Cfgcfg.h62
     139                            .global GBL_BCACHEREADADDR1      ; c6482_EMAC_Cfgcfg.h62
     140                            .global GBL_BCACHEREADADDR2      ; c6482_EMAC_Cfgcfg.h62
     141                    
     142                    ;; module MEM (gNumHeap, SEGZERO, MALLOCSEG, USEMPC)
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    4

     143                            .global MEM$                     ; == 1
     144                            .global MEM_gNumHeap             ; c6482_EMAC_Cfgcfg.h62
     145                            .global MEM_SEGZERO              ; c6482_EMAC_Cfgcfg.cmd
     146                            .global MEM_MALLOCSEG            ; c6482_EMAC_Cfgcfg.cmd
     147                            .global MEM_USEMPC               ; c6482_EMAC_Cfgcfg.h62
     148                    
     149                    ;; module OBJ ()
     150                            .global OBJ$                     ; == 0
     151                    
     152                    ;; module BUF (ENABLED)
     153                            .global BUF$                     ; == 0
     154                            .global BUF_ENABLED              ; c6482_EMAC_Cfgcfg.h62
     155                    
     156                    ;; module POOL (USEPOOL)
     157                            .global POOL$                    ; == 0
     158                            .global POOL_USEPOOL             ; c6482_EMAC_Cfgcfg.h62
     159                    
     160                    ;; module CLK (INTBIT, REGS, TIMERNUM, USETIMER, ENABLEHTIME, MICROSECS, TCR, TDDR, TDDRHIGH, PRD, PRD
     161                            .global CLK$                     ; == 1
     162                            .global CLK_INTBIT               ; c6482_EMAC_Cfgcfg.h62
     163                            .global CLK_REGS                 ; c6482_EMAC_Cfgcfg.h62
     164                            .global CLK_TIMERNUM             ; c6482_EMAC_Cfgcfg.h62
     165                            .global CLK_USETIMER             ; c6482_EMAC_Cfgcfg.h62
     166                            .global CLK_ENABLEHTIME          ; c6482_EMAC_Cfgcfg.h62
     167                            .global CLK_MICROSECS            ; c6482_EMAC_Cfgcfg.h62
     168                            .global CLK_TCR                  ; c6482_EMAC_Cfgcfg.h62
     169                            .global CLK_TDDR                 ; c6482_EMAC_Cfgcfg.h62
     170                            .global CLK_TDDRHIGH             ; c6482_EMAC_Cfgcfg.h62
     171                            .global CLK_PRD                  ; c6482_EMAC_Cfgcfg.h62
     172                            .global CLK_PRDHIGH              ; c6482_EMAC_Cfgcfg.h62
     173                            .global CLK_COUNTSPMS            ; c6482_EMAC_Cfgcfg.h62
     174                            .global CLK_COUNTSPMSHIGH        ; c6482_EMAC_Cfgcfg.h62
     175                            .global CLK_TIMEFXN              ; c6482_EMAC_Cfgcfg.cmd
     176                            .global CLK_HOOKFXN              ; c6482_EMAC_Cfgcfg.cmd
     177                            .global CLK_CALDIV               ; c6482_EMAC_Cfgcfg.h62
     178                            .global CLK_CALMULT              ; c6482_EMAC_Cfgcfg.h62
     179                            .global CLK_HTIMEDIV             ; c6482_EMAC_Cfgcfg.h62
     180                            .global CLK_HTIMEMULT            ; c6482_EMAC_Cfgcfg.h62
     181                            .global CLK_LTIMEDIV             ; c6482_EMAC_Cfgcfg.h62
     182                            .global CLK_LTIMEMULT            ; c6482_EMAC_Cfgcfg.h62
     183                            .global CLK_INPUTCLK             ; c6482_EMAC_Cfgcfg.h62
     184                            .global CLK_RESETTIMER           ; c6482_EMAC_Cfgcfg.h62
     185                            .global CLK_TIMMODE              ; c6482_EMAC_Cfgcfg.h62
     186                            .global CLK_HTIMEPERLTIME        ; c6482_EMAC_Cfgcfg.h62
     187                    
     188                    ;; module PRD (SCALAR, THOOKFXN)
     189                            .global PRD$                     ; == 1
     190                            .global PRD_SCALAR               ; c6482_EMAC_Cfgcfg.h62
     191                            .global PRD_THOOKFXN             ; c6482_EMAC_Cfgcfg.cmd
     192                    
     193                    ;; module RTDX (USERTDX, USERTEXECUTION, RTDXTYPE, DATAMEMSEG, BUFMEMSIZE)
     194                            .global RTDX$                    ; == 0
     195                            .global RTDX_USERTDX             ; c6482_EMAC_Cfgcfg.h62
     196                            .global RTDX_USERTEXECUTION      ; c6482_EMAC_Cfgcfg.h62
     197                            .global RTDX_RTDXTYPE            ; c6482_EMAC_Cfgcfg.h62
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    5

     198                            .global RTDX_DATAMEMSEG          ; c6482_EMAC_Cfgcfg.cmd
     199                            .global RTDX_BUFMEMSIZE          ; c6482_EMAC_Cfgcfg.h62
     200                    
     201                    ;; module HST (RTDX, DSM, NONE, MAXFRAMESET, MAXFRAMEALLOWED, DSMBUFSEG, DSMMEMSIZE)
     202                            .global HST$                     ; == 1
     203                            .global HST_RTDX                 ; c6482_EMAC_Cfgcfg.h62
     204                            .global HST_DSM                  ; c6482_EMAC_Cfgcfg.h62
     205                            .global HST_NONE                 ; c6482_EMAC_Cfgcfg.h62
     206                            .global HST_MAXFRAMESET          ; c6482_EMAC_Cfgcfg.h62
     207                            .global HST_MAXFRAMEALLOWED      ; c6482_EMAC_Cfgcfg.h62
     208                            .global HST_DSMBUFSEG            ; c6482_EMAC_Cfgcfg.cmd
     209                            .global HST_DSMMEMSIZE           ; c6482_EMAC_Cfgcfg.h62
     210                    
     211                    ;; module HWI (ZEROTAB, GENERATE_RESET_VEC, POLARITYMASK, INTRMUX1, INTRMUX2, INTRMUX3, ENABLE_EXC, CF
     212                            .global HWI$                     ; == 1
     213                            .global HWI_ZEROTAB              ; c6482_EMAC_Cfgcfg.h62
     214                            .global HWI_GENERATE_RESET_VEC   ; c6482_EMAC_Cfgcfg.h62
     215                            .global HWI_POLARITYMASK         ; c6482_EMAC_Cfgcfg.h62
     216                            .global HWI_INTRMUX1             ; c6482_EMAC_Cfgcfg.h62
     217                            .global HWI_INTRMUX2             ; c6482_EMAC_Cfgcfg.h62
     218                            .global HWI_INTRMUX3             ; c6482_EMAC_Cfgcfg.h62
     219                            .global HWI_ENABLE_EXC           ; c6482_EMAC_Cfgcfg.h62
     220                            .global HWI_CFGDISPATCHED        ; c6482_EMAC_Cfgcfg.h62
     221                    
     222                    ;; module ECM (ENABLE, EVTMASK0, EVTMASK1, EVTMASK2, EVTMASK3)
     223                            .global ECM$                     ; == 0
     224                            .global ECM_ENABLE               ; c6482_EMAC_Cfgcfg.h62
     225                            .global ECM_EVTMASK0             ; c6482_EMAC_Cfgcfg.h62
     226                            .global ECM_EVTMASK1             ; c6482_EMAC_Cfgcfg.h62
     227                            .global ECM_EVTMASK2             ; c6482_EMAC_Cfgcfg.h62
     228                            .global ECM_EVTMASK3             ; c6482_EMAC_Cfgcfg.h62
     229                    
     230                    ;; module SWI (EHOOKFXN, IHOOKFXN, EXECFXN, RUNFXN)
     231                            .global SWI$                     ; == 1
     232                            .global SWI_EHOOKFXN             ; c6482_EMAC_Cfgcfg.cmd
     233                            .global SWI_IHOOKFXN             ; c6482_EMAC_Cfgcfg.cmd
     234                            .global SWI_EXECFXN              ; c6482_EMAC_Cfgcfg.cmd
     235                            .global SWI_RUNFXN               ; c6482_EMAC_Cfgcfg.cmd
     236                    
     237                    ;; module TSK (STACKSIZE, STACKSEG, PRIORITY, VCREATEFXN, VDELETEFXN, VEXITFXN, SWITCHFXN, READYFXN, N
     238                            .global TSK$                     ; == 1
     239                            .global TSK_STACKSIZE            ; c6482_EMAC_Cfgcfg.h62
     240                            .global TSK_STACKSEG             ; c6482_EMAC_Cfgcfg.cmd
     241                            .global TSK_PRIORITY             ; c6482_EMAC_Cfgcfg.h62
     242                            .global TSK_VCREATEFXN           ; c6482_EMAC_Cfgcfg.cmd
     243                            .global TSK_VDELETEFXN           ; c6482_EMAC_Cfgcfg.cmd
     244                            .global TSK_VEXITFXN             ; c6482_EMAC_Cfgcfg.cmd
     245                            .global TSK_SWITCHFXN            ; c6482_EMAC_Cfgcfg.h62
     246                            .global TSK_READYFXN             ; c6482_EMAC_Cfgcfg.h62
     247                            .global TSK_NUM_HOOKS            ; c6482_EMAC_Cfgcfg.h62
     248                    
     249                    ;; module IDL (USECLKIDLTIME, CALIBRFXN, CALIBRERROR)
     250                            .global IDL$                     ; == 1
     251                            .global IDL_USECLKIDLTIME        ; c6482_EMAC_Cfgcfg.h62
     252                            .global IDL_CALIBRFXN            ; c6482_EMAC_Cfgcfg.cmd
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    6

     253                            .global IDL_CALIBRERROR          ; c6482_EMAC_Cfgcfg.h62
     254                    
     255                    ;; module ISRC ()
     256                            .global ISRC$                    ; == 1
     257                    
     258                    ;; module LOG (ENABLED)
     259                            .global LOG$                     ; == 1
     260                            .global LOG_ENABLED              ; c6482_EMAC_Cfgcfg.h62
     261                    
     262                    ;; module PIP (gNumEmbed, gNextId, OBJSIZE)
     263                            .global PIP$                     ; == 0
     264                            .global PIP_gNumEmbed            ; c6482_EMAC_Cfgcfg.h62
     265                            .global PIP_gNextId              ; c6482_EMAC_Cfgcfg.h62
     266                            .global PIP_OBJSIZE              ; c6482_EMAC_Cfgcfg.h62
     267                    
     268                    ;; module SEM ()
     269                            .global SEM$                     ; == 0
     270                    
     271                    ;; module MBX ()
     272                            .global MBX$                     ; == 0
     273                    
     274                    ;; module QUE ()
     275                            .global QUE$                     ; == 1
     276                    
     277                    ;; module LCK ()
     278                            .global LCK$                     ; == 1
     279                    
     280                    ;; module STS ()
     281                            .global STS$                     ; == 1
     282                    
     283                    ;; module SYS (ABORTFXN, ERRORFXN, EXITFXN, PUTCFXN)
     284                            .global SYS$                     ; == 1
     285                            .global SYS_ABORTFXN             ; c6482_EMAC_Cfgcfg.cmd
     286                            .global SYS_ERRORFXN             ; c6482_EMAC_Cfgcfg.cmd
     287                            .global SYS_EXITFXN              ; c6482_EMAC_Cfgcfg.cmd
     288                            .global SYS_PUTCFXN              ; c6482_EMAC_Cfgcfg.cmd
     289                    
     290                    ;; module SIO ()
     291                            .global SIO$                     ; == 0
     292                    
     293                    ;; module GIO (CREATEFXN, DELETEFXN, PENDFXN, POSTFXN)
     294                            .global GIO$                     ; == 0
     295                            .global GIO_CREATEFXN            ; c6482_EMAC_Cfgcfg.cmd
     296                            .global GIO_DELETEFXN            ; c6482_EMAC_Cfgcfg.cmd
     297                            .global GIO_PENDFXN              ; c6482_EMAC_Cfgcfg.cmd
     298                            .global GIO_POSTFXN              ; c6482_EMAC_Cfgcfg.cmd
     299                    
     300                    ;; module DEV ()
     301                            .global DEV$                     ; == 0
     302                    
     303                    ;; module UDEV ()
     304                            .global UDEV$                    ; == 0
     305                    
     306                    ;; module DIO (STATIC, NUMTSKBASE, NUMSWIBASE)
     307                            .global DIO$                     ; == 0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    7

     308                            .global DIO_STATIC               ; c6482_EMAC_Cfgcfg.h62
     309                            .global DIO_NUMTSKBASE           ; c6482_EMAC_Cfgcfg.h62
     310                            .global DIO_NUMSWIBASE           ; c6482_EMAC_Cfgcfg.h62
     311                    
     312                    ;; module DGN ()
     313                            .global DGN$                     ; == 0
     314                    
     315                    ;; module DHL (gChannelsAvailable)
     316                            .global DHL$                     ; == 0
     317                            .global DHL_gChannelsAvailable   ; c6482_EMAC_Cfgcfg.h62
     318                    
     319                    ;; module DPI ()
     320                            .global DPI$                     ; == 0
     321                    
     322                    ;; module MSGQ (USEMSGQ)
     323                            .global MSGQ$                    ; == 0
     324                            .global MSGQ_USEMSGQ             ; c6482_EMAC_Cfgcfg.h62
     325                    
     326                    ;; module HOOK (KNLID)
     327                            .global HOOK$                    ; == 0
     328                            .global HOOK_KNLID               ; c6482_EMAC_Cfgcfg.h62
     329                    
     330                    ;; MODULE CONFIGURATION
     331                    
     332                    ;; ======== GBL_config ========
     333                            .asg 00H, _ROM
     334                            .asg 00H, _PROCID
     335                            .asg 09c40H, _CLKIN
     336                            .asg 0f4240H, _FREQ
     337                            .asg 03eH, _DSPTYPE
     338                            .asg 01963H, _DSPSUBTYPE
     339                            .asg 01952H, _CLKTYPE
     340                            .asg 00H, _BIGENDIAN
     341                            .asg 00H, _USERINIT
     342                            .asg _FXN_F_nop, _USERINITFXN
     343                            .asg 01H, _ENABLEINST
     344                            .asg 00H, _SUPPORTCSL
     345                            .asg 0dbefH, _TRCMASKVALUE
     346                            .asg 00H, _CALLCSLCFGINIT
     347                            .asg 00H, _CACHE
     348                            .asg 01H, _L2CONFIGURE
     349                            .asg 07H, _L1PMODE
     350                            .asg 07H, _L1DMODE
     351                            .asg 00H, _L2MODE
     352                            .asg 00H, _L2MAR0_31
     353                            .asg 00H, _L2MAR32_63
     354                            .asg 00H, _L2MAR64_95
     355                            .asg 00H, _L2MAR96_127
     356                            .asg 00H, _L2MAR128_159
     357                            .asg 00H, _L2MAR160_191
     358                            .asg 00H, _L2MAR192_223
     359                            .asg 00H, _L2MAR224_255
     360                            .asg 00H, _ENABLE_SK
     361                            .asg 00H, _GEMTRUECOMPEN
     362                            .asg 00H, _BCACHEREADADDR0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    8

     363                            .asg 00H, _BCACHEREADADDR1
     364                            .asg 00H, _BCACHEREADADDR2
     365 00000000                   GBL_config  _ROM, _PROCID, _CLKIN, _FREQ, _DSPTYPE, _DSPSUBTYPE, _CLKTYPE, _BIGENDIAN, _USERIN
1                                   
1        00000000                   CHK_nargs "GBL_config", _addr2
1                                   .if ($symcmp("", "error") = 0)
1                                       .emsg "GBL_config size parameter error."
1                                   .endif
1                           
1                 00000000  GBL_GEMTRUECOMPENVAL    .set    (00H << 15)
1                           
1                                   ; reference special symbol GBL_boot defined in BIOS boot file to make
1                                   ; sure we are linking correct boot file (workaround for SDSsq24217)
1                                   .ref GBL_boot
1                           
1                                   .asg    _FXN_F_nop, USERINITFXN     ; used by GBL_init
1                           
1                                   .if GBL_DSPSUBTYPE != 6499
1                                       .emsg "Project build options do not match Global configuration settings.  Compiler options
1                                   .endif ; GBL_SUBTYPE != 6499
1                           
1                                   ;
1                                   ; print a warning message if project build options do not match
1                                   ; global configuration options.
1                                   ;
1                                   .if .BIG_ENDIAN
1                                       .if (GBL_BIGENDIAN == 0)
1                                           .emsg "Project build options do not match Global configuration settings.  Compiler opt
1                                       .endif
1                                   .else
1                                       .if (GBL_BIGENDIAN == 1)
1                                           .emsg "Project build options do not match Global configuration settings.  Compiler opt
1                                       .endif
1                                   .endif
1                           
1                                   ; initialize 'gblinit' variable, used in GBL_init
1        00000000           gblinit .sect ".gblinit"
1                           
1                                   ;
1                                   ; fill stack with '0xc0ffee'
1                                   ;
1                                   ; Don't overwrite the bottom 16 words to avoid trashing
1                                   ; valid stack data. (Only one of these words contains
1                                   ; valid data, but just to be safe we leave 16 untouched).
1                                   ;
1                                   ; (stacksize / wordsize) since size is in words
1                                   ;
1        00000000 00000000%         .word ( (GBL_stackend-GBL_stackbeg+1) / STD_TARGWORDMAUS ) - 16 ; nwords
1        00000004 00000000!         .word GBL_stackbeg                      ; addr
1        00000008 00C0FFEE          .word 0xc0ffee                          ; value
1                           
     366                    
     367                    ;; ======== MEM_config ========
     368                            .asg 01H, _gNumHeap
     369                            .asg IRAM, _SEGZERO
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE    9

     370                            .asg IRAM, _MALLOCSEG
     371                            .asg 00H, _USEMPC
     372 0000000c                   MEM_config  _gNumHeap, _SEGZERO, _MALLOCSEG, _USEMPC
1                           
1                               ;
1                               ; Proceed only if there are heaps declared.
1                               ;
1                               .if 01H
1                                   .global _MEM        ; Pointer to configuration parameters
1                                   .global _MEM_memtab        ; Array of memory heaps
1                                   .global __MEM_NUMSEGMENTS    ; Number of memory heaps
1                           
1                                   ;
1                                   ; The following two .far/.cinit sets make configured values readable
1                                   ; in the established SPOX manner, e.g., MEM->MALLOCSEG.
1                                   ;
1        00000000           MEM_config    .usect    ".mem", 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1        00000000                   .sect ".cinit"
1                                   .align STD_TARGALIGN
1        00000000 00000004          .word 1 * STD_TARGWORDMAUS
1        00000004 00000000%         .word MEM_config   
1                           
1                                   ;; If MALLOCSEG = MEM_NULL then put in an err value in for MALLOCSEG$idx
1                                   .if ($symcmp("IRAM", "MEM_NULL") == 0)
1                                       .word -1
1                                   .else
1        00000008 00000000              .word IRAM$idx
1                                   .endif
1                           
1        0000000c                   .sect ".cinit"
1                                   .align STD_TARGALIGN
1        00000010 00000004          .word 1 * STD_TARGWORDMAUS
1        00000014 00000000!         .word _MEM   
1        00000018 00000000%         .word MEM_config
1                           
1                                   ;
1                                   ; This declares space for the array of configured heaps, the .cinit
1                                   ; parts are defined for each task in MEM_Obj.  This space has to be
1                                   ; reserved NOW, before the MEM_Obj macro is called and the elements
1                                   ; of the table are defined.
1                                   ;
1        00000000                   .bss    _MEM_memtab, 01H * 3 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                   ;
1                                   ; Set MEM_tabIdx to 1 if _segzero is set to a MEM segment other then
1                                   ; MEM_NULL because the MEM segment will in the 0th place.
1                                   ; If _segzero is MEM_NULL then set MEM_tabIdx to 0 since MEM_NULL is
1                                   ; only a place holder and not a real MEM segment with a heap.
1                                   ;
1                                   .if $symcmp("MEM_NULL", "IRAM") == 0
1                                       .asg    0, MEM_tabIdx        ; Index into MEM_memtab
1                                   .else
1                                       .asg    1, MEM_tabIdx        ; Index into MEM_memtab
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   10

1                           
1                               ;
1                               ; _MEM_memtab needs to be set to zero if no heap are defined
1                               ;
1                               .else
1                               .global _MEM_memtab
1                           _MEM_memtab .set 00h
1                               .endif        ; .if :_gNumHeap:
1                           
     373                    
     374                    ;; ======== OBJ_config ========
     375 0000001c                   OBJ_config
1                           
1                           
1                                   .asg    "_OBJ_table + 0 * STD_TARGWORDMAUS",    OBJ_TAB_SEM
1                                   .asg    "_OBJ_table + 2 * STD_TARGWORDMAUS",    OBJ_TAB_SWI
1                                   .asg    "_OBJ_table + 4 * STD_TARGWORDMAUS",    OBJ_TAB_TSK
1                                   .asg    "_OBJ_table + 6 * STD_TARGWORDMAUS",    OBJ_TAB_MBX
1                                   .asg    "_OBJ_table + 8 * STD_TARGWORDMAUS",    OBJ_TAB_SIO
1                                   .asg    "_OBJ_table + 10 * STD_TARGWORDMAUS",   OBJ_TAB_DEV
1                                   .asg    "_OBJ_table + 12 * STD_TARGWORDMAUS",   OBJ_TAB_BUF
1                           
1                                   .asg _OBJ_table + 0 * STD_TARGWORDMAUS, OBJ_sem$next
1                                   .asg _OBJ_table + 2 * STD_TARGWORDMAUS, OBJ_swi$next
1                                   .asg _OBJ_table + 4 * STD_TARGWORDMAUS, OBJ_tsk$next
1                                   .asg _OBJ_table + 6 * STD_TARGWORDMAUS, OBJ_mbx$next
1                                   .asg _OBJ_table + 8 * STD_TARGWORDMAUS, OBJ_sio$next
1                                   .asg _OBJ_table + 10 * STD_TARGWORDMAUS,  OBJ_dev$next
1                                   .asg _OBJ_table + 12 * STD_TARGWORDMAUS,  OBJ_buf$next
1                           
1                                   .asg _OBJ_table + 0 * STD_TARGWORDMAUS, OBJ_sem$prev
1                                   .asg _OBJ_table + 2 * STD_TARGWORDMAUS, OBJ_swi$prev
1                                   .asg _OBJ_table + 4 * STD_TARGWORDMAUS, OBJ_tsk$prev
1                                   .asg _OBJ_table + 6 * STD_TARGWORDMAUS, OBJ_mbx$prev
1                                   .asg _OBJ_table + 8 * STD_TARGWORDMAUS, OBJ_sio$prev
1                                   .asg _OBJ_table + 10 * STD_TARGWORDMAUS, OBJ_dev$prev
1                                   .asg _OBJ_table + 12 * STD_TARGWORDMAUS, OBJ_buf$prev
1                           
1                                   .asg    1,      SEM$sernum
1                                   .asg    1,      SWI$sernum
1                                   .asg    1,      TSK$sernum
1                                   .asg    1,      MBX$sernum
1                                   .asg    1,      SIO$sernum
1                                   .asg    1,      DEV$sernum
1                                   .asg    1,      BUF$sernum
1                           
     376                    
     377                    ;; ======== BUF_config ========
     378                            .asg 01H, _ENABLED
     379 0000001c                   BUF_config  _ENABLED
     380                    
     381                    ;; ======== POOL_config ========
     382                            .asg 00H, _USEPOOL
     383 0000001c                   POOL_config  _USEPOOL
     384                    
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   11

     385                    ;; ======== CLK_config ========
     386                            .asg 04000H, _INTBIT
     387                            .asg 02940000H, _REGS
     388                            .asg 00H, _TIMERNUM
     389                            .asg 01H, _USETIMER
     390                            .asg 01H, _ENABLEHTIME
     391                            .asg 03e8H, _MICROSECS
     392                            .asg 020H, _TCR
     393                            .asg 00H, _TDDR
     394                            .asg 00H, _TDDRHIGH
     395                            .asg 028b0aH, _PRD
     396                            .asg 02H, _PRDHIGH
     397                            .asg 0f4240H, _COUNTSPMS
     398                            .asg 0fH, _COUNTSPMSHIGH
     399                            .asg _CLK_gethtime, _TIMEFXN
     400                            .asg HWI_F_dispatch, _HOOKFXN
     401                            .asg 01H, _CALDIV
     402                            .asg 01H, _CALMULT
     403                            .asg 01H, _HTIMEDIV
     404                            .asg 01H, _HTIMEMULT
     405                            .asg 01H, _LTIMEDIV
     406                            .asg 028b0aH, _LTIMEMULT
     407                            .asg 028b0bH, _INPUTCLK
     408                            .asg 01H, _RESETTIMER
     409                            .asg 07H, _TIMMODE
     410                            .asg 0f423cH, _HTIMEPERLTIME
     411 0000001c                   CLK_config  _INTBIT, _REGS, _TIMERNUM, _USETIMER, _ENABLEHTIME, _MICROSECS, _TCR, _TDDR, _TDDR
1        0000001c                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000020 00000004          .word   STD_TARGWORDMAUS,_CLK_DFLTMICROSECS
         00000024 00000000!
1        00000028 447A0000          .float  03e8H
1                           
1        0000002c                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000030 00000004          .word   STD_TARGWORDMAUS,_CLK_D_microseconds
         00000034 00000000!
1        00000038 447A0000          .float  03e8H
1                                   
1                                   .ref  _CLK_inputClock
1                           
1        0000003c                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000040 00000004          .word   STD_TARGWORDMAUS,_CLK_inputClock
         00000044 00000000!
1        00000048 4822C2C0          .float  028b0bH
1                           
1        0000004c                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000050 00000004          .word   STD_TARGWORDMAUS,_CLK_htimePerLtime
         00000054 00000000!
1        00000058 000F423C          .word   0f423cH
1                           
1                                   .if (GBL_CLKTYPE == CLK_2430 | GBL_CLKTYPE == CLK_3430)
1                           _CLK_gptimer_enablemask .usect  ".far", 4, 4
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   12

1                                       .global _CLK_gptimer_enablemask
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 4
1                                       .field _CLK_gptimer_enablemask
1                                       .field :_intbit:
1                                   .endif
     412                    
     413                    ;; ======== PRD_config ========
     414                            .asg 02H, _SCALAR
     415                            .asg _KNL_tick, _THOOKFXN
     416 0000005c                   PRD_config  _SCALAR, _THOOKFXN
1                                   ; only expand if the PRD module is configured by the user
1                                   .asg 0, PRD_swihandle
1                                   .if (PRD$ = 1)
1                                       .if (PRD$NUMOF > 0)
1                                           .if (SWI$ != 1)
1                                               .emsg "PRD objects require the configuration of SWI"
1                                               .mexit
1                                           .endif
1                                           .asg "PRD_swi", PRD_swihandle
1                                       .endif
1                                   .endif
1                                   
     417                    
     418                    ;; ======== RTDX_config ========
     419                            .asg 00H, _USERTDX
     420                            .asg 00H, _USERTEXECUTION
     421                            .asg "JTAG", _RTDXTYPE
     422                            .asg IRAM, _DATAMEMSEG
     423                            .asg 0408H, _BUFMEMSIZE
     424 0000005c                   RTDX_config  _USERTDX, _USERTEXECUTION, _RTDXTYPE, _DATAMEMSEG, _BUFMEMSIZE
1                           
1                                       .global RTDX_MODE
1                           
1                                       .if ($symcmp("JTAG", "JTAG") = 0)
1                 00000000  RTDX_MODE .set  RTDX_JTAGMODE
1                                       .elseif ($symcmp("JTAG", "HSRTDX") = 0)
1                           RTDX_MODE .set  RTDX_HSRTDXMODE
1                                       .elseif ($symcmp("JTAG", "Simulator") = 0)
1                           RTDX_MODE .set  RTDX_SIMMODE
1                                       .endif
1                           
1                                   .if(RTDX_USERTDX = 1)
1                                       .global _RTDX_Buffer, _RTDX_Buffer_Start, _RTDX_Buffer_End
1                           
1                                       ; reserve uninitialized space for RTDX buffer
1                           _RTDX_Buffer    .usect ".rtdx_data", _bufsize, STD_TARGWORDMAUS
1                           
1                                       ; define _RTDX_Buffer_Start
1                           _RTDX_Buffer_Start  .usect ".rtdx_data", 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                   .sect ".cinit"
1                                   .align STD_TARGALIGN
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   13

1                                   .field  1 * STD_TARGWORDMAUS
1                                   .field  _RTDX_Buffer_Start
1                                   .field  _RTDX_Buffer
1                                   
1                                       ; define _RTDX_Buffer_End 
1                           _RTDX_Buffer_End  .usect ".rtdx_data", 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                   .sect ".cinit"
1                                   .align STD_TARGALIGN
1                                   .field  1 * STD_TARGWORDMAUS
1                                   .field  _RTDX_Buffer_End
1                                   .field  _RTDX_Buffer + _bufsize - (1 * STD_TARGWORDMAUS)
1                           
1                                   .endif
     425                    
     426                    ;; ======== HST_config ========
     427                            .asg 00H, _RTDX
     428                            .asg 00H, _DSM
     429                            .asg 01H, _NONE
     430                            .asg 040H, _MAXFRAMESET
     431                            .asg 0ffH, _MAXFRAMEALLOWED
     432                            .asg IRAM, _DSMBUFSEG
     433                            .asg 0400H, _DSMMEMSIZE
     434 0000005c                   HST_config  _RTDX, _DSM, _NONE, _MAXFRAMESET, _MAXFRAMEALLOWED, _DSMBUFSEG, _DSMMEMSIZE
1                                   .asg    0, HST$hstCount
1                                   .asg    0, chanId
1                           
1                                   .if(HST$ != 0)
1        0000005c                       LNK_config _dsm, _dsmbufseg, _dsmmemsize  ; do any reqd LNK config 
2                                   .ref LNK_dspFrameRequestMask, LNK_dspFrameReadyMask
2                           
2                                   .if(00H = 1)
2                           
2                                   .global LNK_outputBuf, LNK_inputBuf
2                           
2                                   ; reserve uninitialized space for DSP output buffer
2                           LNK_outputBuf .usect ".dsm", _dsmmemsize, STD_TARGWORDMAUS
2                           
2                                   ; reserve uninitialized space for DSP input buffer
2                           LNK_inputBuf .usect ".dsm", _dsmmemsize, STD_TARGWORDMAUS
2                           
2                                   .endif
2                           
1                                   .endif
1                           
     435                    
     436                    ;; ======== HWI_config ========
     437                            .asg 00H, _ZEROTAB
     438                            .asg 00H, _GENERATE_RESET_VEC
     439                            .asg 00H, _POLARITYMASK
     440                            .asg 07061104H, _INTRMUX1
     441                            .asg 0b030908H, _INTRMUX2
     442                            .asg 04543000cH, _INTRMUX3
     443                            .asg 01H, _ENABLE_EXC
     444                            .asg 04020H, _CFGDISPATCHED
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   14

     445 0000005c                   HWI_config  _ZEROTAB, _GENERATE_RESET_VEC, _POLARITYMASK, _INTRMUX1, _INTRMUX2, _INTRMUX3, _EN
     446                    
     447                    ;; ======== ECM_config ========
     448                            .asg 00H, _ENABLE
     449                            .asg 0ffffffffH, _EVTMASK0
     450                            .asg 0ffffffffH, _EVTMASK1
     451                            .asg 0ffffffffH, _EVTMASK2
     452                            .asg 0ffffffffH, _EVTMASK3
     453 0000005c                   ECM_config  _ENABLE, _EVTMASK0, _EVTMASK1, _EVTMASK2, _EVTMASK3
1                           
1                                   .if ECM_ENABLE
1                                       .global _ECM_dispatchTab
1                                       .bss _ECM_dispatchTab, 128 * 2 * STD_TARGWORDMAUS, 4
1                                   .endif
     454                    
     455                    ;; ======== SWI_config ========
     456                            .asg GBL_NULL, _EHOOKFXN
     457                            .asg GBL_NULL, _IHOOKFXN
     458                            .asg SWI_F_exec, _EXECFXN
     459                            .asg SWI_F_run, _RUNFXN
     460 0000005c                   SWI_config  _EHOOKFXN, _IHOOKFXN, _EXECFXN, _RUNFXN
1                           
     461                    
     462                    ;; ======== TSK_config ========
     463                            .asg 0400H, _STACKSIZE
     464                            .asg MEM_NULL, _STACKSEG
     465                            .asg 01H, _PRIORITY
     466                            .asg _FXN_F_nop, _VCREATEFXN
     467                            .asg _FXN_F_nop, _VDELETEFXN
     468                            .asg _FXN_F_nop, _VEXITFXN
     469                            .asg 00H, _SWITCHFXN
     470                            .asg 00H, _READYFXN
     471                            .asg 00H, _NUM_HOOKS
     472 0000005c                   TSK_config  _STACKSIZE, _STACKSEG, _PRIORITY, _VCREATEFXN, _VDELETEFXN, _VEXITFXN, _SWITCHFXN,
1                           
1                                   ;; If MEM_gNumHeap then put in an err value in for TSK$stackseg
1                                   .if (MEM_gNumHeap == 0)
1                                           .asg    "-1", TSK$stackseg
1                                   .else 
1                                       .if ($symcmp("MEM_NULL", "MEM_NULL") == 0)
1                                           .asg    "-1", TSK$stackseg
1                                       .else
1                                           .asg    ":_stackseg:$idx", TSK$stackseg
1                                       .endif
1                                   .endif
1                           
1                                   .ref    _FXN_F_nop, _FXN_F_nop, _FXN_F_nop
1                           
1                                   .if $isname("00H")
1                                       .ref        :_switchfxn:
1                                   .endif
1                           
1                                   .if $isname("00H")
1                                       .ref :_readyfxn:
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   15

1                           
1                                   .global _TSK_exit
1                           
1                                   ;
1                                   ; Initialize counter for use in TSK_Obj
1                                   ;
1                                   .eval 0, TSK$strCount
1                           
1                                   .eval   00H, TSK$num_hooks
1                           
     473                    
     474                    ;; ======== IDL_config ========
     475                            .asg 01H, _USECLKIDLTIME
     476                            .asg IDL_F_stub, _CALIBRFXN
     477                            .asg 06H, _CALIBRERROR
     478 0000005c                   IDL_config  _USECLKIDLTIME, _CALIBRFXN, _CALIBRERROR
1                               .asg 01H,USECLKIDLTIME    ; used by IDL_init
     479                    
     480                    ;; ======== ISRC_config ========
     481 0000005c                   ISRC_config
     482                    
     483                    ;; ======== LOG_config ========
     484                            .asg 01H, _ENABLED
     485 0000005c                   LOG_config  _ENABLED
     486                    
     487                    ;; ======== PIP_config ========
     488                            .asg 02H, _gNumEmbed
     489                            .asg 00H, _gNextId
     490                            .asg 064H, _OBJSIZE
     491 0000005c                   PIP_config  _gNumEmbed, _gNextId, _OBJSIZE
     492                    
     493                    ;; ======== SEM_config ========
     494 0000005c                   SEM_config
1                           
1                                   .global __SEM_dopost
     495                    
     496                    ;; ======== MBX_config ========
     497 0000005c                   MBX_config
     498                    
     499                    ;; ======== QUE_config ========
     500 0000005c                   QUE_config
     501                    
     502                    ;; ======== LCK_config ========
     503 0000005c                   LCK_config
     504                    
     505                    ;; ======== STS_config ========
     506 0000005c                   STS_config
1                                   ; only expand if the STS module is configured by the user
1                                   .if (STS$ = 1)
1                                       .if (STS$NUMOF > 0)
1                                       .endif
1                                   .endif
1                                   
     507                    
     508                    ;; ======== SYS_config ========
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   16

     509                            .asg _UTL_doAbort, _ABORTFXN
     510                            .asg _UTL_doError, _ERRORFXN
     511                            .asg _UTL_halt, _EXITFXN
     512                            .asg _UTL_doPutc, _PUTCFXN
     513 0000005c                   SYS_config  _ABORTFXN, _ERRORFXN, _EXITFXN, _PUTCFXN
1                                   .global SYS$config
1                           
1        00000000           SYS$config:     .usect  ".sys",4 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1        0000005c                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000060 00000010          .word   4 * STD_TARGWORDMAUS
1        00000064 00000000%         .word   SYS$config
1        00000068 00000000!         .word   _UTL_doAbort
1        0000006c 00000000!         .word   _UTL_doError
1        00000070 00000000!         .word   _UTL_halt
1        00000074 00000000!         .word   _UTL_doPutc
1                           
     514                    
     515                    ;; ======== SIO_config ========
     516 00000078                   SIO_config
     517                    
     518                    ;; ======== GIO_config ========
     519                            .asg _FXN_F_nop, _CREATEFXN
     520                            .asg _FXN_F_nop, _DELETEFXN
     521                            .asg _FXN_F_nop, _PENDFXN
     522                            .asg _FXN_F_nop, _POSTFXN
     523 00000078                   GIO_config  _CREATEFXN, _DELETEFXN, _PENDFXN, _POSTFXN
1                                   .if (GIO$ = 1)
1                           
1                                       .global _GIO
1                                       .global GIO$config
1                           
1                           GIO$config:     .usect  ".gio", 4 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       4 * STD_TARGWORDMAUS
1                                       .word       GIO$config
1                                       .word   :_createfxn:
1                                       .word   :_deletefxn:
1                                       .word   :_pendfxn:
1                                       .word   :_postfxn:
1                           
1                           ;
1                           ;  Set up pointer to GIO configuration parameters
1                           ;
1                                   .bss    _GIO, 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                       .sect   ".cinit"
1                                       .align  STD_TARGALIGN
1                                       .word   1 * STD_TARGWORDMAUS
1                                       .word   _GIO
1                                       .word   GIO$config
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   17

1                                   .endif
     524                    
     525                    ;; ======== DEV_config ========
     526 00000078                   DEV_config
1                                   .asg    0,      DEV$initCount
     527                    
     528                    ;; ======== UDEV_config ========
     529 00000078                   UDEV_config
     530                    
     531                    ;; ======== DIO_config ========
     532                            .asg 00H, _STATIC
     533                            .asg 00H, _NUMTSKBASE
     534                            .asg 00H, _NUMSWIBASE
     535 00000078                   DIO_config  _STATIC, _NUMTSKBASE, _NUMSWIBASE
1                                   .if (00H)
1                                       .if (:_numTskBase: != 0)
1                                           .global _DIO_NUMTSKSTATIC  ; Number of Static TSK DIO objects
1                                           .global _DIO_TSKTABLE      ; Table of DIO objects for TSK.
1                           
1                                           .eval DIO_OBJSIZE * :_numTskBase:, DIO_TABLESIZE
1                           
1                           ;
1                           ;  Allocate space for DIO_NUMTSKSTATIC value.
1                           ;  This value is used in Static TSK version of DIO.
1                           ;  Allocate space for TSK DIO table
1                           ;
1                           _DIO_NUMTSKSTATIC       .usect ".dio", 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           _DIO_TSKTABLE           .usect ".dio", DIO_TABLESIZE * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                           ;
1                                           ;  initialize DIO_NUMTSKSTATIC.
1                                           ;
1                                           .sect ".cinit"
1                                           .align STD_TARGALIGN
1                                           .word 1 * STD_TARGWORDMAUS
1                                           .word _DIO_NUMTSKSTATIC
1                                           .word :_numTskBase:
1                                       
1                                           .eval   0, count
1                           
1                                           .loop
1                           
1                                               ;
1                                               ;  Initialize the TSK DIO table.
1                                               ;
1                                               .sect ".cinit"
1                                               .align STD_TARGALIGN
1                                               .word DIO_OBJSIZE * STD_TARGWORDMAUS
1                                               .word _DIO_TSKTABLE + DIO_OBJSIZE * :count: * STD_TARGWORDMAUS
1                                               .word 0                     ; fxns
1                                               .word 0                     ; chanp
1                                               .word dio:count:$complete   ; complete
1                                               .word 0                     ; ready
1                                               .word 0                     ; extra word for union
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   18

1                                               ;  create the complete SEM object
1                                               DIO_semObject dio:count:$complete, 0
1                           
1                                               .eval count + 1, count
1                                               .break (count == :_numTskBase:)
1                                           .endloop
1                                       .endif      ; .if (:_numTskBase: != 0)
1                           
1                                       .if (:_numSwiBase: != 0)
1                                           .global _DIO_NUMCBSTATIC  ; Number of Cb Static DIO objects.
1                                           .global _DIO_CBTABLE      ; Table of DIO objects for Callback.
1                           
1                                           .eval DIO_OBJSIZE * :_numSwiBase:, DIO_TABLESIZE
1                           
1                           ;
1                           ;  Allocate space for DIO_NUMCBSTATIC value
1                           ;  This value is used in Static Callback version of DIO.
1                           ;  Allocate space for Callback DIO Table
1                           ;
1                           _DIO_NUMCBSTATIC        .usect ".dio", 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           _DIO_CBTABLE            .usect ".dio", DIO_TABLESIZE * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                           ;
1                                           ;  initialize DIO_NUMCBSTATIC.
1                                           ;
1                                           .sect ".cinit"
1                                           .align STD_TARGALIGN
1                                           .word 1 * STD_TARGWORDMAUS
1                                           .word _DIO_NUMCBSTATIC
1                                           .word :_numSwiBase:
1                                   
1                                           .eval   0, count
1                           
1                                           .loop
1                                               
1                                               ;
1                                               ;  Initialize the Callback DIO table.
1                                               ;
1                                               .sect ".cinit"
1                                               .align STD_TARGALIGN
1                                               .word DIO_OBJSIZE * STD_TARGWORDMAUS
1                                               .word _DIO_CBTABLE + DIO_OBJSIZE * :count: * STD_TARGWORDMAUS
1                                               .word 0                     ; fxns
1                                               .word 0                     ; chanp
1                                               .word 0                     ; context.cb.fxn
1                                               .word 0                     ; context.cb.arg0
1                                               .word 0                     ; context.cb.arg1
1                                           
1                                               .eval count + 1, count
1                                               .break (count == :_numSwiBase:)
1                                           .endloop
1                                       .endif      ; .if (:_numSiBase: != 0)
1                                   .endif          ; .if (:_static:)
1                           
     536                    
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   19

     537                    ;; ======== DGN_config ========
     538 00000078                   DGN_config
1                           
1                                   .if ($isdefed("STD_FLOATDSP") = 0)
1                           DGN_FLOATDSP    .set 0
1                                   .elseif (STD_FLOATDSP = 1)
1                           DGN_FLOATDSP    .set 1
1                                   .else
1                 00000000  DGN_FLOATDSP    .set 0
1                                   .endif
1                                   
1                                   .if (DGN_FLOATDSP == 1)
1                           
1                                   .global _DGN_fconst
1                                   .global _DGN_frand
1                                   .global _DGN_fsine
1                                   .global _DGN_user
1                           
1                                   .asg    _DGN_fconst,  DGN_CONST
1                                   .asg    _DGN_frand,  DGN_RAND
1                                   .asg    _DGN_fsine,  DGN_SINE
1                                   .asg    _DGN_user,   DGN_USER
1                           
1                                   .else
1                           
1                                   .global _DGN_iconst
1                                   .global _DGN_irand
1                                   .global _DGN_isine
1                                   .global _DGN_user
1                           
1                                   .asg    _DGN_iconst, DGN_CONST
1                                   .asg    _DGN_irand,  DGN_RAND
1                                   .asg    _DGN_isine,  DGN_SINE
1                                   .asg    _DGN_user,   DGN_USER
1                           
1                                   .endif
1                           
     539                    
     540                    ;; ======== DHL_config ========
     541                            .asg 00H, _gChannelsAvailable
     542 00000078                   DHL_config  _gChannelsAvailable
1                           
1                                   .global _DHL_notify
1                           
1                                   .asg    0, DHL$count
1                           
     543                    
     544                    ;; ======== DPI_config ========
     545 00000078                   DPI_config
1                                   .asg    0, DPI$devid
     546                    
     547                    ;; ======== MSGQ_config ========
     548                            .asg 00H, _USEMSGQ
     549 00000078                   MSGQ_config  _USEMSGQ
     550                    
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   20

     551                    ;; ======== HOOK_config ========
     552                            .asg 00H, _KNLID
     553 00000078                   HOOK_config  _KNLID
1                           
1                                   .if (HOOK$ == 1)
1                           
1                                       .def        __HOOK_initFxnTable
1                                       .def        __HOOK_createFxnTable
1                                       .def        __HOOK_deleteFxnTable
1                                       .def        __HOOK_exitFxnTable
1                                       .def        __HOOK_readyFxnTable
1                                       .def        __HOOK_switchFxnTable
1                           
1                                   .endif
1                           
1                                   .asg    0, HOOK$index
1                                   .eval   00H, HOOK$knl_index
1                           
1                                   .ref    __HOOK_knlId
1                           
1        00000078                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000078 00000004          .word   1 * STD_TARGWORDMAUS
1        0000007c 00000000!         .word   __HOOK_knlId
1        00000080 00000000          .word   0
1                           
     554                    
     555                    ;; ======== MEM_Obj CACHE_L1P ========
     556                    ;; Do not delete, in use by cache
     557                    ;;
     558                    ;; MEM_Obj CACHE_L1P (len, iAllocHeap, iSegZero, iHeapId)
     559                            .global CACHE_L1P
     560                            .asg 08000H, _len
     561                            .asg 00H, _iAllocHeap
     562                            .asg IRAM, _iSegZero
     563                            .asg segment_name, _iHeapId
     564 00000084                   MEM_Obj 1, CACHE_L1P, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
1                           
1                               .if 1 == 1
1                           
1                                   .asg -1, idxVal    ; default index value
1                               
1                                 .if    08000H
1                           
1                                   .if 00H
1                           
1                                       .global :name:$B    ; heap base address
1                                       .global :name:$L    ; heap length
1                           
1                                       ;
1                                       ; Define an entry in _MEM_memtab[] (allocated out of .bss in
1                                       ; MEM_config.
1                                       ; The following block must match the MEM_Segment structure
1                                       ; in mem.h.
1                                       ;
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   21

1                                       .sect ".cinit"
1                                       .align STD_TARGALIGN
1                                       .if    $symcmp(":name:", ":_iSegZero:") == 0
1                                             .word 3 * STD_TARGWORDMAUS
1                                             .word _MEM_memtab   
1                                             .eval 0, idxVal
1                                       .else
1                                             .word 3 * STD_TARGWORDMAUS
1                                             .word _MEM_memtab + MEM_tabIdx *3 * STD_TARGWORDMAUS
1                                             ; assign meaningful index value
1                                             .eval MEM_tabIdx, idxVal
1                           
1                                             ; post-increment macro variable for next pass
1                                             .eval    MEM_tabIdx + 1, MEM_tabIdx
1                                       .endif
1                                             .word :name:$B
1                                             .word :name:$L
1                                             .word 1
1                           
1                                             ; create array index variable (using the segment's name)
1                                   .bss    :name:, 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                             .sect ".cinit"
1                                             .align STD_TARGALIGN
1                                             .word 1 * STD_TARGWORDMAUS
1                                             .word :name:   
1                                             .word idxVal
1                           
1                                            ; create array index variable (using the segment's name)
1                                           .if $symcmp(":_iHeapId:", "segment_name") != 0
1                                               .global :_iHeapId:
1                           :_iHeapId:          .set :name:
1                                           .endif
1                           
1                           
1                           :name:$idx .set    idxVal    ; used by MEM_config
1                           
1                                   .else
1                 FFFFFFFF  CACHE_L1P .set -1        ; To satisfy assignment of C alias in *cfg.cmd file.
1                           
1                                   .endif            ; .if :iHeap:
1                           
1                                 .endif            ; .if 08000H
1                           
1                               .endif                ; .if 1 == 1
1                           
     565                    
     566                    ;; ======== MEM_Obj CACHE_L1D ========
     567                    ;; Do not delete, in use by cache
     568                    ;;
     569                    ;; MEM_Obj CACHE_L1D (len, iAllocHeap, iSegZero, iHeapId)
     570                            .global CACHE_L1D
     571                            .asg 08000H, _len
     572                            .asg 00H, _iAllocHeap
     573                            .asg IRAM, _iSegZero
     574                            .asg segment_name, _iHeapId
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   22

     575 00000084                   MEM_Obj 1, CACHE_L1D, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
1                           
1                               .if 1 == 1
1                           
1                                   .asg -1, idxVal    ; default index value
1                               
1                                 .if    08000H
1                           
1                                   .if 00H
1                           
1                                       .global :name:$B    ; heap base address
1                                       .global :name:$L    ; heap length
1                           
1                                       ;
1                                       ; Define an entry in _MEM_memtab[] (allocated out of .bss in
1                                       ; MEM_config.
1                                       ; The following block must match the MEM_Segment structure
1                                       ; in mem.h.
1                                       ;
1                                       .sect ".cinit"
1                                       .align STD_TARGALIGN
1                                       .if    $symcmp(":name:", ":_iSegZero:") == 0
1                                             .word 3 * STD_TARGWORDMAUS
1                                             .word _MEM_memtab   
1                                             .eval 0, idxVal
1                                       .else
1                                             .word 3 * STD_TARGWORDMAUS
1                                             .word _MEM_memtab + MEM_tabIdx *3 * STD_TARGWORDMAUS
1                                             ; assign meaningful index value
1                                             .eval MEM_tabIdx, idxVal
1                           
1                                             ; post-increment macro variable for next pass
1                                             .eval    MEM_tabIdx + 1, MEM_tabIdx
1                                       .endif
1                                             .word :name:$B
1                                             .word :name:$L
1                                             .word 1
1                           
1                                             ; create array index variable (using the segment's name)
1                                   .bss    :name:, 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                             .sect ".cinit"
1                                             .align STD_TARGALIGN
1                                             .word 1 * STD_TARGWORDMAUS
1                                             .word :name:   
1                                             .word idxVal
1                           
1                                            ; create array index variable (using the segment's name)
1                                           .if $symcmp(":_iHeapId:", "segment_name") != 0
1                                               .global :_iHeapId:
1                           :_iHeapId:          .set :name:
1                                           .endif
1                           
1                           
1                           :name:$idx .set    idxVal    ; used by MEM_config
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   23

1                                   .else
1                 FFFFFFFF  CACHE_L1D .set -1        ; To satisfy assignment of C alias in *cfg.cmd file.
1                           
1                                   .endif            ; .if :iHeap:
1                           
1                                 .endif            ; .if 08000H
1                           
1                               .endif                ; .if 1 == 1
1                           
     576                    
     577                    ;; ======== MEM_Obj IRAM ========
     578                    ;; Internal 2MB L2 RAM/CACHE in UMAP0
     579                    ;;
     580                    ;; MEM_Obj IRAM (len, iAllocHeap, iSegZero, iHeapId)
     581                            .global IRAM
     582                            .asg 0200000H, _len
     583                            .asg 01H, _iAllocHeap
     584                            .asg IRAM, _iSegZero
     585                            .asg segment_name, _iHeapId
     586 00000084                   MEM_Obj 1, IRAM, 0, _len, _iAllocHeap, _iSegZero, _iHeapId
1                           
1                               .if 1 == 1
1                           
1                                   .asg -1, idxVal    ; default index value
1                               
1                                 .if    0200000H
1                           
1                                   .if 01H
1                           
1                                       .global IRAM$B    ; heap base address
1                                       .global IRAM$L    ; heap length
1                           
1                                       ;
1                                       ; Define an entry in _MEM_memtab[] (allocated out of .bss in
1                                       ; MEM_config.
1                                       ; The following block must match the MEM_Segment structure
1                                       ; in mem.h.
1                                       ;
1        00000084                       .sect ".cinit"
1                                       .align STD_TARGALIGN
1                                       .if    $symcmp("IRAM", "IRAM") == 0
1        00000088 0000000C                    .word 3 * STD_TARGWORDMAUS
1        0000008c 00000000%                   .word _MEM_memtab   
1                                             .eval 0, idxVal
1                                       .else
1                                             .word 3 * STD_TARGWORDMAUS
1                                             .word _MEM_memtab + MEM_tabIdx *3 * STD_TARGWORDMAUS
1                                             ; assign meaningful index value
1                                             .eval MEM_tabIdx, idxVal
1                           
1                                             ; post-increment macro variable for next pass
1                                             .eval    MEM_tabIdx + 1, MEM_tabIdx
1                                       .endif
1        00000090 00000000!                   .word IRAM$B
1        00000094 00000000!                   .word IRAM$L
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   24

1        00000098 00000001                    .word 1
1                           
1                                             ; create array index variable (using the segment's name)
1        0000000c                   .bss    IRAM, 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1        0000009c                             .sect ".cinit"
1                                             .align STD_TARGALIGN
1        000000a0 00000004                    .word 1 * STD_TARGWORDMAUS
1        000000a4 00000000%                   .word IRAM   
1        000000a8 00000000                    .word 0
1                           
1                                            ; create array index variable (using the segment's name)
1                                           .if $symcmp("segment_name", "segment_name") != 0
1                                               .global :_iHeapId:
1                           :_iHeapId:          .set :name:
1                                           .endif
1                           
1                           
1                 00000000  IRAM$idx .set    0    ; used by MEM_config
1                           
1                                   .else
1                           :name: .set -1        ; To satisfy assignment of C alias in *cfg.cmd file.
1                           
1                                   .endif            ; .if :iHeap:
1                           
1                                 .endif            ; .if 0200000H
1                           
1                               .endif                ; .if 1 == 1
1                           
     587                    
     588                    ;; ======== CLK_Obj PRD_clock ========
     589                    ;; This clock function calls PRD_tick from within the on-chip timer ISR
     590                    ;;
     591                    ;; CLK_Obj PRD_clock (function)
     592                            .global PRD_clock
     593                            .asg PRD_F_tick, _function
     594 000000ac                   CLK_Obj 1, PRD_clock, 0, _function
1        000000ac                   CHK_nargs "CLK_Obj", fxn
1                                   .if ($symcmp("", "error") = 0)
1                                       .emsg "CLK_OBJ parameter error."
1                                   .endif
1                           
1                                   .var fxnlen
1                                   .eval $symlen("PRD_F_tick"),fxnlen
1                           
1                                   .if (1 = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global PRD_clock
1                           
1                                   .if ($symcmp("PRD_F_tick", "0") != 0)
1                                   .global PRD_F_tick
1                                   .endif
1                           
1                           PRD_clock  .tag    CLK_Obj         ; declare name as having type CLK_Obj
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   25

1                           
1                           ; allocate all CLK objs contiguously in ".clk"
1        00000000           PRD_clock  .usect ".clk", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        000000ac                   .sect ".cinit"
1                           
1                                   .align  8
1                           
1        000000b0 00000004          .field  STD_TARGWORDMAUS * 1
1                           
1        000000b4 00000000%         .field  PRD_clock    
1                           
1        000000b8 00000000!         .field  PRD_F_tick           ; fxn
1                           
     595                    
     596                    ;; ======== PRD_Obj PRD0 ========
     597                    ;; <add comments here>
     598                    ;;
     599                    ;; PRD_Obj PRD0 (period, mode, function, arg0, arg1, Order, filter, maxformat, sumformat, avgformat, u
     600                            .global PRD0
     601                            .asg 096H, _period
     602                            .asg "continuous", _mode
     603                            .asg _TimerTick, _function
     604                            .asg 00H, _arg0
     605                            .asg 00H, _arg1
     606                            .asg 01H, _Order
     607                            .asg 00H, _filter
     608                            .asg "%g ticks", _maxformat
     609                            .asg "%g ticks", _sumformat
     610                            .asg "%.2f ticks", _avgformat
     611                            .asg 02H, _unittype
     612 000000bc                   PRD_Obj 1, PRD0, 0, _period, _mode, _function, _arg0, _arg1, _Order, _filter, _maxformat, _sum
1                                   .if (1 = 0)
1                                       .mexit
1                                   .endif
1        000000bc                   CHK_nargs "PRD_Obj", arg1
1                                   .var    cont
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1        000000bc                   CHK_domain PRD_Obj, mode, "continuous,one-shot"
2                           
1                                   .asg "continuous", mode
1                                   .if ($symcmp("continuous", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global PRD0$prd      ; generate symbol for vbd/rta
1                 00000000  PRD0$prd .set 0
1                                   .global PRD0$period   ; generate period symbol for vbd/rta
1                 00000096  PRD0$period .set      096H
1                                   .global PRD0$mode     ; generate mode symbol for vbd/rta
1                                   .if ($symcmp("continuous", "continuous") = 0)
1                 00000000  PRD0$mode .set        0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   26

1                                        .asg   1, cont     ; continuous
1                                   .else
1                           :name:$mode .set        1
1                                        .asg   0, cont     ; one-shot
1                                   .endif
1                                   .global PRD0$ord      ; generate order symbol for vbd/rta
1                 00000001  PRD0$ord .set 01H
1                           
1                                   .global PRD0, PRD0$aaa, _TimerTick
1                           
1                           PRD0  .tag    PRD_Obj         ; declare name as having type PRD_Obj
1                           
1                           
1        00000000           PRD0  .usect ".prd", STD_TARGWORDMAUS * 4, STD_TARGWORDMAUS
1                           
1        000000bc                   .sect ".cinit"
1                           
1                                   .align 8
1                           
1        000000c0 00000010          .field  STD_TARGWORDMAUS * 4
1        000000c4 00000000%         .field  PRD0
1        000000c8 80000000          .field 1 << 31 | (1-1) << 30 ; status
1        000000cc 00000096          .field  096H           ; kount
1        000000d0 00000096          .field  096H           ; period
1        000000d4 00000000          .field  0               ; nticks
1                           
1        000000d8                   FXN_Obj PRD0$fxn, _TimerTick, 00H, 00H, ".prd"
2        000000d8               CHK_nargs "FXN_Obj", section
2                               .if ($symcmp("", "error") = 0)
2                                   .emsg "FXN_Obj parameter error"
2                               .endif
2                           
2                           PRD0$fxn  .tag    FXN_Obj
2                           
2        00000010           PRD0$fxn  .usect ".prd", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS
2                           
2        000000d8                   .sect ".cinit"
2                           
2                                   .align 8
2        000000d8 0000000C          .field  STD_TARGWORDMAUS * 3
2        000000dc 00000000%         .field PRD0$fxn
2        000000e0 00000000!         .field  _TimerTick          ; fxn
2        000000e4 00000000          .field  00H         ; arg1
2        000000e8 00000000          .field  00H         ; arg0
2                           
1                           
1        0000001c           PRD0$aaa .usect ".prd", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        000000ec                   .sect ".cinit"
1                           
1                                   .align 8
1                           
1        000000f0 00000004          .field STD_TARGWORDMAUS * 1
1        000000f4 00000000%         .field PRD0$aaa
1        000000f8 00000000%         .field PRD0$sts      ; pointer to STS_Obj
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   27

1                           
1        000000fc                   STS_Obj 1, PRD0$sts, 0, 0, 00H, "%g ticks", "%g ticks", "%.2f ticks", -1, 02H, -1, -1, -1, 0
2                           
2        000000fc                   CHK_nargs "STS_Obj", prevl
2                           
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "STS_Obj parameter error."
2                                   .endif
2                           
2                                   .if (1 = 0)                  ; if this object is not
2                                                                      ; really to be allocated
2                                       .mexit                         ; exit quietly now
2                                   .endif
2                           
2                                   ; sts filter info
2                                   .global PRD0$sts, PRD0$sts$stsobj     
2                                   .global PRD0$sts$filter, PRD0$sts$unittype
2                                   .global PRD0$sts$maxfmt, PRD0$sts$sumfmt, PRD0$sts$avgfmt
2                           
2                 00000000  PRD0$sts$filter .set      00H
2                 00000002  PRD0$sts$unittype .set    02H
2                           
2                                   ; place the following format strings into the .printf section
2                                   ; .byte 0's are for '\0' to terminate format strings
2        00000000                   .sect ".printf"
2        00000000 00000025  PRD0$sts$maxfmt .string   "%g ticks"
         00000001 00000067 
         00000002 00000020 
         00000003 00000074 
         00000004 00000069 
         00000005 00000063 
         00000006 0000006B 
         00000007 00000073 
2        00000008 00000000          .byte   0
2        00000009 00000025  PRD0$sts$sumfmt .string   "%g ticks"
         0000000a 00000067 
         0000000b 00000020 
         0000000c 00000074 
         0000000d 00000069 
         0000000e 00000063 
         0000000f 0000006B 
         00000010 00000073 
2        00000011 00000000          .byte   0
2        00000012 00000025  PRD0$sts$avgfmt .string   "%.2f ticks"
         00000013 0000002E 
         00000014 00000032 
         00000015 00000066 
         00000016 00000020 
         00000017 00000074 
         00000018 00000069 
         00000019 00000063 
         0000001a 0000006B 
         0000001b 00000073 
2        0000001c 00000000          .byte   0
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   28

2                                   .if (00H = 1)
2                                       .global :name:$iA, :name:$iB, :name:$iC, :name:$operation
2                           :name:$iA .set  :iA:
2                           :name:$iB .set  :iB:
2                           :name:$iC .set  :iC:
2                           :name:$operation .set   :operation:
2                                   .endif
2                           
2        00000000                   .sect ".sts"                       ; allocate STS_Obj 
2                                                                      ; (in section ".sts")
2                           PRD0$sts  .tag    STS_Obj                    ; declare name as having 
2                                                                      ; type STS_Obj
2        00000000           PRD0$sts$stsobj:
2                                                                     ; NOTE: on 32-bit targets
2                                                                     ; only prevh is used
2        00000000 00000000          .long   0                         ; allocate space for previous
2                                                                     ; 32-bit value
2        00000004           PRD0$sts                                   
2        00000004 00000000          .long   0                         ; num
2        00000008 00000000          .long   0                         ; acc
2        0000000c 80000000          .long   80000000h                 ; max
2                           
2        000000fc                   .sect    ".cinit"
2                                   .align    8
2        00000100 00000010          .field    STD_TARGWORDMAUS * 4
2        00000104 00000000%         .field    PRD0$sts$stsobj                    
2        00000108 00000000          .field    0                  ; allocate space for history   
2        0000010c 00000000          .field    0                        ; num
2        00000110 00000000          .field    0                        ; acc
2        00000114 80000000          .field    80000000h                ; max
2                           
2        00000010                   .sect    ".sts"
2                           
1                           
     613                    
     614                    ;; ======== HST_Obj RTA_fromHost ========
     615                    ;; Used to access LOG and STS data
     616                    ;;
     617                    ;; HST_Obj RTA_fromHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAli
     618                            .global RTA_fromHost
     619                            .asg "input", _mode
     620                            .asg "<NULL>", _buf
     621                            .asg 04H, _framesize
     622                            .asg 01H, _numframes
     623                            .asg 00H, _stsflg
     624                            .asg _FXN_F_nop, _notify
     625                            .asg 00H, _arg0
     626                            .asg 00H, _arg1
     627                            .asg "NOTRTDX", _lnk
     628                            .asg 04H, _bufFrameAlign
     629 00000010                   HST_Obj 1, RTA_fromHost, 1, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg
1                           
1                                   .if (1 = 0)
1                                       .mexit
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   29

1                           
1                                   .global RTA_fromHost$hst      ; create symbol for hst names for vbd/rta
1                 00000000  RTA_fromHost$hst .set 0
1                            
1        00000010                   CHK_nargs "HST_Obj", lnktype 
1                                   .if ($symcmp("", "error") = 0)
1                                       .emsg "HST_Obj lnktype error"
1                                   .endif
1                            
1        00000010                   CHK_domain HST_Obj, mode, "output,input", "output"
2                           
1                                   .asg "input", mode
1                                   .if ($symcmp("input", "error") = 0)
1                                       .emsg "HST_Obj mode error"
1                                   .endif
1                            
1                                   .global RTA_fromHost, RTA_fromHost$buf, RTA_fromHost$rtdx, RTA_fromHost$framesize
1                           
1                 00000004  RTA_fromHost$framesize .set   04H
1                           
1                                   .global RTA_fromHost$mode
1                                   .if ($symcmp("input", "output") = 0)
1                           :name:$mode .set        1
1                                   .else
1                 00000000  RTA_fromHost$mode .set        0
1                                   .endif
1                                   .global RTA_fromHost$id
1                 00000001  RTA_fromHost$id .set  1
1                           
1                                   .if ($symcmp("<NULL>", "<NULL>") = 0)
1                                       .if ($symcmp("input","input") == 0)
1                                           .if (RTDX_MODE == RTDX_HSRTDXMODE)
1                           bufSize .set (:framesize: * :numframes:) + 1
1                                               GBL_Obj :name:$buf, bufSize, .hst:id:, "noalign", -1, 1
1                                           .else
1        00000010                               GBL_Obj RTA_fromHost$buf, 04H*01H, .hst1, "noalign", -1, 1
2        00000010                   CHK_domain "GBL_Obj", alignFlag, "noalign,align", "noalign"
3                           
2                                   .if ($symcmp("noalign", "error") = 0)
2                                       .emsg "GBL_Obj align parameter error."
2                                   .endif
2                                   .asg "noalign", alignFlag
2                           
2        00000010                   CHK_nargs "GBL_Obj", size
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "GBL_Obj size parameter error."
2                                   .endif
2                           
2                                   .if ($symlen(section) = 0)
2                                       .asg ".bss", section
2                                   .endif
2                           
2                                   .if ($symlen(fillValue) != 0)
2        0000000c                       .sect ".gblinit"
2        0000000c 00000004              .word 04H*01H
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   30

2        00000010 00000000%             .word RTA_fromHost$buf
2        00000014 FFFFFFFF              .word -1
2                                   .endif
2                           
2                                   .if (($symcmp(section, ".data") = 0) | ($symcmp(alignFlag, "align") = 0))
2                                       .sect ":section:"
2                                       .if ($symcmp(alignFlag, "align") = 0)
2                                           .align  :alignValue:
2                                       .endif
2                           :name::
2                                       ;
2                                       ; Can't use .space directive here because it reserves
2                                       ; bits for some processors and bytes for others.
2                                       ;
2                                       .loop :size:
2                                           .word 0
2                                       .endloop
2                                   .else
2        00000000           RTA_fromHost$buf:     .usect ".hst1", 04H*01H * (STD_TARGWORDMAUS / STD_TARGCHARMAUS), (STD_TARGWORDMA
2                                   .endif
2                           
1                                           .endif
1                                       .else
1                                           GBL_Obj :name:$buf, :framesize:*:numframes:, .hst:id:, "noalign", -1, 1
1                                       .endif
1                                       .asg    RTA_fromHost$buf, buf
1                                   .endif
1                           
1                                   .if (00H == 0)
1                                       .asg "none",stsType
1                                   .else
1                                       .if ($symcmp(":mode:","input") == 0)
1                                           .asg "reader",stsType
1                                       .else
1                                           .asg "writer",stsType
1                                       .endif
1                                   .endif
1                            
1                                   ; set first word of HST_Obj table to size of individual HST objects
1                           
1                                   .asg    0, chanId
1                           
1                                   .if 0 = 0
1                           
1        00000000           RTA_fromHost$objsize  .usect ".hst", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS 
1                           
1        00000118                       .sect ".cinit"
1                           
1                                       .align 8
1                           
1        00000118 00000004              .field STD_TARGWORDMAUS * 1
1                           
1        0000011c 00000000%             .field RTA_fromHost$objsize   
1                           
1                                       .if ($symcmp("NOTRTDX","RTDX") == 0)
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   31

1                                           .field 5 * STD_TARGWORDMAUS
1                                       .else
1        00000120 00000008                  .field 2 * STD_TARGWORDMAUS
1                                       .endif
1                           
1                                   .endif
1                           
1        00000004           RTA_fromHost  .usect ".hst", STD_TARGWORDMAUS * 2, STD_TARGWORDMAUS 
1                            
1        00000124                   .sect ".cinit"
1                           
1                                   .align  8
1        00000128 00000008          .field  STD_TARGWORDMAUS * 2
1        0000012c 00000000%         .field  RTA_fromHost    
1        00000130 00000001          .field  1<<0     ; mask 
1        00000134 00000000%         .field  RTA_fromHost$pipe     ; pipe
1                           
1                                   .if ($symcmp("NOTRTDX","RTDX") == 0)
1                           
1                                       ; allocate RTDX_channel
1                           :name:$rtdx .usect ".hst", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS 
1                           
1                                       .sect ".cinit"
1                           
1                                       .align 8
1                           
1                                       .field STD_TARGWORDMAUS * 3
1                                       .field :name:$rtdx    
1                                       .field 0                    ; enabled = 0
1                                       .field 0                    ; count = 0
1                                       .field 0                    ; busy = 0
1                           
1                                   .endif
1                           
1                                   .if ($symcmp("input","output") == 0)
1                                           PIP_Obj 1, :name:$pipe, -1, :name:$buf, framesize, numframes, :stsType:, fxn, arg0, ar
1                                   .endif
1                            
1                                   .if ($symcmp("input","input") == 0)
1        00000138                           PIP_Obj 1, RTA_fromHost$pipe, -1, RTA_fromHost$buf, framesize, numframes, none, RTA_F_
2                           
2                                   .global RTA_fromHost$pipe, RTA_fromHost$pipe$rd, RTA_fromHost$pipe$wr, RTA_fromHost$pipe$dtab
2                                   .global RTA_fromHost$pipe$aaa, RTA_fromHost$pipe$bbb
2                                   .asg   0,bufAlloc
2                                   .eval 0, newframesize
2                           
2                                   .eval 04H * (STD_TARGWORDMAUS/STD_TARGCHARMAUS), newframesize
2                                   ; Convert framesize to bytes which is needed since align value is
2                                   ; already in bytes.
2                           
2                                   .eval (16 + (04H - 1)) & ( ~(04H - 1)), newframesize
2                                   ; 16 is equal to multiple of 04H. This is needed
2                                   ; for all the frames to start at 'align'ed boundary from the start
2                                   ; of pip frames section. Note that pip frames section will also
2                                   ; start from 'align'ed boundary.
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   32

2                           
2                                   .if (1 = 0)
2                                       .mexit
2                                   .endif
2                           
2                                   .if ($symcmp("RTA_fromHost$buf", "<NULL>") = 0)
2                                       .eval       0, count
2                                       .asg        :name:$buf:count:, buf
2                                       .loop
2                                           .break (count == :numframes: - 1 )
2                                           .global :name:$buf:count:
2                           :name:$buf:count:       .usect ".pip:id:", :newframesize: 
2                                           .asg    :name:$buf:count:, buf:count:
2                                           .eval   count + 1, count
2                                       .endloop
2                                   
2                                       ; Last frame in the PIP buffers should start at align boundary
2                                       ; but the size of last PIP buffer need not be multiple of
2                                       ; :align:. Because there are no more frames left to start at align
2                                       ; boundary. Hence last frame is usect'd with the default
2                                       ; framesize.
2                                       .global     :name:$buf:count:
2                           :name:$buf:count:       .usect ".pip:id:", :framesize: * (STD_TARGWORDMAUS/STD_TARGCHARMAUS) 
2                                       .asg        :name:$buf:count:, buf:count:
2                           
2                                       .eval       1, bufAlloc
2                                   .endif
2                           
2        00000000           RTA_fromHost$pipe  .usect ".pip", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        00000138                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000138 00000004          .field  STD_TARGWORDMAUS * 1
2        0000013c 00000000%         .field  RTA_fromHost$pipe
2        00000140 00000004          .field  04H             ; thresh
2                           
2        00000004           RTA_fromHost$pipe$rd .usect ".pip", STD_TARGWORDMAUS * 8, STD_TARGWORDMAUS
2                           
2        00000144                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000148 00000020          .field  STD_TARGWORDMAUS * 8
2        0000014c 00000000%         .field RTA_fromHost$pipe$rd
2        00000150 00000000          .field  0                       ; reader take-probe
2        00000154 00000000          .field  0                       ; reader addr
2        00000158 00000004          .field  04H             ; reader size
2        0000015c 00000000%         .field  RTA_fromHost$pipe$dtab             ; reader curdesc
2        00000160 00000000%         .field  RTA_fromHost$pipe$wr+PIP_O_FXNOBJ  ; reader pfxnobj
2        00000164 00000000          .field  0                       ; reader numframes
2        00000168 00000000          .field  0                       ; reader give-probe
2        0000016c 00000000%         .field  RTA_fromHost$pipe$wr+PIP_O_NUMFRAMES       ; reader pnumframes
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   33

2        00000170                   FXN_Obj RTA_fromHost$pipe$rdfxn, RTA_F_or, LNK_dspFrameRequestMask, 1<<0, ".pip"
3        00000170               CHK_nargs "FXN_Obj", section
3                               .if ($symcmp("", "error") = 0)
3                                   .emsg "FXN_Obj parameter error"
3                               .endif
3                           
3                           RTA_fromHost$pipe$rdfxn  .tag    FXN_Obj
3                           
3        00000024           RTA_fromHost$pipe$rdfxn  .usect ".pip", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS
3                           
3        00000170                   .sect ".cinit"
3                           
3                                   .align 8
3        00000170 0000000C          .field  STD_TARGWORDMAUS * 3
3        00000174 00000000%         .field RTA_fromHost$pipe$rdfxn
3        00000178 00000000!         .field  RTA_F_or          ; fxn
3        0000017c 00000001          .field  1<<0         ; arg1
3        00000180 00000000!         .field  LNK_dspFrameRequestMask         ; arg0
3                           
2                           
2        00000030           RTA_fromHost$pipe$aaa .usect ".pip", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        00000184                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000188 00000004          .field  STD_TARGWORDMAUS * 1
2        0000018c 00000000%         .field RTA_fromHost$pipe$aaa
2                                   .if ($symcmp("none", "reader") = 0)
2                                       .field :name:$sts
2                                   .else
2        00000190 00000000              .field 0
2                                   .endif
2                           
2        00000034           RTA_fromHost$pipe$wr .usect ".pip", STD_TARGWORDMAUS * 8, STD_TARGWORDMAUS
2                           
2        00000194                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000198 00000020          .field  STD_TARGWORDMAUS * 8
2        0000019c 00000000%         .field RTA_fromHost$pipe$wr
2        000001a0 00000000          .field  0                       ; writer take-probe
2        000001a4 00000000          .field  0                       ; writer addr
2        000001a8 00000004          .field  04H             ; writer size
2        000001ac 00000000%         .field  RTA_fromHost$pipe$dtab             ; writer curdesc
2        000001b0 00000000%         .field  RTA_fromHost$pipe$rd+PIP_O_FXNOBJ  ; writer pfxnobj
2        000001b4 00000001          .field  01H             ; writer numframes
2        000001b8 00000000          .field  0                       ; writer give-probe
2        000001bc 00000000%         .field  RTA_fromHost$pipe$rd+PIP_O_NUMFRAMES       ; writer pnumframes
2                           
2        000001c0                   FXN_Obj RTA_fromHost$pipe$wrfxn, _FXN_F_nop, 00H, 00H, ".pip"
3        000001c0               CHK_nargs "FXN_Obj", section
3                               .if ($symcmp("", "error") = 0)
3                                   .emsg "FXN_Obj parameter error"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   34

3                               .endif
3                           
3                           RTA_fromHost$pipe$wrfxn  .tag    FXN_Obj
3                           
3        00000054           RTA_fromHost$pipe$wrfxn  .usect ".pip", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS
3                           
3        000001c0                   .sect ".cinit"
3                           
3                                   .align 8
3        000001c0 0000000C          .field  STD_TARGWORDMAUS * 3
3        000001c4 00000000%         .field RTA_fromHost$pipe$wrfxn
3        000001c8 00000000!         .field  _FXN_F_nop          ; fxn
3        000001cc 00000000          .field  00H         ; arg1
3        000001d0 00000000          .field  00H         ; arg0
3                           
2                           
2        00000060           RTA_fromHost$pipe$bbb .usect ".pip", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        000001d4                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        000001d8 00000004          .field  STD_TARGWORDMAUS * 1
2        000001dc 00000000%         .field RTA_fromHost$pipe$bbb
2                                   .if ($symcmp("none", "writer") = 0)
2                                       .field      :name:$sts
2                                   .else
2        000001e0 00000000              .field      0
2                                   .endif
2                           
2                                   ;
2                                   ; put PIP descriptors into .bss section
2                                   ;
2                                   ;   addr[i]
2                                   ;   size[i]
2                                   ;   next[i]
2                                   ;
2                                   .global RTA_fromHost$pipe$dtab
2                           
2        00000010                   .bss    RTA_fromHost$pipe$dtab, (3 * STD_TARGWORDMAUS * 01H), STD_TARGWORDMAUS
2                           
2        000001e4                   .sect ".cinit"
2                           
2                                   .var    temp0, temp1, boff
2                                   .eval   0, temp0
2                                   .eval   0, temp1
2                                   .eval   0, boff
2                                   .eval   01H * (3 * STD_TARGWORDMAUS), temp0
2                           
2                                   .align 8
2                           
2        000001e8 0000000C          .field  12
2                           
2        000001ec 00000000%         .field RTA_fromHost$pipe$dtab
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   35

2                                   .eval   3 * STD_TARGWORDMAUS, temp1
2                           
2                                   .eval   0, count
2                                   .loop   01H-1
2                                       .field :buf:+:boff:                 ; addr[i]
2                                       .field :framesize:                  ; size[i]
2                                       .field :name:$dtab + :temp1:        ; next[i]
2                           
2                                       .if :bufAlloc:
2                                           .eval count + 1, count
2                                           .asg  buf:count:, buf
2                                       .else
2                                           .eval :boff:+(:framesize: * (STD_TARGWORDMAUS)), boff
2                                       .endif
2                                       .eval :temp1: + (3 * STD_TARGWORDMAUS), temp1
2                                   .endloop
2                                       
2        000001f0 00000000%         .field RTA_fromHost$buf+0     ; addr[n]
2        000001f4 00000004          .field 04H      ; size[n]
2        000001f8 00000000%         .field RTA_fromHost$pipe$dtab      ; next[n]
2                           
2                                   .if ($symcmp("none", "reader") = 0)
2                                           STS_Obj 1, :name:$sts, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2                                   .endif
2                           
2                                   .if ($symcmp("none", "writer") = 0)
2                                           STS_Obj 1, :name:$sts, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2                                   .endif
2                           
1                                   .endif
1                           
1                                   .eval 0 + 1, HST$hstCount
1                           
     630                    
     631                    ;; ======== HST_Obj RTA_toHost ========
     632                    ;; Used to access LOG and STS data
     633                    ;;
     634                    ;; HST_Obj RTA_toHost (mode, buf, framesize, numframes, stsflg, notify, arg0, arg1, lnk, bufFrameAlign
     635                            .global RTA_toHost
     636                            .asg "output", _mode
     637                            .asg "<NULL>", _buf
     638                            .asg 040H, _framesize
     639                            .asg 01H, _numframes
     640                            .asg 00H, _stsflg
     641                            .asg _FXN_F_nop, _notify
     642                            .asg 00H, _arg0
     643                            .asg 00H, _arg1
     644                            .asg "NOTRTDX", _lnk
     645                            .asg 04H, _bufFrameAlign
     646 000001fc                   HST_Obj 1, RTA_toHost, 0, _mode, _buf, _framesize, _numframes, _stsflg, _notify, _arg0, _arg1,
1                           
1                                   .if (1 = 0)
1                                       .mexit
1                                   .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   36

1                                   .global RTA_toHost$hst      ; create symbol for hst names for vbd/rta
1                 00000000  RTA_toHost$hst .set 0
1                            
1        000001fc                   CHK_nargs "HST_Obj", lnktype 
1                                   .if ($symcmp("", "error") = 0)
1                                       .emsg "HST_Obj lnktype error"
1                                   .endif
1                            
1        000001fc                   CHK_domain HST_Obj, mode, "output,input", "output"
2                           
1                                   .asg "output", mode
1                                   .if ($symcmp("output", "error") = 0)
1                                       .emsg "HST_Obj mode error"
1                                   .endif
1                            
1                                   .global RTA_toHost, RTA_toHost$buf, RTA_toHost$rtdx, RTA_toHost$framesize
1                           
1                 00000040  RTA_toHost$framesize .set   040H
1                           
1                                   .global RTA_toHost$mode
1                                   .if ($symcmp("output", "output") = 0)
1                 00000001  RTA_toHost$mode .set        1
1                                   .else
1                           :name:$mode .set        0
1                                   .endif
1                                   .global RTA_toHost$id
1                 00000000  RTA_toHost$id .set  0
1                           
1                                   .if ($symcmp("<NULL>", "<NULL>") = 0)
1                                       .if ($symcmp("output","input") == 0)
1                                           .if (RTDX_MODE == RTDX_HSRTDXMODE)
1                           bufSize .set (:framesize: * :numframes:) + 1
1                                               GBL_Obj :name:$buf, bufSize, .hst:id:, "noalign", -1, 1
1                                           .else
1                                               GBL_Obj :name:$buf, :framesize:*:numframes:, .hst:id:, "noalign", -1, 1
1                                           .endif
1                                       .else
1        000001fc                           GBL_Obj RTA_toHost$buf, 040H*01H, .hst0, "noalign", -1, 1
2        000001fc                   CHK_domain "GBL_Obj", alignFlag, "noalign,align", "noalign"
3                           
2                                   .if ($symcmp("noalign", "error") = 0)
2                                       .emsg "GBL_Obj align parameter error."
2                                   .endif
2                                   .asg "noalign", alignFlag
2                           
2        000001fc                   CHK_nargs "GBL_Obj", size
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "GBL_Obj size parameter error."
2                                   .endif
2                           
2                                   .if ($symlen(section) = 0)
2                                       .asg ".bss", section
2                                   .endif
2                           
2                                   .if ($symlen(fillValue) != 0)
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   37

2        00000018                       .sect ".gblinit"
2        00000018 00000040              .word 040H*01H
2        0000001c 00000000%             .word RTA_toHost$buf
2        00000020 FFFFFFFF              .word -1
2                                   .endif
2                           
2                                   .if (($symcmp(section, ".data") = 0) | ($symcmp(alignFlag, "align") = 0))
2                                       .sect ":section:"
2                                       .if ($symcmp(alignFlag, "align") = 0)
2                                           .align  :alignValue:
2                                       .endif
2                           :name::
2                                       ;
2                                       ; Can't use .space directive here because it reserves
2                                       ; bits for some processors and bytes for others.
2                                       ;
2                                       .loop :size:
2                                           .word 0
2                                       .endloop
2                                   .else
2        00000000           RTA_toHost$buf:     .usect ".hst0", 040H*01H * (STD_TARGWORDMAUS / STD_TARGCHARMAUS), (STD_TARGWORDMAU
2                                   .endif
2                           
1                                       .endif
1                                       .asg    RTA_toHost$buf, buf
1                                   .endif
1                           
1                                   .if (00H == 0)
1                                       .asg "none",stsType
1                                   .else
1                                       .if ($symcmp(":mode:","input") == 0)
1                                           .asg "reader",stsType
1                                       .else
1                                           .asg "writer",stsType
1                                       .endif
1                                   .endif
1                            
1                                   ; set first word of HST_Obj table to size of individual HST objects
1                           
1                                   .asg    1, chanId
1                           
1                                   .if 1 = 0
1                           
1                           :name:$objsize  .usect ".hst", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS 
1                           
1                                       .sect ".cinit"
1                           
1                                       .align 8
1                           
1                                       .field STD_TARGWORDMAUS * 1
1                           
1                                       .field :name:$objsize   
1                           
1                                       .if ($symcmp(":lnktype:","RTDX") == 0)
1                                           .field 5 * STD_TARGWORDMAUS
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   38

1                                       .else
1                                           .field 2 * STD_TARGWORDMAUS
1                                       .endif
1                           
1                                   .endif
1                           
1        0000000c           RTA_toHost  .usect ".hst", STD_TARGWORDMAUS * 2, STD_TARGWORDMAUS 
1                            
1        000001fc                   .sect ".cinit"
1                           
1                                   .align  8
1        00000200 00000008          .field  STD_TARGWORDMAUS * 2
1        00000204 00000000%         .field  RTA_toHost    
1        00000208 00000002          .field  1<<1     ; mask 
1        0000020c 00000000%         .field  RTA_toHost$pipe     ; pipe
1                           
1                                   .if ($symcmp("NOTRTDX","RTDX") == 0)
1                           
1                                       ; allocate RTDX_channel
1                           :name:$rtdx .usect ".hst", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS 
1                           
1                                       .sect ".cinit"
1                           
1                                       .align 8
1                           
1                                       .field STD_TARGWORDMAUS * 3
1                                       .field :name:$rtdx    
1                                       .field 0                    ; enabled = 0
1                                       .field 0                    ; count = 0
1                                       .field 0                    ; busy = 0
1                           
1                                   .endif
1                           
1                                   .if ($symcmp("output","output") == 0)
1        00000210                           PIP_Obj 1, RTA_toHost$pipe, -1, RTA_toHost$buf, framesize, numframes, none, fxn, arg0,
2                           
2                                   .global RTA_toHost$pipe, RTA_toHost$pipe$rd, RTA_toHost$pipe$wr, RTA_toHost$pipe$dtab
2                                   .global RTA_toHost$pipe$aaa, RTA_toHost$pipe$bbb
2                                   .asg   0,bufAlloc
2                                   .eval 0, newframesize
2                           
2                                   .eval 040H * (STD_TARGWORDMAUS/STD_TARGCHARMAUS), newframesize
2                                   ; Convert framesize to bytes which is needed since align value is
2                                   ; already in bytes.
2                           
2                                   .eval (256 + (04H - 1)) & ( ~(04H - 1)), newframesize
2                                   ; 256 is equal to multiple of 04H. This is needed
2                                   ; for all the frames to start at 'align'ed boundary from the start
2                                   ; of pip frames section. Note that pip frames section will also
2                                   ; start from 'align'ed boundary.
2                           
2                                   .if (1 = 0)
2                                       .mexit
2                                   .endif
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   39

2                                   .if ($symcmp("RTA_toHost$buf", "<NULL>") = 0)
2                                       .eval       0, count
2                                       .asg        :name:$buf:count:, buf
2                                       .loop
2                                           .break (count == :numframes: - 1 )
2                                           .global :name:$buf:count:
2                           :name:$buf:count:       .usect ".pip:id:", :newframesize: 
2                                           .asg    :name:$buf:count:, buf:count:
2                                           .eval   count + 1, count
2                                       .endloop
2                                   
2                                       ; Last frame in the PIP buffers should start at align boundary
2                                       ; but the size of last PIP buffer need not be multiple of
2                                       ; :align:. Because there are no more frames left to start at align
2                                       ; boundary. Hence last frame is usect'd with the default
2                                       ; framesize.
2                                       .global     :name:$buf:count:
2                           :name:$buf:count:       .usect ".pip:id:", :framesize: * (STD_TARGWORDMAUS/STD_TARGCHARMAUS) 
2                                       .asg        :name:$buf:count:, buf:count:
2                           
2                                       .eval       1, bufAlloc
2                                   .endif
2                           
2        00000064           RTA_toHost$pipe  .usect ".pip", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        00000210                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000210 00000004          .field  STD_TARGWORDMAUS * 1
2        00000214 00000000%         .field  RTA_toHost$pipe
2        00000218 00000040          .field  040H             ; thresh
2                           
2        00000068           RTA_toHost$pipe$rd .usect ".pip", STD_TARGWORDMAUS * 8, STD_TARGWORDMAUS
2                           
2        0000021c                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000220 00000020          .field  STD_TARGWORDMAUS * 8
2        00000224 00000000%         .field RTA_toHost$pipe$rd
2        00000228 00000000          .field  0                       ; reader take-probe
2        0000022c 00000000          .field  0                       ; reader addr
2        00000230 00000040          .field  040H             ; reader size
2        00000234 00000000%         .field  RTA_toHost$pipe$dtab             ; reader curdesc
2        00000238 00000000%         .field  RTA_toHost$pipe$wr+PIP_O_FXNOBJ  ; reader pfxnobj
2        0000023c 00000000          .field  0                       ; reader numframes
2        00000240 00000000          .field  0                       ; reader give-probe
2        00000244 00000000%         .field  RTA_toHost$pipe$wr+PIP_O_NUMFRAMES       ; reader pnumframes
2                           
2        00000248                   FXN_Obj RTA_toHost$pipe$rdfxn, _FXN_F_nop, 00H, 00H, ".pip"
3        00000248               CHK_nargs "FXN_Obj", section
3                               .if ($symcmp("", "error") = 0)
3                                   .emsg "FXN_Obj parameter error"
3                               .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   40

3                           
3                           RTA_toHost$pipe$rdfxn  .tag    FXN_Obj
3                           
3        00000088           RTA_toHost$pipe$rdfxn  .usect ".pip", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS
3                           
3        00000248                   .sect ".cinit"
3                           
3                                   .align 8
3        00000248 0000000C          .field  STD_TARGWORDMAUS * 3
3        0000024c 00000000%         .field RTA_toHost$pipe$rdfxn
3        00000250 00000000!         .field  _FXN_F_nop          ; fxn
3        00000254 00000000          .field  00H         ; arg1
3        00000258 00000000          .field  00H         ; arg0
3                           
2                           
2        00000094           RTA_toHost$pipe$aaa .usect ".pip", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        0000025c                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000260 00000004          .field  STD_TARGWORDMAUS * 1
2        00000264 00000000%         .field RTA_toHost$pipe$aaa
2                                   .if ($symcmp("none", "reader") = 0)
2                                       .field :name:$sts
2                                   .else
2        00000268 00000000              .field 0
2                                   .endif
2                           
2        00000098           RTA_toHost$pipe$wr .usect ".pip", STD_TARGWORDMAUS * 8, STD_TARGWORDMAUS
2                           
2        0000026c                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        00000270 00000020          .field  STD_TARGWORDMAUS * 8
2        00000274 00000000%         .field RTA_toHost$pipe$wr
2        00000278 00000000          .field  0                       ; writer take-probe
2        0000027c 00000000          .field  0                       ; writer addr
2        00000280 00000040          .field  040H             ; writer size
2        00000284 00000000%         .field  RTA_toHost$pipe$dtab             ; writer curdesc
2        00000288 00000000%         .field  RTA_toHost$pipe$rd+PIP_O_FXNOBJ  ; writer pfxnobj
2        0000028c 00000001          .field  01H             ; writer numframes
2        00000290 00000000          .field  0                       ; writer give-probe
2        00000294 00000000%         .field  RTA_toHost$pipe$rd+PIP_O_NUMFRAMES       ; writer pnumframes
2                           
2        00000298                   FXN_Obj RTA_toHost$pipe$wrfxn, RTA_F_or, LNK_dspFrameReadyMask, 1<<1, ".pip"
3        00000298               CHK_nargs "FXN_Obj", section
3                               .if ($symcmp("", "error") = 0)
3                                   .emsg "FXN_Obj parameter error"
3                               .endif
3                           
3                           RTA_toHost$pipe$wrfxn  .tag    FXN_Obj
3                           
3        000000b8           RTA_toHost$pipe$wrfxn  .usect ".pip", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   41

3                           
3        00000298                   .sect ".cinit"
3                           
3                                   .align 8
3        00000298 0000000C          .field  STD_TARGWORDMAUS * 3
3        0000029c 00000000%         .field RTA_toHost$pipe$wrfxn
3        000002a0 00000000!         .field  RTA_F_or          ; fxn
3        000002a4 00000002          .field  1<<1         ; arg1
3        000002a8 00000000!         .field  LNK_dspFrameReadyMask         ; arg0
3                           
2                           
2        000000c4           RTA_toHost$pipe$bbb .usect ".pip", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        000002ac                   .sect ".cinit"
2                           
2                                   .align 8
2                           
2        000002b0 00000004          .field  STD_TARGWORDMAUS * 1
2        000002b4 00000000%         .field RTA_toHost$pipe$bbb
2                                   .if ($symcmp("none", "writer") = 0)
2                                       .field      :name:$sts
2                                   .else
2        000002b8 00000000              .field      0
2                                   .endif
2                           
2                                   ;
2                                   ; put PIP descriptors into .bss section
2                                   ;
2                                   ;   addr[i]
2                                   ;   size[i]
2                                   ;   next[i]
2                                   ;
2                                   .global RTA_toHost$pipe$dtab
2                           
2        0000001c                   .bss    RTA_toHost$pipe$dtab, (3 * STD_TARGWORDMAUS * 01H), STD_TARGWORDMAUS
2                           
2        000002bc                   .sect ".cinit"
2                           
2                                   .var    temp0, temp1, boff
2                                   .eval   0, temp0
2                                   .eval   0, temp1
2                                   .eval   0, boff
2                                   .eval   01H * (3 * STD_TARGWORDMAUS), temp0
2                           
2                                   .align 8
2                           
2        000002c0 0000000C          .field  12
2                           
2        000002c4 00000000%         .field RTA_toHost$pipe$dtab
2                           
2                                   .eval   3 * STD_TARGWORDMAUS, temp1
2                           
2                                   .eval   0, count
2                                   .loop   01H-1
2                                       .field :buf:+:boff:                 ; addr[i]
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   42

2                                       .field :framesize:                  ; size[i]
2                                       .field :name:$dtab + :temp1:        ; next[i]
2                           
2                                       .if :bufAlloc:
2                                           .eval count + 1, count
2                                           .asg  buf:count:, buf
2                                       .else
2                                           .eval :boff:+(:framesize: * (STD_TARGWORDMAUS)), boff
2                                       .endif
2                                       .eval :temp1: + (3 * STD_TARGWORDMAUS), temp1
2                                   .endloop
2                                       
2        000002c8 00000000%         .field RTA_toHost$buf+0     ; addr[n]
2        000002cc 00000040          .field 040H      ; size[n]
2        000002d0 00000000%         .field RTA_toHost$pipe$dtab      ; next[n]
2                           
2                                   .if ($symcmp("none", "reader") = 0)
2                                           STS_Obj 1, :name:$sts, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2                                   .endif
2                           
2                                   .if ($symcmp("none", "writer") = 0)
2                                           STS_Obj 1, :name:$sts, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2                                   .endif
2                           
1                                   .endif
1                            
1                                   .if ($symcmp("output","input") == 0)
1                                           PIP_Obj 1, :name:$pipe, -1, :name:$buf, framesize, numframes, :stsType:, RTA_F_or, LNK
1                                   .endif
1                           
1                                   .eval 1 + 1, HST$hstCount
1                           
     647                    
     648                    ;; ======== HWI_Obj HWI_RESET ========
     649                    ;; defines function for the RESET ISR
     650                    ;;
     651                    ;; HWI_Obj HWI_RESET (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, Intr
     652                            .global HWI_RESET
     653                            .asg _c_int00, _function
     654                            .asg "Nothing", _monitor
     655                            .asg 00H, _addr
     656                            .asg "signed", _dataType
     657                            .asg "STS_add(*addr)", _operation
     658                            .asg "USER", _client
     659                            .asg 00H, _iUseDispatcher
     660                            .asg 00H, _iArg
     661                            .asg 01H, _IntrMask
     662                            .asg 01H, _iCCBitMask
     663                            .asg 00H, _iLoadTrack
     664 000002d4                   HWI_Obj 1, HWI_RESET, 0, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDisp
1        000002d4                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   43

1                                   .global HWI_RESET, _c_int00
1                           
1                                   .global HWI_RESET$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_RESET$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000000  HWI_RESET          .set    0
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi0, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (0 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    _c_int00, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("_c_int00", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (0 = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg _c_int00, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   44

1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000000                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi0
1                           hwi0:
1                                   .if ((0 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   45

1                           
1        00000000 0000002A!             mvkl _c_int00,b0    ; load destination function address to b0
1        00000004 0000006A!             mvkh _c_int00,b0
1        00000008 00000362              b b0                ; start branch to destination function  
1        0000000c 0000A35A              zero b0             ; disable interrupts by clearing 'IER'
1        00000010 020003A2              mvc b0,ier
1        00000014 00000000              nop                 ; fill delay slot, pad packet
1        00000018 00000000              nop                 ; fill delay slot, pad packet
1        0000001c 00000000              nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((0 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (0 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   46

1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1                           spin?
1                                       b spin?             ; nested branches to block interrupts
1                                       nop 4
1                                       b spin?
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   47

1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   48

1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     665                    
     666                    ;; ======== HWI_Obj HWI_NMI ========
     667                    ;; defines function for the NMI ISR
     668                    ;;
     669                    ;; HWI_Obj HWI_NMI (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrMa
     670                            .global HWI_NMI
     671                            .asg _EXC_dispatch, _function
     672                            .asg "Nothing", _monitor
     673                            .asg 00H, _addr
     674                            .asg "signed", _dataType
     675                            .asg "STS_add(*addr)", _operation
     676                            .asg "USER", _client
     677                            .asg 00H, _iUseDispatcher
     678                            .asg 00H, _iArg
     679                            .asg 02H, _IntrMask
     680                            .asg 01H, _iCCBitMask
     681                            .asg 00H, _iLoadTrack
     682 00000020                   HWI_Obj 1, HWI_NMI, 1, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispat
1        00000020                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_NMI, _EXC_dispatch
1                           
1                                   .global HWI_NMI$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_NMI$hwi .set 0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   49

1                           
1                                   .if (1 != 0)
1                 00000001  HWI_NMI          .set    1
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi1, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (1 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    _EXC_dispatch, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("_EXC_dispatch", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (0 = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg _EXC_dispatch, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   50

1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000020                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi1
1                           hwi1:
1                                   .if ((1 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   51

1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((1 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1        00000020 000340F3              mvd b0, b0          ; juggle for 3 cycles
1        00000024 0000002A! ||          mvkl _EXC_dispatch, b0
1        00000028 0000006A!             mvkh _EXC_dispatch, b0
1        0000002c 00000362              b b0
1        00000030 00000000              nop
1        00000034 00000000              nop                 ; orignal b0 lands here
1        00000038 00002000              nop 2
1        0000003c 00000000              nop
1                           
1                                   .elseif (1 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   52

1                           spin?
1                                       b spin?             ; nested branches to block interrupts
1                                       nop 4
1                                       b spin?
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   53

1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   54

1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     683                    
     684                    ;; ======== HWI_Obj HWI_RESERVED0 ========
     685                    ;; RESERVED for RTDX
     686                    ;;
     687                    ;; HWI_Obj HWI_RESERVED0 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, 
     688                            .global HWI_RESERVED0
     689                            .asg RESERVED, _function
     690                            .asg "Nothing", _monitor
     691                            .asg 00H, _addr
     692                            .asg "signed", _dataType
     693                            .asg "STS_add(*addr)", _operation
     694                            .asg "RTDX", _client
     695                            .asg 00H, _iUseDispatcher
     696                            .asg 00H, _iArg
     697                            .asg 04H, _IntrMask
     698                            .asg 01H, _iCCBitMask
     699                            .asg 00H, _iLoadTrack
     700 00000040                   HWI_Obj 1, HWI_RESERVED0, 2, _function, _monitor, _addr, _dataType, _operation, _client, _iUse
1        00000040                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_RESERVED0, RESERVED
1                           
1                                   .global HWI_RESERVED0$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_RESERVED0$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000002  HWI_RESERVED0          .set    2
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   55

1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi2, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (RTDX$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (2 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    RESERVED, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("RESERVED", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (0 = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   56

1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000040                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi2
1                           hwi2:
1                                   .if ((2 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   57

1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((2 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (2 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1        00000040           spin?
1        00000040 00000012                  b spin?         ; nested branches to block interrupts
1        00000044 00006000                  nop 4
1        00000048 00000012                  b spin?
1        0000004c 00000000                  nop
1        00000050 00000000                  nop
1        00000054 00000000                  nop
1        00000058 00000000                  nop
1        0000005c 00000000                  nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1                           spin?
1                                       b spin?             ; nested branches to block interrupts
1                                       nop 4
1                                       b spin?
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   58

1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   59

1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   60

1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     701                    
     702                    ;; ======== HWI_Obj HWI_RESERVED1 ========
     703                    ;; RESERVED for RTDX
     704                    ;;
     705                    ;; HWI_Obj HWI_RESERVED1 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, 
     706                            .global HWI_RESERVED1
     707                            .asg HWI_unused, _function
     708                            .asg "Nothing", _monitor
     709                            .asg 00H, _addr
     710                            .asg "signed", _dataType
     711                            .asg "STS_add(*addr)", _operation
     712                            .asg "RTDX", _client
     713                            .asg 00H, _iUseDispatcher
     714                            .asg 00H, _iArg
     715                            .asg 08H, _IntrMask
     716                            .asg 01H, _iCCBitMask
     717                            .asg 00H, _iLoadTrack
     718 00000060                   HWI_Obj 1, HWI_RESERVED1, 3, _function, _monitor, _addr, _dataType, _operation, _client, _iUse
1        00000060                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_RESERVED1, HWI_unused
1                           
1                                   .global HWI_RESERVED1$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_RESERVED1$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000003  HWI_RESERVED1          .set    3
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi3, vector            ; default vector = self branch
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   61

1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (RTDX$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (3 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   62

1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000060                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi3
1                           hwi3:
1                                   .if ((3 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((3 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   63

1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (3 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        00000060           spin?
1        00000060 00000012              b spin?             ; nested branches to block interrupts
1        00000064 00006000              nop 4
1        00000068 00000012              b spin?
1        0000006c 00000000              nop
1        00000070 00000000              nop
1        00000074 00000000              nop
1        00000078 00000000              nop
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   64

1        0000007c 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   65

1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   66

1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     719                    
     720                    ;; ======== HWI_Obj HWI_INT4 ========
     721                    ;; defines the INT4 Interrupt
     722                    ;;
     723                    ;; HWI_Obj HWI_INT4 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrM
     724                            .global HWI_INT4
     725                            .asg HWI_unused, _function
     726                            .asg "Nothing", _monitor
     727                            .asg 00H, _addr
     728                            .asg "signed", _dataType
     729                            .asg "STS_add(*addr)", _operation
     730                            .asg "USER", _client
     731                            .asg 00H, _iUseDispatcher
     732                            .asg 00H, _iArg
     733                            .asg 010H, _IntrMask
     734                            .asg 01H, _iCCBitMask
     735                            .asg 00H, _iLoadTrack
     736 00000080                   HWI_Obj 1, HWI_INT4, 4, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispa
1        00000080                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT4, HWI_unused
1                           
1                                   .global HWI_INT4$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT4$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000004  HWI_INT4          .set    4
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi4, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   67

1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (4 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   68

1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000080                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi4
1                           hwi4:
1                                   .if ((4 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((4 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   69

1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (4 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        00000080           spin?
1        00000080 00000012              b spin?             ; nested branches to block interrupts
1        00000084 00006000              nop 4
1        00000088 00000012              b spin?
1        0000008c 00000000              nop
1        00000090 00000000              nop
1        00000094 00000000              nop
1        00000098 00000000              nop
1        0000009c 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   70

1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   71

1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   72

1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     737                    
     738                    ;; ======== HWI_Obj HWI_INT5 ========
     739                    ;; defines the INT5 Interrupt
     740                    ;;
     741                    ;; HWI_Obj HWI_INT5 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrM
     742                            .global HWI_INT5
     743                            .asg _EmacHwInt, _function
     744                            .asg "Nothing", _monitor
     745                            .asg 00H, _addr
     746                            .asg "signed", _dataType
     747                            .asg "STS_add(*addr)", _operation
     748                            .asg "USER", _client
     749                            .asg 01H, _iUseDispatcher
     750                            .asg 00H, _iArg
     751                            .asg 020H, _IntrMask
     752                            .asg 01H, _iCCBitMask
     753                            .asg 00H, _iLoadTrack
     754 000000a0                   HWI_Obj 1, HWI_INT5, 5, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispa
1        000000a0                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT5, _EmacHwInt
1                           
1                                   .global HWI_INT5$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT5$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000005  HWI_INT5          .set    5
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi5, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   73

1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (5 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    01H, local_dispatch
1                                   .asg    _EmacHwInt, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("_EmacHwInt", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (0 = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg _EmacHwInt, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   74

1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        000000a0                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi5
1                           hwi5:
1                                   .if ((5 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((5 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   75

1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (5 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!01H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1                           spin?
1                                       b spin?             ; nested branches to block interrupts
1                                       nop 4
1                                       b spin?
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                           
1                                   .else
1                                       .if ( 01H )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   76

1                                           .if ( $symcmp("_EmacHwInt", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        _EmacHwInt, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((00H != 0) & (5 > 3) & (5 < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   77

1                           
1        000000a0 003C54F6                      stw b0, *b15--[2]
1        000000a4 0014A35A                      mvk 5, b0
1        000000a8 003C22F6                      stw b0, *+b15[1]
1        000000ac 0000002A!                     mvkl HWI_F_dispatch, b0
1        000000b0 0000006A!                     mvkh HWI_F_dispatch, b0
1        000000b4 00000362                      b b0
1        000000b8 003C42E6                      ldw *+b15[2], b0
1        000000bc 00006000                      nop 4
1                           
1                                           .endif
1                           
1        000002d4                           .sect   ".cinit"
1                                           .align  8
1        000002d8 00000010                  .field  4 * STD_TARGWORDMAUS
1        000002dc 00000050!                 .field  _HWI_dispatchTab + (4 * 5 * STD_TARGWORDMAUS)
1        000002e0 00000000!                 .field  _EmacHwInt
1        000002e4 00000020                  .field  020H
1        000002e8 00000001                  .field  01H
1        000002ec 00000000                  .field  00H
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   78

1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     755                    
     756                    ;; ======== HWI_Obj HWI_INT6 ========
     757                    ;; defines the INT6 Interrupt
     758                    ;;
     759                    ;; HWI_Obj HWI_INT6 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrM
     760                            .global HWI_INT6
     761                            .asg HWI_unused, _function
     762                            .asg "Nothing", _monitor
     763                            .asg 00H, _addr
     764                            .asg "signed", _dataType
     765                            .asg "STS_add(*addr)", _operation
     766                            .asg "USER", _client
     767                            .asg 00H, _iUseDispatcher
     768                            .asg 00H, _iArg
     769                            .asg 040H, _IntrMask
     770                            .asg 01H, _iCCBitMask
     771                            .asg 00H, _iLoadTrack
     772 000002f0                   HWI_Obj 1, HWI_INT6, 6, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispa
1        000002f0                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT6, HWI_unused
1                           
1                                   .global HWI_INT6$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT6$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000006  HWI_INT6          .set    6
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi6, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   79

1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (6 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   80

1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        000000c0                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi6
1                           hwi6:
1                                   .if ((6 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((6 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   81

1                           
1                                   .elseif (6 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        000000c0           spin?
1        000000c0 00000012              b spin?             ; nested branches to block interrupts
1        000000c4 00006000              nop 4
1        000000c8 00000012              b spin?
1        000000cc 00000000              nop
1        000000d0 00000000              nop
1        000000d4 00000000              nop
1        000000d8 00000000              nop
1        000000dc 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   82

1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   83

1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   84

1                                       .endif
1                           
1                                   .endif
1                                   
     773                    
     774                    ;; ======== HWI_Obj HWI_INT7 ========
     775                    ;; defines the INT7 Interrupt
     776                    ;;
     777                    ;; HWI_Obj HWI_INT7 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrM
     778                            .global HWI_INT7
     779                            .asg HWI_unused, _function
     780                            .asg "Nothing", _monitor
     781                            .asg 00H, _addr
     782                            .asg "signed", _dataType
     783                            .asg "STS_add(*addr)", _operation
     784                            .asg "USER", _client
     785                            .asg 00H, _iUseDispatcher
     786                            .asg 00H, _iArg
     787                            .asg 080H, _IntrMask
     788                            .asg 01H, _iCCBitMask
     789                            .asg 00H, _iLoadTrack
     790 000000e0                   HWI_Obj 1, HWI_INT7, 7, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispa
1        000000e0                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT7, HWI_unused
1                           
1                                   .global HWI_INT7$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT7$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000007  HWI_INT7          .set    7
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi7, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   85

1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (7 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   86

1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        000000e0                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi7
1                           hwi7:
1                                   .if ((7 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((7 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (7 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   87

1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        000000e0           spin?
1        000000e0 00000012              b spin?             ; nested branches to block interrupts
1        000000e4 00006000              nop 4
1        000000e8 00000012              b spin?
1        000000ec 00000000              nop
1        000000f0 00000000              nop
1        000000f4 00000000              nop
1        000000f8 00000000              nop
1        000000fc 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   88

1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   89

1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   90

     791                    
     792                    ;; ======== HWI_Obj HWI_INT8 ========
     793                    ;; defines the INT8 Interrupt
     794                    ;;
     795                    ;; HWI_Obj HWI_INT8 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrM
     796                            .global HWI_INT8
     797                            .asg HWI_unused, _function
     798                            .asg "Nothing", _monitor
     799                            .asg 00H, _addr
     800                            .asg "signed", _dataType
     801                            .asg "STS_add(*addr)", _operation
     802                            .asg "USER", _client
     803                            .asg 00H, _iUseDispatcher
     804                            .asg 00H, _iArg
     805                            .asg 0100H, _IntrMask
     806                            .asg 01H, _iCCBitMask
     807                            .asg 00H, _iLoadTrack
     808 00000100                   HWI_Obj 1, HWI_INT8, 8, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispa
1        00000100                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT8, HWI_unused
1                           
1                                   .global HWI_INT8$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT8$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000008  HWI_INT8          .set    8
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi8, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   91

1                                   .if (8 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   92

1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000100                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi8
1                           hwi8:
1                                   .if ((8 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((8 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (8 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   93

1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        00000100           spin?
1        00000100 00000012              b spin?             ; nested branches to block interrupts
1        00000104 00006000              nop 4
1        00000108 00000012              b spin?
1        0000010c 00000000              nop
1        00000110 00000000              nop
1        00000114 00000000              nop
1        00000118 00000000              nop
1        0000011c 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   94

1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   95

1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     809                    
     810                    ;; ======== HWI_Obj HWI_INT9 ========
     811                    ;; defines the INT9 Interrupt
     812                    ;;
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   96

     813                    ;; HWI_Obj HWI_INT9 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, IntrM
     814                            .global HWI_INT9
     815                            .asg HWI_unused, _function
     816                            .asg "Nothing", _monitor
     817                            .asg 00H, _addr
     818                            .asg "signed", _dataType
     819                            .asg "STS_add(*addr)", _operation
     820                            .asg "USER", _client
     821                            .asg 00H, _iUseDispatcher
     822                            .asg 00H, _iArg
     823                            .asg 0200H, _IntrMask
     824                            .asg 01H, _iCCBitMask
     825                            .asg 00H, _iLoadTrack
     826 00000120                   HWI_Obj 1, HWI_INT9, 9, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDispa
1        00000120                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT9, HWI_unused
1                           
1                                   .global HWI_INT9$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT9$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 00000009  HWI_INT9          .set    9
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi9, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (9 > 15)
1                                       .mexit
1                                   .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   97

1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   98

1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000120                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi9
1                           hwi9:
1                                   .if ((9 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((9 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (9 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE   99

1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        00000120           spin?
1        00000120 00000012              b spin?             ; nested branches to block interrupts
1        00000124 00006000              nop 4
1        00000128 00000012              b spin?
1        0000012c 00000000              nop
1        00000130 00000000              nop
1        00000134 00000000              nop
1        00000138 00000000              nop
1        0000013c 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  100

1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  101

1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     827                    
     828                    ;; ======== HWI_Obj HWI_INT10 ========
     829                    ;; defines the INT10 Interrupt
     830                    ;;
     831                    ;; HWI_Obj HWI_INT10 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, Intr
     832                            .global HWI_INT10
     833                            .asg HWI_unused, _function
     834                            .asg "Nothing", _monitor
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  102

     835                            .asg 00H, _addr
     836                            .asg "signed", _dataType
     837                            .asg "STS_add(*addr)", _operation
     838                            .asg "USER", _client
     839                            .asg 00H, _iUseDispatcher
     840                            .asg 00H, _iArg
     841                            .asg 0400H, _IntrMask
     842                            .asg 01H, _iCCBitMask
     843                            .asg 00H, _iLoadTrack
     844 00000140                   HWI_Obj 1, HWI_INT10, 10, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDis
1        00000140                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT10, HWI_unused
1                           
1                                   .global HWI_INT10$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT10$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 0000000A  HWI_INT10          .set    10
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi10, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (10 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  103

1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  104

1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000140                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi10
1                           hwi10:
1                                   .if ((10 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((10 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (10 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  105

1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        00000140           spin?
1        00000140 00000012              b spin?             ; nested branches to block interrupts
1        00000144 00006000              nop 4
1        00000148 00000012              b spin?
1        0000014c 00000000              nop
1        00000150 00000000              nop
1        00000154 00000000              nop
1        00000158 00000000              nop
1        0000015c 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  106

1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  107

1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     845                    
     846                    ;; ======== HWI_Obj HWI_INT11 ========
     847                    ;; defines the INT11 Interrupt
     848                    ;;
     849                    ;; HWI_Obj HWI_INT11 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, Intr
     850                            .global HWI_INT11
     851                            .asg HWI_unused, _function
     852                            .asg "Nothing", _monitor
     853                            .asg 00H, _addr
     854                            .asg "signed", _dataType
     855                            .asg "STS_add(*addr)", _operation
     856                            .asg "USER", _client
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  108

     857                            .asg 00H, _iUseDispatcher
     858                            .asg 00H, _iArg
     859                            .asg 01808H, _IntrMask
     860                            .asg 01H, _iCCBitMask
     861                            .asg 00H, _iLoadTrack
     862 00000160                   HWI_Obj 1, HWI_INT11, 11, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDis
1        00000160                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT11, HWI_unused
1                           
1                                   .global HWI_INT11$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT11$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 0000000B  HWI_INT11          .set    11
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi11, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (11 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  109

1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000160                   .sect ".hwi_vec"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  110

1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi11
1                           hwi11:
1                                   .if ((11 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((11 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (11 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  111

1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        00000160           spin?
1        00000160 00000012              b spin?             ; nested branches to block interrupts
1        00000164 00006000              nop 4
1        00000168 00000012              b spin?
1        0000016c 00000000              nop
1        00000170 00000000              nop
1        00000174 00000000              nop
1        00000178 00000000              nop
1        0000017c 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  112

1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  113

1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     863                    
     864                    ;; ======== HWI_Obj HWI_INT12 ========
     865                    ;; defines the INT12 Interrupt
     866                    ;;
     867                    ;; HWI_Obj HWI_INT12 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, Intr
     868                            .global HWI_INT12
     869                            .asg HWI_unused, _function
     870                            .asg "Nothing", _monitor
     871                            .asg 00H, _addr
     872                            .asg "signed", _dataType
     873                            .asg "STS_add(*addr)", _operation
     874                            .asg "USER", _client
     875                            .asg 00H, _iUseDispatcher
     876                            .asg 00H, _iArg
     877                            .asg 01808H, _IntrMask
     878                            .asg 01H, _iCCBitMask
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  114

     879                            .asg 00H, _iLoadTrack
     880 00000180                   HWI_Obj 1, HWI_INT12, 12, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDis
1        00000180                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT12, HWI_unused
1                           
1                                   .global HWI_INT12$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT12$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 0000000C  HWI_INT12          .set    12
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi12, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (12 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  115

1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        00000180                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  116

1                                   .global hwi12
1                           hwi12:
1                                   .if ((12 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((12 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (12 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  117

1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        00000180           spin?
1        00000180 00000012              b spin?             ; nested branches to block interrupts
1        00000184 00006000              nop 4
1        00000188 00000012              b spin?
1        0000018c 00000000              nop
1        00000190 00000000              nop
1        00000194 00000000              nop
1        00000198 00000000              nop
1        0000019c 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  118

1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  119

1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     881                    
     882                    ;; ======== HWI_Obj HWI_INT13 ========
     883                    ;; defines the INT13 Interrupt
     884                    ;;
     885                    ;; HWI_Obj HWI_INT13 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, Intr
     886                            .global HWI_INT13
     887                            .asg HWI_unused, _function
     888                            .asg "Nothing", _monitor
     889                            .asg 00H, _addr
     890                            .asg "signed", _dataType
     891                            .asg "STS_add(*addr)", _operation
     892                            .asg "USER", _client
     893                            .asg 00H, _iUseDispatcher
     894                            .asg 00H, _iArg
     895                            .asg 02000H, _IntrMask
     896                            .asg 01H, _iCCBitMask
     897                            .asg 00H, _iLoadTrack
     898 000001a0                   HWI_Obj 1, HWI_INT13, 13, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDis
1        000001a0                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  120

1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT13, HWI_unused
1                           
1                                   .global HWI_INT13$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT13$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 0000000D  HWI_INT13          .set    13
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi13, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (13 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  121

1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        000001a0                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi13
1                           hwi13:
1                                   .if ((13 == 0))
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  122

1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((13 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (13 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  123

1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        000001a0           spin?
1        000001a0 00000012              b spin?             ; nested branches to block interrupts
1        000001a4 00006000              nop 4
1        000001a8 00000012              b spin?
1        000001ac 00000000              nop
1        000001b0 00000000              nop
1        000001b4 00000000              nop
1        000001b8 00000000              nop
1        000001bc 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  124

1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  125

1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     899                    
     900                    ;; ======== HWI_Obj HWI_INT14 ========
     901                    ;; defines the INT14 Interrupt
     902                    ;;
     903                    ;; HWI_Obj HWI_INT14 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, Intr
     904                            .global HWI_INT14
     905                            .asg CLK_F_isr, _function
     906                            .asg "Nothing", _monitor
     907                            .asg 00H, _addr
     908                            .asg "signed", _dataType
     909                            .asg "STS_add(*addr)", _operation
     910                            .asg "CLK", _client
     911                            .asg 01H, _iUseDispatcher
     912                            .asg CLK_A_TABBEG, _iArg
     913                            .asg 04000H, _IntrMask
     914                            .asg 01H, _iCCBitMask
     915                            .asg 00H, _iLoadTrack
     916 000001c0                   HWI_Obj 1, HWI_INT14, 14, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDis
1        000001c0                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT14, CLK_F_isr
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  126

1                           
1                                   .global HWI_INT14$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT14$hwi .set 0
1                           
1                                   .if (1 != 0)
1                 0000000E  HWI_INT14          .set    14
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi14, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (CLK$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (14 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    01H, local_dispatch
1                                   .asg    CLK_F_isr, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("CLK_F_isr", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (1 = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg CLK_F_isr, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  127

1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        000001c0                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi14
1                           hwi14:
1                                   .if ((14 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  128

1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((14 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (14 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!01H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  129

1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1                           spin?
1                                       b spin?             ; nested branches to block interrupts
1                                       nop 4
1                                       b spin?
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                                       nop
1                           
1                                   .else
1                                       .if ( 01H )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp("CLK_F_isr", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((00H != 0) & (14 > 3) & (14 < 16))
1                            
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  130

1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1        000001c0 003C54F6                      stw b0, *b15--[2]
1        000001c4 0038A35A                      mvk 14, b0
1        000001c8 003C22F6                      stw b0, *+b15[1]
1        000001cc 0000002A!                     mvkl CLK_F_isr, b0
1        000001d0 0000006A!                     mvkh CLK_F_isr, b0
1        000001d4 00000362                      b b0
1        000001d8 003C42E6                      ldw *+b15[2], b0
1        000001dc 00006000                      nop 4
1                           
1                                           .endif
1                           
1        000002f0                           .sect   ".cinit"
1                                           .align  8
1        000002f0 00000010                  .field  4 * STD_TARGWORDMAUS
1        000002f4 000000E0!                 .field  _HWI_dispatchTab + (4 * 14 * STD_TARGWORDMAUS)
1        000002f8 00000000!                 .field  FXN_F_run
1        000002fc 00004000                  .field  04000H
1        00000300 00000001                  .field  01H
1        00000304 00000000!                 .field  CLK_A_TABBEG
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  131

1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     917                    
     918                    ;; ======== HWI_Obj HWI_INT15 ========
     919                    ;; defines the INT15 Interrupt
     920                    ;;
     921                    ;; HWI_Obj HWI_INT15 (function, monitor, addr, dataType, operation, client, iUseDispatcher, iArg, Intr
     922                            .global HWI_INT15
     923                            .asg HWI_unused, _function
     924                            .asg "Nothing", _monitor
     925                            .asg 00H, _addr
     926                            .asg "signed", _dataType
     927                            .asg "STS_add(*addr)", _operation
     928                            .asg "USER", _client
     929                            .asg 00H, _iUseDispatcher
     930                            .asg 00H, _iArg
     931                            .asg 08000H, _IntrMask
     932                            .asg 01H, _iCCBitMask
     933                            .asg 00H, _iLoadTrack
     934 00000308                   HWI_Obj 1, HWI_INT15, 15, _function, _monitor, _addr, _dataType, _operation, _client, _iUseDis
1        00000308                   CHK_nargs "HWI_Obj", client
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global HWI_INT15, HWI_unused
1                           
1                                   .global HWI_INT15$hwi      ; generate symbol for vbd/rta
1                 00000000  HWI_INT15$hwi .set 0
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  132

1                                   .if (1 != 0)
1                 0000000F  HWI_INT15          .set    15
1                                   .endif
1                                   
1                                   .var    vector, clientcfg
1                           
1                                   .asg hwi15, vector            ; default vector = self branch
1                           
1                                   ; set clientcfg to 1 (or 0) according to whether the client module 
1                                   ; is configured (or not).
1                                   .asg 0, clientcfg
1                                   .if ($symcmp(client, "USER") != 0) 
1                                     .if ($symcmp(client, "CSL") == 0)
1                                       .asg 1, clientcfg
1                                     .else
1                                       .if (:client:$ = 1)
1                                           .asg 1, clientcfg
1                                       .endif
1                                     .endif
1                                   .endif
1                           
1                                   ; The following call to .mexit is to avoid generation of HWI objects
1                                   ; for interrupts greater that INT15.  This allows an HWI_UNUSED object
1                                   ; to be listed in the configuration.  This exit code was first put at
1                                   ; the start of the macro but this caused an error saying that USER$
1                                   ; was undefined.  The exit was put at this point in the macro to avoid
1                                   ; the build error. 
1                                   .if (15 > 15)
1                                       .mexit
1                                   .endif
1                           
1                                   .asg    00H, local_dispatch
1                                   .asg    HWI_unused, local_fxn
1                           
1                                   ; if this object is configured *and* is not "HWI_unused"
1                                   .if ((1 != 0) & ($symcmp("HWI_unused", "HWI_unused") != 0))
1                           
1                                       ; if client is USER or another configured system module
1                                       .if (($symcmp(client, "USER") = 0) | (:clientcfg: = 1))
1                           
1                                           ; if no monitor, simply branch to user function directly
1                                           .if ($symcmp(monitor, "Nothing") = 0)
1                                               .asg :local_fxn:, vector    ; vector = user specified fxn
1                           
1                                           ; else when need to monitor, create a function stub and call it
1                                           .else
1                                               .if ( local_dispatch )
1                                                   .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, CLK_F_isr
1                                                   .else
1                                                       HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, HWI_F_dispat
1                                                   .endif
1                                               .else
1                                                   HWI_mkStub :name:_stub, monitor, addr, operation, :name:_STS, :local_fxn:
1                                               .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  133

1                                               .asg :name:_stub, vector ; vector = HWI stub
1                                           .endif
1                                       .endif
1                                   .endif
1                           
1                           
1                                   .if ($isdefed("HWI_GENERATE_RESET_VEC") = 0)
1                                       .asg        0, HWI_GENERATE_RESET_VEC
1                                   .endif
1                           
1                                   .if HWI_GENERATE_RESET_VEC = 1  ; HWI_GENERATE_RESET_VEC is generated
1                                                                   ; by the config tool
1                                       .sect ".hwi_reset"
1                                       .align 32                   ; align for Joule compressor
1                                       .if STD_TMS320C6400PLUS
1                                           .nocmp
1                                       .endif
1                           
1                                       .if ((id == 0))
1                           
1                                           ; For reset vector do not save/restore register used for 
1                                           ; branch, because b15 has not been initialized yet, and this 
1                                           ; causes an access to an indeterminate place in memory.
1                           
1                                           mvkl :vector:,b0    ; load destination function address to b0
1                                           mvkh :vector:,b0
1                                           b b0            ; start branch to destination function  
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                           nop             ; fill delay slot, pad packet
1                                       .endif
1                                   .endif
1                           
1                                   ; Now define ISFP.  Use a register for branching so can reach whole 
1                                   ; address space.
1                           
1        000001e0                   .sect ".hwi_vec"
1                                   .align 32                       ; align for Joule compressor
1                                   .if STD_TMS320C6400PLUS
1                                       .nocmp
1                                   .endif
1                                   .global hwi15
1                           hwi15:
1                                   .if ((15 == 0))
1                           
1                                       ; For reset vector do not save/restore register used for branch,
1                                       ; because b15 has not been initialized yet, and this causes an 
1                                       ; access to an indeterminate place in memory.
1                           
1                                       mvkl :vector:,b0    ; load destination function address to b0
1                                       mvkh :vector:,b0
1                                       b b0                ; start branch to destination function  
1                                       zero b0             ; disable interrupts by clearing 'IER'
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  134

1                                       mvc b0,ier
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                                       nop                 ; fill delay slot, pad packet
1                           
1                                   .elseif ((15 == 1) & STD_TMS320C6400PLUS)       ; NMI vector
1                           
1                                       ; For the NMI vector, one of the sources can be an exception,
1                                       ; and for exception processing we can't trust B15 to be valid,
1                                       ; so use other register save/restore techniques.
1                           
1                                       mvd b0, b0          ; juggle for 3 cycles
1                           ||          mvkl :vector:, b0
1                                       mvkh :vector:, b0
1                                       b b0
1                                       nop
1                                       nop                 ; orignal b0 lands here
1                                       nop 2
1                                       nop
1                           
1                                   .elseif (15 == 2)
1                                       .if (RTDX_USERTEXECUTION)
1                           
1                                           .ref RTEMU_exe
1                           
1                                           stw b0,*b15--[2]        ; temp save b0 on stack 
1                                           mvkl RTEMU_exe,b0       ; load destination function address
1                                           mvkh RTEMU_exe,b0
1                                           b b0                    ; start branch to destination function  
1                                           ldw *++b15[2],b0        ; restore b0 register
1                                           nop 2                   ; fill 2 b0 restore/branch delay slots
1                                           nop                     ; fill delay slot, pad packet
1                                           nop                     ; fill delay slot, pad packet
1                           
1                                       .else
1                           
1                           spin?
1                                           b spin?         ; nested branches to block interrupts
1                                           nop 4
1                                           b spin?
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                                           nop
1                           
1                                       .endif
1                           
1                                   .elseif (($symcmp(local_fxn, "HWI_unused") == 0) & (!00H))
1                           
1                                       ; plug inifinite loop -- with nested branches to
1                                       ; disable interrupts -- for all undefined vectors that
1                                       ; aren't checked to "Use HWI Dispatcher"
1                           
1        000001e0           spin?
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  135

1        000001e0 00000012              b spin?             ; nested branches to block interrupts
1        000001e4 00006000              nop 4
1        000001e8 00000012              b spin?
1        000001ec 00000000              nop
1        000001f0 00000000              nop
1        000001f4 00000000              nop
1        000001f8 00000000              nop
1        000001fc 00000000              nop
1                           
1                                   .else
1                                       .if ( local_dispatch )
1                                           .global _HWI_dispatchTab
1                                           .var    dispatch_fxn
1                                           .var    vec_fxn
1                           
1                                           .if ( $symcmp(":local_fxn:", "CLK_F_isr") = 0 )
1                           
1                                               .global     CLK_F_isr
1                                               .global     FXN_F_run
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    CLK_F_isr, vec_fxn
1                                               .else
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        FXN_F_run, dispatch_fxn
1                           
1                                           .else
1                                               .global     HWI_F_dispatch
1                                               ;
1                                               ; We allow dispatcher to be selected even for HWIs that
1                                               ; are HWI_unused.  Call FXN_F_nop in this case.
1                                               ; The assumption is that the user will subsequently call
1                                               ; IRQ_config to set the function to something real.
1                                               ;
1                                               .if ($symcmp(local_fxn, "HWI_unused") == 0)
1                                                   .asg    FXN_F_nop, local_fxn
1                                               .endif
1                           
1                                               .if ($symcmp(monitor, "Nothing") = 0)
1                                                   .asg    HWI_F_dispatch, vec_fxn
1                                               .else
1                                                   ; HWI_F_dispatch will be called by monitor
1                                                   .asg    :name:_stub, vec_fxn
1                                               .endif
1                                               .asg        :local_fxn:, dispatch_fxn
1                           
1                                           .endif
1                                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                            
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vec_fxn determined above
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  136

1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vec_fxn:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :name:_loadStub, b0
1                                               mvkh :name:_loadStub, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .else
1                           
1                                               stw b0, *b15--[2]
1                                               mvk :id:, b0
1                                               stw b0, *+b15[1]
1                                               mvkl :vec_fxn:, b0
1                                               mvkh :vec_fxn:, b0
1                                               b b0
1                                               ldw *+b15[2], b0
1                                               nop 4
1                           
1                                           .endif
1                           
1                                           .sect   ".cinit"
1                                           .align  8
1                                           .field  4 * STD_TARGWORDMAUS
1                                           .field  _HWI_dispatchTab + (4 * :id: * STD_TARGWORDMAUS)
1                                           .field  :dispatch_fxn:
1                                           .field  :intrmask:
1                                           .field  :ccmask:
1                                           .field  :arg:
1                           
1                                       .else
1                                           ; For all vectors besides reset use a common packet format. This
1                                           ; packet can be used for self branches as well as branches to
1                                           ; HWI stubs.
1                           
1                                           .if ((loadtrack != 0) & (id > 3) & (id < 16))
1                           
1                                               ; if load tracking configured for this interrupt, and this
1                                               ; is a "normal" application interrupt... generate
1                                               ; a load stub that will be called first, and will then
1                                               ; chain to the vector determined above
1                           
1                                               HWI_mkLoadStub :name:_loadStub, :vector:
1                           
1                                               .sect ".hwi_vec"  ; must restore sect following load macro
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :name:_loadStub,b0 ; load destination address to b0
1                                               mvkh :name:_loadStub,b0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  137

1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .else
1                           
1                                               stw b0,*b15--[2]        ; temp save b0 on stack
1                                               mvkl :vector:,b0        ; load destination address to b0
1                                               mvkh :vector:,b0
1                                               b b0                    ; start branch to destination
1                                               ldw *++b15[2],b0        ; restore b0 register
1                                               nop 2                   ; fill 2 of b0 restore delay slots
1                                               nop                     ; fill delay slot, pad packet
1                                               nop                     ; fill delay slot, pad packet
1                           
1                                           .endif
1                           
1                                       .endif
1                           
1                                   .endif
1                                   
     935                    
     936                    ;; ======== ECM_Obj EVENT4 ========
     937                    ;; <add comments here>
     938                    ;;
     939                    ;; ECM_Obj EVENT4 (function, arg)
     940                            .global EVENT4
     941                            .asg _UTL_halt, _function
     942                            .asg 00H, _arg
     943 00000200                   ECM_Obj 1, EVENT4, 4, _function, _arg
1                                   
1                                   .global EVENT4
1                           
1                                   .if (1 != 0)
1                 00000004  EVENT4  .set    4            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  138

1                           
     944                    
     945                    ;; ======== ECM_Obj EVENT5 ========
     946                    ;; <add comments here>
     947                    ;;
     948                    ;; ECM_Obj EVENT5 (function, arg)
     949                            .global EVENT5
     950                            .asg _UTL_halt, _function
     951                            .asg 00H, _arg
     952 00000200                   ECM_Obj 1, EVENT5, 5, _function, _arg
1                                   
1                                   .global EVENT5
1                           
1                                   .if (1 != 0)
1                 00000005  EVENT5  .set    5            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
     953                    
     954                    ;; ======== ECM_Obj EVENT6 ========
     955                    ;; <add comments here>
     956                    ;;
     957                    ;; ECM_Obj EVENT6 (function, arg)
     958                            .global EVENT6
     959                            .asg _UTL_halt, _function
     960                            .asg 00H, _arg
     961 00000200                   ECM_Obj 1, EVENT6, 6, _function, _arg
1                                   
1                                   .global EVENT6
1                           
1                                   .if (1 != 0)
1                 00000006  EVENT6  .set    6            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  139

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
     962                    
     963                    ;; ======== ECM_Obj EVENT7 ========
     964                    ;; <add comments here>
     965                    ;;
     966                    ;; ECM_Obj EVENT7 (function, arg)
     967                            .global EVENT7
     968                            .asg _UTL_halt, _function
     969                            .asg 00H, _arg
     970 00000200                   ECM_Obj 1, EVENT7, 7, _function, _arg
1                                   
1                                   .global EVENT7
1                           
1                                   .if (1 != 0)
1                 00000007  EVENT7  .set    7            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
     971                    
     972                    ;; ======== ECM_Obj EVENT8 ========
     973                    ;; <add comments here>
     974                    ;;
     975                    ;; ECM_Obj EVENT8 (function, arg)
     976                            .global EVENT8
     977                            .asg _UTL_halt, _function
     978                            .asg 00H, _arg
     979 00000200                   ECM_Obj 1, EVENT8, 8, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  140

1                                   .global EVENT8
1                           
1                                   .if (1 != 0)
1                 00000008  EVENT8  .set    8            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
     980                    
     981                    ;; ======== ECM_Obj EVENT9 ========
     982                    ;; <add comments here>
     983                    ;;
     984                    ;; ECM_Obj EVENT9 (function, arg)
     985                            .global EVENT9
     986                            .asg _UTL_halt, _function
     987                            .asg 00H, _arg
     988 00000200                   ECM_Obj 1, EVENT9, 9, _function, _arg
1                                   
1                                   .global EVENT9
1                           
1                                   .if (1 != 0)
1                 00000009  EVENT9  .set    9            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  141

1                           
     989                    
     990                    ;; ======== ECM_Obj EVENT10 ========
     991                    ;; <add comments here>
     992                    ;;
     993                    ;; ECM_Obj EVENT10 (function, arg)
     994                            .global EVENT10
     995                            .asg _UTL_halt, _function
     996                            .asg 00H, _arg
     997 00000200                   ECM_Obj 1, EVENT10, 10, _function, _arg
1                                   
1                                   .global EVENT10
1                           
1                                   .if (1 != 0)
1                 0000000A  EVENT10  .set    10            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
     998                    
     999                    ;; ======== ECM_Obj EVENT11 ========
    1000                    ;; <add comments here>
    1001                    ;;
    1002                    ;; ECM_Obj EVENT11 (function, arg)
    1003                            .global EVENT11
    1004                            .asg _UTL_halt, _function
    1005                            .asg 00H, _arg
    1006 00000200                   ECM_Obj 1, EVENT11, 11, _function, _arg
1                                   
1                                   .global EVENT11
1                           
1                                   .if (1 != 0)
1                 0000000B  EVENT11  .set    11            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  142

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1007                    
    1008                    ;; ======== ECM_Obj EVENT12 ========
    1009                    ;; <add comments here>
    1010                    ;;
    1011                    ;; ECM_Obj EVENT12 (function, arg)
    1012                            .global EVENT12
    1013                            .asg _UTL_halt, _function
    1014                            .asg 00H, _arg
    1015 00000200                   ECM_Obj 1, EVENT12, 12, _function, _arg
1                                   
1                                   .global EVENT12
1                           
1                                   .if (1 != 0)
1                 0000000C  EVENT12  .set    12            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1016                    
    1017                    ;; ======== ECM_Obj EVENT13 ========
    1018                    ;; <add comments here>
    1019                    ;;
    1020                    ;; ECM_Obj EVENT13 (function, arg)
    1021                            .global EVENT13
    1022                            .asg _UTL_halt, _function
    1023                            .asg 00H, _arg
    1024 00000200                   ECM_Obj 1, EVENT13, 13, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  143

1                                   .global EVENT13
1                           
1                                   .if (1 != 0)
1                 0000000D  EVENT13  .set    13            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1025                    
    1026                    ;; ======== ECM_Obj EVENT14 ========
    1027                    ;; <add comments here>
    1028                    ;;
    1029                    ;; ECM_Obj EVENT14 (function, arg)
    1030                            .global EVENT14
    1031                            .asg _UTL_halt, _function
    1032                            .asg 00H, _arg
    1033 00000200                   ECM_Obj 1, EVENT14, 14, _function, _arg
1                                   
1                                   .global EVENT14
1                           
1                                   .if (1 != 0)
1                 0000000E  EVENT14  .set    14            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  144

1                           
    1034                    
    1035                    ;; ======== ECM_Obj EVENT15 ========
    1036                    ;; <add comments here>
    1037                    ;;
    1038                    ;; ECM_Obj EVENT15 (function, arg)
    1039                            .global EVENT15
    1040                            .asg _UTL_halt, _function
    1041                            .asg 00H, _arg
    1042 00000200                   ECM_Obj 1, EVENT15, 15, _function, _arg
1                                   
1                                   .global EVENT15
1                           
1                                   .if (1 != 0)
1                 0000000F  EVENT15  .set    15            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1043                    
    1044                    ;; ======== ECM_Obj EVENT16 ========
    1045                    ;; <add comments here>
    1046                    ;;
    1047                    ;; ECM_Obj EVENT16 (function, arg)
    1048                            .global EVENT16
    1049                            .asg _UTL_halt, _function
    1050                            .asg 00H, _arg
    1051 00000200                   ECM_Obj 1, EVENT16, 16, _function, _arg
1                                   
1                                   .global EVENT16
1                           
1                                   .if (1 != 0)
1                 00000010  EVENT16  .set    16            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  145

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1052                    
    1053                    ;; ======== ECM_Obj EVENT17 ========
    1054                    ;; <add comments here>
    1055                    ;;
    1056                    ;; ECM_Obj EVENT17 (function, arg)
    1057                            .global EVENT17
    1058                            .asg _UTL_halt, _function
    1059                            .asg 00H, _arg
    1060 00000200                   ECM_Obj 1, EVENT17, 17, _function, _arg
1                                   
1                                   .global EVENT17
1                           
1                                   .if (1 != 0)
1                 00000011  EVENT17  .set    17            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1061                    
    1062                    ;; ======== ECM_Obj EVENT18 ========
    1063                    ;; <add comments here>
    1064                    ;;
    1065                    ;; ECM_Obj EVENT18 (function, arg)
    1066                            .global EVENT18
    1067                            .asg _UTL_halt, _function
    1068                            .asg 00H, _arg
    1069 00000200                   ECM_Obj 1, EVENT18, 18, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  146

1                                   .global EVENT18
1                           
1                                   .if (1 != 0)
1                 00000012  EVENT18  .set    18            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1070                    
    1071                    ;; ======== ECM_Obj EVENT19 ========
    1072                    ;; <add comments here>
    1073                    ;;
    1074                    ;; ECM_Obj EVENT19 (function, arg)
    1075                            .global EVENT19
    1076                            .asg _UTL_halt, _function
    1077                            .asg 00H, _arg
    1078 00000200                   ECM_Obj 1, EVENT19, 19, _function, _arg
1                                   
1                                   .global EVENT19
1                           
1                                   .if (1 != 0)
1                 00000013  EVENT19  .set    19            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  147

1                           
    1079                    
    1080                    ;; ======== ECM_Obj EVENT20 ========
    1081                    ;; <add comments here>
    1082                    ;;
    1083                    ;; ECM_Obj EVENT20 (function, arg)
    1084                            .global EVENT20
    1085                            .asg _UTL_halt, _function
    1086                            .asg 00H, _arg
    1087 00000200                   ECM_Obj 1, EVENT20, 20, _function, _arg
1                                   
1                                   .global EVENT20
1                           
1                                   .if (1 != 0)
1                 00000014  EVENT20  .set    20            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1088                    
    1089                    ;; ======== ECM_Obj EVENT21 ========
    1090                    ;; <add comments here>
    1091                    ;;
    1092                    ;; ECM_Obj EVENT21 (function, arg)
    1093                            .global EVENT21
    1094                            .asg _UTL_halt, _function
    1095                            .asg 00H, _arg
    1096 00000200                   ECM_Obj 1, EVENT21, 21, _function, _arg
1                                   
1                                   .global EVENT21
1                           
1                                   .if (1 != 0)
1                 00000015  EVENT21  .set    21            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  148

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1097                    
    1098                    ;; ======== ECM_Obj EVENT22 ========
    1099                    ;; <add comments here>
    1100                    ;;
    1101                    ;; ECM_Obj EVENT22 (function, arg)
    1102                            .global EVENT22
    1103                            .asg _UTL_halt, _function
    1104                            .asg 00H, _arg
    1105 00000200                   ECM_Obj 1, EVENT22, 22, _function, _arg
1                                   
1                                   .global EVENT22
1                           
1                                   .if (1 != 0)
1                 00000016  EVENT22  .set    22            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1106                    
    1107                    ;; ======== ECM_Obj EVENT23 ========
    1108                    ;; <add comments here>
    1109                    ;;
    1110                    ;; ECM_Obj EVENT23 (function, arg)
    1111                            .global EVENT23
    1112                            .asg _UTL_halt, _function
    1113                            .asg 00H, _arg
    1114 00000200                   ECM_Obj 1, EVENT23, 23, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  149

1                                   .global EVENT23
1                           
1                                   .if (1 != 0)
1                 00000017  EVENT23  .set    23            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1115                    
    1116                    ;; ======== ECM_Obj EVENT24 ========
    1117                    ;; <add comments here>
    1118                    ;;
    1119                    ;; ECM_Obj EVENT24 (function, arg)
    1120                            .global EVENT24
    1121                            .asg _UTL_halt, _function
    1122                            .asg 00H, _arg
    1123 00000200                   ECM_Obj 1, EVENT24, 24, _function, _arg
1                                   
1                                   .global EVENT24
1                           
1                                   .if (1 != 0)
1                 00000018  EVENT24  .set    24            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  150

1                           
    1124                    
    1125                    ;; ======== ECM_Obj EVENT25 ========
    1126                    ;; <add comments here>
    1127                    ;;
    1128                    ;; ECM_Obj EVENT25 (function, arg)
    1129                            .global EVENT25
    1130                            .asg _UTL_halt, _function
    1131                            .asg 00H, _arg
    1132 00000200                   ECM_Obj 1, EVENT25, 25, _function, _arg
1                                   
1                                   .global EVENT25
1                           
1                                   .if (1 != 0)
1                 00000019  EVENT25  .set    25            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1133                    
    1134                    ;; ======== ECM_Obj EVENT26 ========
    1135                    ;; <add comments here>
    1136                    ;;
    1137                    ;; ECM_Obj EVENT26 (function, arg)
    1138                            .global EVENT26
    1139                            .asg _UTL_halt, _function
    1140                            .asg 00H, _arg
    1141 00000200                   ECM_Obj 1, EVENT26, 26, _function, _arg
1                                   
1                                   .global EVENT26
1                           
1                                   .if (1 != 0)
1                 0000001A  EVENT26  .set    26            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  151

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1142                    
    1143                    ;; ======== ECM_Obj EVENT27 ========
    1144                    ;; <add comments here>
    1145                    ;;
    1146                    ;; ECM_Obj EVENT27 (function, arg)
    1147                            .global EVENT27
    1148                            .asg _UTL_halt, _function
    1149                            .asg 00H, _arg
    1150 00000200                   ECM_Obj 1, EVENT27, 27, _function, _arg
1                                   
1                                   .global EVENT27
1                           
1                                   .if (1 != 0)
1                 0000001B  EVENT27  .set    27            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1151                    
    1152                    ;; ======== ECM_Obj EVENT28 ========
    1153                    ;; <add comments here>
    1154                    ;;
    1155                    ;; ECM_Obj EVENT28 (function, arg)
    1156                            .global EVENT28
    1157                            .asg _UTL_halt, _function
    1158                            .asg 00H, _arg
    1159 00000200                   ECM_Obj 1, EVENT28, 28, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  152

1                                   .global EVENT28
1                           
1                                   .if (1 != 0)
1                 0000001C  EVENT28  .set    28            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1160                    
    1161                    ;; ======== ECM_Obj EVENT29 ========
    1162                    ;; <add comments here>
    1163                    ;;
    1164                    ;; ECM_Obj EVENT29 (function, arg)
    1165                            .global EVENT29
    1166                            .asg _UTL_halt, _function
    1167                            .asg 00H, _arg
    1168 00000200                   ECM_Obj 1, EVENT29, 29, _function, _arg
1                                   
1                                   .global EVENT29
1                           
1                                   .if (1 != 0)
1                 0000001D  EVENT29  .set    29            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  153

1                           
    1169                    
    1170                    ;; ======== ECM_Obj EVENT30 ========
    1171                    ;; <add comments here>
    1172                    ;;
    1173                    ;; ECM_Obj EVENT30 (function, arg)
    1174                            .global EVENT30
    1175                            .asg _UTL_halt, _function
    1176                            .asg 00H, _arg
    1177 00000200                   ECM_Obj 1, EVENT30, 30, _function, _arg
1                                   
1                                   .global EVENT30
1                           
1                                   .if (1 != 0)
1                 0000001E  EVENT30  .set    30            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1178                    
    1179                    ;; ======== ECM_Obj EVENT31 ========
    1180                    ;; <add comments here>
    1181                    ;;
    1182                    ;; ECM_Obj EVENT31 (function, arg)
    1183                            .global EVENT31
    1184                            .asg _UTL_halt, _function
    1185                            .asg 00H, _arg
    1186 00000200                   ECM_Obj 1, EVENT31, 31, _function, _arg
1                                   
1                                   .global EVENT31
1                           
1                                   .if (1 != 0)
1                 0000001F  EVENT31  .set    31            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  154

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1187                    
    1188                    ;; ======== ECM_Obj EVENT32 ========
    1189                    ;; <add comments here>
    1190                    ;;
    1191                    ;; ECM_Obj EVENT32 (function, arg)
    1192                            .global EVENT32
    1193                            .asg _UTL_halt, _function
    1194                            .asg 00H, _arg
    1195 00000200                   ECM_Obj 1, EVENT32, 32, _function, _arg
1                                   
1                                   .global EVENT32
1                           
1                                   .if (1 != 0)
1                 00000020  EVENT32  .set    32            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1196                    
    1197                    ;; ======== ECM_Obj EVENT33 ========
    1198                    ;; <add comments here>
    1199                    ;;
    1200                    ;; ECM_Obj EVENT33 (function, arg)
    1201                            .global EVENT33
    1202                            .asg _UTL_halt, _function
    1203                            .asg 00H, _arg
    1204 00000200                   ECM_Obj 1, EVENT33, 33, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  155

1                                   .global EVENT33
1                           
1                                   .if (1 != 0)
1                 00000021  EVENT33  .set    33            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1205                    
    1206                    ;; ======== ECM_Obj EVENT34 ========
    1207                    ;; <add comments here>
    1208                    ;;
    1209                    ;; ECM_Obj EVENT34 (function, arg)
    1210                            .global EVENT34
    1211                            .asg _UTL_halt, _function
    1212                            .asg 00H, _arg
    1213 00000200                   ECM_Obj 1, EVENT34, 34, _function, _arg
1                                   
1                                   .global EVENT34
1                           
1                                   .if (1 != 0)
1                 00000022  EVENT34  .set    34            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  156

1                           
    1214                    
    1215                    ;; ======== ECM_Obj EVENT35 ========
    1216                    ;; <add comments here>
    1217                    ;;
    1218                    ;; ECM_Obj EVENT35 (function, arg)
    1219                            .global EVENT35
    1220                            .asg _UTL_halt, _function
    1221                            .asg 00H, _arg
    1222 00000200                   ECM_Obj 1, EVENT35, 35, _function, _arg
1                                   
1                                   .global EVENT35
1                           
1                                   .if (1 != 0)
1                 00000023  EVENT35  .set    35            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1223                    
    1224                    ;; ======== ECM_Obj EVENT36 ========
    1225                    ;; <add comments here>
    1226                    ;;
    1227                    ;; ECM_Obj EVENT36 (function, arg)
    1228                            .global EVENT36
    1229                            .asg _UTL_halt, _function
    1230                            .asg 00H, _arg
    1231 00000200                   ECM_Obj 1, EVENT36, 36, _function, _arg
1                                   
1                                   .global EVENT36
1                           
1                                   .if (1 != 0)
1                 00000024  EVENT36  .set    36            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  157

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1232                    
    1233                    ;; ======== ECM_Obj EVENT37 ========
    1234                    ;; <add comments here>
    1235                    ;;
    1236                    ;; ECM_Obj EVENT37 (function, arg)
    1237                            .global EVENT37
    1238                            .asg _UTL_halt, _function
    1239                            .asg 00H, _arg
    1240 00000200                   ECM_Obj 1, EVENT37, 37, _function, _arg
1                                   
1                                   .global EVENT37
1                           
1                                   .if (1 != 0)
1                 00000025  EVENT37  .set    37            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1241                    
    1242                    ;; ======== ECM_Obj EVENT38 ========
    1243                    ;; <add comments here>
    1244                    ;;
    1245                    ;; ECM_Obj EVENT38 (function, arg)
    1246                            .global EVENT38
    1247                            .asg _UTL_halt, _function
    1248                            .asg 00H, _arg
    1249 00000200                   ECM_Obj 1, EVENT38, 38, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  158

1                                   .global EVENT38
1                           
1                                   .if (1 != 0)
1                 00000026  EVENT38  .set    38            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1250                    
    1251                    ;; ======== ECM_Obj EVENT39 ========
    1252                    ;; <add comments here>
    1253                    ;;
    1254                    ;; ECM_Obj EVENT39 (function, arg)
    1255                            .global EVENT39
    1256                            .asg _UTL_halt, _function
    1257                            .asg 00H, _arg
    1258 00000200                   ECM_Obj 1, EVENT39, 39, _function, _arg
1                                   
1                                   .global EVENT39
1                           
1                                   .if (1 != 0)
1                 00000027  EVENT39  .set    39            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  159

1                           
    1259                    
    1260                    ;; ======== ECM_Obj EVENT40 ========
    1261                    ;; <add comments here>
    1262                    ;;
    1263                    ;; ECM_Obj EVENT40 (function, arg)
    1264                            .global EVENT40
    1265                            .asg _UTL_halt, _function
    1266                            .asg 00H, _arg
    1267 00000200                   ECM_Obj 1, EVENT40, 40, _function, _arg
1                                   
1                                   .global EVENT40
1                           
1                                   .if (1 != 0)
1                 00000028  EVENT40  .set    40            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1268                    
    1269                    ;; ======== ECM_Obj EVENT41 ========
    1270                    ;; <add comments here>
    1271                    ;;
    1272                    ;; ECM_Obj EVENT41 (function, arg)
    1273                            .global EVENT41
    1274                            .asg _UTL_halt, _function
    1275                            .asg 00H, _arg
    1276 00000200                   ECM_Obj 1, EVENT41, 41, _function, _arg
1                                   
1                                   .global EVENT41
1                           
1                                   .if (1 != 0)
1                 00000029  EVENT41  .set    41            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  160

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1277                    
    1278                    ;; ======== ECM_Obj EVENT42 ========
    1279                    ;; <add comments here>
    1280                    ;;
    1281                    ;; ECM_Obj EVENT42 (function, arg)
    1282                            .global EVENT42
    1283                            .asg _UTL_halt, _function
    1284                            .asg 00H, _arg
    1285 00000200                   ECM_Obj 1, EVENT42, 42, _function, _arg
1                                   
1                                   .global EVENT42
1                           
1                                   .if (1 != 0)
1                 0000002A  EVENT42  .set    42            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1286                    
    1287                    ;; ======== ECM_Obj EVENT43 ========
    1288                    ;; <add comments here>
    1289                    ;;
    1290                    ;; ECM_Obj EVENT43 (function, arg)
    1291                            .global EVENT43
    1292                            .asg _UTL_halt, _function
    1293                            .asg 00H, _arg
    1294 00000200                   ECM_Obj 1, EVENT43, 43, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  161

1                                   .global EVENT43
1                           
1                                   .if (1 != 0)
1                 0000002B  EVENT43  .set    43            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1295                    
    1296                    ;; ======== ECM_Obj EVENT44 ========
    1297                    ;; <add comments here>
    1298                    ;;
    1299                    ;; ECM_Obj EVENT44 (function, arg)
    1300                            .global EVENT44
    1301                            .asg _UTL_halt, _function
    1302                            .asg 00H, _arg
    1303 00000200                   ECM_Obj 1, EVENT44, 44, _function, _arg
1                                   
1                                   .global EVENT44
1                           
1                                   .if (1 != 0)
1                 0000002C  EVENT44  .set    44            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  162

1                           
    1304                    
    1305                    ;; ======== ECM_Obj EVENT45 ========
    1306                    ;; <add comments here>
    1307                    ;;
    1308                    ;; ECM_Obj EVENT45 (function, arg)
    1309                            .global EVENT45
    1310                            .asg _UTL_halt, _function
    1311                            .asg 00H, _arg
    1312 00000200                   ECM_Obj 1, EVENT45, 45, _function, _arg
1                                   
1                                   .global EVENT45
1                           
1                                   .if (1 != 0)
1                 0000002D  EVENT45  .set    45            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1313                    
    1314                    ;; ======== ECM_Obj EVENT46 ========
    1315                    ;; <add comments here>
    1316                    ;;
    1317                    ;; ECM_Obj EVENT46 (function, arg)
    1318                            .global EVENT46
    1319                            .asg _UTL_halt, _function
    1320                            .asg 00H, _arg
    1321 00000200                   ECM_Obj 1, EVENT46, 46, _function, _arg
1                                   
1                                   .global EVENT46
1                           
1                                   .if (1 != 0)
1                 0000002E  EVENT46  .set    46            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  163

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1322                    
    1323                    ;; ======== ECM_Obj EVENT47 ========
    1324                    ;; <add comments here>
    1325                    ;;
    1326                    ;; ECM_Obj EVENT47 (function, arg)
    1327                            .global EVENT47
    1328                            .asg _UTL_halt, _function
    1329                            .asg 00H, _arg
    1330 00000200                   ECM_Obj 1, EVENT47, 47, _function, _arg
1                                   
1                                   .global EVENT47
1                           
1                                   .if (1 != 0)
1                 0000002F  EVENT47  .set    47            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1331                    
    1332                    ;; ======== ECM_Obj EVENT48 ========
    1333                    ;; <add comments here>
    1334                    ;;
    1335                    ;; ECM_Obj EVENT48 (function, arg)
    1336                            .global EVENT48
    1337                            .asg _UTL_halt, _function
    1338                            .asg 00H, _arg
    1339 00000200                   ECM_Obj 1, EVENT48, 48, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  164

1                                   .global EVENT48
1                           
1                                   .if (1 != 0)
1                 00000030  EVENT48  .set    48            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1340                    
    1341                    ;; ======== ECM_Obj EVENT49 ========
    1342                    ;; <add comments here>
    1343                    ;;
    1344                    ;; ECM_Obj EVENT49 (function, arg)
    1345                            .global EVENT49
    1346                            .asg _UTL_halt, _function
    1347                            .asg 00H, _arg
    1348 00000200                   ECM_Obj 1, EVENT49, 49, _function, _arg
1                                   
1                                   .global EVENT49
1                           
1                                   .if (1 != 0)
1                 00000031  EVENT49  .set    49            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  165

1                           
    1349                    
    1350                    ;; ======== ECM_Obj EVENT50 ========
    1351                    ;; <add comments here>
    1352                    ;;
    1353                    ;; ECM_Obj EVENT50 (function, arg)
    1354                            .global EVENT50
    1355                            .asg _UTL_halt, _function
    1356                            .asg 00H, _arg
    1357 00000200                   ECM_Obj 1, EVENT50, 50, _function, _arg
1                                   
1                                   .global EVENT50
1                           
1                                   .if (1 != 0)
1                 00000032  EVENT50  .set    50            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1358                    
    1359                    ;; ======== ECM_Obj EVENT51 ========
    1360                    ;; <add comments here>
    1361                    ;;
    1362                    ;; ECM_Obj EVENT51 (function, arg)
    1363                            .global EVENT51
    1364                            .asg _UTL_halt, _function
    1365                            .asg 00H, _arg
    1366 00000200                   ECM_Obj 1, EVENT51, 51, _function, _arg
1                                   
1                                   .global EVENT51
1                           
1                                   .if (1 != 0)
1                 00000033  EVENT51  .set    51            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  166

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1367                    
    1368                    ;; ======== ECM_Obj EVENT52 ========
    1369                    ;; <add comments here>
    1370                    ;;
    1371                    ;; ECM_Obj EVENT52 (function, arg)
    1372                            .global EVENT52
    1373                            .asg _UTL_halt, _function
    1374                            .asg 00H, _arg
    1375 00000200                   ECM_Obj 1, EVENT52, 52, _function, _arg
1                                   
1                                   .global EVENT52
1                           
1                                   .if (1 != 0)
1                 00000034  EVENT52  .set    52            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1376                    
    1377                    ;; ======== ECM_Obj EVENT53 ========
    1378                    ;; <add comments here>
    1379                    ;;
    1380                    ;; ECM_Obj EVENT53 (function, arg)
    1381                            .global EVENT53
    1382                            .asg _UTL_halt, _function
    1383                            .asg 00H, _arg
    1384 00000200                   ECM_Obj 1, EVENT53, 53, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  167

1                                   .global EVENT53
1                           
1                                   .if (1 != 0)
1                 00000035  EVENT53  .set    53            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1385                    
    1386                    ;; ======== ECM_Obj EVENT54 ========
    1387                    ;; <add comments here>
    1388                    ;;
    1389                    ;; ECM_Obj EVENT54 (function, arg)
    1390                            .global EVENT54
    1391                            .asg _UTL_halt, _function
    1392                            .asg 00H, _arg
    1393 00000200                   ECM_Obj 1, EVENT54, 54, _function, _arg
1                                   
1                                   .global EVENT54
1                           
1                                   .if (1 != 0)
1                 00000036  EVENT54  .set    54            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  168

1                           
    1394                    
    1395                    ;; ======== ECM_Obj EVENT55 ========
    1396                    ;; <add comments here>
    1397                    ;;
    1398                    ;; ECM_Obj EVENT55 (function, arg)
    1399                            .global EVENT55
    1400                            .asg _UTL_halt, _function
    1401                            .asg 00H, _arg
    1402 00000200                   ECM_Obj 1, EVENT55, 55, _function, _arg
1                                   
1                                   .global EVENT55
1                           
1                                   .if (1 != 0)
1                 00000037  EVENT55  .set    55            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1403                    
    1404                    ;; ======== ECM_Obj EVENT56 ========
    1405                    ;; <add comments here>
    1406                    ;;
    1407                    ;; ECM_Obj EVENT56 (function, arg)
    1408                            .global EVENT56
    1409                            .asg _UTL_halt, _function
    1410                            .asg 00H, _arg
    1411 00000200                   ECM_Obj 1, EVENT56, 56, _function, _arg
1                                   
1                                   .global EVENT56
1                           
1                                   .if (1 != 0)
1                 00000038  EVENT56  .set    56            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  169

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1412                    
    1413                    ;; ======== ECM_Obj EVENT57 ========
    1414                    ;; <add comments here>
    1415                    ;;
    1416                    ;; ECM_Obj EVENT57 (function, arg)
    1417                            .global EVENT57
    1418                            .asg _UTL_halt, _function
    1419                            .asg 00H, _arg
    1420 00000200                   ECM_Obj 1, EVENT57, 57, _function, _arg
1                                   
1                                   .global EVENT57
1                           
1                                   .if (1 != 0)
1                 00000039  EVENT57  .set    57            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1421                    
    1422                    ;; ======== ECM_Obj EVENT58 ========
    1423                    ;; <add comments here>
    1424                    ;;
    1425                    ;; ECM_Obj EVENT58 (function, arg)
    1426                            .global EVENT58
    1427                            .asg _UTL_halt, _function
    1428                            .asg 00H, _arg
    1429 00000200                   ECM_Obj 1, EVENT58, 58, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  170

1                                   .global EVENT58
1                           
1                                   .if (1 != 0)
1                 0000003A  EVENT58  .set    58            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1430                    
    1431                    ;; ======== ECM_Obj EVENT59 ========
    1432                    ;; <add comments here>
    1433                    ;;
    1434                    ;; ECM_Obj EVENT59 (function, arg)
    1435                            .global EVENT59
    1436                            .asg _UTL_halt, _function
    1437                            .asg 00H, _arg
    1438 00000200                   ECM_Obj 1, EVENT59, 59, _function, _arg
1                                   
1                                   .global EVENT59
1                           
1                                   .if (1 != 0)
1                 0000003B  EVENT59  .set    59            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  171

1                           
    1439                    
    1440                    ;; ======== ECM_Obj EVENT60 ========
    1441                    ;; <add comments here>
    1442                    ;;
    1443                    ;; ECM_Obj EVENT60 (function, arg)
    1444                            .global EVENT60
    1445                            .asg _UTL_halt, _function
    1446                            .asg 00H, _arg
    1447 00000200                   ECM_Obj 1, EVENT60, 60, _function, _arg
1                                   
1                                   .global EVENT60
1                           
1                                   .if (1 != 0)
1                 0000003C  EVENT60  .set    60            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1448                    
    1449                    ;; ======== ECM_Obj EVENT61 ========
    1450                    ;; <add comments here>
    1451                    ;;
    1452                    ;; ECM_Obj EVENT61 (function, arg)
    1453                            .global EVENT61
    1454                            .asg _UTL_halt, _function
    1455                            .asg 00H, _arg
    1456 00000200                   ECM_Obj 1, EVENT61, 61, _function, _arg
1                                   
1                                   .global EVENT61
1                           
1                                   .if (1 != 0)
1                 0000003D  EVENT61  .set    61            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  172

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1457                    
    1458                    ;; ======== ECM_Obj EVENT62 ========
    1459                    ;; <add comments here>
    1460                    ;;
    1461                    ;; ECM_Obj EVENT62 (function, arg)
    1462                            .global EVENT62
    1463                            .asg _UTL_halt, _function
    1464                            .asg 00H, _arg
    1465 00000200                   ECM_Obj 1, EVENT62, 62, _function, _arg
1                                   
1                                   .global EVENT62
1                           
1                                   .if (1 != 0)
1                 0000003E  EVENT62  .set    62            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1466                    
    1467                    ;; ======== ECM_Obj EVENT63 ========
    1468                    ;; <add comments here>
    1469                    ;;
    1470                    ;; ECM_Obj EVENT63 (function, arg)
    1471                            .global EVENT63
    1472                            .asg _UTL_halt, _function
    1473                            .asg 00H, _arg
    1474 00000200                   ECM_Obj 1, EVENT63, 63, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  173

1                                   .global EVENT63
1                           
1                                   .if (1 != 0)
1                 0000003F  EVENT63  .set    63            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1475                    
    1476                    ;; ======== ECM_Obj EVENT64 ========
    1477                    ;; <add comments here>
    1478                    ;;
    1479                    ;; ECM_Obj EVENT64 (function, arg)
    1480                            .global EVENT64
    1481                            .asg _UTL_halt, _function
    1482                            .asg 00H, _arg
    1483 00000200                   ECM_Obj 1, EVENT64, 64, _function, _arg
1                                   
1                                   .global EVENT64
1                           
1                                   .if (1 != 0)
1                 00000040  EVENT64  .set    64            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  174

1                           
    1484                    
    1485                    ;; ======== ECM_Obj EVENT65 ========
    1486                    ;; <add comments here>
    1487                    ;;
    1488                    ;; ECM_Obj EVENT65 (function, arg)
    1489                            .global EVENT65
    1490                            .asg _UTL_halt, _function
    1491                            .asg 00H, _arg
    1492 00000200                   ECM_Obj 1, EVENT65, 65, _function, _arg
1                                   
1                                   .global EVENT65
1                           
1                                   .if (1 != 0)
1                 00000041  EVENT65  .set    65            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1493                    
    1494                    ;; ======== ECM_Obj EVENT66 ========
    1495                    ;; <add comments here>
    1496                    ;;
    1497                    ;; ECM_Obj EVENT66 (function, arg)
    1498                            .global EVENT66
    1499                            .asg _UTL_halt, _function
    1500                            .asg 00H, _arg
    1501 00000200                   ECM_Obj 1, EVENT66, 66, _function, _arg
1                                   
1                                   .global EVENT66
1                           
1                                   .if (1 != 0)
1                 00000042  EVENT66  .set    66            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  175

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1502                    
    1503                    ;; ======== ECM_Obj EVENT67 ========
    1504                    ;; <add comments here>
    1505                    ;;
    1506                    ;; ECM_Obj EVENT67 (function, arg)
    1507                            .global EVENT67
    1508                            .asg _UTL_halt, _function
    1509                            .asg 00H, _arg
    1510 00000200                   ECM_Obj 1, EVENT67, 67, _function, _arg
1                                   
1                                   .global EVENT67
1                           
1                                   .if (1 != 0)
1                 00000043  EVENT67  .set    67            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1511                    
    1512                    ;; ======== ECM_Obj EVENT68 ========
    1513                    ;; <add comments here>
    1514                    ;;
    1515                    ;; ECM_Obj EVENT68 (function, arg)
    1516                            .global EVENT68
    1517                            .asg _UTL_halt, _function
    1518                            .asg 00H, _arg
    1519 00000200                   ECM_Obj 1, EVENT68, 68, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  176

1                                   .global EVENT68
1                           
1                                   .if (1 != 0)
1                 00000044  EVENT68  .set    68            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1520                    
    1521                    ;; ======== ECM_Obj EVENT69 ========
    1522                    ;; <add comments here>
    1523                    ;;
    1524                    ;; ECM_Obj EVENT69 (function, arg)
    1525                            .global EVENT69
    1526                            .asg _UTL_halt, _function
    1527                            .asg 00H, _arg
    1528 00000200                   ECM_Obj 1, EVENT69, 69, _function, _arg
1                                   
1                                   .global EVENT69
1                           
1                                   .if (1 != 0)
1                 00000045  EVENT69  .set    69            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  177

1                           
    1529                    
    1530                    ;; ======== ECM_Obj EVENT70 ========
    1531                    ;; <add comments here>
    1532                    ;;
    1533                    ;; ECM_Obj EVENT70 (function, arg)
    1534                            .global EVENT70
    1535                            .asg _UTL_halt, _function
    1536                            .asg 00H, _arg
    1537 00000200                   ECM_Obj 1, EVENT70, 70, _function, _arg
1                                   
1                                   .global EVENT70
1                           
1                                   .if (1 != 0)
1                 00000046  EVENT70  .set    70            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1538                    
    1539                    ;; ======== ECM_Obj EVENT71 ========
    1540                    ;; <add comments here>
    1541                    ;;
    1542                    ;; ECM_Obj EVENT71 (function, arg)
    1543                            .global EVENT71
    1544                            .asg _UTL_halt, _function
    1545                            .asg 00H, _arg
    1546 00000200                   ECM_Obj 1, EVENT71, 71, _function, _arg
1                                   
1                                   .global EVENT71
1                           
1                                   .if (1 != 0)
1                 00000047  EVENT71  .set    71            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  178

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1547                    
    1548                    ;; ======== ECM_Obj EVENT72 ========
    1549                    ;; <add comments here>
    1550                    ;;
    1551                    ;; ECM_Obj EVENT72 (function, arg)
    1552                            .global EVENT72
    1553                            .asg _UTL_halt, _function
    1554                            .asg 00H, _arg
    1555 00000200                   ECM_Obj 1, EVENT72, 72, _function, _arg
1                                   
1                                   .global EVENT72
1                           
1                                   .if (1 != 0)
1                 00000048  EVENT72  .set    72            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1556                    
    1557                    ;; ======== ECM_Obj EVENT73 ========
    1558                    ;; <add comments here>
    1559                    ;;
    1560                    ;; ECM_Obj EVENT73 (function, arg)
    1561                            .global EVENT73
    1562                            .asg _UTL_halt, _function
    1563                            .asg 00H, _arg
    1564 00000200                   ECM_Obj 1, EVENT73, 73, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  179

1                                   .global EVENT73
1                           
1                                   .if (1 != 0)
1                 00000049  EVENT73  .set    73            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1565                    
    1566                    ;; ======== ECM_Obj EVENT74 ========
    1567                    ;; <add comments here>
    1568                    ;;
    1569                    ;; ECM_Obj EVENT74 (function, arg)
    1570                            .global EVENT74
    1571                            .asg _UTL_halt, _function
    1572                            .asg 00H, _arg
    1573 00000200                   ECM_Obj 1, EVENT74, 74, _function, _arg
1                                   
1                                   .global EVENT74
1                           
1                                   .if (1 != 0)
1                 0000004A  EVENT74  .set    74            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  180

1                           
    1574                    
    1575                    ;; ======== ECM_Obj EVENT75 ========
    1576                    ;; <add comments here>
    1577                    ;;
    1578                    ;; ECM_Obj EVENT75 (function, arg)
    1579                            .global EVENT75
    1580                            .asg _UTL_halt, _function
    1581                            .asg 00H, _arg
    1582 00000200                   ECM_Obj 1, EVENT75, 75, _function, _arg
1                                   
1                                   .global EVENT75
1                           
1                                   .if (1 != 0)
1                 0000004B  EVENT75  .set    75            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1583                    
    1584                    ;; ======== ECM_Obj EVENT76 ========
    1585                    ;; <add comments here>
    1586                    ;;
    1587                    ;; ECM_Obj EVENT76 (function, arg)
    1588                            .global EVENT76
    1589                            .asg _UTL_halt, _function
    1590                            .asg 00H, _arg
    1591 00000200                   ECM_Obj 1, EVENT76, 76, _function, _arg
1                                   
1                                   .global EVENT76
1                           
1                                   .if (1 != 0)
1                 0000004C  EVENT76  .set    76            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  181

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1592                    
    1593                    ;; ======== ECM_Obj EVENT77 ========
    1594                    ;; <add comments here>
    1595                    ;;
    1596                    ;; ECM_Obj EVENT77 (function, arg)
    1597                            .global EVENT77
    1598                            .asg _UTL_halt, _function
    1599                            .asg 00H, _arg
    1600 00000200                   ECM_Obj 1, EVENT77, 77, _function, _arg
1                                   
1                                   .global EVENT77
1                           
1                                   .if (1 != 0)
1                 0000004D  EVENT77  .set    77            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1601                    
    1602                    ;; ======== ECM_Obj EVENT78 ========
    1603                    ;; <add comments here>
    1604                    ;;
    1605                    ;; ECM_Obj EVENT78 (function, arg)
    1606                            .global EVENT78
    1607                            .asg _UTL_halt, _function
    1608                            .asg 00H, _arg
    1609 00000200                   ECM_Obj 1, EVENT78, 78, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  182

1                                   .global EVENT78
1                           
1                                   .if (1 != 0)
1                 0000004E  EVENT78  .set    78            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1610                    
    1611                    ;; ======== ECM_Obj EVENT79 ========
    1612                    ;; <add comments here>
    1613                    ;;
    1614                    ;; ECM_Obj EVENT79 (function, arg)
    1615                            .global EVENT79
    1616                            .asg _UTL_halt, _function
    1617                            .asg 00H, _arg
    1618 00000200                   ECM_Obj 1, EVENT79, 79, _function, _arg
1                                   
1                                   .global EVENT79
1                           
1                                   .if (1 != 0)
1                 0000004F  EVENT79  .set    79            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  183

1                           
    1619                    
    1620                    ;; ======== ECM_Obj EVENT80 ========
    1621                    ;; <add comments here>
    1622                    ;;
    1623                    ;; ECM_Obj EVENT80 (function, arg)
    1624                            .global EVENT80
    1625                            .asg _UTL_halt, _function
    1626                            .asg 00H, _arg
    1627 00000200                   ECM_Obj 1, EVENT80, 80, _function, _arg
1                                   
1                                   .global EVENT80
1                           
1                                   .if (1 != 0)
1                 00000050  EVENT80  .set    80            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1628                    
    1629                    ;; ======== ECM_Obj EVENT81 ========
    1630                    ;; <add comments here>
    1631                    ;;
    1632                    ;; ECM_Obj EVENT81 (function, arg)
    1633                            .global EVENT81
    1634                            .asg _UTL_halt, _function
    1635                            .asg 00H, _arg
    1636 00000200                   ECM_Obj 1, EVENT81, 81, _function, _arg
1                                   
1                                   .global EVENT81
1                           
1                                   .if (1 != 0)
1                 00000051  EVENT81  .set    81            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  184

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1637                    
    1638                    ;; ======== ECM_Obj EVENT82 ========
    1639                    ;; <add comments here>
    1640                    ;;
    1641                    ;; ECM_Obj EVENT82 (function, arg)
    1642                            .global EVENT82
    1643                            .asg _UTL_halt, _function
    1644                            .asg 00H, _arg
    1645 00000200                   ECM_Obj 1, EVENT82, 82, _function, _arg
1                                   
1                                   .global EVENT82
1                           
1                                   .if (1 != 0)
1                 00000052  EVENT82  .set    82            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1646                    
    1647                    ;; ======== ECM_Obj EVENT83 ========
    1648                    ;; <add comments here>
    1649                    ;;
    1650                    ;; ECM_Obj EVENT83 (function, arg)
    1651                            .global EVENT83
    1652                            .asg _UTL_halt, _function
    1653                            .asg 00H, _arg
    1654 00000200                   ECM_Obj 1, EVENT83, 83, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  185

1                                   .global EVENT83
1                           
1                                   .if (1 != 0)
1                 00000053  EVENT83  .set    83            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1655                    
    1656                    ;; ======== ECM_Obj EVENT84 ========
    1657                    ;; <add comments here>
    1658                    ;;
    1659                    ;; ECM_Obj EVENT84 (function, arg)
    1660                            .global EVENT84
    1661                            .asg _UTL_halt, _function
    1662                            .asg 00H, _arg
    1663 00000200                   ECM_Obj 1, EVENT84, 84, _function, _arg
1                                   
1                                   .global EVENT84
1                           
1                                   .if (1 != 0)
1                 00000054  EVENT84  .set    84            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  186

1                           
    1664                    
    1665                    ;; ======== ECM_Obj EVENT85 ========
    1666                    ;; <add comments here>
    1667                    ;;
    1668                    ;; ECM_Obj EVENT85 (function, arg)
    1669                            .global EVENT85
    1670                            .asg _UTL_halt, _function
    1671                            .asg 00H, _arg
    1672 00000200                   ECM_Obj 1, EVENT85, 85, _function, _arg
1                                   
1                                   .global EVENT85
1                           
1                                   .if (1 != 0)
1                 00000055  EVENT85  .set    85            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1673                    
    1674                    ;; ======== ECM_Obj EVENT86 ========
    1675                    ;; <add comments here>
    1676                    ;;
    1677                    ;; ECM_Obj EVENT86 (function, arg)
    1678                            .global EVENT86
    1679                            .asg _UTL_halt, _function
    1680                            .asg 00H, _arg
    1681 00000200                   ECM_Obj 1, EVENT86, 86, _function, _arg
1                                   
1                                   .global EVENT86
1                           
1                                   .if (1 != 0)
1                 00000056  EVENT86  .set    86            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  187

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1682                    
    1683                    ;; ======== ECM_Obj EVENT87 ========
    1684                    ;; <add comments here>
    1685                    ;;
    1686                    ;; ECM_Obj EVENT87 (function, arg)
    1687                            .global EVENT87
    1688                            .asg _UTL_halt, _function
    1689                            .asg 00H, _arg
    1690 00000200                   ECM_Obj 1, EVENT87, 87, _function, _arg
1                                   
1                                   .global EVENT87
1                           
1                                   .if (1 != 0)
1                 00000057  EVENT87  .set    87            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1691                    
    1692                    ;; ======== ECM_Obj EVENT88 ========
    1693                    ;; <add comments here>
    1694                    ;;
    1695                    ;; ECM_Obj EVENT88 (function, arg)
    1696                            .global EVENT88
    1697                            .asg _UTL_halt, _function
    1698                            .asg 00H, _arg
    1699 00000200                   ECM_Obj 1, EVENT88, 88, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  188

1                                   .global EVENT88
1                           
1                                   .if (1 != 0)
1                 00000058  EVENT88  .set    88            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1700                    
    1701                    ;; ======== ECM_Obj EVENT89 ========
    1702                    ;; <add comments here>
    1703                    ;;
    1704                    ;; ECM_Obj EVENT89 (function, arg)
    1705                            .global EVENT89
    1706                            .asg _UTL_halt, _function
    1707                            .asg 00H, _arg
    1708 00000200                   ECM_Obj 1, EVENT89, 89, _function, _arg
1                                   
1                                   .global EVENT89
1                           
1                                   .if (1 != 0)
1                 00000059  EVENT89  .set    89            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  189

1                           
    1709                    
    1710                    ;; ======== ECM_Obj EVENT90 ========
    1711                    ;; <add comments here>
    1712                    ;;
    1713                    ;; ECM_Obj EVENT90 (function, arg)
    1714                            .global EVENT90
    1715                            .asg _UTL_halt, _function
    1716                            .asg 00H, _arg
    1717 00000200                   ECM_Obj 1, EVENT90, 90, _function, _arg
1                                   
1                                   .global EVENT90
1                           
1                                   .if (1 != 0)
1                 0000005A  EVENT90  .set    90            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1718                    
    1719                    ;; ======== ECM_Obj EVENT91 ========
    1720                    ;; <add comments here>
    1721                    ;;
    1722                    ;; ECM_Obj EVENT91 (function, arg)
    1723                            .global EVENT91
    1724                            .asg _UTL_halt, _function
    1725                            .asg 00H, _arg
    1726 00000200                   ECM_Obj 1, EVENT91, 91, _function, _arg
1                                   
1                                   .global EVENT91
1                           
1                                   .if (1 != 0)
1                 0000005B  EVENT91  .set    91            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  190

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1727                    
    1728                    ;; ======== ECM_Obj EVENT92 ========
    1729                    ;; <add comments here>
    1730                    ;;
    1731                    ;; ECM_Obj EVENT92 (function, arg)
    1732                            .global EVENT92
    1733                            .asg _UTL_halt, _function
    1734                            .asg 00H, _arg
    1735 00000200                   ECM_Obj 1, EVENT92, 92, _function, _arg
1                                   
1                                   .global EVENT92
1                           
1                                   .if (1 != 0)
1                 0000005C  EVENT92  .set    92            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1736                    
    1737                    ;; ======== ECM_Obj EVENT93 ========
    1738                    ;; <add comments here>
    1739                    ;;
    1740                    ;; ECM_Obj EVENT93 (function, arg)
    1741                            .global EVENT93
    1742                            .asg _UTL_halt, _function
    1743                            .asg 00H, _arg
    1744 00000200                   ECM_Obj 1, EVENT93, 93, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  191

1                                   .global EVENT93
1                           
1                                   .if (1 != 0)
1                 0000005D  EVENT93  .set    93            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1745                    
    1746                    ;; ======== ECM_Obj EVENT94 ========
    1747                    ;; <add comments here>
    1748                    ;;
    1749                    ;; ECM_Obj EVENT94 (function, arg)
    1750                            .global EVENT94
    1751                            .asg _UTL_halt, _function
    1752                            .asg 00H, _arg
    1753 00000200                   ECM_Obj 1, EVENT94, 94, _function, _arg
1                                   
1                                   .global EVENT94
1                           
1                                   .if (1 != 0)
1                 0000005E  EVENT94  .set    94            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  192

1                           
    1754                    
    1755                    ;; ======== ECM_Obj EVENT95 ========
    1756                    ;; <add comments here>
    1757                    ;;
    1758                    ;; ECM_Obj EVENT95 (function, arg)
    1759                            .global EVENT95
    1760                            .asg _UTL_halt, _function
    1761                            .asg 00H, _arg
    1762 00000200                   ECM_Obj 1, EVENT95, 95, _function, _arg
1                                   
1                                   .global EVENT95
1                           
1                                   .if (1 != 0)
1                 0000005F  EVENT95  .set    95            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1763                    
    1764                    ;; ======== ECM_Obj EVENT96 ========
    1765                    ;; <add comments here>
    1766                    ;;
    1767                    ;; ECM_Obj EVENT96 (function, arg)
    1768                            .global EVENT96
    1769                            .asg _UTL_halt, _function
    1770                            .asg 00H, _arg
    1771 00000200                   ECM_Obj 1, EVENT96, 96, _function, _arg
1                                   
1                                   .global EVENT96
1                           
1                                   .if (1 != 0)
1                 00000060  EVENT96  .set    96            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  193

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1772                    
    1773                    ;; ======== ECM_Obj EVENT97 ========
    1774                    ;; <add comments here>
    1775                    ;;
    1776                    ;; ECM_Obj EVENT97 (function, arg)
    1777                            .global EVENT97
    1778                            .asg _UTL_halt, _function
    1779                            .asg 00H, _arg
    1780 00000200                   ECM_Obj 1, EVENT97, 97, _function, _arg
1                                   
1                                   .global EVENT97
1                           
1                                   .if (1 != 0)
1                 00000061  EVENT97  .set    97            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1781                    
    1782                    ;; ======== ECM_Obj EVENT98 ========
    1783                    ;; <add comments here>
    1784                    ;;
    1785                    ;; ECM_Obj EVENT98 (function, arg)
    1786                            .global EVENT98
    1787                            .asg _UTL_halt, _function
    1788                            .asg 00H, _arg
    1789 00000200                   ECM_Obj 1, EVENT98, 98, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  194

1                                   .global EVENT98
1                           
1                                   .if (1 != 0)
1                 00000062  EVENT98  .set    98            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1790                    
    1791                    ;; ======== ECM_Obj EVENT99 ========
    1792                    ;; <add comments here>
    1793                    ;;
    1794                    ;; ECM_Obj EVENT99 (function, arg)
    1795                            .global EVENT99
    1796                            .asg _UTL_halt, _function
    1797                            .asg 00H, _arg
    1798 00000200                   ECM_Obj 1, EVENT99, 99, _function, _arg
1                                   
1                                   .global EVENT99
1                           
1                                   .if (1 != 0)
1                 00000063  EVENT99  .set    99            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  195

1                           
    1799                    
    1800                    ;; ======== ECM_Obj EVENT100 ========
    1801                    ;; <add comments here>
    1802                    ;;
    1803                    ;; ECM_Obj EVENT100 (function, arg)
    1804                            .global EVENT100
    1805                            .asg _UTL_halt, _function
    1806                            .asg 00H, _arg
    1807 00000200                   ECM_Obj 1, EVENT100, 100, _function, _arg
1                                   
1                                   .global EVENT100
1                           
1                                   .if (1 != 0)
1                 00000064  EVENT100  .set    100            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1808                    
    1809                    ;; ======== ECM_Obj EVENT101 ========
    1810                    ;; <add comments here>
    1811                    ;;
    1812                    ;; ECM_Obj EVENT101 (function, arg)
    1813                            .global EVENT101
    1814                            .asg _UTL_halt, _function
    1815                            .asg 00H, _arg
    1816 00000200                   ECM_Obj 1, EVENT101, 101, _function, _arg
1                                   
1                                   .global EVENT101
1                           
1                                   .if (1 != 0)
1                 00000065  EVENT101  .set    101            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  196

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1817                    
    1818                    ;; ======== ECM_Obj EVENT102 ========
    1819                    ;; <add comments here>
    1820                    ;;
    1821                    ;; ECM_Obj EVENT102 (function, arg)
    1822                            .global EVENT102
    1823                            .asg _UTL_halt, _function
    1824                            .asg 00H, _arg
    1825 00000200                   ECM_Obj 1, EVENT102, 102, _function, _arg
1                                   
1                                   .global EVENT102
1                           
1                                   .if (1 != 0)
1                 00000066  EVENT102  .set    102            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1826                    
    1827                    ;; ======== ECM_Obj EVENT103 ========
    1828                    ;; <add comments here>
    1829                    ;;
    1830                    ;; ECM_Obj EVENT103 (function, arg)
    1831                            .global EVENT103
    1832                            .asg _UTL_halt, _function
    1833                            .asg 00H, _arg
    1834 00000200                   ECM_Obj 1, EVENT103, 103, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  197

1                                   .global EVENT103
1                           
1                                   .if (1 != 0)
1                 00000067  EVENT103  .set    103            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1835                    
    1836                    ;; ======== ECM_Obj EVENT104 ========
    1837                    ;; <add comments here>
    1838                    ;;
    1839                    ;; ECM_Obj EVENT104 (function, arg)
    1840                            .global EVENT104
    1841                            .asg _UTL_halt, _function
    1842                            .asg 00H, _arg
    1843 00000200                   ECM_Obj 1, EVENT104, 104, _function, _arg
1                                   
1                                   .global EVENT104
1                           
1                                   .if (1 != 0)
1                 00000068  EVENT104  .set    104            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  198

1                           
    1844                    
    1845                    ;; ======== ECM_Obj EVENT105 ========
    1846                    ;; <add comments here>
    1847                    ;;
    1848                    ;; ECM_Obj EVENT105 (function, arg)
    1849                            .global EVENT105
    1850                            .asg _UTL_halt, _function
    1851                            .asg 00H, _arg
    1852 00000200                   ECM_Obj 1, EVENT105, 105, _function, _arg
1                                   
1                                   .global EVENT105
1                           
1                                   .if (1 != 0)
1                 00000069  EVENT105  .set    105            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1853                    
    1854                    ;; ======== ECM_Obj EVENT106 ========
    1855                    ;; <add comments here>
    1856                    ;;
    1857                    ;; ECM_Obj EVENT106 (function, arg)
    1858                            .global EVENT106
    1859                            .asg _UTL_halt, _function
    1860                            .asg 00H, _arg
    1861 00000200                   ECM_Obj 1, EVENT106, 106, _function, _arg
1                                   
1                                   .global EVENT106
1                           
1                                   .if (1 != 0)
1                 0000006A  EVENT106  .set    106            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  199

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1862                    
    1863                    ;; ======== ECM_Obj EVENT107 ========
    1864                    ;; <add comments here>
    1865                    ;;
    1866                    ;; ECM_Obj EVENT107 (function, arg)
    1867                            .global EVENT107
    1868                            .asg _UTL_halt, _function
    1869                            .asg 00H, _arg
    1870 00000200                   ECM_Obj 1, EVENT107, 107, _function, _arg
1                                   
1                                   .global EVENT107
1                           
1                                   .if (1 != 0)
1                 0000006B  EVENT107  .set    107            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1871                    
    1872                    ;; ======== ECM_Obj EVENT108 ========
    1873                    ;; <add comments here>
    1874                    ;;
    1875                    ;; ECM_Obj EVENT108 (function, arg)
    1876                            .global EVENT108
    1877                            .asg _UTL_halt, _function
    1878                            .asg 00H, _arg
    1879 00000200                   ECM_Obj 1, EVENT108, 108, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  200

1                                   .global EVENT108
1                           
1                                   .if (1 != 0)
1                 0000006C  EVENT108  .set    108            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1880                    
    1881                    ;; ======== ECM_Obj EVENT109 ========
    1882                    ;; <add comments here>
    1883                    ;;
    1884                    ;; ECM_Obj EVENT109 (function, arg)
    1885                            .global EVENT109
    1886                            .asg _UTL_halt, _function
    1887                            .asg 00H, _arg
    1888 00000200                   ECM_Obj 1, EVENT109, 109, _function, _arg
1                                   
1                                   .global EVENT109
1                           
1                                   .if (1 != 0)
1                 0000006D  EVENT109  .set    109            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  201

1                           
    1889                    
    1890                    ;; ======== ECM_Obj EVENT110 ========
    1891                    ;; <add comments here>
    1892                    ;;
    1893                    ;; ECM_Obj EVENT110 (function, arg)
    1894                            .global EVENT110
    1895                            .asg _UTL_halt, _function
    1896                            .asg 00H, _arg
    1897 00000200                   ECM_Obj 1, EVENT110, 110, _function, _arg
1                                   
1                                   .global EVENT110
1                           
1                                   .if (1 != 0)
1                 0000006E  EVENT110  .set    110            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1898                    
    1899                    ;; ======== ECM_Obj EVENT111 ========
    1900                    ;; <add comments here>
    1901                    ;;
    1902                    ;; ECM_Obj EVENT111 (function, arg)
    1903                            .global EVENT111
    1904                            .asg _UTL_halt, _function
    1905                            .asg 00H, _arg
    1906 00000200                   ECM_Obj 1, EVENT111, 111, _function, _arg
1                                   
1                                   .global EVENT111
1                           
1                                   .if (1 != 0)
1                 0000006F  EVENT111  .set    111            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  202

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1907                    
    1908                    ;; ======== ECM_Obj EVENT112 ========
    1909                    ;; <add comments here>
    1910                    ;;
    1911                    ;; ECM_Obj EVENT112 (function, arg)
    1912                            .global EVENT112
    1913                            .asg _UTL_halt, _function
    1914                            .asg 00H, _arg
    1915 00000200                   ECM_Obj 1, EVENT112, 112, _function, _arg
1                                   
1                                   .global EVENT112
1                           
1                                   .if (1 != 0)
1                 00000070  EVENT112  .set    112            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1916                    
    1917                    ;; ======== ECM_Obj EVENT113 ========
    1918                    ;; <add comments here>
    1919                    ;;
    1920                    ;; ECM_Obj EVENT113 (function, arg)
    1921                            .global EVENT113
    1922                            .asg _UTL_halt, _function
    1923                            .asg 00H, _arg
    1924 00000200                   ECM_Obj 1, EVENT113, 113, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  203

1                                   .global EVENT113
1                           
1                                   .if (1 != 0)
1                 00000071  EVENT113  .set    113            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1925                    
    1926                    ;; ======== ECM_Obj EVENT114 ========
    1927                    ;; <add comments here>
    1928                    ;;
    1929                    ;; ECM_Obj EVENT114 (function, arg)
    1930                            .global EVENT114
    1931                            .asg _UTL_halt, _function
    1932                            .asg 00H, _arg
    1933 00000200                   ECM_Obj 1, EVENT114, 114, _function, _arg
1                                   
1                                   .global EVENT114
1                           
1                                   .if (1 != 0)
1                 00000072  EVENT114  .set    114            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  204

1                           
    1934                    
    1935                    ;; ======== ECM_Obj EVENT115 ========
    1936                    ;; <add comments here>
    1937                    ;;
    1938                    ;; ECM_Obj EVENT115 (function, arg)
    1939                            .global EVENT115
    1940                            .asg _UTL_halt, _function
    1941                            .asg 00H, _arg
    1942 00000200                   ECM_Obj 1, EVENT115, 115, _function, _arg
1                                   
1                                   .global EVENT115
1                           
1                                   .if (1 != 0)
1                 00000073  EVENT115  .set    115            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1943                    
    1944                    ;; ======== ECM_Obj EVENT116 ========
    1945                    ;; <add comments here>
    1946                    ;;
    1947                    ;; ECM_Obj EVENT116 (function, arg)
    1948                            .global EVENT116
    1949                            .asg _UTL_halt, _function
    1950                            .asg 00H, _arg
    1951 00000200                   ECM_Obj 1, EVENT116, 116, _function, _arg
1                                   
1                                   .global EVENT116
1                           
1                                   .if (1 != 0)
1                 00000074  EVENT116  .set    116            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  205

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1952                    
    1953                    ;; ======== ECM_Obj EVENT117 ========
    1954                    ;; <add comments here>
    1955                    ;;
    1956                    ;; ECM_Obj EVENT117 (function, arg)
    1957                            .global EVENT117
    1958                            .asg _UTL_halt, _function
    1959                            .asg 00H, _arg
    1960 00000200                   ECM_Obj 1, EVENT117, 117, _function, _arg
1                                   
1                                   .global EVENT117
1                           
1                                   .if (1 != 0)
1                 00000075  EVENT117  .set    117            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1961                    
    1962                    ;; ======== ECM_Obj EVENT118 ========
    1963                    ;; <add comments here>
    1964                    ;;
    1965                    ;; ECM_Obj EVENT118 (function, arg)
    1966                            .global EVENT118
    1967                            .asg _UTL_halt, _function
    1968                            .asg 00H, _arg
    1969 00000200                   ECM_Obj 1, EVENT118, 118, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  206

1                                   .global EVENT118
1                           
1                                   .if (1 != 0)
1                 00000076  EVENT118  .set    118            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1970                    
    1971                    ;; ======== ECM_Obj EVENT119 ========
    1972                    ;; <add comments here>
    1973                    ;;
    1974                    ;; ECM_Obj EVENT119 (function, arg)
    1975                            .global EVENT119
    1976                            .asg _UTL_halt, _function
    1977                            .asg 00H, _arg
    1978 00000200                   ECM_Obj 1, EVENT119, 119, _function, _arg
1                                   
1                                   .global EVENT119
1                           
1                                   .if (1 != 0)
1                 00000077  EVENT119  .set    119            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  207

1                           
    1979                    
    1980                    ;; ======== ECM_Obj EVENT120 ========
    1981                    ;; <add comments here>
    1982                    ;;
    1983                    ;; ECM_Obj EVENT120 (function, arg)
    1984                            .global EVENT120
    1985                            .asg _UTL_halt, _function
    1986                            .asg 00H, _arg
    1987 00000200                   ECM_Obj 1, EVENT120, 120, _function, _arg
1                                   
1                                   .global EVENT120
1                           
1                                   .if (1 != 0)
1                 00000078  EVENT120  .set    120            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1988                    
    1989                    ;; ======== ECM_Obj EVENT121 ========
    1990                    ;; <add comments here>
    1991                    ;;
    1992                    ;; ECM_Obj EVENT121 (function, arg)
    1993                            .global EVENT121
    1994                            .asg _UTL_halt, _function
    1995                            .asg 00H, _arg
    1996 00000200                   ECM_Obj 1, EVENT121, 121, _function, _arg
1                                   
1                                   .global EVENT121
1                           
1                                   .if (1 != 0)
1                 00000079  EVENT121  .set    121            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  208

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    1997                    
    1998                    ;; ======== ECM_Obj EVENT122 ========
    1999                    ;; <add comments here>
    2000                    ;;
    2001                    ;; ECM_Obj EVENT122 (function, arg)
    2002                            .global EVENT122
    2003                            .asg _UTL_halt, _function
    2004                            .asg 00H, _arg
    2005 00000200                   ECM_Obj 1, EVENT122, 122, _function, _arg
1                                   
1                                   .global EVENT122
1                           
1                                   .if (1 != 0)
1                 0000007A  EVENT122  .set    122            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    2006                    
    2007                    ;; ======== ECM_Obj EVENT123 ========
    2008                    ;; <add comments here>
    2009                    ;;
    2010                    ;; ECM_Obj EVENT123 (function, arg)
    2011                            .global EVENT123
    2012                            .asg _UTL_halt, _function
    2013                            .asg 00H, _arg
    2014 00000200                   ECM_Obj 1, EVENT123, 123, _function, _arg
1                                   
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  209

1                                   .global EVENT123
1                           
1                                   .if (1 != 0)
1                 0000007B  EVENT123  .set    123            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    2015                    
    2016                    ;; ======== ECM_Obj EVENT124 ========
    2017                    ;; <add comments here>
    2018                    ;;
    2019                    ;; ECM_Obj EVENT124 (function, arg)
    2020                            .global EVENT124
    2021                            .asg _UTL_halt, _function
    2022                            .asg 00H, _arg
    2023 00000200                   ECM_Obj 1, EVENT124, 124, _function, _arg
1                                   
1                                   .global EVENT124
1                           
1                                   .if (1 != 0)
1                 0000007C  EVENT124  .set    124            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  210

1                           
    2024                    
    2025                    ;; ======== ECM_Obj EVENT125 ========
    2026                    ;; <add comments here>
    2027                    ;;
    2028                    ;; ECM_Obj EVENT125 (function, arg)
    2029                            .global EVENT125
    2030                            .asg _UTL_halt, _function
    2031                            .asg 00H, _arg
    2032 00000200                   ECM_Obj 1, EVENT125, 125, _function, _arg
1                                   
1                                   .global EVENT125
1                           
1                                   .if (1 != 0)
1                 0000007D  EVENT125  .set    125            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    2033                    
    2034                    ;; ======== ECM_Obj EVENT126 ========
    2035                    ;; <add comments here>
    2036                    ;;
    2037                    ;; ECM_Obj EVENT126 (function, arg)
    2038                            .global EVENT126
    2039                            .asg _UTL_halt, _function
    2040                            .asg 00H, _arg
    2041 00000200                   ECM_Obj 1, EVENT126, 126, _function, _arg
1                                   
1                                   .global EVENT126
1                           
1                                   .if (1 != 0)
1                 0000007E  EVENT126  .set    126            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  211

1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    2042                    
    2043                    ;; ======== ECM_Obj EVENT127 ========
    2044                    ;; <add comments here>
    2045                    ;;
    2046                    ;; ECM_Obj EVENT127 (function, arg)
    2047                            .global EVENT127
    2048                            .asg _UTL_halt, _function
    2049                            .asg 00H, _arg
    2050 00000200                   ECM_Obj 1, EVENT127, 127, _function, _arg
1                                   
1                                   .global EVENT127
1                           
1                                   .if (1 != 0)
1                 0000007F  EVENT127  .set    127            ; required because symbols defined in 
1                                   .endif                  ; the generated *.cmd file.
1                           
1                                   .if ECM_ENABLE
1                                       .global :fxn:
1                                       .global _ECM_dispatchTab
1                           
1                                       .sect ".cinit"
1                                       .align 8
1                                       .field 2 * STD_TARGWORDMAUS
1                                       .field _ECM_dispatchTab + (2 * :id: * STD_TARGWORDMAUS)
1                                       .field :fxn:
1                                       .if ($symcmp(":fxn:", "_UTL_halt") != 0)
1                                           .field :arg:
1                                       .else
1                                           .field :id:
1                                       .endif
1                           
1                                   .endif
1                           
    2051                    
    2052                    ;; ======== SWI_Obj KNL_swi ========
    2053                    ;; This Software Interrupt calls the TSK scheduler
    2054                    ;;
    2055                    ;; SWI_Obj KNL_swi (function, pri, mailbox, arg0, arg1, dorta, Order, filter, maxformat, sumformat, av
    2056                            .global KNL_swi
    2057                            .asg _KNL_run, _function
    2058                            .asg 00H, _pri
    2059                            .asg 00H, _mailbox
    2060                            .asg 00H, _arg0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  212

    2061                            .asg 00H, _arg1
    2062                            .asg 01H, _dorta
    2063                            .asg 00H, _Order
    2064                            .asg 02H, _filter
    2065                            .asg "%g inst", _maxformat
    2066                            .asg "%g inst", _sumformat
    2067                            .asg "%.2f inst", _avgformat
    2068                            .asg 01H, _filtmaxmult
    2069                            .asg 01H, _filtsummult
    2070                            .asg 00H, _unittype
    2071 00000200                   SWI_Obj 1, KNL_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxf
1        00000200                   CHK_nargs "SWI_Obj", fxn
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   ;
1                                   ; pri, mailbox, arg0 and arg1 are optional -- defaults if necessary
1                                   ;
1                                   .if ($symlen("00H") = 0)
1                                       .asg        "0", pri
1                                       .asg        "0", mailbox
1                                       .asg        "0", arg0
1                                       .asg        "0", arg1
1                                   .elseif ($symlen("00H") = 0)
1                                       .asg        "0", mailbox
1                                       .asg        "0", arg0
1                                       .asg        "0", arg1
1                                   .elseif ($symlen("00H") = 0)
1                                       .asg        "0", arg0
1                                       .asg        "0", arg1
1                                   .elseif ($symlen("00H") = 0)
1                                       .asg        "0", arg1
1                                   .else
1        00000200                       CHK_nargs "SWI_Obj", arg1
1                                       .if ($symcmp("", "error") = 0)
1                                           .mexit
1                                       .endif
1                                   .endif
1                           
1                                   .if (1 = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global KNL_swi, _KNL_run
1                           
1                                   .global KNL_swi$swi      ; generate symbol for vbd/rta
1                 00000000  KNL_swi$swi .set 0
1                                   .global KNL_swi$dorta    ; generate dorta symbol for vbd/rta
1                 00000001  KNL_swi$dorta .set 01H
1                                   .global KNL_swi$pri      ; generate priority symbol for vbd/rta
1                 00000000  KNL_swi$pri .set 00H
1                                   .global KNL_swi$ord      ; generate order symbol for vbd/rta
1                 00000000  KNL_swi$ord .set 00H
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  213

1                           KNL_swi  .tag    SWI_Obj
1                           
1        00000000           KNL_swi  .usect ".swi", STD_TARGWORDMAUS * 6, STD_TARGWORDMAUS
1                           
1        00000308                   .sect ".cinit"
1                           
1                                   .align 8
1                           
1        00000308 00000018          .field  STD_TARGWORDMAUS * 6
1        0000030c 00000000%         .field KNL_swi
1        00000310 FFFFFFFF          .field  -1                      ; lock (not posted)
1        00000314 00000004!         .field  SWI_D_rdytab+(00H*2+1)*STD_TARGWORDMAUS; ready
1        00000318 00000001          .field  1 << 00H              ; mask
1        0000031c 00000000          .field  0                       ; link
1        00000320 00000000          .field  00H               ; initkey
1        00000324 00000000          .field  00H               ; mailbox
1                           
1        00000328                   FXN_Obj KNL_swi$fxn, _KNL_run, 00H, 00H, ".swi"
2        00000328               CHK_nargs "FXN_Obj", section
2                               .if ($symcmp("", "error") = 0)
2                                   .emsg "FXN_Obj parameter error"
2                               .endif
2                           
2                           KNL_swi$fxn  .tag    FXN_Obj
2                           
2        00000018           KNL_swi$fxn  .usect ".swi", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS
2                           
2        00000328                   .sect ".cinit"
2                           
2                                   .align 8
2        00000328 0000000C          .field  STD_TARGWORDMAUS * 3
2        0000032c 00000000%         .field KNL_swi$fxn
2        00000330 00000000!         .field  _KNL_run          ; fxn
2        00000334 00000000          .field  00H         ; arg1
2        00000338 00000000          .field  00H         ; arg0
2                           
1                           
1        00000024           KNL_swi$aaa .usect ".swi", STD_TARGWORDMAUS * 2, STD_TARGWORDMAUS
1                           
1        0000033c                   .sect ".cinit"
1                           
1                                   .align 8
1                           
1        00000340 00000008          .field  STD_TARGWORDMAUS * 2
1        00000344 00000000%         .field KNL_swi$aaa
1        00000348 FFFFFFFF          .field  -1                      ; stslock
1                                   .if 01H
1        0000034c 00000000%             .field  KNL_swi$sts          ; pointer to STS_Obj
1                                   .else
1                                       .field 0
1                                   .endif
1                           
1                                   ; only allocate STS object if 'Do RTA' is TRUE
1                                   .if 01H
1                                       .global KNL_swi$sts$filtsummult      ; generate symbol for sum mult
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  214

1                 00000001  KNL_swi$sts$filtsummult .set     01H
1                                       .global KNL_swi$sts$filtmaxmult      ; generate symbol for max mult
1                 00000001  KNL_swi$sts$filtmaxmult .set     01H
1                           
1        00000350                       STS_Obj 1, KNL_swi$sts, 0, 0, 02H, "%g inst", "%g inst", "%.2f inst", -1, 00H, -1, -1, -1,
2                           
2        00000350                   CHK_nargs "STS_Obj", prevl
2                           
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "STS_Obj parameter error."
2                                   .endif
2                           
2                                   .if (1 = 0)                  ; if this object is not
2                                                                      ; really to be allocated
2                                       .mexit                         ; exit quietly now
2                                   .endif
2                           
2                                   ; sts filter info
2                                   .global KNL_swi$sts, KNL_swi$sts$stsobj     
2                                   .global KNL_swi$sts$filter, KNL_swi$sts$unittype
2                                   .global KNL_swi$sts$maxfmt, KNL_swi$sts$sumfmt, KNL_swi$sts$avgfmt
2                           
2                 00000002  KNL_swi$sts$filter .set      02H
2                 00000000  KNL_swi$sts$unittype .set    00H
2                           
2                                   ; place the following format strings into the .printf section
2                                   ; .byte 0's are for '\0' to terminate format strings
2        0000001d                   .sect ".printf"
2        0000001d 00000025  KNL_swi$sts$maxfmt .string   "%g inst"
         0000001e 00000067 
         0000001f 00000020 
         00000020 00000069 
         00000021 0000006E 
         00000022 00000073 
         00000023 00000074 
2        00000024 00000000          .byte   0
2        00000025 00000025  KNL_swi$sts$sumfmt .string   "%g inst"
         00000026 00000067 
         00000027 00000020 
         00000028 00000069 
         00000029 0000006E 
         0000002a 00000073 
         0000002b 00000074 
2        0000002c 00000000          .byte   0
2        0000002d 00000025  KNL_swi$sts$avgfmt .string   "%.2f inst"
         0000002e 0000002E 
         0000002f 00000032 
         00000030 00000066 
         00000031 00000020 
         00000032 00000069 
         00000033 0000006E 
         00000034 00000073 
         00000035 00000074 
2        00000036 00000000          .byte   0
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  215

2                                   .if (02H = 1)
2                                       .global :name:$iA, :name:$iB, :name:$iC, :name:$operation
2                           :name:$iA .set  :iA:
2                           :name:$iB .set  :iB:
2                           :name:$iC .set  :iC:
2                           :name:$operation .set   :operation:
2                                   .endif
2                           
2        00000010                   .sect ".sts"                       ; allocate STS_Obj 
2                                                                      ; (in section ".sts")
2                           KNL_swi$sts  .tag    STS_Obj                    ; declare name as having 
2                                                                      ; type STS_Obj
2        00000010           KNL_swi$sts$stsobj:
2                                                                     ; NOTE: on 32-bit targets
2                                                                     ; only prevh is used
2        00000010 00000000          .long   0                         ; allocate space for previous
2                                                                     ; 32-bit value
2        00000014           KNL_swi$sts                                   
2        00000014 00000000          .long   0                         ; num
2        00000018 00000000          .long   0                         ; acc
2        0000001c 80000000          .long   80000000h                 ; max
2                           
2        00000350                   .sect    ".cinit"
2                                   .align    8
2        00000350 00000010          .field    STD_TARGWORDMAUS * 4
2        00000354 00000000%         .field    KNL_swi$sts$stsobj                    
2        00000358 00000000          .field    0                  ; allocate space for history   
2        0000035c 00000000          .field    0                        ; num
2        00000360 00000000          .field    0                        ; acc
2        00000364 80000000          .field    80000000h                ; max
2                           
2        00000020                   .sect    ".sts"
2                           
1                                   .endif
1                           
    2072                    
    2073                    ;; ======== SWI_Obj PRD_swi ========
    2074                    ;; This Software ISR executes all configured PRD functions
    2075                    ;;
    2076                    ;; SWI_Obj PRD_swi (function, pri, mailbox, arg0, arg1, dorta, Order, filter, maxformat, sumformat, av
    2077                            .global PRD_swi
    2078                            .asg PRD_F_swi, _function
    2079                            .asg 01H, _pri
    2080                            .asg 00H, _mailbox
    2081                            .asg 00H, _arg0
    2082                            .asg 00H, _arg1
    2083                            .asg 01H, _dorta
    2084                            .asg 00H, _Order
    2085                            .asg 02H, _filter
    2086                            .asg "%g inst", _maxformat
    2087                            .asg "%g inst", _sumformat
    2088                            .asg "%.2f inst", _avgformat
    2089                            .asg 01H, _filtmaxmult
    2090                            .asg 01H, _filtsummult
    2091                            .asg 00H, _unittype
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  216

    2092 00000020                   SWI_Obj 1, PRD_swi, 0, _function, _pri, _mailbox, _arg0, _arg1, _dorta, _Order, _filter, _maxf
1        00000020                   CHK_nargs "SWI_Obj", fxn
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   ;
1                                   ; pri, mailbox, arg0 and arg1 are optional -- defaults if necessary
1                                   ;
1                                   .if ($symlen("01H") = 0)
1                                       .asg        "0", pri
1                                       .asg        "0", mailbox
1                                       .asg        "0", arg0
1                                       .asg        "0", arg1
1                                   .elseif ($symlen("00H") = 0)
1                                       .asg        "0", mailbox
1                                       .asg        "0", arg0
1                                       .asg        "0", arg1
1                                   .elseif ($symlen("00H") = 0)
1                                       .asg        "0", arg0
1                                       .asg        "0", arg1
1                                   .elseif ($symlen("00H") = 0)
1                                       .asg        "0", arg1
1                                   .else
1        00000020                       CHK_nargs "SWI_Obj", arg1
1                                       .if ($symcmp("", "error") = 0)
1                                           .mexit
1                                       .endif
1                                   .endif
1                           
1                                   .if (1 = 0)
1                                       .mexit
1                                   .endif
1                           
1                                   .global PRD_swi, PRD_F_swi
1                           
1                                   .global PRD_swi$swi      ; generate symbol for vbd/rta
1                 00000000  PRD_swi$swi .set 0
1                                   .global PRD_swi$dorta    ; generate dorta symbol for vbd/rta
1                 00000001  PRD_swi$dorta .set 01H
1                                   .global PRD_swi$pri      ; generate priority symbol for vbd/rta
1                 00000001  PRD_swi$pri .set 01H
1                                   .global PRD_swi$ord      ; generate order symbol for vbd/rta
1                 00000000  PRD_swi$ord .set 00H
1                           
1                           PRD_swi  .tag    SWI_Obj
1                           
1        0000002c           PRD_swi  .usect ".swi", STD_TARGWORDMAUS * 6, STD_TARGWORDMAUS
1                           
1        00000368                   .sect ".cinit"
1                           
1                                   .align 8
1                           
1        00000368 00000018          .field  STD_TARGWORDMAUS * 6
1        0000036c 00000000%         .field PRD_swi
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  217

1        00000370 FFFFFFFF          .field  -1                      ; lock (not posted)
1        00000374 0000000C!         .field  SWI_D_rdytab+(01H*2+1)*STD_TARGWORDMAUS; ready
1        00000378 00000002          .field  1 << 01H              ; mask
1        0000037c 00000000          .field  0                       ; link
1        00000380 00000000          .field  00H               ; initkey
1        00000384 00000000          .field  00H               ; mailbox
1                           
1        00000388                   FXN_Obj PRD_swi$fxn, PRD_F_swi, 00H, 00H, ".swi"
2        00000388               CHK_nargs "FXN_Obj", section
2                               .if ($symcmp("", "error") = 0)
2                                   .emsg "FXN_Obj parameter error"
2                               .endif
2                           
2                           PRD_swi$fxn  .tag    FXN_Obj
2                           
2        00000044           PRD_swi$fxn  .usect ".swi", STD_TARGWORDMAUS * 3, STD_TARGWORDMAUS
2                           
2        00000388                   .sect ".cinit"
2                           
2                                   .align 8
2        00000388 0000000C          .field  STD_TARGWORDMAUS * 3
2        0000038c 00000000%         .field PRD_swi$fxn
2        00000390 00000000!         .field  PRD_F_swi          ; fxn
2        00000394 00000000          .field  00H         ; arg1
2        00000398 00000000          .field  00H         ; arg0
2                           
1                           
1        00000050           PRD_swi$aaa .usect ".swi", STD_TARGWORDMAUS * 2, STD_TARGWORDMAUS
1                           
1        0000039c                   .sect ".cinit"
1                           
1                                   .align 8
1                           
1        000003a0 00000008          .field  STD_TARGWORDMAUS * 2
1        000003a4 00000000%         .field PRD_swi$aaa
1        000003a8 FFFFFFFF          .field  -1                      ; stslock
1                                   .if 01H
1        000003ac 00000000%             .field  PRD_swi$sts          ; pointer to STS_Obj
1                                   .else
1                                       .field 0
1                                   .endif
1                           
1                                   ; only allocate STS object if 'Do RTA' is TRUE
1                                   .if 01H
1                                       .global PRD_swi$sts$filtsummult      ; generate symbol for sum mult
1                 00000001  PRD_swi$sts$filtsummult .set     01H
1                                       .global PRD_swi$sts$filtmaxmult      ; generate symbol for max mult
1                 00000001  PRD_swi$sts$filtmaxmult .set     01H
1                           
1        000003b0                       STS_Obj 1, PRD_swi$sts, 0, 0, 02H, "%g inst", "%g inst", "%.2f inst", -1, 00H, -1, -1, -1,
2                           
2        000003b0                   CHK_nargs "STS_Obj", prevl
2                           
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "STS_Obj parameter error."
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  218

2                                   .endif
2                           
2                                   .if (1 = 0)                  ; if this object is not
2                                                                      ; really to be allocated
2                                       .mexit                         ; exit quietly now
2                                   .endif
2                           
2                                   ; sts filter info
2                                   .global PRD_swi$sts, PRD_swi$sts$stsobj     
2                                   .global PRD_swi$sts$filter, PRD_swi$sts$unittype
2                                   .global PRD_swi$sts$maxfmt, PRD_swi$sts$sumfmt, PRD_swi$sts$avgfmt
2                           
2                 00000002  PRD_swi$sts$filter .set      02H
2                 00000000  PRD_swi$sts$unittype .set    00H
2                           
2                                   ; place the following format strings into the .printf section
2                                   ; .byte 0's are for '\0' to terminate format strings
2        00000037                   .sect ".printf"
2        00000037 00000025  PRD_swi$sts$maxfmt .string   "%g inst"
         00000038 00000067 
         00000039 00000020 
         0000003a 00000069 
         0000003b 0000006E 
         0000003c 00000073 
         0000003d 00000074 
2        0000003e 00000000          .byte   0
2        0000003f 00000025  PRD_swi$sts$sumfmt .string   "%g inst"
         00000040 00000067 
         00000041 00000020 
         00000042 00000069 
         00000043 0000006E 
         00000044 00000073 
         00000045 00000074 
2        00000046 00000000          .byte   0
2        00000047 00000025  PRD_swi$sts$avgfmt .string   "%.2f inst"
         00000048 0000002E 
         00000049 00000032 
         0000004a 00000066 
         0000004b 00000020 
         0000004c 00000069 
         0000004d 0000006E 
         0000004e 00000073 
         0000004f 00000074 
2        00000050 00000000          .byte   0
2                           
2                                   .if (02H = 1)
2                                       .global :name:$iA, :name:$iB, :name:$iC, :name:$operation
2                           :name:$iA .set  :iA:
2                           :name:$iB .set  :iB:
2                           :name:$iC .set  :iC:
2                           :name:$operation .set   :operation:
2                                   .endif
2                           
2        00000020                   .sect ".sts"                       ; allocate STS_Obj 
2                                                                      ; (in section ".sts")
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  219

2                           PRD_swi$sts  .tag    STS_Obj                    ; declare name as having 
2                                                                      ; type STS_Obj
2        00000020           PRD_swi$sts$stsobj:
2                                                                     ; NOTE: on 32-bit targets
2                                                                     ; only prevh is used
2        00000020 00000000          .long   0                         ; allocate space for previous
2                                                                     ; 32-bit value
2        00000024           PRD_swi$sts                                   
2        00000024 00000000          .long   0                         ; num
2        00000028 00000000          .long   0                         ; acc
2        0000002c 80000000          .long   80000000h                 ; max
2                           
2        000003b0                   .sect    ".cinit"
2                                   .align    8
2        000003b0 00000010          .field    STD_TARGWORDMAUS * 4
2        000003b4 00000000%         .field    PRD_swi$sts$stsobj                    
2        000003b8 00000000          .field    0                  ; allocate space for history   
2        000003bc 00000000          .field    0                        ; num
2        000003c0 00000000          .field    0                        ; acc
2        000003c4 80000000          .field    80000000h                ; max
2                           
2        00000030                   .sect    ".sts"
2                           
1                                   .endif
1                           
    2093                    
    2094                    ;; ======== TSK_Obj TSK_idle ========
    2095                    ;; This is the idle task; it only runs when no other task is ready
    2096                    ;;
    2097                    ;; TSK_Obj TSK_idle (iFXN, iARG0, iARG1, iARG2, iARG3, iARG4, iARG5, iARG6, iARG7, iAUTOSTK, iMANSTK, 
    2098                            .global TSK_idle
    2099                            .asg IDL_F_loop, _iFXN
    2100                            .asg 00H, _iARG0
    2101                            .asg 00H, _iARG1
    2102                            .asg 00H, _iARG2
    2103                            .asg 00H, _iARG3
    2104                            .asg 00H, _iARG4
    2105                            .asg 00H, _iARG5
    2106                            .asg 00H, _iARG6
    2107                            .asg 00H, _iARG7
    2108                            .asg 01H, _iAUTOSTK
    2109                            .asg null, _iMANSTK
    2110                            .asg 0400H, _iSTKSZ
    2111                            .asg IRAM, _iSTKSEG
    2112                            .asg 00H, _iPRI
    2113                            .asg 00H, _iENV
    2114                            .asg 01H, _iEXITFLAG
    2115                            .asg 00H, _iUSETSKNAME
    2116                            .asg 00H, _iSTATREG
    2117                            .asg 00H, _Order
    2118                            .asg 02H, _filter
    2119                            .asg "%g inst", _maxformat
    2120                            .asg "%g inst", _sumformat
    2121                            .asg "%.2f inst", _avgformat
    2122                            .asg 01H, _filtmaxmult
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  220

    2123                            .asg 01H, _filtsummult
    2124                            .asg 00H, _unittype
    2125 00000030                   TSK_Obj 1, TSK_idle, 0, _iFXN, _iARG0, _iARG1, _iARG2, _iARG3, _iARG4, _iARG5, _iARG6, _iARG7,
1                           
1                                   .global IDL_F_loop
1                                   .global TSK_idle
1                           
1                                   .global TSK_idle$tsk      ; generate symbol for vbd/rta
1                 00000000  TSK_idle$tsk .set 0
1                                   .global TSK_idle$pri      ; generate priority symbol for vbd/rta
1                 00000000  TSK_idle$pri .set 00H
1                                   .global TSK_idle$ord      ; generate order symbol for vbd/rta
1                 00000000  TSK_idle$ord .set 00H
1                           
1                                   .if 00H
1                                           .sect   ".const"
1                           TSK$:TSK_idle:      .string ":name:",0      ; null-terminated name string
1                                   .endif
1                           
1        00000000           TSK_idle$obj      .usect  ".tsk", 3 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1        0000000c           TSK_idle          .usect  ".tsk", 21 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .if     0 > 0
1                           :name:$env      .usect  ".tsk", TSK$num_hooks * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .endif
1                           
1                 00000400  TSK_idle$stklen   .set    0400H
1                           
1                                   .if     01H
1                                       ;
1                                       ; Reserve space for automatically allocated stack
1                                       ;
1        00000000           TSK_idle$stack    .usect ".TSK_idle$stk", 0400H, STD_TARGALIGN
1                                           .global TSK_idle$stack, TSK_idle$stackname
1                                           .asg    "TSK_idle$stack", TSK_idle$stackname
1                                   .else
1                                       .if ($symcmp(":manstack:", "null") == 0)
1                                           .emsg "TSK :name: manually allocated stack cannot be null"
1                                       .else
1                                           .asg    ":manstack:", :name:$stackname
1                                       .endif
1                                   .endif
1                           
1                                   ;
1                                   ; stkptr for the idle stack is used by the IDL_F_stub function
1                                   ;
1                                   .global TSK_idle$stkptr
1                           
1                                   .if 01H
1                 00000398! TSK_idle$stkptr   .set TSK_idle$stack + 0400H - STD_TARGALIGN - (24 * STD_TARGWORDMAUS)
1                                   .else
1                                           .asg "(:name:$stackname + :stacksize: - STD_TARGALIGN - (TSK_USEDSTACK * STD_TARGWORDM
1                                   .endif
1                           
1        000003c8                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  221

1        000003c8 00000060          .word   24 * STD_TARGWORDMAUS, TSK_idle$obj
         000003cc 00000000%
1                           
1        000003d0                   OBJ_Obj TSK_idle, OBJ_TSK, (TSK_CORESIZE + TSK$num_hooks) ; allocates 3 words
2                           
2                           ;
2                           ;  OBJ_SEM 
2                           ;
2                           
2                                   .if OBJ_TSK == OBJ_SEM
2                           
2                                       .if SEM$NUMOF != SEM$sernum
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word OBJ_TAB_SEM               ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_sem$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg ":name:$obj", OBJ_sem$prev
2                           
2                                       .if SEM$sernum = 1                  ; first TSK Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_sem$next
2                                       .endif
2                           
2                                       .eval       SEM$sernum+1, SEM$sernum
2                           
2                           ;
2                           ;  OBJ_SWI
2                           ;
2                            
2                                   .elseif OBJ_TSK == OBJ_SWI
2                            
2                                       .if SWI$NUMOF != SWI$sernum         ; if not the last SWI Obj
2                                           ; next points to next SWI Obj
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_SWI             ; next points back to OBJ_table
2                                       .endif
2                                    
2                                       .word       OBJ_swi$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  222

2                                       ;
2                                       .asg        ":name:$obj", OBJ_swi$prev
2                           
2                                       .if SWI$sernum = 1                  ; first SWI Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_swi$next  ; "next" field of OBJ_table
2                                       .endif
2                           
2                                       .eval       SWI$sernum+1, SWI$sernum
2                           
2                           
2                           ;
2                           ;  OBJ_TSK 
2                           ;
2                           
2                                   .elseif OBJ_TSK == OBJ_TSK
2                           
2                                       .if TSK$NUMOF != 1         ; if not the last TSK Obj
2                                           ; next points to next TSK Obj
2        000003d0 00000000%                 .word   TSK_idle + (21 + 0) * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_TSK             ; next points back to OBJ_table
2                                       .endif
2                                   
2        000003d4 00000010!             .word       _OBJ_table + 4 * STD_TARGWORDMAUS            ; previous object or OBJ_table
2                           
2        000003d8 0000ABC2              .word       OBJ_TSK | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg        "TSK_idle$obj", OBJ_tsk$prev
2                           
2                                       .if 1 = 1                  ; first TSK Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg "TSK_idle$obj", OBJ_tsk$next ; "next" field of OBJ_table
2                                       .endif
2                           
2                                       .eval       1+1, TSK$sernum
2                           
2                           ;
2                           ;  OBJ_MBX 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_MBX
2                           
2                                       .if MBX$NUMOF != MBX$sernum         ; if not the last MBX Obj
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_MBX             ; next points back to OBJ_table
2                                       .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  223

2                                   
2                                       .word       OBJ_mbx$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg        ":name:$obj", OBJ_mbx$prev
2                           
2                                       .if MBX$sernum = 1                  ; first MBX Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_mbx$next
2                                       .endif
2                           
2                                       .eval       MBX$sernum+1, MBX$sernum
2                           
2                           ;
2                           ;  OBJ_SIO 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_SIO
2                           
2                                       .if (SIO$NUMOF != SIO$sernum)
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_SIO             ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_sio$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg ":name:$obj", OBJ_sio$prev
2                           
2                                       .if SIO$sernum = 1                  ; first SIO Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_sio$next
2                                       .endif
2                           
2                                       .eval       SIO$sernum+1, SIO$sernum
2                           
2                           ;
2                           ;  OBJ_DEV 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_DEV
2                                      
2                                       ; DEV_Device entry in OBJ table is sum of all the DEV_Device entry
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  224

2                                       ; that get created. These entries are created from UDEV, DGN, DHL
2                                       ; DPI and DIO. 
2                                       ; Sum of devices is provided by DEV$NUMDEVICES symbol(from cfg.xx)
2                           
2                                       .if DEV$NUMDEVICES != DEV$sernum
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_DEV             ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_dev$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       ; Below assignment is different from other OBJ modules. 
2                                       ; This is because in case of OBJ_DEV OBJ_cinitObj is passed
2                                       ; with :name:$obj itself. For example 'DGN_printData$obj', Note
2                                       ; that here we can't pass 'DGN_printData' to this macro
2                                       ; Because 'DGN_printData' is a string allocated in .const section
2                                       ; by driver macro(DGN_Obj). But this OBJ header needs to point
2                                       ; wherever DEV_Device, i.e., 'DGN_printData$obj' is allocated and
2                                       ; not string 'DGN_printData'
2                           
2                                       .asg ":name:", OBJ_dev$prev
2                           
2                                       .if DEV$sernum = 1                  ; first DEV_Device Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:", OBJ_dev$next
2                                       .endif
2                           
2                                       .eval       DEV$sernum+1, DEV$sernum
2                           
2                           
2                           ;
2                           ;  OBJ_BUF 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_BUF
2                           
2                                       .if (BUF$NUMOF != BUF$sernum)
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_BUF             ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_buf$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  225

2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg ":name:$obj", OBJ_buf$prev
2                           
2                                       .if BUF$sernum = 1                  ; first BUF Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_buf$next
2                                       .endif
2                                       
2                                       .eval       BUF$sernum+1, BUF$sernum
2                                   
2                                   .else
2                           
2                                       .emsg "OBJ_Obj: :name: passed invalid type :type:"
2                           
2                                   .endif
2                           
1                           
1        000003dc 00000000%         .word   TSK_idle, TSK_idle                  ; kobj.ready
         000003e0 00000000%
1        000003e4 00000000%         .word   TSK_idle+2*STD_TARGWORDMAUS, TSK_idle+2*STD_TARGWORDMAUS    ; kobj.alarm
         000003e8 00000000%
1        000003ec 00000000%         .word   TSK_idle+4*STD_TARGWORDMAUS, TSK_idle+4*STD_TARGWORDMAUS    ; kobj.setpri
         000003f0 00000000%
1                           
1                                   ;
1                                   ; GCONF gives priority of 0ffffffffh for -1, so we need to translate
1                                   ; since the assembler treats 0ffffffffh as unsigned
1                                   ;
1                                   .if 00H = 0ffffffffh
1                                       .eval       -1, local_priority
1                                   .else
1                                       .eval       00H, local_priority
1                                   .endif
1                           
1                                   .if 0 < 0
1                                       ;
1                                       ;  KNL_queues[3] is _KNL_inactive queue. All terminated and
1                                       ;  negative priority tasks go here.
1                                       ;
1                                       .word       _KNL_queues+3*2*STD_TARGWORDMAUS        ; kobj.queue = _KNL_inactive
1                                       .word       local_priority          ; kobj.priority
1                                       .word       0                       ; kobj.mask
1                                   .else
1                                       ;
1                                       ; KNL_priority[priority]
1                                       ;
1        000003f4 00000020!             .word       _KNL_queues+(0+4)*2*STD_TARGWORDMAUS
1                           
1        000003f8 00000000              .word       0          ; kobj.priority
1        000003fc 00000001              .word       1<<0       ; kobj.mask
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  226

1                           
1        00000400 00000000%         .word   TSK_idle$stkptr           ; kobj.sp
1                           
1        00000404 00000000          .word   0                       ; kobj.timeout
1        00000408 00000000          .word   0                       ; kobj.mode
1                           
1                                   .if GBL_ENABLEINST
1        0000040c 00000000%             .word       TSK_idle$sts      ; kobj.sts
1                                   .else
1                                       .word       0
1                                   .endif
1                           
1        00000410 00000000          .short  0                       ; kobj.signalled
1                                   .align  STD_TARGWORDMAUS
1                           
1                                   ;
1                                   ;  stack - This field is only used by TSK_checkstacks to
1                                   ;  verify that the task stack is still valid.  It always
1                                   ;  points to the top (lowest address) of the task's stack.
1                                   ;
1        00000414 00000000%         .word   TSK_idle$stack
1        00000418 00000400          .word   0400H
1        0000041c 00000000%         .word   IRAM              
1                           
1                           
1                                   ;
1                                   ;  Set up pointer to task's name or NULL
1                                   ;
1                                   .if     00H
1                                           .word   TSK$:name:              ; name
1                                   .else
1        00000420 00000000                  .word   0
1                                   .endif
1                           
1                                   .if     0 == 0
1        00000424 00000000              .word       00H                  ; environ
1                                   .else
1                                       .word       :name:$env
1                                   .endif
1                           
1        00000428 00000000          .word   0                       ; errno
1        0000042c 00000001          .short  01H
1                                   .align  STD_TARGWORDMAUS                        ; short followed by word could misalign
1                           
1                                   ; End of TSK_Obj structure;
1                           
1                                   .if GBL_ENABLEINST
1                                       .global TSK_idle$sts$filtsummult      ; generate symbol for sum mult
1                 00000001  TSK_idle$sts$filtsummult .set     01H
1                                       .global TSK_idle$sts$filtmaxmult      ; generate symbol for max mult
1                 00000001  TSK_idle$sts$filtmaxmult .set     01H
1                           
1        00000430                       STS_Obj 1, TSK_idle$sts, 0, 0, 02H, "%g inst", "%g inst", "%.2f inst", -1, 00H, -1, -1, -1
2                           
2        00000430                   CHK_nargs "STS_Obj", prevl
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  227

2                           
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "STS_Obj parameter error."
2                                   .endif
2                           
2                                   .if (1 = 0)                  ; if this object is not
2                                                                      ; really to be allocated
2                                       .mexit                         ; exit quietly now
2                                   .endif
2                           
2                                   ; sts filter info
2                                   .global TSK_idle$sts, TSK_idle$sts$stsobj     
2                                   .global TSK_idle$sts$filter, TSK_idle$sts$unittype
2                                   .global TSK_idle$sts$maxfmt, TSK_idle$sts$sumfmt, TSK_idle$sts$avgfmt
2                           
2                 00000002  TSK_idle$sts$filter .set      02H
2                 00000000  TSK_idle$sts$unittype .set    00H
2                           
2                                   ; place the following format strings into the .printf section
2                                   ; .byte 0's are for '\0' to terminate format strings
2        00000051                   .sect ".printf"
2        00000051 00000025  TSK_idle$sts$maxfmt .string   "%g inst"
         00000052 00000067 
         00000053 00000020 
         00000054 00000069 
         00000055 0000006E 
         00000056 00000073 
         00000057 00000074 
2        00000058 00000000          .byte   0
2        00000059 00000025  TSK_idle$sts$sumfmt .string   "%g inst"
         0000005a 00000067 
         0000005b 00000020 
         0000005c 00000069 
         0000005d 0000006E 
         0000005e 00000073 
         0000005f 00000074 
2        00000060 00000000          .byte   0
2        00000061 00000025  TSK_idle$sts$avgfmt .string   "%.2f inst"
         00000062 0000002E 
         00000063 00000032 
         00000064 00000066 
         00000065 00000020 
         00000066 00000069 
         00000067 0000006E 
         00000068 00000073 
         00000069 00000074 
2        0000006a 00000000          .byte   0
2                           
2                                   .if (02H = 1)
2                                       .global :name:$iA, :name:$iB, :name:$iC, :name:$operation
2                           :name:$iA .set  :iA:
2                           :name:$iB .set  :iB:
2                           :name:$iC .set  :iC:
2                           :name:$operation .set   :operation:
2                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  228

2                           
2        00000030                   .sect ".sts"                       ; allocate STS_Obj 
2                                                                      ; (in section ".sts")
2                           TSK_idle$sts  .tag    STS_Obj                    ; declare name as having 
2                                                                      ; type STS_Obj
2        00000030           TSK_idle$sts$stsobj:
2                                                                     ; NOTE: on 32-bit targets
2                                                                     ; only prevh is used
2        00000030 00000000          .long   0                         ; allocate space for previous
2                                                                     ; 32-bit value
2        00000034           TSK_idle$sts                                   
2        00000034 00000000          .long   0                         ; num
2        00000038 00000000          .long   0                         ; acc
2        0000003c 80000000          .long   80000000h                 ; max
2                           
2        00000430                   .sect    ".cinit"
2                                   .align    8
2        00000430 00000010          .field    STD_TARGWORDMAUS * 4
2        00000434 00000000%         .field    TSK_idle$sts$stsobj                    
2        00000438 00000000          .field    0                  ; allocate space for history   
2        0000043c 00000000          .field    0                        ; num
2        00000440 00000000          .field    0                        ; acc
2        00000444 80000000          .field    80000000h                ; max
2                           
2        00000040                   .sect    ".sts"
2                           
1                                   .endif
1                           
1                                   .if $symcmp("IDL_F_loop", "_SYS_nop") = 0
1                                       .wmsg "Task :name: is being created to run :fxn:"
1                                   .endif
1                           
1                                   .if     0 > 0
1                                       .asg        0, h$index
1                           
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       TSK$num_hooks * STD_TARGWORDMAUS
1                                       .word       :name:$env
1                                       ;
1                                       ; Create cinit entry for all HOOKS (SDSsq37326).
1                                       ; Previously just the KNL hook was getting cinited with
1                                       ; a configuration paramter.  Now all user-level hooks
1                                       ; get cinited to 0, so a HOOK_getenv before a HOOK_setenv
1                                       ; will return a known value.
1                                       ;
1                                       .loop
1                                           .if (h$index == HOOK$knl_index)
1                                               .word       :envp:
1                                           .else
1                                               .word       0
1                                           .endif
1                           
1                                           .eval   h$index + 1, h$index
1                                           .if (h$index == TSK$num_hooks)
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  229

1                                               .break
1                                           .endif
1                                       .endloop
1                                   .endif
1                           
1                           
1                                   ;
1                                   ; generate a cinit record that will initialize the tasks's stack
1                                   ;
1        00000448                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1                           
1                                   ;
1                                   ; TSK_idle$stkptr points one word *below* stack frame, so add 1 word
1                                   ; to the base address of the cinit record
1                                   ;
1        00000448 00000060          .word   24 * STD_TARGWORDMAUS, TSK_idle$stkptr + (1 * STD_TARGWORDMAUS)
         0000044c 00000000%
1                           
1        00000450 00000000          .word   0
1        00000454 00000000          .word   00H
1        00000458 00000000!         .word   _KNL_exit
1        0000045c 00000000          .word   0
1        00000460 00000000!         .word   KNL_glue
1                                   ;
1                                   ; TSK_USEDSTACK is the total number of words in the startup
1                                   ; stack.  There are 15 words that are set explicitly, leaving
1                                   ; TSK_USEDSTACK - 15 words for which we need to leave space here.
1                                   ;
1                           
1                                   ; The .space directive for the C6x indicates bytes
1                           
1        00000464                   .space  (24 - 15) * STD_TARGWORDMAUS ; 4 bytes per word
1                           
1                                   .eval   0, strCount$save
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000488 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        0000048c 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  230

1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000490 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000494 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000498 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        0000049c 00000000              .word 00H
1                                   .endif
1                           
1                           ;
1                           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1                           ;
1                           ;  Be careful with this little island of non-arg code!
1                           
1        000004a0 00000000!         .word   IDL_F_loop
1        000004a4 00000000!         .word   _TSK_exit
1                           
1                           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        000004a8 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        000004ac 00000000              .word 00H
1                                   .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  231

1                                   ;
1                                   ; Create a record to fill unused portion of stack with stackstamp
1                                   ; Format: sequence of 3 words; <count, address, fill-value>
1                                   ;
1        00000024                   .sect ".gblinit"
1        00000024 00000000%         .word   ((TSK_idle$stkptr - TSK_idle$stack) / STD_TARGWORDMAUS) + 1     ; count
1        00000028 00000000%         .word   TSK_idle$stack
1        0000002c BEBEBEBE          .word   0xbebebebe 
1                           
1                           
1                                   ;
1                                   ; Finally, let TSK_idle point to the right location
1                                   ;
1                                   .asg "TSK_idle$base + OBJ_HDRSIZE * STD_TARGWORDMAUS", TSK_idle
1                           
1                                   ;
1                                   ; Conditionally set up strings for arguments
1                                   ;
1                                   .eval   0, TSK$strCount
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg0(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg1(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg2(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg3(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg4(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  232

1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg5(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg6(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg7(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
    2126                    
    2127                    ;; ======== TSK_Obj TSK0 ========
    2128                    ;; <add comments here>
    2129                    ;;
    2130                    ;; TSK_Obj TSK0 (iFXN, iARG0, iARG1, iARG2, iARG3, iARG4, iARG5, iARG6, iARG7, iAUTOSTK, iMANSTK, iSTK
    2131                            .global TSK0
    2132                            .asg _TestMain, _iFXN
    2133                            .asg 00H, _iARG0
    2134                            .asg 00H, _iARG1
    2135                            .asg 00H, _iARG2
    2136                            .asg 00H, _iARG3
    2137                            .asg 00H, _iARG4
    2138                            .asg 00H, _iARG5
    2139                            .asg 00H, _iARG6
    2140                            .asg 00H, _iARG7
    2141                            .asg 01H, _iAUTOSTK
    2142                            .asg null, _iMANSTK
    2143                            .asg 01000H, _iSTKSZ
    2144                            .asg IRAM, _iSTKSEG
    2145                            .asg 05H, _iPRI
    2146                            .asg 00H, _iENV
    2147                            .asg 01H, _iEXITFLAG
    2148                            .asg 00H, _iUSETSKNAME
    2149                            .asg 00H, _iSTATREG
    2150                            .asg 01H, _Order
    2151                            .asg 02H, _filter
    2152                            .asg "%g inst", _maxformat
    2153                            .asg "%g inst", _sumformat
    2154                            .asg "%.2f inst", _avgformat
    2155                            .asg 01H, _filtmaxmult
    2156                            .asg 01H, _filtsummult
    2157                            .asg 00H, _unittype
    2158 00000030                   TSK_Obj 1, TSK0, 0, _iFXN, _iARG0, _iARG1, _iARG2, _iARG3, _iARG4, _iARG5, _iARG6, _iARG7, _iA
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  233

1                                   .global _TestMain
1                                   .global TSK0
1                           
1                                   .global TSK0$tsk      ; generate symbol for vbd/rta
1                 00000000  TSK0$tsk .set 0
1                                   .global TSK0$pri      ; generate priority symbol for vbd/rta
1                 00000005  TSK0$pri .set 05H
1                                   .global TSK0$ord      ; generate order symbol for vbd/rta
1                 00000001  TSK0$ord .set 01H
1                           
1                                   .if 00H
1                                           .sect   ".const"
1                           TSK$:TSK0:      .string ":name:",0      ; null-terminated name string
1                                   .endif
1                           
1        00000060           TSK0$obj      .usect  ".tsk", 3 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1        0000006c           TSK0          .usect  ".tsk", 21 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .if     0 > 0
1                           :name:$env      .usect  ".tsk", TSK$num_hooks * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .endif
1                           
1                 00001000  TSK0$stklen   .set    01000H
1                           
1                                   .if     01H
1                                       ;
1                                       ; Reserve space for automatically allocated stack
1                                       ;
1        00000000           TSK0$stack    .usect ".TSK0$stk", 01000H, STD_TARGALIGN
1                                           .global TSK0$stack, TSK0$stackname
1                                           .asg    "TSK0$stack", TSK0$stackname
1                                   .else
1                                       .if ($symcmp(":manstack:", "null") == 0)
1                                           .emsg "TSK :name: manually allocated stack cannot be null"
1                                       .else
1                                           .asg    ":manstack:", :name:$stackname
1                                       .endif
1                                   .endif
1                           
1                                   ;
1                                   ; stkptr for the idle stack is used by the IDL_F_stub function
1                                   ;
1                                   .global TSK0$stkptr
1                           
1                                   .if 01H
1                 00000F98! TSK0$stkptr   .set TSK0$stack + 01000H - STD_TARGALIGN - (24 * STD_TARGWORDMAUS)
1                                   .else
1                                           .asg "(:name:$stackname + :stacksize: - STD_TARGALIGN - (TSK_USEDSTACK * STD_TARGWORDM
1                                   .endif
1                           
1        000004b0                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        000004b0 00000060          .word   24 * STD_TARGWORDMAUS, TSK0$obj
         000004b4 00000000%
1                           
1        000004b8                   OBJ_Obj TSK0, OBJ_TSK, (TSK_CORESIZE + TSK$num_hooks) ; allocates 3 words
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  234

2                           
2                           ;
2                           ;  OBJ_SEM 
2                           ;
2                           
2                                   .if OBJ_TSK == OBJ_SEM
2                           
2                                       .if SEM$NUMOF != SEM$sernum
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word OBJ_TAB_SEM               ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_sem$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg ":name:$obj", OBJ_sem$prev
2                           
2                                       .if SEM$sernum = 1                  ; first TSK Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_sem$next
2                                       .endif
2                           
2                                       .eval       SEM$sernum+1, SEM$sernum
2                           
2                           ;
2                           ;  OBJ_SWI
2                           ;
2                            
2                                   .elseif OBJ_TSK == OBJ_SWI
2                            
2                                       .if SWI$NUMOF != SWI$sernum         ; if not the last SWI Obj
2                                           ; next points to next SWI Obj
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_SWI             ; next points back to OBJ_table
2                                       .endif
2                                    
2                                       .word       OBJ_swi$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg        ":name:$obj", OBJ_swi$prev
2                           
2                                       .if SWI$sernum = 1                  ; first SWI Obj
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  235

2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_swi$next  ; "next" field of OBJ_table
2                                       .endif
2                           
2                                       .eval       SWI$sernum+1, SWI$sernum
2                           
2                           
2                           ;
2                           ;  OBJ_TSK 
2                           ;
2                           
2                                   .elseif OBJ_TSK == OBJ_TSK
2                           
2                                       .if TSK$NUMOF != 2         ; if not the last TSK Obj
2                                           ; next points to next TSK Obj
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2        000004b8 00000010!                 .word   _OBJ_table + 4 * STD_TARGWORDMAUS             ; next points back to OBJ_table
2                                       .endif
2                                   
2        000004bc 00000000%             .word       TSK_idle$obj            ; previous object or OBJ_table
2                           
2        000004c0 0000ABC2              .word       OBJ_TSK | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg        "TSK0$obj", OBJ_tsk$prev
2                           
2                                       .if 2 = 1                  ; first TSK Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_tsk$next ; "next" field of OBJ_table
2                                       .endif
2                           
2                                       .eval       2+1, TSK$sernum
2                           
2                           ;
2                           ;  OBJ_MBX 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_MBX
2                           
2                                       .if MBX$NUMOF != MBX$sernum         ; if not the last MBX Obj
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_MBX             ; next points back to OBJ_table
2                                       .endif
2                                   
2                                       .word       OBJ_mbx$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  236

2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg        ":name:$obj", OBJ_mbx$prev
2                           
2                                       .if MBX$sernum = 1                  ; first MBX Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_mbx$next
2                                       .endif
2                           
2                                       .eval       MBX$sernum+1, MBX$sernum
2                           
2                           ;
2                           ;  OBJ_SIO 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_SIO
2                           
2                                       .if (SIO$NUMOF != SIO$sernum)
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_SIO             ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_sio$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg ":name:$obj", OBJ_sio$prev
2                           
2                                       .if SIO$sernum = 1                  ; first SIO Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_sio$next
2                                       .endif
2                           
2                                       .eval       SIO$sernum+1, SIO$sernum
2                           
2                           ;
2                           ;  OBJ_DEV 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_DEV
2                                      
2                                       ; DEV_Device entry in OBJ table is sum of all the DEV_Device entry
2                                       ; that get created. These entries are created from UDEV, DGN, DHL
2                                       ; DPI and DIO. 
2                                       ; Sum of devices is provided by DEV$NUMDEVICES symbol(from cfg.xx)
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  237

2                                       .if DEV$NUMDEVICES != DEV$sernum
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_DEV             ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_dev$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       ; Below assignment is different from other OBJ modules. 
2                                       ; This is because in case of OBJ_DEV OBJ_cinitObj is passed
2                                       ; with :name:$obj itself. For example 'DGN_printData$obj', Note
2                                       ; that here we can't pass 'DGN_printData' to this macro
2                                       ; Because 'DGN_printData' is a string allocated in .const section
2                                       ; by driver macro(DGN_Obj). But this OBJ header needs to point
2                                       ; wherever DEV_Device, i.e., 'DGN_printData$obj' is allocated and
2                                       ; not string 'DGN_printData'
2                           
2                                       .asg ":name:", OBJ_dev$prev
2                           
2                                       .if DEV$sernum = 1                  ; first DEV_Device Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:", OBJ_dev$next
2                                       .endif
2                           
2                                       .eval       DEV$sernum+1, DEV$sernum
2                           
2                           
2                           ;
2                           ;  OBJ_BUF 
2                           ;
2                                   .elseif OBJ_TSK == OBJ_BUF
2                           
2                                       .if (BUF$NUMOF != BUF$sernum)
2                                           ; next points to next object
2                                           .word   :name: + :size: * STD_TARGWORDMAUS
2                                       .else
2                                           .word   OBJ_TAB_BUF             ; next points back to OBJ_table
2                                       .endif
2                           
2                                       .word       OBJ_buf$prev            ; previous object or OBJ_table
2                           
2                                       .word       :type: | OBJ_KEY
2                           
2                                       ;
2                                       ; For next obj, this one is prev
2                                       ;
2                                       .asg ":name:$obj", OBJ_buf$prev
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  238

2                           
2                                       .if BUF$sernum = 1                  ; first BUF Obj
2                                           ;
2                                           ; If this is the first element, queue head will point to this
2                                           ;
2                                           .asg ":name:$obj", OBJ_buf$next
2                                       .endif
2                                       
2                                       .eval       BUF$sernum+1, BUF$sernum
2                                   
2                                   .else
2                           
2                                       .emsg "OBJ_Obj: :name: passed invalid type :type:"
2                           
2                                   .endif
2                           
1                           
1        000004c4 00000000%         .word   TSK0, TSK0                  ; kobj.ready
         000004c8 00000000%
1        000004cc 00000000%         .word   TSK0+2*STD_TARGWORDMAUS, TSK0+2*STD_TARGWORDMAUS    ; kobj.alarm
         000004d0 00000000%
1        000004d4 00000000%         .word   TSK0+4*STD_TARGWORDMAUS, TSK0+4*STD_TARGWORDMAUS    ; kobj.setpri
         000004d8 00000000%
1                           
1                                   ;
1                                   ; GCONF gives priority of 0ffffffffh for -1, so we need to translate
1                                   ; since the assembler treats 0ffffffffh as unsigned
1                                   ;
1                                   .if 05H = 0ffffffffh
1                                       .eval       -1, local_priority
1                                   .else
1                                       .eval       05H, local_priority
1                                   .endif
1                           
1                                   .if 5 < 0
1                                       ;
1                                       ;  KNL_queues[3] is _KNL_inactive queue. All terminated and
1                                       ;  negative priority tasks go here.
1                                       ;
1                                       .word       _KNL_queues+3*2*STD_TARGWORDMAUS        ; kobj.queue = _KNL_inactive
1                                       .word       local_priority          ; kobj.priority
1                                       .word       0                       ; kobj.mask
1                                   .else
1                                       ;
1                                       ; KNL_priority[priority]
1                                       ;
1        000004dc 00000048!             .word       _KNL_queues+(5+4)*2*STD_TARGWORDMAUS
1                           
1        000004e0 00000005              .word       5          ; kobj.priority
1        000004e4 00000020              .word       1<<5       ; kobj.mask
1                                   .endif
1                           
1        000004e8 00000000%         .word   TSK0$stkptr           ; kobj.sp
1                           
1        000004ec 00000000          .word   0                       ; kobj.timeout
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  239

1        000004f0 00000000          .word   0                       ; kobj.mode
1                           
1                                   .if GBL_ENABLEINST
1        000004f4 00000000%             .word       TSK0$sts      ; kobj.sts
1                                   .else
1                                       .word       0
1                                   .endif
1                           
1        000004f8 00000000          .short  0                       ; kobj.signalled
1                                   .align  STD_TARGWORDMAUS
1                           
1                                   ;
1                                   ;  stack - This field is only used by TSK_checkstacks to
1                                   ;  verify that the task stack is still valid.  It always
1                                   ;  points to the top (lowest address) of the task's stack.
1                                   ;
1        000004fc 00000000%         .word   TSK0$stack
1        00000500 00001000          .word   01000H
1        00000504 00000000%         .word   IRAM              
1                           
1                           
1                                   ;
1                                   ;  Set up pointer to task's name or NULL
1                                   ;
1                                   .if     00H
1                                           .word   TSK$:name:              ; name
1                                   .else
1        00000508 00000000                  .word   0
1                                   .endif
1                           
1                                   .if     0 == 0
1        0000050c 00000000              .word       00H                  ; environ
1                                   .else
1                                       .word       :name:$env
1                                   .endif
1                           
1        00000510 00000000          .word   0                       ; errno
1        00000514 00000001          .short  01H
1                                   .align  STD_TARGWORDMAUS                        ; short followed by word could misalign
1                           
1                                   ; End of TSK_Obj structure;
1                           
1                                   .if GBL_ENABLEINST
1                                       .global TSK0$sts$filtsummult      ; generate symbol for sum mult
1                 00000001  TSK0$sts$filtsummult .set     01H
1                                       .global TSK0$sts$filtmaxmult      ; generate symbol for max mult
1                 00000001  TSK0$sts$filtmaxmult .set     01H
1                           
1        00000518                       STS_Obj 1, TSK0$sts, 0, 0, 02H, "%g inst", "%g inst", "%.2f inst", -1, 00H, -1, -1, -1, 0
2                           
2        00000518                   CHK_nargs "STS_Obj", prevl
2                           
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "STS_Obj parameter error."
2                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  240

2                           
2                                   .if (1 = 0)                  ; if this object is not
2                                                                      ; really to be allocated
2                                       .mexit                         ; exit quietly now
2                                   .endif
2                           
2                                   ; sts filter info
2                                   .global TSK0$sts, TSK0$sts$stsobj     
2                                   .global TSK0$sts$filter, TSK0$sts$unittype
2                                   .global TSK0$sts$maxfmt, TSK0$sts$sumfmt, TSK0$sts$avgfmt
2                           
2                 00000002  TSK0$sts$filter .set      02H
2                 00000000  TSK0$sts$unittype .set    00H
2                           
2                                   ; place the following format strings into the .printf section
2                                   ; .byte 0's are for '\0' to terminate format strings
2        0000006b                   .sect ".printf"
2        0000006b 00000025  TSK0$sts$maxfmt .string   "%g inst"
         0000006c 00000067 
         0000006d 00000020 
         0000006e 00000069 
         0000006f 0000006E 
         00000070 00000073 
         00000071 00000074 
2        00000072 00000000          .byte   0
2        00000073 00000025  TSK0$sts$sumfmt .string   "%g inst"
         00000074 00000067 
         00000075 00000020 
         00000076 00000069 
         00000077 0000006E 
         00000078 00000073 
         00000079 00000074 
2        0000007a 00000000          .byte   0
2        0000007b 00000025  TSK0$sts$avgfmt .string   "%.2f inst"
         0000007c 0000002E 
         0000007d 00000032 
         0000007e 00000066 
         0000007f 00000020 
         00000080 00000069 
         00000081 0000006E 
         00000082 00000073 
         00000083 00000074 
2        00000084 00000000          .byte   0
2                           
2                                   .if (02H = 1)
2                                       .global :name:$iA, :name:$iB, :name:$iC, :name:$operation
2                           :name:$iA .set  :iA:
2                           :name:$iB .set  :iB:
2                           :name:$iC .set  :iC:
2                           :name:$operation .set   :operation:
2                                   .endif
2                           
2        00000040                   .sect ".sts"                       ; allocate STS_Obj 
2                                                                      ; (in section ".sts")
2                           TSK0$sts  .tag    STS_Obj                    ; declare name as having 
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  241

2                                                                      ; type STS_Obj
2        00000040           TSK0$sts$stsobj:
2                                                                     ; NOTE: on 32-bit targets
2                                                                     ; only prevh is used
2        00000040 00000000          .long   0                         ; allocate space for previous
2                                                                     ; 32-bit value
2        00000044           TSK0$sts                                   
2        00000044 00000000          .long   0                         ; num
2        00000048 00000000          .long   0                         ; acc
2        0000004c 80000000          .long   80000000h                 ; max
2                           
2        00000518                   .sect    ".cinit"
2                                   .align    8
2        00000518 00000010          .field    STD_TARGWORDMAUS * 4
2        0000051c 00000000%         .field    TSK0$sts$stsobj                    
2        00000520 00000000          .field    0                  ; allocate space for history   
2        00000524 00000000          .field    0                        ; num
2        00000528 00000000          .field    0                        ; acc
2        0000052c 80000000          .field    80000000h                ; max
2                           
2        00000050                   .sect    ".sts"
2                           
1                                   .endif
1                           
1                                   .if $symcmp("_TestMain", "_SYS_nop") = 0
1                                       .wmsg "Task :name: is being created to run :fxn:"
1                                   .endif
1                           
1                                   .if     0 > 0
1                                       .asg        0, h$index
1                           
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       TSK$num_hooks * STD_TARGWORDMAUS
1                                       .word       :name:$env
1                                       ;
1                                       ; Create cinit entry for all HOOKS (SDSsq37326).
1                                       ; Previously just the KNL hook was getting cinited with
1                                       ; a configuration paramter.  Now all user-level hooks
1                                       ; get cinited to 0, so a HOOK_getenv before a HOOK_setenv
1                                       ; will return a known value.
1                                       ;
1                                       .loop
1                                           .if (h$index == HOOK$knl_index)
1                                               .word       :envp:
1                                           .else
1                                               .word       0
1                                           .endif
1                           
1                                           .eval   h$index + 1, h$index
1                                           .if (h$index == TSK$num_hooks)
1                                               .break
1                                           .endif
1                                       .endloop
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  242

1                           
1                           
1                                   ;
1                                   ; generate a cinit record that will initialize the tasks's stack
1                                   ;
1        00000530                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1                           
1                                   ;
1                                   ; TSK0$stkptr points one word *below* stack frame, so add 1 word
1                                   ; to the base address of the cinit record
1                                   ;
1        00000530 00000060          .word   24 * STD_TARGWORDMAUS, TSK0$stkptr + (1 * STD_TARGWORDMAUS)
         00000534 00000000%
1                           
1        00000538 00000000          .word   0
1        0000053c 00000000          .word   00H
1        00000540 00000000!         .word   _KNL_exit
1        00000544 00000000          .word   0
1        00000548 00000000!         .word   KNL_glue
1                                   ;
1                                   ; TSK_USEDSTACK is the total number of words in the startup
1                                   ; stack.  There are 15 words that are set explicitly, leaving
1                                   ; TSK_USEDSTACK - 15 words for which we need to leave space here.
1                                   ;
1                           
1                                   ; The .space directive for the C6x indicates bytes
1                           
1        0000054c                   .space  (24 - 15) * STD_TARGWORDMAUS ; 4 bytes per word
1                           
1                                   .eval   0, strCount$save
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000570 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000574 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000578 00000000              .word 00H
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  243

1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        0000057c 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000580 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000584 00000000              .word 00H
1                                   .endif
1                           
1                           ;
1                           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1                           ;
1                           ;  Be careful with this little island of non-arg code!
1                           
1        00000588 00000000!         .word   _TestMain
1        0000058c 00000000!         .word   _TSK_exit
1                           
1                           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000590 00000000              .word 00H
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .word       TSK$string:TSK$strCount:
1                                       .eval       TSK$strCount+1, TSK$strCount
1                                   .else
1        00000594 00000000              .word 00H
1                                   .endif
1                           
1                                   ;
1                                   ; Create a record to fill unused portion of stack with stackstamp
1                                   ; Format: sequence of 3 words; <count, address, fill-value>
1                                   ;
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  244

1        00000030                   .sect ".gblinit"
1        00000030 00000000%         .word   ((TSK0$stkptr - TSK0$stack) / STD_TARGWORDMAUS) + 1     ; count
1        00000034 00000000%         .word   TSK0$stack
1        00000038 BEBEBEBE          .word   0xbebebebe 
1                           
1                           
1                                   ;
1                                   ; Finally, let TSK0 point to the right location
1                                   ;
1                                   .asg "TSK0$base + OBJ_HDRSIZE * STD_TARGWORDMAUS", TSK0
1                           
1                                   ;
1                                   ; Conditionally set up strings for arguments
1                                   ;
1                                   .eval   0, TSK$strCount
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg0(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg1(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg2(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg3(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg4(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg5(2,arglen-2):",0
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  245

1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg6(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
1                                   .eval $symlen("00H"),arglen
1                                   .if $symcmp("0","'") = 0 & $symcmp("H","'") = 0
1                                       .sect ".const"
1                           TSK$string:0:        .string ":arg7(2,arglen-2):",0
1                                       .eval TSK$strCount+1, TSK$strCount
1                                   .endif
1                           
    2159                    
    2160                    ;; ======== IDL_Obj IDL_cpuLoad ========
    2161                    ;; This object is required by the system to acquire CPU load data
    2162                    ;;
    2163                    ;; IDL_Obj IDL_cpuLoad (function, calibration)
    2164                            .global IDL_cpuLoad
    2165                            .asg IDL_F_busy, _function
    2166                            .asg 01H, _calibration
    2167 0000003c                   IDL_Obj 1, IDL_cpuLoad, 0, _function, _calibration
1        0000003c                   CHK_nargs "IDL_Obj", calibration
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                               .var fxnlen
1                               .eval $symlen("IDL_F_busy"),fxnlen
1                           
1                                   .if (1 = 0)   ; if this object is not really to be allocated
1                                       .mexit      ; exit quietly now
1                                   .endif
1                           
1                                   .global IDL_cpuLoad$
1                                   .global IDL_cpuLoad
1                           
1                                   .if ($symcmp("IDL_F_busy", "0") != 0)
1                               .global IDL_F_busy
1                                   .endif
1                           
1                           IDL_cpuLoad$ .tag    IDL_Obj         ; declare name$ as having type IDL_Obj
1                           
1        00000000           IDL_cpuLoad$ .usect ".idlcal", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        00000598                   .sect ".cinit"
1                           
1                               .align  8
1        00000598 00000004      .field  STD_TARGWORDMAUS * 1
1        0000059c 00000000%     .field  IDL_cpuLoad$    
1                                   .if (01H != 0) ; if to be included in IDL calibration
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  246

1        000005a0 00000000!             .field  IDL_F_busy             ; fxn
1                               .else
1                                       .field  FXN_F_nop    ; else use FXN_F_nop
1                                   .endif
1                           
1                           IDL_cpuLoad  .tag    IDL_Obj         ; declare name as having type IDL_Obj
1                           
1        00000000           IDL_cpuLoad  .usect ".idl", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        000005a4                   .sect ".cinit"
1                           
1                               .align  8
1        000005a8 00000004      .field  STD_TARGWORDMAUS * 1
1        000005ac 00000000%     .field  IDL_cpuLoad    
1        000005b0 00000000!     .field  IDL_F_busy           ; fxn
1                           
    2168                    
    2169                    ;; ======== IDL_Obj LNK_dataPump ========
    2170                    ;; This object cannot be deleted
    2171                    ;;
    2172                    ;; IDL_Obj LNK_dataPump (function, calibration)
    2173                            .global LNK_dataPump
    2174                            .asg LNK_F_dataPump, _function
    2175                            .asg 01H, _calibration
    2176 000005b4                   IDL_Obj 1, LNK_dataPump, 0, _function, _calibration
1        000005b4                   CHK_nargs "IDL_Obj", calibration
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                               .var fxnlen
1                               .eval $symlen("LNK_F_dataPump"),fxnlen
1                           
1                                   .if (1 = 0)   ; if this object is not really to be allocated
1                                       .mexit      ; exit quietly now
1                                   .endif
1                           
1                                   .global LNK_dataPump$
1                                   .global LNK_dataPump
1                           
1                                   .if ($symcmp("LNK_F_dataPump", "0") != 0)
1                               .global LNK_F_dataPump
1                                   .endif
1                           
1                           LNK_dataPump$ .tag    IDL_Obj         ; declare name$ as having type IDL_Obj
1                           
1        00000004           LNK_dataPump$ .usect ".idlcal", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        000005b4                   .sect ".cinit"
1                           
1                               .align  8
1        000005b8 00000004      .field  STD_TARGWORDMAUS * 1
1        000005bc 00000000%     .field  LNK_dataPump$    
1                                   .if (01H != 0) ; if to be included in IDL calibration
1        000005c0 00000000!             .field  LNK_F_dataPump             ; fxn
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  247

1                               .else
1                                       .field  FXN_F_nop    ; else use FXN_F_nop
1                                   .endif
1                           
1                           LNK_dataPump  .tag    IDL_Obj         ; declare name as having type IDL_Obj
1                           
1        00000004           LNK_dataPump  .usect ".idl", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        000005c4                   .sect ".cinit"
1                           
1                               .align  8
1        000005c8 00000004      .field  STD_TARGWORDMAUS * 1
1        000005cc 00000000%     .field  LNK_dataPump    
1        000005d0 00000000!     .field  LNK_F_dataPump           ; fxn
1                           
    2177                    
    2178                    ;; ======== IDL_Obj RTA_dispatcher ========
    2179                    ;; This object cannot be deleted
    2180                    ;;
    2181                    ;; IDL_Obj RTA_dispatcher (function, calibration)
    2182                            .global RTA_dispatcher
    2183                            .asg RTA_F_dispatch, _function
    2184                            .asg 01H, _calibration
    2185 000005d4                   IDL_Obj 1, RTA_dispatcher, 0, _function, _calibration
1        000005d4                   CHK_nargs "IDL_Obj", calibration
1                                   .if ($symcmp("", "error") = 0)
1                                       .mexit
1                                   .endif
1                           
1                               .var fxnlen
1                               .eval $symlen("RTA_F_dispatch"),fxnlen
1                           
1                                   .if (1 = 0)   ; if this object is not really to be allocated
1                                       .mexit      ; exit quietly now
1                                   .endif
1                           
1                                   .global RTA_dispatcher$
1                                   .global RTA_dispatcher
1                           
1                                   .if ($symcmp("RTA_F_dispatch", "0") != 0)
1                               .global RTA_F_dispatch
1                                   .endif
1                           
1                           RTA_dispatcher$ .tag    IDL_Obj         ; declare name$ as having type IDL_Obj
1                           
1        00000008           RTA_dispatcher$ .usect ".idlcal", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        000005d4                   .sect ".cinit"
1                           
1                               .align  8
1        000005d8 00000004      .field  STD_TARGWORDMAUS * 1
1        000005dc 00000000%     .field  RTA_dispatcher$    
1                                   .if (01H != 0) ; if to be included in IDL calibration
1        000005e0 00000000!             .field  RTA_F_dispatch             ; fxn
1                               .else
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  248

1                                       .field  FXN_F_nop    ; else use FXN_F_nop
1                                   .endif
1                           
1                           RTA_dispatcher  .tag    IDL_Obj         ; declare name as having type IDL_Obj
1                           
1        00000008           RTA_dispatcher  .usect ".idl", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
1                           
1        000005e4                   .sect ".cinit"
1                           
1                               .align  8
1        000005e8 00000004      .field  STD_TARGWORDMAUS * 1
1        000005ec 00000000%     .field  RTA_dispatcher    
1        000005f0 00000000!     .field  RTA_F_dispatch           ; fxn
1                           
    2186                    
    2187                    ;; ======== LOG_Obj LOG_system ========
    2188                    ;; This object is required by the system to accumulate execution trace information
    2189                    ;;
    2190                    ;; LOG_Obj LOG_system (bufseg, buflen, logtype, iType, iFormat)
    2191                            .global LOG_system
    2192                            .asg IRAM, _bufseg
    2193                            .asg 040H, _buflen
    2194                            .asg "circular", _logtype
    2195                            .asg "system", _iType
    2196                            .asg "0x%x, 0x%x, 0x%x", _iFormat
    2197 000005f4                   LOG_Obj 1, LOG_system, 0, _bufseg, _buflen, _logtype, _iType, _iFormat
1        000005f4                   CHK_domain LOG_Obj, mode, "circular,fixed", "circular"
2                           
1                                   .asg "circular", mode
1                                   .if ($isdefed("LOG_NOOP") = 1)
1                                       .mexit
1                                   .elseif ($symcmp("circular", "error") = 0)
1                                       .emsg "LOG_Obj mode error."
1                                   .endif
1                           
1                                   .global LOG_system$buf
1                                   .global LOG_system$size
1                                   .global LOG_system$datatype
1                           
1                                   .if ($symcmp("system", "system") = 0)    ; if (type == "system")
1                 00000000  LOG_system$datatype .set    0
1                                   .elseif ($symcmp("system", "printf") = 0)    ; if (type == "printf")
1                           :name:$datatype .set    1
1                                   .elseif ($symcmp("system", "raw data") = 0)   ; if (type == "raw data")
1                           :name:$datatype .set    2
1                           
1                                   .global :name:$fmtstr
1                           
1                                   ; place ":format:" string into .printf section and create symbol for it
1                                   .sect ".printf"
1                           :name:$fmtstr   .string ":format:"
1                                   .byte   0               ; place null character at end of string
1                                   .endif
1                           
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  249

1                                   .var    bufbeg
1                                   .var    flag
1                                   .if ((1 != 0) & (040H > 0))
1                                       .if (((040H - 1) & 040H) != 0)
1                                           .emsg   "The LOG :name: buffer size must be a power of 2"
1                                       .endif
1                           
1                                       .asg        0, flag         ; enable LOG
1                                       .asg        "LOG_system$buf", bufbeg
1                           
1                                                                  ;
1                                                                  ; place log buffers into 
1                                                                                                      ; .log0, .log1, etc. sectio
1                                       
1        000005f4                       GBL_Obj     LOG_system$buf, buflen, ".LOG_system$buf", "noalign", -1, 1
2        000005f4                   CHK_domain "GBL_Obj", alignFlag, "noalign,align", "noalign"
3                           
2                                   .if ($symcmp("noalign", "error") = 0)
2                                       .emsg "GBL_Obj align parameter error."
2                                   .endif
2                                   .asg "noalign", alignFlag
2                           
2        000005f4                   CHK_nargs "GBL_Obj", size
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "GBL_Obj size parameter error."
2                                   .endif
2                           
2                                   .if ($symlen(section) = 0)
2                                       .asg ".bss", section
2                                   .endif
2                           
2                                   .if ($symlen(fillValue) != 0)
2        0000003c                       .sect ".gblinit"
2        0000003c 00000040              .word 040H
2        00000040 00000000%             .word LOG_system$buf
2        00000044 FFFFFFFF              .word -1
2                                   .endif
2                           
2                                   .if (($symcmp(section, ".data") = 0) | ($symcmp(alignFlag, "align") = 0))
2                                       .sect ":section:"
2                                       .if ($symcmp(alignFlag, "align") = 0)
2                                           .align  :alignValue:
2                                       .endif
2                           :name::
2                                       ;
2                                       ; Can't use .space directive here because it reserves
2                                       ; bits for some processors and bytes for others.
2                                       ;
2                                       .loop :size:
2                                           .word 0
2                                       .endloop
2                                   .else
2        00000000           LOG_system$buf:     .usect ".LOG_system$buf", 040H * (STD_TARGWORDMAUS / STD_TARGCHARMAUS), (STD_TARGW
2                                   .endif
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  250

1                           
1                 00000040  LOG_system$size .set        040H
1                           
1                                   .else
1                                       .asg        1, flag         ; disable LOG
1                                       .asg        0, bufbeg
1                           :name:$buf  .set        0
1                           :name:$size .set        0
1                                   .endif
1                           
1        00000000                   .sect ".log"                    ; place all LOG objects in
1                                                                   ; ".log"
1                                   .global LOG_system                  ; make name globally visable
1                                   .global LOG_system$log
1                           
1                 00000000  LOG_system$log .set 0
1                           
1                           LOG_system  .tag    LOG_Obj                 ; declare name as having type
1                                                                   ; LOG_Obj
1                           
1                                                                   ; allocate and initialize 
1        00000000           LOG_system                                  ; LOG_Obj (in current section)
1                           
1        00000000 00000000          .word    0                      ; bufend 
1        00000004 00000000          .word    0                      ; flag
1        00000008 00000000          .word    0                      ; seqnum 
1        0000000c 00000000          .word    0                      ; curptr
1        00000010 00000000          .word    0                      ; lenmask 
1        00000014 00000000          .word    0                      ; bufbeg
1                           
1        000005f4                   .sect ".cinit"
1                                   .align  8
1        000005f8 00000018          .field  STD_TARGWORDMAUS * 6
1        000005fc 00000000%         .field  LOG_system    
1                               .if ($symcmp("circular", "fixed") = 0)    ; if (mode == "fixed")
1                                   .field  :bufbeg:+(:buflen: * STD_TARGWORDMAUS)-1 ; bufend = bufbeg+buflen-1
1                               .else                               ; else
1        00000600 00000000          .field  0                       ;    bufend = 0
1                               .endif
1        00000604 00000000          .field  0                  ; flag
1        00000608 00000000          .field  0                       ; seqnum = 0
1        0000060c 00000000%         .field  LOG_system$buf                ; curptr
1                                                                   ; lenmask (= buflen-1)
1        00000610 000000FF          .field  (040H * STD_TARGWORDMAUS)-1
1        00000614 00000000%         .field  LOG_system$buf                ; bufbeg
1        00000018               .sect    ".log"
1                           
    2198                    
    2199                    ;; ======== STS_Obj IDL_busyObj ========
    2200                    ;; This object is required by the system to accumulate CPU load statistics
    2201                    ;;
    2202                    ;; STS_Obj IDL_busyObj (prev, filter, maxformat, sumformat, avgformat, op, uType, iA, iB, iC, prevlow)
    2203                            .global IDL_busyObj
    2204                            .asg 00H, _prev
    2205                            .asg 01H, _filter
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  251

    2206                            .asg "%g", _maxformat
    2207                            .asg "%g", _sumformat
    2208                            .asg "%.2f", _avgformat
    2209                            .asg 00H, _op
    2210                            .asg 02H, _uType
    2211                            .asg 01H, _iA
    2212                            .asg 00H, _iB
    2213                            .asg 01H, _iC
    2214                            .asg 00H, _prevlow
    2215 00000018                   STS_Obj 1, IDL_busyObj, 0, _prev, _filter, _maxformat, _sumformat, _avgformat, _op, _uType, _i
1                           
1        00000018                   CHK_nargs "STS_Obj", prevl
1                           
1                                   .if ($symcmp("", "error") = 0)
1                                       .emsg "STS_Obj parameter error."
1                                   .endif
1                           
1                                   .if (1 = 0)                  ; if this object is not
1                                                                      ; really to be allocated
1                                       .mexit                         ; exit quietly now
1                                   .endif
1                           
1                                   ; sts filter info
1                                   .global IDL_busyObj, IDL_busyObj$stsobj     
1                                   .global IDL_busyObj$filter, IDL_busyObj$unittype
1                                   .global IDL_busyObj$maxfmt, IDL_busyObj$sumfmt, IDL_busyObj$avgfmt
1                           
1                 00000001  IDL_busyObj$filter .set      01H
1                 00000002  IDL_busyObj$unittype .set    02H
1                           
1                                   ; place the following format strings into the .printf section
1                                   ; .byte 0's are for '\0' to terminate format strings
1        00000085                   .sect ".printf"
1        00000085 00000025  IDL_busyObj$maxfmt .string   "%g"
         00000086 00000067 
1        00000087 00000000          .byte   0
1        00000088 00000025  IDL_busyObj$sumfmt .string   "%g"
         00000089 00000067 
1        0000008a 00000000          .byte   0
1        0000008b 00000025  IDL_busyObj$avgfmt .string   "%.2f"
         0000008c 0000002E 
         0000008d 00000032 
         0000008e 00000066 
1        0000008f 00000000          .byte   0
1                           
1                                   .if (01H = 1)
1                                       .global IDL_busyObj$iA, IDL_busyObj$iB, IDL_busyObj$iC, IDL_busyObj$operation
1                 00000001  IDL_busyObj$iA .set  01H
1                 00000000  IDL_busyObj$iB .set  00H
1                 00000001  IDL_busyObj$iC .set  01H
1                 00000000  IDL_busyObj$operation .set   00H
1                                   .endif
1                           
1        00000050                   .sect ".sts"                       ; allocate STS_Obj 
1                                                                      ; (in section ".sts")
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  252

1                           IDL_busyObj  .tag    STS_Obj                    ; declare name as having 
1                                                                      ; type STS_Obj
1        00000050           IDL_busyObj$stsobj:
1                                                                     ; NOTE: on 32-bit targets
1                                                                     ; only prevh is used
1        00000050 00000000          .long   0                         ; allocate space for previous
1                                                                     ; 32-bit value
1        00000054           IDL_busyObj                                   
1        00000054 00000000          .long   0                         ; num
1        00000058 00000000          .long   0                         ; acc
1        0000005c 80000000          .long   80000000h                 ; max
1                           
1        00000618                   .sect    ".cinit"
1                                   .align    8
1        00000618 00000010          .field    STD_TARGWORDMAUS * 4
1        0000061c 00000000%         .field    IDL_busyObj$stsobj                    
1        00000620 00000000          .field    00H                  ; allocate space for history   
1        00000624 00000000          .field    0                        ; num
1        00000628 00000000          .field    0                        ; acc
1        0000062c 80000000          .field    80000000h                ; max
1                           
1        00000060                   .sect    ".sts"
1                           
    2216                    
    2217                    ;; MODULE INITIALIZATION
    2218 00000000                   .sect ".sysinit"
    2219                            .global BIOS_init, _BIOS_init
    2220 00000000           BIOS_init:
    2221 00000000           _BIOS_init:
    2222 00000000                   GBL_preamble
1        00000000 01BC54F6          stw     b3, *b15--[2]
1                           
    2223 00000004                   GBL_init
1                           
1                                   ; call _GBL_getVersion
1        00000004 0180002A!         mvkl    _GBL_getVersion, b3
1        00000008 0180006A!         mvkh    _GBL_getVersion, b3
1        0000000c 000C0362          b b3
1        00000010 01800E2A!         mvkl versret?,b3
1        00000014 0180006A!         mvkh versret?,b3
1        00000018 00004000          nop 3 
1        0000001c           versret?:
1        0000001c 00A900A8          mvkl    5201h, a1
1        00000020 00800068          mvkh    5201h, a1
1                            
1        00000024 009028C0          sub a4,a1,a1
1        00000028 00840A58          cmpeq a1,0,a1
1                           
1        0000002c           GBL_versionMismatch?:
1        0000002c 90000192    [!a1] b GBL_versionMismatch? 
1        00000030 00008000          nop 5
1                                   
1                                   ; SDSsq43119 - bug found for 6x big-endian where PROCID was not being
1                                   ; returned correctly.
1                                   ; GBL_procId is initialized here instead of creating a cinit
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  253

1                                   ; record in biosdata.s62 because PROCID is 16bits and it is not 
1                                   ; possible to generate a 16bit cinit record where the value is 
1                                   ; relocatable. This change was only done for 6x. All others use
1                                   ; cinit record to initialize PROCID.
1                                   .ref _GBL_procId
1        00000034 00800028          mvkl    GBL_PROCID, a1
1        00000038 0180002A!         mvkl    _GBL_procId, b3 
1        0000003c 0180006A!         mvkh    _GBL_procId, b3 
1        00000040 008C02D4          sth     a1, *b3
1                           
1                           
1                                   ; only call user init function if non-zero
1                                   .if (GBL_USERINIT != 0)
1                                   ; USERINITFXN below is defined in GBL_config
1                                       mvkl :USERINITFXN:, b3
1                                       mvkh :USERINITFXN:, b3
1                                       b b3
1                                       mvkl ginit?, b3
1                                       mvkh ginit?, b3
1                                       nop 3
1                           ginit?:
1                                   .endif
1                           
1                                   .if ($isdefed("_64P_"))
1                           
1                                   .if GBL_ENABLE_SK == 1
1                           
1                                   .global _SK_registerOSIntr
1                                   .global _SK_registerOSHWE
1                                   .global _SK_registerOSSWE
1                           
1                                   stw     b10, *SP--[4]
1                                   stw     b11, *SP[1]
1                                   stw     a10, *SP[2]
1                           
1                                   ;
1                                   ; Register intr vectors 2-14 with SK.
1                                   ;
1                                   mvk     14-2, b11               ; register 14 intrs (bdec-adjusted)
1                                   mvk     2, a10                  ; start with intr #2
1                                   mvkl    hwi2, b10
1                                   mvkh    hwi2, b10
1                           
1                           skRegisterLoop:
1                                   mvkl    _SK_registerOSIntr, b3
1                                   mvkh    _SK_registerOSIntr, b3
1                                   bnop    b3, 0
1                                   addkpc  reg1, b3, 2
1                                   mv      a10, a4
1                                   mv      b10, b4
1                           reg1:
1                                   
1                                   bdec    skRegisterLoop, b11
1                                   addaw   b10, 8, b10             ; next vector addr
1                                   add     a10, 1, a10             ; next intr #
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  254

1                                   nop     3
1                           
1                                   ;
1                                   ; Register NMI vector with SK for exceptions.
1                                   ;
1                                   mvkl    _SK_registerOSHWE, b3
1                                   mvkh    _SK_registerOSHWE, b3
1                                   bnop    b3, 0
1                                   addkpc  reg2, b3, 2
1                                   mvkl    hwi1, a4
1                                   mvkh    hwi1, a4
1                           reg2:
1                           
1                                   ;
1                                   ; Register NMI vector with SK for SWE processing.
1                                   ;
1                                   mvkl    _SK_registerOSSWE, b3
1                                   mvkh    _SK_registerOSSWE, b3
1                                   bnop    b3, 0
1                                   addkpc  reg3, b3, 2
1                                   mvkl    hwi1, a4
1                                   mvkh    hwi1, a4
1                           reg3:
1                           
1                                   ldw     *SP[1], b11
1                                   ldw     *SP[2], a10
1                                   ldw     *++SP[4], b10
1                           
1                                   .else   ; GBL_ENABLE_SK
1                           
1                                   .global HWI_A_VECS
1                           
1        00000044 00000028!         mvkl HWI_A_VECS,a0
1        00000048 00000068!         mvkh HWI_A_VECS,a0
1        0000004c 028013A2          mvc a0,istp                 ; load interrupt service table pointer
1                           
1                                   .endif  ; GBL_ENABLE_SK
1                           
1                                   .else   ; _64P_
1                           
1                                   .global HWI_A_VECS
1                           
1                                   mvkl HWI_A_VECS,a0
1                                   mvkh HWI_A_VECS,a0
1                                   mvc a0,istp                 ; load interrupt service table pointer
1                           
1                                   .endif  ; _64P_
1                           
1                                   .if (STD_TMS320C6700PLUS = 0) ; no HWI_REGS on Antara chip
1                           
1                                   .if STD_TMS320C6400PLUS
1                           
1                                   .if GBL_ENABLE_SK == 1
1                           
1                                   .global _SK_setEventReg
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  255

1                           ;
1                           ; Register number in ECM space of INTMUX1 register
1                           ;
1                           INTMUX1_EVENT_INDEX     .set    0x104 / 4
1                           
1                                   mvk     INTMUX1_EVENT_INDEX, a4 ; put event register number in A4
1                                   mvkl    HWI_INTRMUX1, b4        ; Value for Interrupt Mux Register 1
1                                   mvkh    HWI_INTRMUX1, b4
1                                   callp   _SK_setEventReg, b3
1                           
1                                   mvk     INTMUX1_EVENT_INDEX+1, a4 ; put event register number in A4
1                                   mvkl    HWI_INTRMUX2, b4        ; Value for Interrupt Mux Register 2
1                                   mvkh    HWI_INTRMUX2, b4
1                                   callp   _SK_setEventReg, b3
1                           
1                                   mvk     INTMUX1_EVENT_INDEX+2, a4 ; put event register number in A4
1                                   mvkl    HWI_INTRMUX3, b4        ; Value for Interrupt Mux Register 3
1                                   mvkh    HWI_INTRMUX3, b4
1                                   callp   _SK_setEventReg, b3
1                           
1                                   .else   ; GBL_ENABLE_SK == 1
1                           
1        00000050 00008228          mvkl HWI_REGS,a0            ; load addr of Interrupt Selector Regs
1        00000054 0000C068          mvkh HWI_REGS,a0
1                           
1        00000058 0088822A          mvkl HWI_INTRMUX1,b1    ; Value for Interrupt Mux Register 1
1        0000005c 0083836A          mvkh HWI_INTRMUX1,b1
1        00000060 00803676          stw b1,*a0++            ; Store into Interrupt Mux Register
1                           
1        00000064 0084842A          mvkl HWI_INTRMUX2,b1    ; Value for Interrupt Mux Register 2
1        00000068 008581EA          mvkh HWI_INTRMUX2,b1
1        0000006c 00803676          stw b1,*a0++            ; Store into Interrupt Mux Register
1                           
1        00000070 0080062A          mvkl HWI_INTRMUX3,b1    ; Value for Interrupt Mux Register 3
1        00000074 00A2A1EA          mvkh HWI_INTRMUX3,b1
1        00000078 00803676          stw b1,*a0++            ; Store into Interrupt Mux Register
1                           
1                                   .endif  ; GBL_ENABLE_SK == 1
1                           
1                                   .else   ; STD_TMS320C6400PLUS
1                           
1                                   mvkl HWI_REGS,a0            ; load addr of Interrupt Selector Regs
1                                   mvkh HWI_REGS,a0
1                           
1                                   mvkl HWI_INTRMULTHIGH,b1    ; Value for Interrupt Multiplexer High
1                                   mvkh HWI_INTRMULTHIGH,b1
1                                   stw b1,*a0++                ; Store into Interrupt Multiplexer High
1                           
1                                   mvkl HWI_INTRMULTLOW,b1     ; Value for Interrupt Multiplexer Low
1                                   mvkh HWI_INTRMULTLOW,b1
1                                   stw b1,*a0++                ; Store into Interrupt Multiplexer Low
1                                   
1                                   mvkl HWI_POLARITYMASK,b1    ; Value for External Interrupt Polarity
1                                   mvkh HWI_POLARITYMASK,b1
1                                   stw b1,*a0                  ; Store into External Interrupt Polarity
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  256

1                           
1                                   .endif
1                           
1        0000007c 00008000          nop 5                       ; allow settling for possible spurious
1        00000080 00008000          nop 5                       ; interrupts (10 cycles, per TI)
1                           
1                                   .endif                      ; endif STD_TMS320C6700PLUS == 0    
1        00000084 00FCA35A          mvk 0xffffffff,b1           ; clear any bits in IFR using ICR
1        00000088 018403A2          mvc b1,icr
1                           
1        0000008c 009003E2          mvc ier,b1
1        00000090 008448F2          or 2,b1,b1
1        00000094 020403A2          mvc b1,ier                  ; set NMIE bit (required to enable ISRs)
1                           
1                                   .if GBL_SUPPORTCSL
1                                       .ref    _GBL_cslInit
1                           
1                                       mvkl    _GBL_cslInit, b0
1                                       mvkh    _GBL_cslInit, b0
1                                       b       b0
1                                       mvkl    hwi_init_ret?, b3
1                                       mvkh    hwi_init_ret?, b3
1                                       nop 3
1                           
1                           hwi_init_ret?:
1                           
1                                   .endif
1                           
1                                   ; 
1                                   ; L2 CACHE initialization
1                                   ;
1                                   
1                                   .if (GBL_L2CONFIGURE != 0)
1                                       .if ($isdefed("_64P_"))
1                                           .ref  _GBL_cacheInit64P
1                           
1        00000098 0000002A!                 mvkl  _GBL_cacheInit64P, b0
1        0000009c 0000006A!                 mvkh  _GBL_cacheInit64P, b0
1                                           
1        000000a0 020003A9                  mvkl GBL_L1DMODE, a4
1        000000a4 060003AA  ||              mvkl GBL_L1PMODE, b12
1        000000a8 02000069                  mvkh GBL_L1DMODE, a4
1        000000ac 0600006A  ||              mvkh GBL_L1PMODE, b12
1        000000b0 023C34F4                  stw a4, *b15--
1                           
1        000000b4 02000029                  mvkl GBL_L2MODE, a4
1        000000b8 0200002A  ||              mvkl GBL_L2MAR0_31, b4
1        000000bc 02000069                  mvkh GBL_L2MODE, a4
1        000000c0 0200006A  ||              mvkh GBL_L2MAR0_31, b4
1        000000c4 03000029                  mvkl GBL_L2MAR32_63, a6
1        000000c8 0300002A  ||              mvkl GBL_L2MAR64_95, b6
1        000000cc 03000069                  mvkh GBL_L2MAR32_63, a6
1        000000d0 0300006A  ||              mvkh GBL_L2MAR64_95, b6
1        000000d4 04000029                  mvkl GBL_L2MAR96_127, a8
1        000000d8 0400002A  ||              mvkl GBL_L2MAR128_159, b8
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  257

1        000000dc 00000362                  b       b0
1        000000e0 04000069                  mvkh GBL_L2MAR96_127, a8
1        000000e4 0400006A  ||              mvkh GBL_L2MAR128_159, b8
1        000000e8 05000029                  mvkl GBL_L2MAR160_191, a10
1        000000ec 0500002A  ||              mvkl GBL_L2MAR192_223, b10
1        000000f0 05000069                  mvkh GBL_L2MAR160_191, a10
1        000000f4 0500006A  ||              mvkh GBL_L2MAR192_223, b10
1        000000f8 06000029                  mvkl GBL_L2MAR224_255, a12
1        000000fc 0180842A! ||              mvkl  gbl_cacheinit_ret?, b3
1        00000100 06000069                  mvkh GBL_L2MAR224_255, a12
1        00000104 0180006A! ||              mvkh  gbl_cacheinit_ret?, b3
1        00000108           gbl_cacheinit_ret?
1        00000108 178001FE                  addaw b15, 1, b15
1                                           
1                           
1                                       .elseif ($isdefed("_64_"))
1                                           .ref  _GBL_cslCacheInit64
1                           
1                                           mvkl  _GBL_cslCacheInit64, b0
1                                           mvkh  _GBL_cslCacheInit64, b0
1                           
1                                           mvkl GBL_L2MODE, a4
1                           ||              mvkl GBL_C641XL2PRIORITY, b4
1                                           mvkh GBL_L2MODE, a4
1                           ||              mvkh GBL_C641XL2PRIORITY, b4
1                                           mvkl GBL_L2MARMASK1, a6
1                           ||              mvkl GBL_L2MARMASK2, b6
1                                           mvkh GBL_L2MARMASK1, a6
1                           ||              mvkh GBL_L2MARMASK2, b6
1                                           mvkl GBL_L2MARMASK3, a8
1                           ||              mvkl GBL_L2MARMASK4, b8
1                                           b b0
1                                           mvkh GBL_L2MARMASK3, a8
1                           ||              mvkh GBL_L2MARMASK4, b8
1                                           mvkl GBL_L2MARMASK5, a10
1                           ||              mvkl GBL_L2CONFIGALLOC, b10
1                                           mvkh GBL_L2MARMASK5, a10
1                           ||              mvkh GBL_L2CONFIGALLOC, b10
1                                           mvkl GBL_L2ALLOC, a12
1                           ||              mvkl  gbl_cslcacheinit_ret?, b3
1                                           mvkh GBL_L2ALLOC, a12
1                           ||              mvkh  gbl_cslcacheinit_ret?, b3
1                                       .else
1                                           .ref  _GBL_cslCacheInit
1                           
1                                           mvkl  _GBL_cslCacheInit, b0
1                                           mvkh  _GBL_cslCacheInit, b0
1                           
1                                           b       b0
1                                           mvkl  GBL_L2MODE, a4
1                           ||              mvkl  GBL_L2MARMASK, b4
1                                           mvkh  GBL_L2MODE, a4
1                                           mvkh  GBL_L2MARMASK, b4
1                                           mvkl  gbl_cslcacheinit_ret?, b3
1                                           mvkh  gbl_cslcacheinit_ret?, b3
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  258

1                                       .endif
1                           
1                                   .endif  ; GBL_L2CONFIGURE
1                           
1                                   ; set GEM Completion bit for omap 2430, 3430
1                                   .if ((GBL_CLKTYPE == 2430) | (GBL_CLKTYPE == 3430))
1                                       mvkl GBL_SYSC_LICFG0, b0
1                                       mvkh GBL_SYSC_LICFG0, b0
1                                       ldw  *b0, b1
1                                       mvkl GBL_GEMTRUECOMPENVAL, a0
1                                       mvkh GBL_GEMTRUECOMPENVAL, a0
1                                       mvkl GBL_GEMTRUECOMPENMASK, a1
1                                       mvkh GBL_GEMTRUECOMPENMASK, a1
1                                       and  b1, a1, b1
1                                       or   b1, a0, b1
1                                       stw  b1, *b0
1                           
1                                   .endif
1                           
1        0000010c           gbl_cslcacheinit_ret?:
1                           
1                                   ;
1                                   ; CACHE initialization
1                                   ;
1                           
1        0000010c 000403E2          mvc     csr, b0                 ; get CSR
1                           
1                                   .if (STD_TMS320C6400PLUS | STD_TMS320C6700PLUS)
1                                   .else
1                                   mvkl    HWI_D_ccmask, b2
1                                   mvkh    HWI_D_ccmask, b2
1                                   ldw     *b2, b2                 ; get cache bits from configuration
1                                   nop     1
1                           
1                                   mvk     C6X_CCFIELDS, b1
1                                   and     b1, b0, b1              ; extract pcc+dcc fields of csr
1                                   xor     b1, b0, b0              ; clear pcc+dcc fields of csr
1                                   or      b2, b0, b0              ; change pcc and dcc fields
1                                   .endif
1                           
1        00000110 008003A2          mvc     b0, csr                 ; save CSR with new cache state
1                           
1                                   ;
1                                   ;  Calling TRC_init from here until there is at trc.cdb file.
1                                   ;
1        00000114                   TRC_init
2                                   ; TRC is always configured, so until we have a trc.cdb
2                                   ; file, don't check if module is configured.
2        00000114 02000028!         mvkl TRC_cinit, a4
2        00000118 02000068!         mvkh TRC_cinit, a4
2        0000011c 02100264          ldw *a4, a4
2        00000120 01000028!         mvkl TRC_R_mask, a2
2        00000124 01000068!         mvkh TRC_R_mask, a2
2        00000128 00002000          nop 2
2        0000012c 02080274          stw a4, *a2
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  259

2                           
1                           
1                                   ;
1                                   ;  fill memory using triples (nwords, addr, value) from 
1                                   ;  gblinit table.
1                                   ;
1        00000130 02000028%         mvkl    gblinit, a4
1        00000134 02000068%         mvkh    gblinit, a4
1                           
1        00000138           loop0?:
1        00000138 00103666          ldw     *a4++[1], b0            ; nwords
1        0000013c 00103664          ldw     *a4++[1], a0            ; address
1        00000140 01103666          ldw     *a4++[1], b2            ; value
1        00000144 00004000          nop     3
1        00000148 30000512   [!b0]  b       done?
1        0000014c 00008000          nop     5
1                           
1        00000150           loop1?:
1        00000150 01003676          stw     b2, *a0++[1]
1        00000154 000029C2          sub     b0, 1, b0
1        00000158 20000212   [b0]   b       loop1?
1        0000015c 00008000          nop     5
1                           
1        00000160 0FFFFB12          b       loop0?
1        00000164 00008000          nop     5
1        00000168           done?:
1        00000168 0104A359          mvk     1, a2
1        0000016c 0100002A!  ||     mvkl    GBL_initdone, b2
1        00000170 0100006A!         mvkh    GBL_initdone, b2
1        00000174 010802F4          stw     a2, *b2
1                           
    2224 00000178                   SEM_init
1                           
1                                   ; only expand if the SEM module is configured
1                                   .if (SEM$ = 1)
1                                   .endif
1                           
    2225 00000178                   MEM_init
1                           
1                                   .if (MEM_USEMPC)
1                                           .global __MPC_init
1                                           mvkl    __MPC_init, a4
1                                           mvkh    __MPC_init, a4
1                                           b       a4
1                                           mvkl    mpc_init_ret, b3
1                                           mvkh    mpc_init_ret, b3
1                                           nop     3
1                           mpc_init_ret:
1                                   .endif
1                           
1                                   ; only expand if dyanmic memory heaps on configured by the user
1                                   .if (MEM_gNumHeap > 0)
1                                           .global _MEM_init
1                           
1        00000178 02000028!                 mvkl    _MEM_init, a4
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  260

1        0000017c 02000068!                 mvkh    _MEM_init, a4
1        00000180 00101362                  b       a4
1        00000184 0180C82A!                 mvkl    meminit?, b3
1        00000188 0180006A!                 mvkh    meminit?, b3
1        0000018c 00004000                  nop     3
1                           meminit?:
1                           
1                                   .endif              
1                           
    2226 00000190                   OBJ_init
    2227 00000190                   BUF_init
1                           
1                                   ; only expand if the BUF module is configured
1                                   .if (BUF$ = 1)
1                                      .ref _BUF_init
1                            
1                                      mvkl   _BUF_init,a4
1                                      mvkh   _BUF_init,a4
1                                      b      a4
1                                      mvkl   bufstart?, b3
1                                      mvkh   bufstart?, b3
1                                      nop 3
1                           bufstart?:
1                           
1                                   .endif
1                           
    2228 00000190                   POOL_init
1                           
1                                   ; only expand if the POOL module is configured
1                                   .if (POOL_USEPOOL)
1                                     .ref _POOL_init
1                            
1                                      mvkl   _POOL_init,a4
1                                      mvkh   _POOL_init,a4
1                                      b      a4
1                                      mvkl   poolinit?, b3
1                                      mvkh   poolinit?, b3
1                                      nop 3
1                           poolinit?:
1                           
1                                   .endif
1                           
    2229 00000190                   CLK_init
1                           
1                                   .if STD_TMS320C6400PLUS
1                                       .if (CLK_ENABLEHTIME)
1        00000190 050013A2                  mvc a0, TSCL            ; this will enable counter,
1                                       .endif                      ; written value is ignored.
1                                   .endif
1                           
1                                   ; only expand if the CLK module is configured by the user and he/she/it
1                                   ; asks to use the timer
1                                   .if ((CLK$ = 1) & (CLK_USETIMER = 1))
1                                   .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  261

    2230 00000194                   PRD_init
1                           
1                                   ; only expand if the PRD module is configured by the user 
1                                   .if (PRD$ = 1) 
1                                   .endif
1                           
    2231 00000194                   RTDX_init
    2232 00000194                   IDL_init
1                           
1                               ; only expand if the IDL module is configured by the user
1                               .if (IDL$ = 1)
1                                   .if (01H)         ; defined in IDL_config
1                           
1                                       .def BIOS$$CLKON, BIOS$$CLKOFF
1                           
1        00000194           BIOS$$CLKON:
1                                   ; BIOS$$CLKON signals to the C6x fast simulators to switch into 
1                                   ; cycle-accurate mode.
1                                   ; This is to make the calibration of the IDL loop accurate, so that
1                                   ; CPU load, which is based on this calibration, will also be accurate.
1                                   ; The bookend label to this is BIOS$$CLKOFF.
1                           
1                                   ; Perform calibration twice; first time fills cache (6211), and 
1                                   ; second time yields the accurate calibration value. 
1        00000194 00800028!         mvkl IDL_D_calibrate, a1
1        00000198 00800068!         mvkh IDL_D_calibrate, a1
1        0000019c 00840264          ldw *a1, a1                     ; load IDL_D_calibrate
1        000001a0 0180DA2A!         mvkl idlinit1?,b3
1        000001a4 0180006A!         mvkh idlinit1?,b3
1        000001a8 00002000          nop 2
1        000001ac 00041362          b a1
1        000001b0 00008000          nop 5
1        000001b4           idlinit1?:
1        000001b4 00800028!         mvkl IDL_D_calibrate, a1
1        000001b8 00800068!         mvkh IDL_D_calibrate, a1
1        000001bc 00840264          ldw *a1, a1                     ; load IDL_D_calibrate
1        000001c0 0180EA2A!         mvkl idlinit2?,b3
1        000001c4 0180006A!         mvkh idlinit2?,b3
1        000001c8 00002000          nop 2
1        000001cc 00041362          b a1
1        000001d0 00008000          nop 5
1                           
1        000001d4           BIOS$$CLKOFF:
1                                   ; BIOS$$CLKOFF signals to the C6x fast simulators to switch out of 
1                                   ; cycle-accurate mode. This is the bookend label to BIOS$$CLKON.
1                           
1                                   ; Reset the IDL_busyObj values, and clear the "prev" value so the
1                                   ; first pass through the real IDL loop won't produce a garbage
1                                   ; value. The STS_reset API is not being used because the prev
1                                   ; value is not cleared in STS_reset, so doing it this way uses
1                                   ; less than half as many instructions as using the APIs. dsg-2/9/01
1        000001d4           idlinit2?:
1        000001d4 02000028!         mvkl IDL_D_busyObj, a4
1        000001d8 02000068!         mvkh IDL_D_busyObj, a4
1        000001dc 02100264          ldw *a4, a4                     ; load IDL_busyObj address to a4
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  262

1        000001e0 0080A358          zero a1
1        000001e4 00004000          nop 3
1        000001e8 00902074          stw a1,*-a4(4)                  ; clear prev
1        000001ec 00900274          stw a1,*+a4(0)                  ; clear num
1        000001f0 00902274          stw a1,*+a4(4)                  ; clear acc
1        000001f4 00C00068          mvklh 8000h, a1                 ; form largest negative number
1        000001f8 00904274          stw a1,*+a4(8)                  ; set max
1                           
1                                   .endif
1                               .endif
1                           
    2233 000001fc                   LCK_init
1                           
1                                   ; only expand if the LCK module is configured
1                                   .if (LCK$ = 1)
1                                   .endif
1                           
    2234 000001fc                   LOG_init
1                                   ; only expand if the LOG module is configured by the user
1                                   .if (LOG$ = 1)
1                                   .endif
1                           
    2235 000001fc                   MBX_init
1                           
1                                   ; only expand if the MBX module is configured
1                                   .if (MBX$ = 1)
1                                   .endif
1                           
    2236 000001fc                   PIP_init
    2237 000001fc                   QUE_init
    2238 000001fc                   STS_init
1                           
1                                   ; only expand if the STS module is configured
1                                   .if (STS$ = 1)
1                                   .endif
1                           
    2239 000001fc                   SYS_init
1                           
1                                   ; only expand if the SYS module is configured
1                                   .if (SYS$ = 1)
1                                   .endif
1                           
    2240 000001fc                   HWI_init
1                           
1                                   .if ($isdefed("_64P_"))
1                           
1                                       .if (HWI_ENABLE_EXC == 1)
1                                           .global _EXC_init
1        000001fc 0180002A!                 MVKL    _EXC_init, B3
1        00000200 0180006A!                 MVKH    _EXC_init, B3
1        00000204 000C0362                  B       B3
1        00000208 01838162                  ADDKPC  excInitRet, B3, 4
1                           excInitRet:
1                                       .endif
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  263

1                                   .endif  ; $isdefed("_64P_")
1                           
    2241 0000020c                   HST_init
1                                   ; only expand if the HST module is configured by the user
1                                   .if(HST$ != 0)
1        0000020c                       LNK_init    ; do any required LNK initialization
2                                   ;
2                                   ; no need to call LNK_F_init when it's an empty function
2                                   ;
1                                   .endif
    2242 0000020c                   ECM_init
1                                   .if ECM_ENABLE
1                                       .global ECM_EVTMASK0, ECM_EVTMASK1, ECM_EVTMASK2, ECM_EVTMASK3
1                           
1                                       mvkl ECM_EVTMASKREG, a0     ; mask out events that are not
1                           ||          mvkl ECM_EVTMASK0, b0       ; configured in static config file.
1                                       mvkh ECM_EVTMASKREG, a0
1                           ||          mvkh ECM_EVTMASK0, b0
1                                       stw b0, *a0++
1                           ||          mvkl ECM_EVTMASK1, a1
1                           ||          mvkl ECM_EVTMASK2, b1
1                                       mvkh ECM_EVTMASK1, a1
1                           ||          mvkh ECM_EVTMASK2, b1
1                                       stw a1, *a0++
1                           ||          mvkl ECM_EVTMASK3, b2
1                                       mvkh ECM_EVTMASK3, b2
1                           ||          stw b1, *a0++
1                                       stw b2, *a0++
1                           
1                                   .endif
1                           
    2243 0000020c                   DEV_init
1                                   .if DEV$NUMDEVICES != 0
1                           
1                                       .global     _DEV_init
1                           
1                                       mvkl        _DEV_init, a4
1                                       mvkh        _DEV_init, a4
1                                       b           a4
1                                       mvkl        devinit?, b3
1                                       mvkh        devinit?, b3
1                                       nop 3
1                           devinit?:
1                           
1                                   .endif
1                           
    2244 0000020c                   UDEV_init
    2245 0000020c                   DIO_init
    2246 0000020c                   DGN_init
    2247 0000020c                   DHL_init
    2248 0000020c                   DPI_init
    2249 0000020c                   SIO_init
1                           
1                                   .if SIO$NUMOF != 0
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  264

1                                       .global     _SIO_init
1                           
1                                       mvkl        _SIO_init, a4
1                                       mvkh        _SIO_init, a4
1                                       b           a4
1                                       mvkl        siostart?, b3
1                                       mvkh        siostart?, b3
1                                       nop 3
1                           siostart?:
1                           
1                                   .endif
1                           
    2250 0000020c                   GIO_init
1                           
1                                   ; only expand if the GIO module is configured
1                                   .if (GIO$ = 1)
1                                   .endif
1                           
    2251 0000020c                   MSGQ_init
1                           
1                                   ; only expand if the MSGQ module is configured
1                                   .if (MSGQ_USEMSGQ)
1                                     .ref _MSGQ_init
1                            
1                                      mvkl   _MSGQ_init,a4
1                                      mvkh   _MSGQ_init,a4
1                                      b      a4
1                                      mvkl   msgqinit?, b3
1                                      mvkh   msgqinit?, b3
1                                      nop 3
1                           msgqinit?:
1                           
1                                   .endif
1                           
    2252 0000020c                   SWI_init
1                                   ; only expand if the SWI module is configured by the user
1                                   .if (SWI$ = 1)
1                                   .endif
1                           
    2253 0000020c                   HOOK_init
1                           
1                                   ; only expand if the HOOK module is configured
1                                   .if (HOOK$ = 1)
1                           
1                                   .ref    __HOOK_doInit
1                           
1                                   mvkl    __HOOK_doInit, a0
1                                   mvkh    __HOOK_doInit, a0
1                                   b       a0
1                                   mvkl    init_ret, b3
1                                   mvkh    init_ret, b3
1                                   nop     3
1                           init_ret:
1                           
1                                   .endif
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  265

1                           
    2254 0000020c                   TSK_init
1                           
1                                   ; only expand if the TSK module is configured
1                                   .if (TSK$ = 1)
1                           
1                                       .global _TSK_init
1                                       .global _TSK_setup
1                           
1        0000020c 02000028!             mvkl        _TSK_init, a4
1        00000210 02000068!             mvkh        _TSK_init, a4
1        00000214 00101362              b           a4
1        00000218 0181122A!             mvkl        tskinit?, b3
1        0000021c 0180006A!             mvkh        tskinit?, b3
1        00000220 00004000              nop         3
1                           
1                           tskinit?:
1                                       .if TSK$NUMOF != 0
1                           
1        00000224 02000028!                 mvkl    _TSK_setup, a4
1        00000228 02000068!                 mvkh    _TSK_setup, a4
1        0000022c 00101362                  b       a4
1        00000230 01811E2A!                 mvkl    tskstup?, b3      ; return address
1        00000234 0180006A!                 mvkh    tskstup?, b3
1        00000238 00004000                  nop     3
1                                       .else
1                                           .emsg "There must be at least one task defined under TSK."
1                                       .endif
1                           
1                           tskstup?:
1                           
1                                   .endif
1                           
    2255 0000023c                   ISRC_init
    2256 0000023c                   GBL_postamble
1        0000023c 01BC52E6          ldw     *++b15[2], b3
1        00000240 00006000          nop     4
1        00000244 000C0362          b       b3
1        00000248 00008000          nop     5
1                           
    2257                    
    2258                    ;; MODULE STARTUP
    2259 0000024c                   .sect ".sysinit"
    2260                            .global BIOS_start, _BIOS_start
    2261 0000024c           BIOS_start:
    2262 0000024c           _BIOS_start:
    2263 0000024c                   GBL_preamble
1        0000024c 01BC54F6          stw     b3, *b15--[2]
1                           
    2264 00000250                   GBL_startup
    2265 00000250                   SEM_startup
1                           
1                                   .if     SEM$NUMOF != 0
1                                   .endif
    2266 00000250                   MEM_startup
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  266

    2267 00000250                   OBJ_startup
    2268 00000250                   BUF_startup
1                           
1                                   .if     BUF$NUMOF != 0
1                                   .endif
    2269 00000250                   POOL_startup
    2270 00000250                   CLK_startup
1                           
1                                   .ref _CLK_D_prd
1                                   .ref _CLK_D_tddr
1                           
1                                   ; only expand if the CLK module is configured by the user and he/she
1                                   ; asks to use the timer
1                                   .if ((CLK$ = 1) & (CLK_USETIMER = 1))
1                           
1                                       ; if we are using himalaya timer, then must enable it first
1                                       .if (GBL_CLKTYPE == 6482)
1                                           .global _CLK_enableTimer
1                           
1        00000250 00000028!                 mvkl _CLK_enableTimer, a0
1        00000254 00000068!                 mvkh _CLK_enableTimer, a0
1        00000258 00001362                  b a0
1        0000025c 0181342A!                 mvkl fxnret?, b3
1        00000260 0180006A!                 mvkh fxnret?, b3
1        00000264 00004000                  nop 3
1                           fxnret?:
1                                       .endif
1                           
1                                       ; if on 64LC parts then enable power to timer first
1                                       .if (GBL_CLKTYPE == 6424)
1                                           .global CLK_TIMERNUM, _CLK_enableTimer
1                           
1                                           mvk  CLK_TIMERNUM, a4
1                                           mvkl _CLK_enableTimer, a0
1                                           mvkh _CLK_enableTimer, a0
1                                           b a0
1                                           mvkl fxn1ret?, b3
1                                           mvkh fxn1ret?, b3
1                                           nop 3
1                           fxn1ret?:
1                                       .endif
1                           
1                           
1                                       ;
1                                       ; if using a shared timer, only initialize timer if we are on
1                                       ; the right GEM specified in the configuration to do initialization.
1                                       ; if using a local timer then always initialize the timer.
1                                       ;
1                                       .if (GBL_CLKTYPE == 6486)
1                                           mvc DNUM, b0                    ; b0 gets core number
1                           
1                                           .if (CLK_TIMERNUM >= CLK_SHAREDTIMERNUM)
1                                               mvkl CLK_INITCORENUM, a0    ; if using shared timer and not
1                                               mvkh CLK_INITCORENUM, a0    ; on right GEM, skip init code
1                                               cmpeq b0, a0, b1
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  267

1                                           [!b1] bnop endclkstartup?, 5
1                                           .endif
1                                       .endif
1                                       
1                                       ;
1                                       ; Initialize timer only if matches core on Faraday.
1                                       ;
1                                       .if (GBL_CLKTYPE == 6488)
1                                           mvkl CLK_INITCORENUM, a0
1                                           mvkh CLK_INITCORENUM, a0
1                                           mvc DNUM, b0                    ; get core number
1                                           cmpeq b0, a0, b1
1                           
1                                               ; if not on right GEM, skip timer initialization
1                                          [!b1] bnop endclkstartup?, 5
1                                       .endif
1                           
1                                       .if ((CLK_TIMMODE == CLK_CHAINED) | (CLK_TIMMODE == CLK_UNCHAINED))
1                                           .if ((CLK_TIMMODE == CLK_UNCHAINED))
1        00000268 00000029                      mvkl CLK_REGS, a0           ; get TCR address
1        0000026c 0100002A  ||                  mvkl CLK_CLEARTCR12, b2
1        00000270 00014A69                      mvkh CLK_REGS, a0
1        00000274 017FFFEA  ||                  mvkh CLK_CLEARTCR12, b2
1                           
1                                               .if (GBL_CLKTYPE == 6486)
1                                                   .if (CLK_TIMERNUM < CLK_SHAREDTIMERNUM)
1                                                       shl b0, 16, b0      ; Add offset to base for local
1                                                       add b0, a0, a0      ; timers on Tomahawk
1                                                   .endif
1                                               .endif
1                           
1        00000278 00810266                      ldw *+a0[CLK_O_TCR], b1
1        0000027c 00800028!                     mvkl _CLK_D_prd, a1
1        00000280 0000082A                      mvkl CLK_CLKSRC, b0
1        00000284 00800068!                     mvkh _CLK_D_prd, a1
1        00000288 0000006A                      mvkh CLK_CLKSRC, b0
1                                       
1        0000028c 00840265                      ldw *a1, a1                 ; get period value
1        00000290 010829B2  ||                  and b1, b2, b2
1        00000294 010048B2                      or b2, b0, b2
1        00000298 01020257                      sth b2, *+a0[CLK_O_TCRHALF] ; PWID=1, ENAMODE=00, CLKSRC=0
1        0000029c 0000A35A  ||                  zero b0
1        000002a0 00008276                      stw b0, *+a0[CLK_O_CNT]
1                                       
1        000002a4 0120002A                      mvkl CLK_INTBIT, b2
1        000002a8 0100006A                      mvkh CLK_INTBIT, b2
1        000002ac 018803A2                      mvc b2, icr
1                                       
1                                               ; set the period value
1        000002b0 0080C274                      stw a1, *+a0[CLK_O_PRD]
1                                       
1                                               .if (CLK_RESETTIMER)
1                                                   ; set the emulation free bit
1        000002b4 010000AA                          mvkl CLK_ENABLEEMU, b2
1        000002b8 0100006A                          mvkh CLK_ENABLEEMU, b2
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  268

1        000002bc 01002276                          stw b2, *+a0[CLK_O_EMUMGT]
1                           
1                                                   ; set the global control register
1        000002c0 010003AA                          mvkl CLK_UNCHAINED, b2
1        000002c4 0100006A                          mvkh CLK_UNCHAINED, b2
1        000002c8 01024256                          sth b2, *+a0[CLK_O_GTCRHALF] ; set to dual 32-bit
1                                                                                ; unchained mode
1                                               .endif
1                           
1                                               ; start timer
1        000002cc 00810264                      ldw *+a0[CLK_O_TCR], a1
1        000002d0 0080402A                      mvkl CLK_START, b1          ; get start mask
1        000002d4 0080006A                      mvkh CLK_START, b1          ; get start mask
1        000002d8 00002000                      nop 2
1        000002dc 008438B0                      or b1, a1, a1               ; set GO=1 and /HLD=1 for TCR12
1        000002e0 00820254                      sth a1, *+a0[CLK_O_TCRHALF] ; write to Timer Control to
1                                                                           ; start timer
1                           
1                                           .else
1                                               mvkl CLK_REGS,a0    ; get address to Timer Control register
1                           ||                  mvkl CLK_CLKSRC,b2
1                                               mvkh CLK_REGS,a0
1                           ||                  mvkh CLK_CLKSRC,b2
1                                               
1                                               .if (GBL_CLKTYPE == 6486)
1                                                   .if (CLK_TIMERNUM < CLK_SHAREDTIMERNUM)
1                                                       shl b0, 16, b0      ; Add offset to base for local
1                                                       add b0, a0, a0      ; timers on Tomahawk
1                                                   .endif
1                                               .endif
1                                               
1                                               stw b2, *+a0[CLK_O_TCR]     ; PWID=1, ENAMODE=00, CLKSRC=0
1                           ||                  zero b0
1                           
1                                               stw b0, *+a0[CLK_O_CNT]
1                           ||                  mvkl _CLK_D_prd, a1
1                           ||                  mvkl _CLK_D_tddr, b1
1                                               stw b0, *+a0[CLK_O_CNT34]
1                           ||                  mvkh _CLK_D_prd, a1
1                           ||                  mvkh _CLK_D_tddr, b1
1                           
1                                               ldw *a1, a1                 ; get period value
1                                               ldw *b1, b1                 ; get pre-scalar value
1                                               mvkl CLK_INTBIT, b2
1                                               mvkh CLK_INTBIT, b2
1                                               mvc b2, icr
1                           
1                                               ; set the period value
1                                               stw a1, *+a0[CLK_O_PRD]
1                                               stw b1, *+a0[CLK_O_PRD34]
1                           
1                                               .if (CLK_RESETTIMER)
1                                                   ; set the emulation free bit
1                                                   mvkl CLK_ENABLEEMU, b2
1                                                   mvkh CLK_ENABLEEMU, b2
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  269

1                                                   stw b2, *+a0[CLK_O_EMUMGT]
1                           
1                                                   ; set the global control register
1                                                   mvkl CLK_CHAINED, b2
1                                                   mvkh CLK_CHAINED, b2
1                                                   stw b2, *+a0[CLK_O_GTCR]        ; set to dual 32-bit
1                                                                                   ; unchained mode
1                                               .endif
1                                   
1                                               ; start timer
1                                               ldw *+a0[CLK_O_TCR], a1
1                                               mvkl CLK_START, b1          ; get start mask
1                                               mvkh CLK_START, b1
1                                               nop 2
1                                               or b1, a1, a1               ; set GO=1 and /HLD=1
1                                               stw a1, *+a0[CLK_O_TCR]     ; write to Timer Control
1                                                                           ; to start timer
1                                           .endif  ; .if (CLK_TIMMODE == CLK_UNCHAINED)
1                                       .endif
1                           
1        000002e4           endclkstartup?:
1                           
1                                       ; enable Timer interrupt in IER
1        000002e4 00200028              mvkl CLK_INTBIT, a0
1        000002e8 00000068              mvkh CLK_INTBIT, a0
1        000002ec 009003E2              mvc ier, b1
1        000002f0 008038B2              or a0, b1, b1       ; set CLK_INTBIT
1        000002f4 020403A2              mvc b1, ier
1                           
1                                   .endif  ; .if ((CLK$ = 1) & (CLK_USETIMER = 1))
1                           
    2271 000002f8                   PRD_startup
    2272 000002f8                   RTDX_startup
    2273 000002f8                   IDL_startup
    2274 000002f8                   LCK_startup
1                           
1                                   .if     LCK$NUMOF != 0
1                                   .endif
    2275 000002f8                   LOG_startup
    2276 000002f8                   MBX_startup
1                           
1                                   .if     MBX$NUMOF != 0
1                                   .endif
    2277 000002f8                   PIP_startup
1        000002f8                   CHK_void PIP_startup, dummy
1                           
1                                   ; expand startup code only if some PIP objects are configured
1                                   .if((PIP$ + PIP_gNumEmbed) !=0 )
1        000002f8 0200002A!             mvkl PIP_F_start,b4         ; set up for far branch
1        000002fc 0200006A!             mvkh PIP_F_start,b4
1        00000300 00100362              b b4                        ; start branch to startup function
1        00000304 02000028!             mvkl PIP_D_tabbeg,a4        ; set a4 for PIP_F_start call
1        00000308 02000068!             mvkh PIP_D_tabbeg,a4
1        0000030c 00000000              nop
1        00000310 01818C2A!             mvkl pips?,b3               ; set return for here
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  270

1        00000314 0180006A!             mvkh pips?,b3
1                                   .endif
1                           
1                           pips?:  
1                           
    2278 00000318                   QUE_startup
    2279 00000318                   STS_startup
    2280 00000318                   SYS_startup
    2281 00000318                   HWI_startup
1                           
1                                   ; globally enable interrupts
1        00000318                   HWI_enable
2        00000318 00000592          b hwie?
2        0000031c 006803E2          mvc HWI_CSR, b0
2        00000320 000028F2          or HWI_GIE, b0, b0
2        00000324 0D0003A2          mvc b0, HWI_CSR 
2        00000328 00002000          nop 2
2                           hwie?:
1                           
    2282 0000032c                   HST_startup
    2283 0000032c                   ECM_startup
    2284 0000032c                   DEV_startup
    2285 0000032c                   UDEV_startup
    2286 0000032c                   DIO_startup
    2287 0000032c                   DGN_startup
1                                   .if     DGN$NUMOF != 0
1                           
1                                   ;
1                                   ; DGN_init is #defined as SYS_nop in dgn.h,
1                                   ; so we won't do anything here.
1                                   ;
1                                   ;.global _DGN_init
1                                   ; call   _DGN_init
1                           
1                                   .endif
    2288 0000032c                   DHL_startup
1                                   .if     DHL$NUMOF != 0
1                           
1                                   .endif
    2289 0000032c                   DPI_startup
1                                   .if     DPI$NUMOF != 0
1                                   .endif
    2290 0000032c                   SIO_startup
    2291 0000032c                   GIO_startup
    2292 0000032c                   MSGQ_startup
1                           
1                                   ; only expand if the MSGQ module is configured
1                                   .if (MSGQ_USEMSGQ)
1                                     .ref _MSGQ_startup
1                            
1                                      mvkl   _MSGQ_startup,a4
1                                      mvkh   _MSGQ_startup,a4
1                                      b      a4
1                                      mvkl   msgqstartup?, b3
1                                      mvkh   msgqstartup?, b3
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  271

1                                      nop 3
1                           msgqstartup?:
1                           
1                                   .endif
    2293 0000032c                   SWI_startup
1        0000032c                   CHK_void SWI_startup, dummy
1                           
1                                   ; only expand if the SWI module is configured by the user
1                                   .if (SWI$ = 1)
1        0000032c 02000028!             mvkl SWI_F_enable,a4                ; prepare for far branch
1        00000330 02000068!             mvkh SWI_F_enable,a4
1        00000334 00101362              b a4                        ; start branch to SWI_F_enable  
1        00000338 0181A22A!             mvkl swii?,b3               ; setup b3 pointer to come back here
1        0000033c 0180006A!             mvkh swii?,b3
1        00000340 00004000              nop 3
1                           swii?:
1                                   .endif  
    2294 00000344                   HOOK_startup
1                           
1                                   ; only expand if the HOOK module is configured
1                                   .if (HOOK$ = 1)
1                           
1                                   .endif
1                           
    2295 00000344                   TSK_startup
1                           
1                                   ; only expand if the TSK module is configured
1                                   .if (TSK$ = 1)
1                           
1                                       .global _TSK_startup
1                           
1                                       .if TSK$NUMOF != 0
1                           
1        00000344 02000028!                 mvkl _TSK_startup, a4
1        00000348 02000068!                 mvkh _TSK_startup, a4
1        0000034c 00101362                  b    a4
1        00000350 0181AE2A!                 mvkl tskstup?, b3      ; return address
1        00000354 0180006A!                 mvkh tskstup?, b3
1        00000358 00004000                  nop  3
1                           
1                                       .endif
1                           
1                           tskstup?:
1                                   .endif
    2296 0000035c                   ISRC_startup
    2297 0000035c                   GBL_postamble
1        0000035c 01BC52E6          ldw     *++b15[2], b3
1        00000360 00006000          nop     4
1        00000364 000C0362          b       b3
1        00000368 00008000          nop     5
1                           
    2298                    
    2299                    ;; EPILOGUE
    2300 0000036c                   GBL_end
1                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  272

1        00000048                   .sect ".gblinit"
1        00000048 00000000          .word 0                 ; end of gblinit table marker
1                           
    2301 0000004c                   MEM_end
    2302 0000004c                   OBJ_end
1                           
1                                   ;
1                                   ;  We only need the OBJ_table if any of the objects in the modules
1                                   ;  below are created in the configuration, or if they can be created
1                                   ;  dynamically (requires heaps).
1                                   ;
1                                   .if (MEM_gNumHeap > 0) | MBX$ | SEM$ | SIO$ | TSK$ | DEV$NUMDEVICES | BUF$
1                           
1                                    .global _OBJ_table
1                           
1        00000630                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000630 00000038          .word   OBJ_MODULES * STD_TARGWORDMAUS * 2
1        00000634 00000000!         .word   _OBJ_table
1        00000638 00000000!         .word   _OBJ_table + 0 * STD_TARGWORDMAUS, _OBJ_table + 0 * STD_TARGWORDMAUS
         0000063c 00000000!
1        00000640 00000008!         .word   _OBJ_table + 2 * STD_TARGWORDMAUS, _OBJ_table + 2 * STD_TARGWORDMAUS
         00000644 00000008!
1        00000648 00000000%         .word   TSK_idle$obj, TSK0$obj
         0000064c 00000000%
1        00000650 00000018!         .word   _OBJ_table + 6 * STD_TARGWORDMAUS, _OBJ_table + 6 * STD_TARGWORDMAUS
         00000654 00000018!
1        00000658 00000020!         .word   _OBJ_table + 8 * STD_TARGWORDMAUS, _OBJ_table + 8 * STD_TARGWORDMAUS
         0000065c 00000020!
1        00000660 00000028!         .word   _OBJ_table + 10 * STD_TARGWORDMAUS, _OBJ_table + 10 * STD_TARGWORDMAUS
         00000664 00000028!
1        00000668 00000030!         .word   _OBJ_table + 12 * STD_TARGWORDMAUS, _OBJ_table + 12 * STD_TARGWORDMAUS
         0000066c 00000030!
1                           
1                                   .endif
1                           
    2303 00000670                   BUF_end
    2304 00000670                   POOL_end
    2305 00000670                   CLK_end
1                                   .if (CLK$NUMOF != 0)
1        00000670                       CLK_Obj     1,CLK_null,-1,0 ; NULL terminate clock isr fxn table
2        00000670                   CHK_nargs "CLK_Obj", fxn
2                                   .if ($symcmp("", "error") = 0)
2                                       .emsg "CLK_OBJ parameter error."
2                                   .endif
2                           
2                                   .var fxnlen
2                                   .eval $symlen("0"),fxnlen
2                           
2                                   .if (1 = 0)
2                                       .mexit
2                                   .endif
2                           
2                                   .global CLK_null
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  273

2                                   .if ($symcmp("0", "0") != 0)
2                                   .global fxn
2                                   .endif
2                           
2                           CLK_null  .tag    CLK_Obj         ; declare name as having type CLK_Obj
2                           
2                           ; allocate all CLK objs contiguously in ".clk"
2        00000004           CLK_null  .usect ".clk", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        00000670                   .sect ".cinit"
2                           
2                                   .align  8
2                           
2        00000670 00000004          .field  STD_TARGWORDMAUS * 1
2                           
2        00000674 00000000%         .field  CLK_null    
2                           
2        00000678 00000000          .field  0           ; fxn
2                           
1                                   .endif
1                           
    2306 0000067c                   PRD_end
1                 0000002C! PRD_SWIHANDLE .set PRD_swi
    2307 0000067c                   RTDX_end
    2308 0000067c                   HST_end
    2309 0000067c                   HWI_end
    2310 0000067c                   ECM_end
    2311 0000067c                   SWI_end
1                           
    2312 0000067c                   TSK_end
1                           
1                                   ; expand only if TSK is enabled.
1                                   .if (TSK$ == 1)
1                           
1                           ;
1                           ; The following two .cinit sets make configured values readable
1                           ; in the established SPOX manner, e.g., TSK->STACKSIZE.
1                           ;
1                           ;
1                           
1                                   .global _TSK_config
1                                   .global _TSK
1                           
1        0000067c                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        00000680 00000020          .word 8 * STD_TARGWORDMAUS
1        00000684 00000000!         .word _TSK_config
1        00000688 FFFFFFFF          .word -1
1        0000068c 00000001          .word TSK_PRIORITY
1        00000690 00000400          .word TSK_STACKSIZE     ; This shall be interpreted as number of MAU's
1        00000694 00000000!         .word TSK_VCREATEFXN
1        00000698 00000000!         .word TSK_VDELETEFXN
1        0000069c 00000000!         .word TSK_VEXITFXN
1        000006a0 00000000          .word TSK_SWITCHFXN
1        000006a4 00000000          .word TSK_READYFXN
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  274

1                           
1                                   .align  STD_TARGALIGN
1        000006a8 00000004          .word   1 * STD_TARGWORDMAUS
1        000006ac 00000000!         .word   _TSK
1        000006b0 00000000!         .word   _TSK_config
1                           
1                                   ;
1                                   ; The startup stack will be borrowed from the idle task's stack.  The
1                                   ; startup stack must begin beyond the portion of the stack that is
1                                   ; statically initialized, so the __STACK_SIZE will be decremented by
1                                   ; that amount.
1                                   ;
1                           ;       .def    __stack, __STACK_SIZE
1                           
1                           ;__stack                .set    TSK_idle$stack
1                           ;__STACK_SIZE   .set    TSK_idle$stklen - (TSK_USEDSTACK * STD_TARGWORDMAUS)
1                           
1                                   .endif          ; if (TSK$ == 1)
1                           
    2313 000006b4                   IDL_end
1        000006b4               IDL_Obj 1,IDL_END,-1,0,1     ; NULL terminate idle function table
2        000006b4                   CHK_nargs "IDL_Obj", calibration
2                                   .if ($symcmp("", "error") = 0)
2                                       .mexit
2                                   .endif
2                           
2                               .var fxnlen
2                               .eval $symlen("0"),fxnlen
2                           
2                                   .if (1 = 0)   ; if this object is not really to be allocated
2                                       .mexit      ; exit quietly now
2                                   .endif
2                           
2                                   .global IDL_END$
2                                   .global IDL_END
2                           
2                                   .if ($symcmp("0", "0") != 0)
2                               .global :fxn:
2                                   .endif
2                           
2                           IDL_END$ .tag    IDL_Obj         ; declare name$ as having type IDL_Obj
2                           
2        0000000c           IDL_END$ .usect ".idlcal", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        000006b4                   .sect ".cinit"
2                           
2                               .align  8
2        000006b8 00000004      .field  STD_TARGWORDMAUS * 1
2        000006bc 00000000%     .field  IDL_END$    
2                                   .if (1 != 0) ; if to be included in IDL calibration
2        000006c0 00000000              .field  0             ; fxn
2                               .else
2                                       .field  FXN_F_nop    ; else use FXN_F_nop
2                                   .endif
2                           
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  275

2                           IDL_END  .tag    IDL_Obj         ; declare name as having type IDL_Obj
2                           
2        0000000c           IDL_END  .usect ".idl", STD_TARGWORDMAUS * 1, STD_TARGWORDMAUS
2                           
2        000006c4                   .sect ".cinit"
2                           
2                               .align  8
2        000006c8 00000004      .field  STD_TARGWORDMAUS * 1
2        000006cc 00000000%     .field  IDL_END    
2        000006d0 00000000      .field  0           ; fxn
2                           
1                           
    2314 000006d4                   ISRC_end
    2315 000006d4                   LOG_end
    2316 000006d4                   PIP_end
    2317 000006d4                   SEM_end
    2318 000006d4                   MBX_end
    2319 000006d4                   QUE_end
    2320 000006d4                   LCK_end
    2321 000006d4                   STS_end
    2322 000006d4                   SYS_end
    2323 000006d4                   SIO_end
    2324 000006d4                   GIO_end
    2325 000006d4                   DEV_end
1                           
1                           ;
1                           ;  We reserve uninitialized space for the initialization table
1                           ;  (_DEV_devinit). This is a table that contains pointers to all the
1                           ;  initialization routines for all the devices.
1                           ;
1                           
1                                   .if (DEV$NUMDEVICES > 0)        ; expand only if devices are configured.
1                           
1                                   .global _DEV_devinit
1                                   .global _DEV_D_devinit          ; init pointer to _DEV_devinit
1                           
1                                   .bss    _DEV_devinit, DEV$initCount * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1                                   .word   1 * STD_TARGWORDMAUS
1                                   .word   _DEV_D_devinit
1                                   .word   _DEV_devinit
1                           
1                           ;
1                           ; __DEV_NUMINITFXNS keeps track of the number of initialization routines for
1                           ; device drivers that need to be called at initialization.
1                           ;
1                                   .global __DEV_NUMINITFXNS
1                                   .global __DEV_D_NUMINITFXNS     ; init pointer to DEV_NUMINITFXNS
1                           
1                                   .bss    __DEV_NUMINITFXNS, 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  276

1                                   .word   1 * STD_TARGWORDMAUS
1                                   .word   __DEV_NUMINITFXNS
1                                   .word   DEV$initCount
1                           
1                                   .align  STD_TARGALIGN
1                                   .word   1 * STD_TARGWORDMAUS
1                                   .word   __DEV_D_NUMINITFXNS
1                                   .word   __DEV_NUMINITFXNS
1                           
1                                   .endif          ; .if (DEV$NUMDEVICES > 0)
1                           
    2326 000006d4                   UDEV_end
    2327 000006d4                   DIO_end
    2328 000006d4                   DGN_end
    2329 000006d4                   DHL_end
1                           
1                                   ; expand only if there are DHL devices configured.
1                                   .if (0 > 0)
1                           
1                                       .global  __DHL_tab
1                                   .bss    __DHL_tab, DHL$count * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                       .global  __DHL_numof
1                                   .bss    __DHL_numof, 1 * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       1 * STD_TARGWORDMAUS
1                                       .word       __DHL_numof
1                                       .word       DHL$count
1                           
1                                   .endif
1                           
    2330 000006d4                   DPI_end
    2331 000006d4                   MSGQ_end
    2332 000006d4                   HOOK_end
1                           
1                                   ; expand only if HOOK is enabled.
1                                   .if (HOOK$ == 1)
1                           
1                                   .bss    __HOOK_initFxnTable, HOOK$index * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .bss    __HOOK_createFxnTable, HOOK$index * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .bss    __HOOK_deleteFxnTable, HOOK$index * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .bss    __HOOK_exitFxnTable, HOOK$index * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .bss    __HOOK_readyFxnTable, HOOK$index * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                                   .bss    __HOOK_switchFxnTable, HOOK$index * STD_TARGWORDMAUS, STD_TARGWORDMAUS
1                           
1                                       .ref        __HOOK_switchFxnTablePtr
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       1 * STD_TARGWORDMAUS
1                                       .word       __HOOK_switchFxnTablePtr
1                                       .word       __HOOK_switchFxnTable
1                           
1                                       .ref        __HOOK_readyFxnTablePtr
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  277

1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       1 * STD_TARGWORDMAUS
1                                       .word       __HOOK_readyFxnTablePtr
1                                       .word       __HOOK_readyFxnTable
1                           
1                                       .ref        __HOOK_initFxnTablePtr
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       1 * STD_TARGWORDMAUS
1                                       .word       __HOOK_initFxnTablePtr
1                                       .word       __HOOK_initFxnTable
1                           
1                                       .ref        __HOOK_createFxnTablePtr
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       1 * STD_TARGWORDMAUS
1                                       .word       __HOOK_createFxnTablePtr
1                                       .word       __HOOK_createFxnTable
1                           
1                                       .ref        __HOOK_deleteFxnTablePtr
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       1 * STD_TARGWORDMAUS
1                                       .word       __HOOK_deleteFxnTablePtr
1                                       .word       __HOOK_deleteFxnTable
1                           
1                                       .ref        __HOOK_exitFxnTablePtr
1                                       .sect       ".cinit"
1                                       .align      STD_TARGALIGN
1                                       .word       1 * STD_TARGWORDMAUS
1                                       .word       __HOOK_exitFxnTablePtr
1                                       .word       __HOOK_exitFxnTable
1                           
1                                   .endif
1                           
1                                   .ref    __HOOK_NUMHOOKS
1                           
1        000006d4                   .sect   ".cinit"
1                                   .align  STD_TARGALIGN
1        000006d8 00000004          .word   1 * STD_TARGWORDMAUS
1        000006dc 00000000!         .word   __HOOK_NUMHOOKS
1        000006e0 00000000          .word   0
1                           
    2333                    
    2334                            .copy confend.s62
 +     1                    ;
 +     2                    ;  Copyright 2006 by Texas Instruments Incorporated.
 +     3                    ;  All rights reserved. Property of Texas Instruments Incorporated.
 +     4                    ;  Restricted rights to use, duplicate or disclose this code are
 +     5                    ;  granted through contract.
 +     6                    ;
 +     7                    ;  @(#) DSP/BIOS_Kernel 5,2,3,14 10-05-2006 (cuda-r14)
 +     8                    ;
 +     9                    ;
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  278

 +    10                    ;  ======== confend.s62 ========
 +    11                    ;  The statements in this file are inserted at the end of 
 +    12                    ;  every BIOS configuration file.
 +    13                    ;
 +    14                            .include vers.h62
 +    15                    
 +    16 000006e4                   VERS_create VERS$DATE, VERS$CDB, VERS$TREE, VERS$CDBRELATIVEPATH
1+       000006e4                   CHK_nargs "VERS_create", tree
1+                                  .if ($symcmp("", "error") = 0)
1+                                      .mexit
1+                                  .endif
1+                          
1+       00000000                   .sect ".vers"
1+       00000000 00000054          .byte "Thu Dec 28 21:21:10 2006"
         00000001 00000068 
         00000002 00000075 
         00000003 00000020 
         00000004 00000044 
         00000005 00000065 
         00000006 00000063 
         00000007 00000020 
         00000008 00000032 
         00000009 00000038 
         0000000a 00000020 
         0000000b 00000032 
         0000000c 00000031 
         0000000d 0000003A 
         0000000e 00000032 
         0000000f 00000031 
         00000010 0000003A 
         00000011 00000031 
         00000012 00000030 
         00000013 00000020 
         00000014 00000032 
         00000015 00000030 
         00000016 00000030 
         00000017 00000036 
1+       00000018 00000000          .byte 0
1+       00000019 00000063          .byte "c6482_EMAC_Cfg.cdb"
         0000001a 00000036 
         0000001b 00000034 
         0000001c 00000038 
         0000001d 00000032 
         0000001e 0000005F 
         0000001f 00000045 
         00000020 0000004D 
         00000021 00000041 
         00000022 00000043 
         00000023 0000005F 
         00000024 00000043 
         00000025 00000066 
         00000026 00000067 
         00000027 0000002E 
         00000028 00000063 
         00000029 00000064 
TMS320C6x Assembler PC v6.0.8 Thu Dec 28 21:47:25 2006

Tools Copyright (c) 1996-2006 Texas Instruments Incorporated
c6482_EMAC_Cfgcfg.s62                                                PAGE  279

         0000002a 00000062 
1+       0000002b 00000000          .byte 0
1+       0000002c 00000040          .byte "@(#)*** xdc-m66"
         0000002d 00000028 
         0000002e 00000023 
         0000002f 00000029 
         00000030 0000002A 
         00000031 0000002A 
         00000032 0000002A 
         00000033 00000020 
         00000034 00000078 
         00000035 00000064 
         00000036 00000063 
         00000037 0000002D 
         00000038 0000006D 
         00000039 00000036 
         0000003a 00000036 
1+       0000003b 00000000          .byte 0
1+       0000003c 0000003B          .byte ";;;"
         0000003d 0000003B 
         0000003e 0000003B 
1+       0000003f 00000000          .byte 0
1+       00000000                   .text
 +    17                    
 +    18 00000000                   .text
 +    19                    

No Assembly Errors, No Assembly Warnings
