DSPRelated.com
Forums

HPI and DSP/BIOS

Started by Unknown August 18, 2003
Hi everyone,

I'm trying to implement a HPI handshake between a windows app and my
c6711dsk.

I have this working without DSP/BIOS, but I can't get it to work using
DSP/BIOS.

This is my dsp code (I'm using the same code for both non-DSP/BIOS and
DSP/BIOS) -

#define ID_0			0x12345678
#define ID_1			0xf1f2f3f4
#define ID_2			0x08070605

#pragma DATA_SECTION(handShakingBuffer, "my_DataSect")
int handShakingBuffer[HS_BUFFER_LEN];

/*
 *  ======== main ========
 */
void main()
{
  
  handShakingBuffer[0] = ID_0;
  handShakingBuffer[1] = ID_1;
  handShakingBuffer[2] = ID_2;
  handShakingBuffer[3] = 0;
  handShakingBuffer[4] = 0;
     
  return;                 
} 

Actually, the DSP/BIOS version also includes -

#include "audiocfg.h"
#include "audio.h"

My windows app loads the dsp program to the dsp board, and polls until
the following are set -

handShakingBuffer[0] = ID_0;
handShakingBuffer[1] = ID_1;
handShakingBuffer[2] = ID_2;

My windows app looks something like the following -

  sBoardFile = "F:\\ti\\c6000\\dsk6x11\\doc\\ti_ppdsk.cfg";
  
  pBoardFile = fopen( sBoardFile, "r" );
  fclose(pBoardFile);
  
  
  dsk6x_open(sBoardFile,&hBd) )
  dsk6x_reset_dsp(hBd,0,1) )
  dsk6x_hpi_open(hBd))
  dsk6x_coff_load(hBd,coffNam,bVerbose,bClr,bDump))
  dsk6x_hpi_generate_int(hBd))
  
  do
  {
    readLength = HS_BUFFER_LEN*4; /* 4 bytes for 1 word */
    /*-------------------------------------------------------------------*/
    /* Test if handShakingBuffer actually read (completely)           
  */
    /*-------------------------------------------------------------------*/
  
    if (!dsk6x_hpi_read(hBd, handShakingBuffer, &readLength, 
      DSPHS_BUFFER_ADDRESS) || readLength != HS_BUFFER_LEN*4)
    { /* evm6x_hpi_read() failed */
      continue; // try again
    }

    /*-------------------------------------------------------------------*/
    /* Test if handShakingBuffer contains correct ID                  
  */
    /*-------------------------------------------------------------------*/
	
    handShakingFlag = 0;  // reset hand shaking flag
    if(handShakingBuffer[0] != ID_0)
      handShakingFlag = 1;
    if(handShakingBuffer[1] != ID_1)
      handShakingFlag = 1;
    if(handShakingBuffer[2] != ID_2)
      handShakingFlag = 1;
  } while (handShakingFlag == 1);

The DSP/BIOS version is getting trapped in the while loop, because the
dsp is obviously not setting the handShakingBuffer, or the app is not
reading this buffer correctly. THe non DSP bios version does not get
trapped.

My non-DSP bios project also includes a vector.asm file -

*
*	TI Proprietary Information
*		Internal Data
*
    .ref    _c_int00
    
	.sect "vectors"
RESET_RST:
    
    mvkl .S2 _c_int00, B0
    mvkh .S2 _c_int00, B0
    B    .S2 B0
	NOP
	NOP
	NOP
	NOP
    NOP
NMI_RST:    
    NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

RESV1:
    NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

RESV2:
    NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT4:   NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT5:   NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
                   
INT6: NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT7:   NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT8:   NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT9:   NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT10:   NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT11:  NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT12:  NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT13:  NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT14:   NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

INT15:  NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
 

and a cmd file -


-c
-heap  0x500
-stack 0x500 /* very large stack for DSP programs. */
-lrts6201.lib
  
MEMORY
{
    vecs:       o = 00000000h   l = 00000200h
    I_HS_MEM:   o = 00000200h   l = 00000020h
    IRAM:       o = 00000220h   l = 0000FDE0h
  
}

SECTIONS
{
    "vectors"   >       vecs
    my_DataSect >       I_HS_MEM
    .cinit      >       IRAM
    .text       >       IRAM
    .stack      >       IRAM
    .bss        >       IRAM
    .const      >       IRAM
    .data       >       IRAM
    .far        >       IRAM
    .switch     >       IRAM
    .sysmem     >       IRAM
    .tables     >       IRAM
    .cio        >       IRAM
}                             

 
My DSP/BIOS project contains a cdb file, and a cmd file. The cdb file
is not set up to do anything other that to define the chip - c6711
etc. Is there anything else I should be setting up in the DSP/BIOS
version?

Thanks,

Aine.

This is my cmd file for the DSP/BIOS version, in case it gives any
clues. Thanks.

/*   Do *not* directly modify this file.  It was    */
/*   generated by the Configuration Tool; any  */
/*   changes risk being overwritten.                */

/* INPUT audio.cdb */

/* MODULE PARAMETERS */
GBL_USERINITFXN = _FXN_F_nop;

MEM_SEGZERO = MEM_NULL;
MEM_MALLOCSEG = MEM_NULL;

CLK_TIMEFXN = CLK_F_getshtime;
CLK_HOOKFXN = HWI_F_dispatch;

PRD_THOOKFXN = FXN_F_nop;

RTDX_DATAMEMSEG = SDRAM;

HST_DSMBUFSEG = SDRAM;

SWI_EHOOKFXN = GBL_NULL;
SWI_IHOOKFXN = GBL_NULL;
SWI_EXECFXN = FXN_F_nop;
SWI_RUNFXN = FXN_F_nop;

TSK_STACKSEG = MEM_NULL;
TSK_VCREATEFXN = _FXN_F_nop;
TSK_VDELETEFXN = _FXN_F_nop;
TSK_VEXITFXN = _FXN_F_nop;

IDL_CALIBRFXN = IDL_F_calibrate;

SYS_ABORTFXN = _UTL_doAbort;
SYS_ERRORFXN = _UTL_doError;
SYS_EXITFXN = _UTL_halt;
SYS_PUTCFXN = _FXN_F_nop;

/* OBJECT ALIASES */
_SDRAM = SDRAM;
_PRD_clock = PRD_clock;
_RTA_fromHost = RTA_fromHost;
_RTA_toHost = RTA_toHost;
_HWI_RESET = HWI_RESET;
_HWI_NMI = HWI_NMI;
_HWI_RESERVED0 = HWI_RESERVED0;
_HWI_RESERVED1 = HWI_RESERVED1;
_HWI_INT4 = HWI_INT4;
_HWI_INT5 = HWI_INT5;
_HWI_INT6 = HWI_INT6;
_HWI_INT7 = HWI_INT7;
_HWI_INT8 = HWI_INT8;
_HWI_INT9 = HWI_INT9;
_HWI_INT10 = HWI_INT10;
_HWI_INT11 = HWI_INT11;
_HWI_INT12 = HWI_INT12;
_HWI_INT13 = HWI_INT13;
_HWI_INT14 = HWI_INT14;
_HWI_INT15 = HWI_INT15;
_LNK_dataPump = LNK_dataPump;
_RTA_dispatcher = RTA_dispatcher;
_IDL_cpuLoad = IDL_cpuLoad;
_LOG_system = LOG_system;
_trace = trace;
_IDL_busyObj = IDL_busyObj;

/* MODULE GBL */

SECTIONS {
   .vers (COPY): {} /* version information */
}

-llnkrtdx.a62
-ldrivers.a67          /* device drivers support */
-lbiosi.a62            /* DSP/BIOS support */
-lrtdx.lib             /* RTDX support */
-lcsl6211.lib
-lrtsbios.a67          /* C and C++ run-time library support */

_GBL_CACHE = GBL_CACHE;

/* MODULE MEM */
-stack 0x400
MEMORY {
   SDRAM       : origin = 0x80000000,  len = 0x1000000
}
/* MODULE CLK */
SECTIONS {
   .clk: {
        _CLK_start = _CLK_start6x;
        CLK_F_gethtime = CLK_F_getshtime;
        CLK_A_TABBEG = .;
        *(.clk)
        CLK_A_TABEND = .;
        CLK_A_TABLEN = (. - CLK_A_TABBEG) / 1;
   } > SDRAM 
}
_CLK_PRD = CLK_PRD;
_CLK_COUNTSPMS = CLK_COUNTSPMS;
_CLK_REGS = CLK_REGS;
_CLK_USETIMER = CLK_USETIMER;
_CLK_TIMERNUM = CLK_TIMERNUM;
_CLK_TDDR = CLK_TDDR;

/* MODULE PRD */
SECTIONS {
   .prd: {
        PRD_A_TABBEG = .;
        /* no PRD objects */
        PRD_A_TABEND = .;
        PRD_A_TABLEN = (. - PRD_A_TABBEG) / 32;
   } > SDRAM
}

/* MODULE RTDX */
_RTDX_interrupt_mask = 0x0;

/* MODULE HWI */
SECTIONS {
    .hwi_reset: 0x0 {}
}

/* MODULE SWI */
SECTIONS {
   .swi: {
        SWI_A_TABBEG = .;
        /* no SWI objects */
        SWI_A_TABEND = .;
        SWI_A_TABLEN = (. - SWI_A_TABBEG) / 44;
   } > SDRAM
}

/* MODULE TSK */
_KNL_swi = 0;
/* MODULE IDL */
SECTIONS {
   .idl: {
        IDL_A_TABBEG = .;
        *(.idl)
        IDL_A_TABEND = .;
        IDL_A_TABLEN = (. - IDL_A_TABBEG) / 8;
        IDL_A_CALBEG = .;
        *(.idlcal)
        IDL_A_CALEND = .;
        IDL_A_CALLEN = (. - IDL_A_CALBEG) / 8;
   } > SDRAM
}



SECTIONS {
        .hwi_vec: {
            HWI_A_VECS = .;
            *(.hwi_vec)
        } align = 0x400 > SDRAM
        
        .bss:     {} > SDRAM
        
        .far:     {} > SDRAM
        
        .sysdata: {} > SDRAM
        
        .sysinit:    {} > SDRAM
        
        .mem: 	  {} > SDRAM
        
        .gblinit:    {} > SDRAM
        
        .trcdata:    {} > SDRAM
        
        .sysregs: {} > SDRAM
        
        .cinit:    {} > SDRAM
        
        .pinit:    {} > SDRAM
        
        .data:    {} > SDRAM
        
        .const:    {} > SDRAM
        
        .switch:    {} > SDRAM
        
        .cio:     {} > SDRAM
        
        .text:    {} > SDRAM
        
        frt:    {} > SDRAM
        
        .args: fill=0 {
            *(.args)
            . += 0x4;
        } > SDRAM
        
        .stack: fill=0xc0ffee {
            GBL_stackbeg = .;
            *(.stack)
            GBL_stackend = GBL_stackbeg + 0x400 - 1;
            _HWI_STKBOTTOM = GBL_stackbeg + 0x400 - 4 & ~7;
            _HWI_STKTOP = GBL_stackbeg;
        } > SDRAM
        
        .rtdx_data: {}  > SDRAM
        
        .rtdx_text: {}  > SDRAM
        
        .hst: {
             HST_A_TABBEG = .;
            _HST_A_TABBEG = .;
            *(.hst)
            HST_A_TABEND = .;
            _HST_A_TABEND = .;
             HST_A_TABLEN = (. - _HST_A_TABBEG) / 20;
            _HST_A_TABLEN = (. - _HST_A_TABBEG) / 20;
        } > SDRAM
        
        .dsm: {} > SDRAM
        
       /* RTA_fromHost buffer */
       .hst1: align = 0x4 {} > SDRAM
        
       /* RTA_toHost buffer */
       .hst0: align = 0x4 {} > SDRAM
        
        .hwi: {}  > SDRAM
        
        .bios:    {} > SDRAM
        
        .log: {
             LOG_A_TABBEG = .;
            _LOG_A_TABBEG = .;
            *(.log)
            LOG_A_TABEND = .;
            _LOG_A_TABEND = .;
             LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 24;
            _LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 24;
        } > SDRAM
        
        .printf (COPY): {} > SDRAM
        
        /* LOG_system buffer */
        .LOG_system$buf: align = 0x800 fill = 0xffffffff {} > SDRAM
        
        /* trace buffer */
        .trace$buf: align = 0x1000 fill = 0xffffffff {} > SDRAM
        
        .pip: {
             PIP_A_TABBEG = .;
            _PIP_A_TABBEG = .;
            *(.pip)
            PIP_A_TABEND = .;
            _PIP_A_TABEND = .;
             PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100;
            _PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100;
        } > SDRAM
        
        .sts: {
             STS_A_TABBEG = .;
            _STS_A_TABBEG = .;
            *(.sts)
            STS_A_TABEND = .;
            _STS_A_TABEND = .;
             STS_A_TABLEN = (. - _STS_A_TABBEG) / 16;
            _STS_A_TABLEN = (. - _STS_A_TABBEG) / 16;
        } > SDRAM
        
        .sys:     {} > SDRAM
        
}
On 18 Aug 2003 08:32:00 -0700, aine_canby@yahoo.com
(=?ISO-8859-1?Q?=C0ine_Canby?=) wrote:

>Hi everyone, > >I'm trying to implement a HPI handshake between a windows app and my >c6711dsk. > >I have this working without DSP/BIOS, but I can't get it to work using >DSP/BIOS.
What is your cache configuration? Best Regards John McCabe To reply by email replace 'nospam' with 'assen'
Hi Aine,
your modesty haven't borders, your letters more long every time.
I would do:
1) to check come or no to HPI function;
2) to check status registers in enter time & when event to HPI must will.

Cheers
Hi again,

I'm newish to the C6711DSK, so its quite possible that I'm leaving
something critical out due to my ignorence.

Anyway the story is that the non-DSP/BIOS version works, but the
DSP/BIOS version wont work.

These are some of the settings in my DSP BIOS -

__Global Settings__

_General_

Target board: c6211
DSP Speed: 150Mhz
CSL: 6211
Endian mode: little
Call user init function: disabled
Real Time Analysis: Enabled
All TRC trace events: Enabled

_621x/671x_
Configure L2 Memory settings: Enabled
Program Cache Control: Not highlighted
L2 Mode - CCFG: 4 way cache
L2 MAR0-15: 0x0001

__MEM__
SDRAM

The map file for the non dsp/bios version is - 

******************************************************************************
          TMS320C6x COFF Linker PC Version 4.20                
******************************************************************************
>> Linked Mon Aug 18 16:12:48 2003
OUTPUT FILE NAME: <F:/Denis/ti/examples/dsk6711/board_util/conftest/Host/cnfdsp.out> ENTRY POINT SYMBOL: "_c_int00" address: 000008e0 MEMORY CONFIGURATION name origin length used attr fill ---------------------- -------- --------- -------- ---- -------- vecs 00000000 00000200 00000200 RWIX I_HS_MEM 00000200 00000020 00000018 RWIX IRAM 00000220 0000fde0 00000d28 RWIX SECTION ALLOCATION MAP output attributes/ section page origin length input sections -------- ---- ---------- ---------- ---------------- vectors 0 00000000 00000200 00000000 00000200 vect.obj (vectors) my_DataSect 0 00000200 00000018 UNINITIALIZED 00000200 00000018 new.obj (my_DataSect) .cinit 0 00000220 00000054 00000220 0000002c rts6201.lib : exit.obj (.cinit) 0000024c 00000004 --HOLE-- [fill = 00000000] 00000250 0000001c : _lock.obj (.cinit) 0000026c 00000008 --HOLE-- [fill = 00000000] .text 0 00000280 00000740 00000280 00000260 rts6201.lib : memcpy.obj (.text) 000004e0 00000000 vect.obj (.text) 000004e0 00000240 rts6201.lib : exit.obj (.text) 00000720 00000100 : autoinit.obj (.text) 00000820 000000c0 new.obj (.text) 000008e0 000000a0 rts6201.lib : boot.obj (.text) 00000980 00000040 : _lock.obj (.text) .stack 0 000009c0 00000500 UNINITIALIZED 000009c0 00000000 rts6201.lib : boot.obj (.stack) .bss 0 00000220 00000000 UNINITIALIZED 00000220 00000000 new.obj (.bss) 00000220 00000000 rts6201.lib : memcpy.obj (.bss) 00000220 00000000 : autoinit.obj (.bss) 00000220 00000000 : _lock.obj (.bss) 00000220 00000000 : exit.obj (.bss) 00000220 00000000 : boot.obj (.bss) 00000220 00000000 vect.obj (.bss) .const 0 00000220 00000000 UNINITIALIZED .data 0 00000220 00000000 UNINITIALIZED 00000220 00000000 new.obj (.data) 00000220 00000000 rts6201.lib : memcpy.obj (.data) 00000220 00000000 : autoinit.obj (.data) 00000220 00000000 : _lock.obj (.data) 00000220 00000000 : exit.obj (.data) 00000220 00000000 : boot.obj (.data) 00000220 00000000 vect.obj (.data) .far 0 00000ec0 00000094 UNINITIALIZED 00000ec0 0000008c rts6201.lib : exit.obj (.far) 00000f4c 00000008 : _lock.obj (.far) .switch 0 00000220 00000000 UNINITIALIZED .sysmem 0 00000220 00000000 UNINITIALIZED .tables 0 00000220 00000000 UNINITIALIZED .cio 0 00000220 00000000 UNINITIALIZED GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name address name -------- ---- 00000220 $bss 00000220 .bss 00000220 .data 00000280 .text 00000708 C$$EXIT 00000500 __STACK_SIZE 00000220 ___bss__ 00000220 ___cinit__ 00000220 ___data__ 00000220 ___edata__ 00000220 ___end__ 000009c0 ___etext__ ffffffff ___pinit__ 00000280 ___text__ 00000720 __auto_init 00000f44 __cleanup_ptr 00000f48 __dtors_ptr 00000f4c __lock 00000980 __nop 00000988 __register_lock 0000099c __register_unlock 000009c0 __stack 00000f50 __unlock 00000708 _abort 00000630 _atexit 000008e0 _c_int00 000004e0 _exit 00000200 _handShakingBuffer 00000820 _main 00000280 _memcpy 00000220 cinit 00000220 edata 00000220 end 000009c0 etext ffffffff pinit GLOBAL SYMBOLS: SORTED BY Symbol Address address name -------- ---- 00000200 _handShakingBuffer 00000220 ___end__ 00000220 ___edata__ 00000220 ___data__ 00000220 end 00000220 cinit 00000220 edata 00000220 ___cinit__ 00000220 .bss 00000220 .data 00000220 ___bss__ 00000220 $bss 00000280 _memcpy 00000280 ___text__ 00000280 .text 000004e0 _exit 00000500 __STACK_SIZE 00000630 _atexit 00000708 _abort 00000708 C$$EXIT 00000720 __auto_init 00000820 _main 000008e0 _c_int00 00000980 __nop 00000988 __register_lock 0000099c __register_unlock 000009c0 __stack 000009c0 ___etext__ 000009c0 etext 00000f44 __cleanup_ptr 00000f48 __dtors_ptr 00000f4c __lock 00000f50 __unlock ffffffff pinit ffffffff ___pinit__ [35 symbols] XXXXXXXXXXXXX And the DSP/BIoS version map looks like - ****************************************************************************** TMS320C6x COFF Linker PC Version 4.20 ******************************************************************************
>> Linked Tue Aug 19 14:59:01 2003
OUTPUT FILE NAME: <F:/Denis/ti/examples/dsk6711/board_util/conftest/Host/cnfdsp.out> ENTRY POINT SYMBOL: "_c_int00" address: 80000a40 SECTION ALLOCATION MAP output attributes/ section page origin length input sections -------- ---- ---------- ---------- ---------------- .vers 0 00000000 00000038 COPY SECTION 00000000 00000038 audiocfg.obj (.vers) .clk 0 80000000 00000008 UNINITIALIZED 80000000 00000008 audiocfg.obj (.clk) .prd 0 80000000 00000000 UNINITIALIZED .hwi_reset 0 00000000 00000000 UNINITIALIZED .swi 0 80000000 00000000 UNINITIALIZED .idl 0 80000008 00000020 UNINITIALIZED 80000008 00000010 audiocfg.obj (.idl) 80000018 00000010 audiocfg.obj (.idlcal) .hwi_vec 0 80000400 00000200 80000400 00000200 audiocfg.obj (.hwi_vec) .bss 0 80000028 0000028c UNINITIALIZED 80000028 00000134 biosi.a62 : biosdata.o62 (.bss) 8000015c 00000000 : swi.o62 (.bss) 8000015c 00000000 : gbl.o62 (.bss) 8000015c 00000000 : rta_andn.o62 (.bss) 8000015c 00000000 : sts.o62 (.bss) 8000015c 00000000 audiocfg_c.obj (.bss) 8000015c 00000000 biosi.a62 : gbl_cslcachein (.bss) 8000015c 00000000 : boot.o62 (.bss) 8000015c 00000000 : gbl_vers.o62 (.bss) 8000015c 00000000 : idl.o62 (.bss) 8000015c 00000000 : idl_cal.o62 (.bss) 8000015c 00000000 : fxn.o62 (.bss) 8000015c 00000000 : clk.o62 (.bss) 8000015c 00000000 : prd.o62 (.bss) 8000015c 00000000 : rta.o62 (.bss) 8000015c 00000000 : log.o62 (.bss) 8000015c 00000000 : pip.o62 (.bss) 8000015c 00000000 csl6211.lib : csl.obj (.bss) 8000015c 00000000 : csl_irq.obj (.bss) 8000015c 00000000 rtdx.lib : rtdx_mon.obj (.bss) 8000015c 00000000 : intr_tgt.obj (.bss) 8000015c 00000000 rtsbios.a67 : memcpy.obj (.bss) 8000015c 00000000 : _lock.obj (.bss) 8000015c 00000000 csl6211.lib : csl_timer.obj (.bss) 8000015c 00000000 rtsbios.a67 : exit.obj (.bss) 8000015c 00000000 rtdx.lib : buffer2.obj (.bss) 8000015c 00000000 biosi.a62 : utl_doab_inst. (.bss) 8000015c 00000000 : utl_doer_inst. (.bss) 8000015c 00000000 : utl_halt_inst. (.bss) 8000015c 00000000 : fxn_c.o62 (.bss) 8000015c 00000000 rtdx.lib : buffer1.obj (.bss) 8000015c 00000000 audio.obj (.bss) 8000015c 00000000 biosi.a62 : autoinit.o62 (.bss) 8000015c 00000100 : hwi_disp_asm.o (.bss) 8000025c 00000020 audiocfg.obj (.bss) 8000027c 00000018 lnkrtdx.a62 : rtdx.o62 (.bss) 80000294 00000008 biosi.a62 : hwi.o62 (.bss) 8000029c 00000008 : clk_start6x.o6 (.bss) 800002a4 00000008 : gbl.o62 (.bss:c) 800002ac 00000004 : idl_busy.o62 (.bss) 800002b0 00000004 : gbl_cslinit62. (.bss) .far 0 80000600 000001e4 UNINITIALIZED 80000600 000000f4 csl6211.lib : csl_irq.obj (.far) 800006f4 0000008c rtsbios.a67 : exit.obj (.far) 80000780 00000028 csl6211.lib : csl.obj (.far) 800007a8 00000020 : csl_timer.obj (.far) 800007c8 00000014 rtdx.lib : buffer1.obj (.far) 800007dc 00000008 rtsbios.a67 : _lock.obj (.far) .sysdata 0 80000000 00000000 UNINITIALIZED .sysinit 0 80000800 00000320 80000800 00000240 audiocfg.obj (.sysinit) 80000a40 000000e0 biosi.a62 : boot.o62 (.sysinit) .mem 0 80000000 00000000 UNINITIALIZED .gblinit 0 800002b4 00000028 800002b4 00000028 audiocfg.obj (.gblinit) .trcdata 0 800002dc 0000000c 800002dc 0000000c audiocfg.obj (.trcdata) .sysregs 0 80000000 00000000 UNINITIALIZED .cinit 0 80000b20 0000097c 80000b20 00000384 audiocfg.obj (.cinit) 80000ea4 00000004 --HOLE-- [fill = 00000000] 80000ea8 000002dc biosi.a62 : biosdata.o62 (.cinit) 80001184 00000004 --HOLE-- [fill = 00000000] 80001188 0000012c csl6211.lib : csl_irq.obj (.cinit) 800012b4 00000004 --HOLE-- [fill = 00000000] 800012b8 0000005c lnkrtdx.a62 : rtdx.o62 (.cinit) 80001314 00000004 --HOLE-- [fill = 00000000] 80001318 0000004c biosi.a62 : rta.o62 (.cinit) 80001364 00000004 --HOLE-- [fill = 00000000] 80001368 0000003c csl6211.lib : csl.obj (.cinit) 800013a4 00000004 --HOLE-- [fill = 00000000] 800013a8 0000003c : csl_timer.obj (.cinit) 800013e4 00000004 --HOLE-- [fill = 00000000] 800013e8 0000002c rtsbios.a67 : exit.obj (.cinit) 80001414 00000004 --HOLE-- [fill = 00000000] 80001418 0000001c : _lock.obj (.cinit) 80001434 00000004 --HOLE-- [fill = 00000000] 80001438 0000001c biosi.a62 : hwi.o62 (.cinit) 80001454 00000004 --HOLE-- [fill = 00000000] 80001458 00000010 : gbl.o62 (.cinit:c) 80001468 00000010 : clk_start6x.o6 (.cinit) 80001478 0000000c : idl_busy.o62 (.cinit) 80001484 00000004 --HOLE-- [fill = 00000000] 80001488 0000000c rtdx.lib : buffer1.obj (.cinit) 80001494 00000008 --HOLE-- [fill = 00000000] .pinit 0 800002e8 0000000c 800002e8 00000004 rtdx.lib : rtdx_mon.obj (.pinit) 800002ec 00000004 : buffer1.obj (.pinit) 800002f0 00000004 --HOLE-- [fill = 00000000] .data 0 80000000 00000000 UNINITIALIZED 80000000 00000000 audio.obj (.data) 80000000 00000000 rtsbios.a67 : _lock.obj (.data) 80000000 00000000 : memcpy.obj (.data) 80000000 00000000 : exit.obj (.data) 80000000 00000000 csl6211.lib : csl_timer.obj (.data) 80000000 00000000 : csl_irq.obj (.data) 80000000 00000000 : csl.obj (.data) 80000000 00000000 rtdx.lib : intr_tgt.obj (.data) 80000000 00000000 : rtdx_mon.obj (.data) 80000000 00000000 : buffer2.obj (.data) 80000000 00000000 : buffer1.obj (.data) 80000000 00000000 biosi.a62 : hwi.o62 (.data) 80000000 00000000 : autoinit.o62 (.data) 80000000 00000000 : fxn_c.o62 (.data) 80000000 00000000 : utl_halt_inst. (.data) 80000000 00000000 : utl_doer_inst. (.data) 80000000 00000000 : utl_doab_inst. (.data) 80000000 00000000 : gbl_cslcachein (.data) 80000000 00000000 : clk_start6x.o6 (.data) 80000000 00000000 : gbl_vers.o62 (.data) 80000000 00000000 : gbl_cslinit62. (.data) 80000000 00000000 : gbl.o62 (.data) 80000000 00000000 : swi.o62 (.data) 80000000 00000000 : sts.o62 (.data) 80000000 00000000 : rta_andn.o62 (.data) 80000000 00000000 : rta.o62 (.data) 80000000 00000000 : prd.o62 (.data) 80000000 00000000 : pip.o62 (.data) 80000000 00000000 : log.o62 (.data) 80000000 00000000 : idl_cal.o62 (.data) 80000000 00000000 : idl_busy.o62 (.data) 80000000 00000000 : idl.o62 (.data) 80000000 00000000 : hwi_disp_asm.o (.data) 80000000 00000000 : fxn.o62 (.data) 80000000 00000000 : clk.o62 (.data) 80000000 00000000 : biosdata.o62 (.data) 80000000 00000000 : boot.o62 (.data) 80000000 00000000 lnkrtdx.a62 : rtdx.o62 (.data) 80000000 00000000 audiocfg_c.obj (.data) 80000000 00000000 audiocfg.obj (.data) .const 0 800002f4 00000045 800002f4 00000023 biosi.a62 : utl_doab_inst. (.const) 80000317 00000022 : utl_doer_inst. (.const) .switch 0 8000033c 0000002c 8000033c 0000002c rtdx.lib : rtdx_mon.obj (.switch) .cio 0 80000000 00000000 UNINITIALIZED .text 0 800014a0 00000cc0 800014a0 000002a0 rtsbios.a67 : memcpy.obj (.text) 80001740 00000000 biosi.a62 : sts.o62 (.text) 80001740 00000000 : swi.o62 (.text) 80001740 00000000 : rta_andn.o62 (.text) 80001740 00000000 : prd.o62 (.text) 80001740 00000000 : rta.o62 (.text) 80001740 00000000 : gbl.o62 (.text) 80001740 00000000 : gbl_cslcachein (.text) 80001740 00000000 : utl_doab_inst. (.text) 80001740 00000000 : clk_start6x.o6 (.text) 80001740 00000000 : gbl_cslinit62. (.text) 80001740 00000000 : gbl_vers.o62 (.text) 80001740 00000000 : pip.o62 (.text) 80001740 00000000 : biosdata.o62 (.text) 80001740 00000000 : clk.o62 (.text) 80001740 00000000 : boot.o62 (.text) 80001740 00000000 audiocfg.obj (.text) 80001740 00000000 lnkrtdx.a62 : rtdx.o62 (.text) 80001740 00000000 biosi.a62 : fxn.o62 (.text) 80001740 00000000 : idl_cal.o62 (.text) 80001740 00000000 : log.o62 (.text) 80001740 00000000 : idl_busy.o62 (.text) 80001740 00000000 : hwi_disp_asm.o (.text) 80001740 00000000 : idl.o62 (.text) 80001740 00000000 : utl_doer_inst. (.text) 80001740 00000000 rtdx.lib : rtdx_mon.obj (.text) 80001740 00000000 : buffer2.obj (.text) 80001740 00000000 : intr_tgt.obj (.text) 80001740 00000000 csl6211.lib : csl_timer.obj (.text) 80001740 00000000 : csl.obj (.text) 80001740 00000000 biosi.a62 : fxn_c.o62 (.text) 80001740 00000000 : utl_halt_inst. (.text) 80001740 00000000 : autoinit.o62 (.text) 80001740 00000000 rtdx.lib : buffer1.obj (.text) 80001740 00000000 biosi.a62 : hwi.o62 (.text) 80001740 00000240 rtsbios.a67 : exit.obj (.text) 80001980 000001c0 csl6211.lib : csl.obj (.text:__CSL_init) 80001b40 00000120 : csl_timer.obj (.text:_TIMER_open) 80001c60 00000120 : csl_irq.obj (.text:_mux2Tables) 80001d80 00000120 : csl_timer.obj (.text:_TIMER_reset) 80001ea0 000000a0 : csl_irq.obj (.text:_getMux) 80001f40 00000080 : csl_irq.obj (.text:__IRQ_init) 80001fc0 00000060 : csl_timer.obj (.text:_TIMER_configArgs) 80002020 00000040 audio.obj (.text) 80002060 00000040 rtsbios.a67 : _lock.obj (.text) 800020a0 00000040 csl6211.lib : csl_timer.obj (.text:_TIMER_start) 800020e0 00000040 : csl_irq.obj (.text:_IRQ_enable) 80002120 00000020 audiocfg_c.obj (.text) 80002140 00000020 csl6211.lib : csl_irq.obj (.text) frt 0 80000000 00000000 UNINITIALIZED .args 0 80000368 00000004 80000368 00000000 biosi.a62 : boot.o62 (.args) 80000368 00000004 --HOLE-- [fill = 00000000] .stack 0 80002160 00000400 80002160 00000000 biosi.a62 : boot.o62 (.stack) 80002160 00000400 --HOLE-- [fill = 00c0ffee] .rtdx_data 0 80002560 00000438 UNINITIALIZED 80002560 00000410 audiocfg.obj (.rtdx_data) 80002970 0000001c rtdx.lib : rtdx_mon.obj (.rtdx_data) 8000298c 0000000c : buffer1.obj (.rtdx_data) .rtdx_text 0 800029a0 00000de0 800029a0 000007a0 rtdx.lib : rtdx_mon.obj (.rtdx_text) 80003140 00000580 : buffer1.obj (.rtdx_text) 800036c0 00000080 : buffer2.obj (.rtdx_text) 80003740 00000040 : intr_tgt.obj (.rtdx_text) .hst 0 8000036c 0000002c UNINITIALIZED 8000036c 0000002c audiocfg.obj (.hst) .dsm 0 80000000 00000000 UNINITIALIZED .hst1 0 80000398 00000010 UNINITIALIZED 80000398 00000010 audiocfg.obj (.hst1) .hst0 0 80003780 00000100 UNINITIALIZED 80003780 00000100 audiocfg.obj (.hst0) .hwi 0 80000000 00000000 UNINITIALIZED .bios 0 80003880 00002300 80003880 000006e0 biosi.a62 : swi.o62 (.bios) 80003f60 00000540 lnkrtdx.a62 : rtdx.o62 (.bios) 800044a0 00000420 biosi.a62 : hwi_disp_asm.o (.bios) 800048c0 00000320 : prd.o62 (.bios) 80004be0 00000280 : rta.o62 (.bios) 80004e60 00000240 : gbl_cslcachein (.bios) 800050a0 00000220 : pip.o62 (.bios) 800052c0 00000220 : clk.o62 (.bios) 800054e0 00000180 : autoinit.o62 (.bios) 80005660 00000100 : idl_cal.o62 (.bios) 80005760 00000080 : fxn.o62 (.bios) 800057e0 00000080 : gbl_cslinit62. (.bios) 80005860 00000080 : log.o62 (.bios) 800058e0 00000080 : idl_busy.o62 (.bios) 80005960 00000080 : clk_start6x.o6 (.bios) 800059e0 00000060 : utl_doab_inst. (.bios) 80005a40 00000060 : sts.o62 (.bios) 80005aa0 00000040 : rta_andn.o62 (.bios) 80005ae0 00000020 : fxn_c.o62 (.bios) 80005b00 00000020 : idl.o62 (.bios) 80005b20 00000020 : utl_halt_inst. (.bios) 80005b40 00000020 : gbl_vers.o62 (.bios) 80005b60 00000020 : utl_doer_inst. (.bios) .log 0 800003a8 00000030 800003a8 00000030 audiocfg.obj (.log) .printf 0 80000000 00000000 COPY SECTION .LOG_system$buf 0 80006000 00000800 80006000 00000800 audiocfg.obj (.LOG_system$buf) [fill = ffffffff] .trace$buf 0 80007000 00001000 80007000 00001000 audiocfg.obj (.trace$buf) [fill = ffffffff] .pip 0 80005b80 000000c8 UNINITIALIZED 80005b80 000000c8 audiocfg.obj (.pip) .sts 0 800003d8 00000010 800003d8 00000010 audiocfg.obj (.sts) .sys 0 800003e8 00000010 UNINITIALIZED 800003e8 00000010 audiocfg.obj (.sys) my_DataSect 0 800007e4 00000018 UNINITIALIZED 800007e4 00000018 audio.obj (my_DataSect) GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name address name -------- ---- 80000028 $bss 80000028 .bss 80000000 .data 800014a0 .text 8000098c BIOS$$CLKOFF 8000095c BIOS$$CLKON 80000800 BIOS_init 800009d4 BIOS_start 80001968 C$$EXIT 00000001 CLK$ 80000000 CLK_A_TABBEG 80000008 CLK_A_TABEND 00000008 CLK_A_TABLEN 0000927c CLK_COUNTSPMS 00000000 CLK_COUNTSPMSHIGH 80000050 CLK_D_idletime 8000004c CLK_D_isrhook 80000048 CLK_D_tabbeg 80000044 CLK_D_timefxn 800052c0 CLK_F_getfhtime 800052e0 CLK_F_gethtime 80005354 CLK_F_getltime 800052e0 CLK_F_getshtime 80005360 CLK_F_isr 8000549c CLK_F_itime 800044a0 CLK_HOOKFXN 00004000 CLK_INTBIT 0000927c CLK_PRD 01940000 CLK_REGS 80000040 CLK_R_time 00000020 CLK_TCR 00000000 CLK_TDDR 800052e0 CLK_TIMEFXN 00000000 CLK_TIMERNUM 00000001 CLK_USETIMER 80000004 CLK_null 00000000 DEV$ 00000000 DGN$ 00000000 DHL$ 00000000 DHL_gChannelsAvailable 00000000 DPI$ 80005760 FXN_F_nop 80005768 FXN_F_run 800057b8 FXN_F_zero 00000001 GBL$ 00000000 GBL_BIGENDIAN 00000000 GBL_C641XL2PRIORITY 00000000 GBL_CACHE 00000001 GBL_CALLCSLCFGINIT 00000001 GBL_ENABLEINST 00000042 GBL_FOOTPRINT 80005b40 GBL_F_version 00002226 GBL_L2ALLOC 00000000 GBL_L2CONFIGALLOC 00000001 GBL_L2CONFIGURE 00000001 GBL_L2MARMASK 00000000 GBL_L2MARMASK1 00000000 GBL_L2MARMASK2 00000000 GBL_L2MARMASK3 00000000 GBL_L2MARMASK4 00000000 GBL_L2MARMASK5 00000007 GBL_L2MODE 00000000 GBL_L2PRIORITY 00000000 GBL_NULL 00000000 GBL_ROM 00000001 GBL_SUPPORTCSL 0000dbef GBL_TRCMASKVALUE 00000000 GBL_USERINIT 80005ae0 GBL_USERINITFXN 800002e4 GBL_initdone 80002160 GBL_stackbeg 8000255f GBL_stackend 00000000 HOOK$ 00000000 HOOK_KNLID 00000001 HST$ 8000036c HST_A_TABBEG 80000398 HST_A_TABEND 00000002 HST_A_TABLEN 00000000 HST_DSM ffffffff HST_DSMBUFSEG 00000400 HST_DSMMEMSIZE 80000140 HST_D_chanmask 00000100 HST_MAXFRAMEALLOWED 00000040 HST_MAXFRAMESET 00000000 HST_NONE 00000001 HST_RTDX 00000001 HWI$ 80000400 HWI_A_VECS 80000294 HWI_D_ccmask 800044a0 HWI_F_dispatch 00000000 HWI_GENERATE_RESET_VEC 0000000a HWI_INT10 0000000b HWI_INT11 0000000c HWI_INT12 0000000d HWI_INT13 0000000e HWI_INT14 0000000f HWI_INT15 00000004 HWI_INT4 00000005 HWI_INT5 00000006 HWI_INT6 00000007 HWI_INT7 00000008 HWI_INT8 00000009 HWI_INT9 082039a3 HWI_INTRMULTHIGH 310718a4 HWI_INTRMULTLOW 00000001 HWI_NMI 00000000 HWI_POLARITYMASK 00000002 HWI_RESERVED0 00000003 HWI_RESERVED1 00000000 HWI_RESET 00000000 HWI_ZEROTAB 00000001 IDL$ 80000018 IDL_A_CALBEG 80000028 IDL_A_CALEND 00000002 IDL_A_CALLEN 80000008 IDL_A_TABBEG 80000018 IDL_A_TABEND 00000002 IDL_A_TABLEN 80005660 IDL_CALIBRFXN 800002ac IDL_D_busyObj 80000030 IDL_D_calbeg 8000002c IDL_D_calibrate 80000028 IDL_D_tabbeg 80000014 IDL_END 80000024 IDL_END$ 800058e0 IDL_F_busy 80005660 IDL_F_calibrate 80005b00 IDL_F_loop 00000001 IDL_USECLKIDLTIME 800003dc IDL_busyObj 800003d8 IDL_busyObj$stsobj 80000010 IDL_cpuLoad 80000020 IDL_cpuLoad$ 00000001 ISRC$ 00000001 LCK$ 80003f60 LNK_F_checkBufferCall 80003fd4 LNK_F_dataPump 80003f80 LNK_F_getChanPtr 80003fcc LNK_F_init 80004478 LNK_F_readCallBack 80000008 LNK_dataPump 80000018 LNK_dataPump$ 80000280 LNK_dspFrameReadyMask 8000027c LNK_dspFrameRequestMask 80004228 LNK_newin 80004338 LNK_newout 80003fe0 LNK_rcloop 80004090 LNK_rdrtry 80000288 LNK_readDone 8000028c LNK_readFail 80000284 LNK_readPend 80004098 LNK_rrloop 80000290 LNK_writeFail 80004158 LNK_wrloop 80004150 LNK_wrrtry 00000001 LOG$ 800003a8 LOG_A_TABBEG 800003d8 LOG_A_TABEND 00000002 LOG_A_TABLEN 80000034 LOG_D_system 00000001 LOG_ENABLED 80005860 LOG_F_event 800003a8 LOG_system 80006000 LOG_system$buf 00000200 LOG_system$size 00000000 MBX$ 00000001 MEM$ 00000000 MEM_MALLOCSEG 00000000 MEM_NULL 00000000 MEM_SEGZERO 00000000 MEM_gNumHeap 00000000 OBJ$ 00000000 PIP$ 80005b80 PIP_A_TABBEG 80005c48 PIP_A_TABEND 00000002 PIP_A_TABLEN 80000038 PIP_D_tabbeg 8000003c PIP_D_tablen 80005134 PIP_F_give 80005134 PIP_F_probe 80005208 PIP_F_start 800050a0 PIP_F_take 00000002 PIP_gNextId 00000002 PIP_gNumEmbed 00000000 PRD$ 80000000 PRD_A_TABBEG 80000000 PRD_A_TABEND 00000000 PRD_A_TABLEN 800000fc PRD_D_cur 80000100 PRD_D_elapsed 80000104 PRD_D_prevtim 80000108 PRD_D_scalar 8000010c PRD_D_swihandle 80000110 PRD_D_tabbeg 80000114 PRD_D_tablen 80000118 PRD_D_thook 800000f8 PRD_D_tick 800048c0 PRD_F_swi 80004b1c PRD_F_tick 00004000 PRD_SCALAR 00000000 PRD_SWIHANDLE 80005760 PRD_THOOKFXN 80000000 PRD_clock 00000001 QUE$ 8000011c RTA_D_fromHost 80000124 RTA_D_logval 80000134 RTA_D_stsval 80000120 RTA_D_toHost 80005aa0 RTA_F_andn 80004cd8 RTA_F_dispatch 80004be0 RTA_F_getlog 80004c24 RTA_F_getsts 80005ac0 RTA_F_or 80004c6c RTA_F_readblk 80004c98 RTA_F_resetmem 80004c8c RTA_F_writeword 8000000c RTA_dispatcher 8000001c RTA_dispatcher$ 80004d18 RTA_execute 80000370 RTA_fromHost 80000398 RTA_fromHost$buf 80005b80 RTA_fromHost$pipe 80005bb0 RTA_fromHost$pipe$aaa 80005be0 RTA_fromHost$pipe$bbb 80000260 RTA_fromHost$pipe$dtab 80005b84 RTA_fromHost$pipe$rd 80005bb4 RTA_fromHost$pipe$wr 80000378 RTA_fromHost$rtdx 80000384 RTA_toHost 80003780 RTA_toHost$buf 80005be4 RTA_toHost$pipe 80005c14 RTA_toHost$pipe$aaa 80005c44 RTA_toHost$pipe$bbb 8000026c RTA_toHost$pipe$dtab 80005be8 RTA_toHost$pipe$rd 80005c18 RTA_toHost$pipe$wr 8000038c RTA_toHost$rtdx 00000001 RTDX$ 00000408 RTDX_BUFMEMSIZE ffffffff RTDX_DATAMEMSEG 00000001 RTDX_USERTDX 00000000 RTDX_USERTEXECUTION ffffffff SDRAM 00000000 SEM$ 00000000 SIO$ 00000001 STS$ 800003d8 STS_A_TABBEG 800003e8 STS_A_TABEND 00000001 STS_A_TABLEN 80005a50 STS_F_add 80005a40 STS_F_delta 80005a7c STS_F_reset 00000000 SWI$ 80000000 SWI_A_TABBEG 80000000 SWI_A_TABEND 00000000 SWI_A_TABLEN 80000060 SWI_D_curfxn 80000054 SWI_D_curmask 80000064 SWI_D_curmbox 80000058 SWI_D_curset 8000007c SWI_D_ehook 8000006c SWI_D_execaddr 80000078 SWI_D_ihook 80000068 SWI_D_lock 8000005c SWI_D_pending 80000074 SWI_D_rdybeg 80000080 SWI_D_rdytab 80000070 SWI_D_runaddr 00000000 SWI_EHOOKFXN 80005760 SWI_EXECFXN 80003880 SWI_F_enable 80003aa4 SWI_F_exec 80003b1c SWI_F_iexec 8000390c SWI_F_post 80003cf0 SWI_F_run 00000000 SWI_IHOOKFXN 80005760 SWI_RUNFXN 00000001 SYS$ 800003e8 SYS$config 800059e0 SYS_ABORTFXN 80005b60 SYS_ERRORFXN 80005b20 SYS_EXITFXN 80005ae0 SYS_PUTCFXN 800002e0 TRC_R_mask 800002dc TRC_cinit 00000000 TSK$ 00000000 TSK_NUM_HOOKS 00000001 TSK_PRIORITY 00000000 TSK_READYFXN 00000000 TSK_STACKSEG 00000400 TSK_STACKSIZE 00000000 TSK_SWITCHFXN 80005ae0 TSK_VCREATEFXN 80005ae0 TSK_VDELETEFXN 80005ae0 TSK_VEXITFXN 00000000 UDEV$ 80000800 _BIOS_init 800009d4 _BIOS_start 0000927c _CLK_COUNTSPMS 8000549c _CLK_F_itime 0000927c _CLK_PRD 01940000 _CLK_REGS 00000000 _CLK_TDDR 00000000 _CLK_TIMERNUM 00000001 _CLK_USETIMER 8000549c _CLK_itime 80005960 _CLK_start 80005960 _CLK_start6x 80002120 _CSL_cfgInit 80005ae0 _FXN_F_nop 80005768 _FXN_F_run 800057b8 _FXN_F_zero 00000000 _GBL_CACHE 80004e60 _GBL_cslCacheInit 800057e0 _GBL_cslInit 800002b0 _GBL_cslTimerHandle 800002a4 _GBL_irqEventTable 800002a8 _GBL_irqIntTable 8000036c _HST_A_TABBEG 80000398 _HST_A_TABEND 00000002 _HST_A_TABLEN 80000298 _HWI_D_spsave 800044a0 _HWI_F_dispatch 0000000a _HWI_INT10 0000000b _HWI_INT11 0000000c _HWI_INT12 0000000d _HWI_INT13 0000000e _HWI_INT14 0000000f _HWI_INT15 00000004 _HWI_INT4 00000005 _HWI_INT5 00000006 _HWI_INT6 00000007 _HWI_INT7 00000008 _HWI_INT8 00000009 _HWI_INT9 00000001 _HWI_NMI 00000002 _HWI_RESERVED0 00000003 _HWI_RESERVED1 00000000 _HWI_RESET 80002558 _HWI_STKBOTTOM 80002160 _HWI_STKTOP 8000015c _HWI_dispatchTab 800003dc _IDL_busyObj 80000010 _IDL_cpuLoad 80005b00 _IDL_loop 800020e0 _IRQ_enable 00000000 _KNL_swi 80000008 _LNK_dataPump 800003a8 _LOG_A_TABBEG 800003d8 _LOG_A_TABEND 00000002 _LOG_A_TABLEN 80000034 _LOG_D_system 80005860 _LOG_event 800003a8 _LOG_system 80000144 _MEM_D_NUMSEGMENTS 8000014c _MEM_D_freelist 80000150 _MEM_D_lockaddr 80000148 _MEM_D_memtab 80000154 _MEM_D_unlockaddr 00000000 _MEM_memtab 80005b80 _PIP_A_TABBEG 80005c48 _PIP_A_TABEND 00000002 _PIP_A_TABLEN 800000f8 _PRD_D_tick 80000000 _PRD_clock 8000000c _RTA_dispatcher 80000370 _RTA_fromHost 80000384 _RTA_toHost 80002560 _RTDX_Buffer 8000296c _RTDX_Buffer_End 80003140 _RTDX_Buffer_Initialize 800036c0 _RTDX_Buffer_Read 80002968 _RTDX_Buffer_Start 80003498 _RTDX_Buffer_Write 80002a88 _RTDX_Final_RT_Monitor 800029e0 _RTDX_Init_RT_Monitor 80002acc _RTDX_IsFlowEnabled 00000002 _RTDX_JTAGONLY 80003740 _RTDX_Mask_IER 80002fec _RTDX_Mon_Queue 80002ae0 _RTDX_Poll 80003758 _RTDX_Set_IER 00000000 _RTDX_interrupt_mask 800007c8 _RTDX_writing ffffffff _SDRAM 800003d8 _STS_A_TABBEG 800003e8 _STS_A_TABEND 00000001 _STS_A_TABLEN 80005a50 _STS_add 80005a40 _STS_delta 80005a7c _STS_reset 80000060 _SWI_D_curfxn 80000054 _SWI_D_curmask 80000068 _SWI_D_lock 80000074 _SWI_D_rdybeg 80000158 _SYS 80001fc0 _TIMER_configArgs 80001b40 _TIMER_open 80001d80 _TIMER_reset 800020a0 _TIMER_start 800002e0 _TRC_R_mask 800059e0 _UTL_doAbort 80005b60 _UTL_doError 80005b20 _UTL_halt 800054b0 __CLK_lat1beg 800054dc __CLK_lat1end 80001980 __CSL_init 80000278 __HOOK_NUMHOOKS 8000025c __HOOK_knlId 800044a0 __HWI_lat1beg 8000464c __HWI_lat1end 8000464c __HWI_lat2beg 800047c8 __HWI_lat2end1 80004768 __HWI_lat2end2 8000480c __HWI_lat3beg 800048b8 __HWI_lat3end1 80004794 __HWI_lat3end2 800058e0 __IDL_lat1beg 80005930 __IDL_lat1end 800006ec __IRQ_dispatchTable 80000628 __IRQ_eventTable 80002140 __IRQ_hookFetchPacket 80001f40 __IRQ_init 800006ac __IRQ_intTable 80005860 __LOG_lat1beg 800058a4 __LOG_lat1end1 800058d0 __LOG_lat1end2 80004c98 __RTA_lat1beg 80004cd0 __RTA_lat1end 00000400 __STACK_SIZE 80003a14 __SWI_lat1beg 80003aa0 __SWI_lat1end1 80003b5c __SWI_lat1end2 80003c00 __SWI_lat2beg 80003cec __SWI_lat2end2 80003880 __SWI_lat3beg 80003908 __SWI_lat3end 800007a8 __TIMER_deviceTable 800007c0 __TIMER_hDev0 800007c4 __TIMER_hDev1 80000028 ___bss__ 80000b20 ___cinit__ 80000000 ___data__ 80000000 ___edata__ 800002b4 ___end__ 80002160 ___etext__ 800002e8 ___pinit__ 800014a0 ___text__ 800054e0 __auto_init 80000778 __cleanup_ptr 8000077c __dtors_ptr 800007dc __lock 80002060 __nop 80002068 __register_lock 8000207c __register_unlock 80002160 __stack 800007e0 __unlock 80001968 _abort 80001890 _atexit 80000a40 _c_int00 80001740 _exit 800007e4 _handShakingBuffer 80002020 _main 800014a0 _memcpy 8000298c _rtdx_buffer_state 80002970 _rtdx_mon_state 800003c0 _trace 80000b20 cinit 80000000 edata 800002b4 end 80002160 etext 80000400 hwi0 80000420 hwi1 80000540 hwi10 80000560 hwi11 80000580 hwi12 800005a0 hwi13 800005c0 hwi14 800005e0 hwi15 80000440 hwi2 80000460 hwi3 80000480 hwi4 800004a0 hwi5 800004c0 hwi6 800004e0 hwi7 80000500 hwi8 80000520 hwi9 800002e8 pinit 800003c0 trace 80007000 trace$buf 00000400 trace$size GLOBAL SYMBOLS: SORTED BY Symbol Address address name -------- ---- 00000000 GBL_C641XL2PRIORITY 00000000 GBL_CACHE 00000000 MEM_SEGZERO 00000000 GBL_BIGENDIAN 00000000 MBX$ 00000000 GBL_L2CONFIGALLOC 00000000 MEM_NULL 00000000 MEM_MALLOCSEG 00000000 MEM_gNumHeap 00000000 DGN$ 00000000 DHL$ 00000000 PRD$ 00000000 DEV$ 00000000 PIP$ 00000000 OBJ$ 00000000 DHL_gChannelsAvailable 00000000 DPI$ 00000000 HWI_POLARITYMASK 00000000 HOOK$ 00000000 HWI_ZEROTAB 00000000 HWI_RESET 00000000 HST_NONE 00000000 HST_DSM 00000000 HOOK_KNLID 00000000 HWI_GENERATE_RESET_VEC 00000000 GBL_USERINIT 00000000 GBL_L2MARMASK3 00000000 GBL_L2MARMASK4 00000000 GBL_L2MARMASK1 00000000 GBL_L2MARMASK2 00000000 GBL_NULL 00000000 GBL_ROM 00000000 GBL_L2MARMASK5 00000000 GBL_L2PRIORITY 00000000 PRD_A_TABLEN 00000000 TSK_STACKSEG 00000000 TSK_SWITCHFXN 00000000 UDEV$ 00000000 TSK_READYFXN 00000000 TSK$ 00000000 TSK_NUM_HOOKS 00000000 CLK_COUNTSPMSHIGH 00000000 _KNL_swi 00000000 _MEM_memtab 00000000 _RTDX_interrupt_mask 00000000 _HWI_RESET 00000000 _CLK_TDDR 00000000 _CLK_TIMERNUM 00000000 _GBL_CACHE 00000000 SWI_IHOOKFXN 00000000 SEM$ 00000000 SIO$ 00000000 SWI$ 00000000 RTDX_USERTEXECUTION 00000000 CLK_TIMERNUM 00000000 PRD_SWIHANDLE 00000000 CLK_TDDR 00000000 SWI_A_TABLEN 00000000 SWI_EHOOKFXN 00000001 QUE$ 00000001 HWI_NMI 00000001 RTDX$ 00000001 _HWI_NMI 00000001 LOG_ENABLED 00000001 MEM$ 00000001 _STS_A_TABLEN 00000001 HST_RTDX 00000001 SYS$ 00000001 HWI$ 00000001 ISRC$ 00000001 LCK$ 00000001 STS$ 00000001 TSK_PRIORITY 00000001 STS_A_TABLEN 00000001 RTDX_USERTDX 00000001 _CLK_USETIMER 00000001 IDL$ 00000001 LOG$ 00000001 IDL_USECLKIDLTIME 00000001 GBL_CALLCSLCFGINIT 00000001 GBL_ENABLEINST 00000001 GBL$ 00000001 CLK_USETIMER 00000001 HST$ 00000001 GBL_SUPPORTCSL 00000001 GBL_L2CONFIGURE 00000001 CLK$ 00000001 GBL_L2MARMASK 00000002 PIP_A_TABLEN 00000002 IDL_A_CALLEN 00000002 PIP_gNumEmbed 00000002 PIP_gNextId 00000002 HWI_RESERVED0 00000002 _PIP_A_TABLEN 00000002 _LOG_A_TABLEN 00000002 LOG_A_TABLEN 00000002 IDL_A_TABLEN 00000002 _HWI_RESERVED0 00000002 _RTDX_JTAGONLY 00000002 _HST_A_TABLEN 00000002 HST_A_TABLEN 00000003 _HWI_RESERVED1 00000003 HWI_RESERVED1 00000004 HWI_INT4 00000004 _HWI_INT4 00000005 _HWI_INT5 00000005 HWI_INT5 00000006 _HWI_INT6 00000006 HWI_INT6 00000007 _HWI_INT7 00000007 HWI_INT7 00000007 GBL_L2MODE 00000008 _HWI_INT8 00000008 CLK_A_TABLEN 00000008 HWI_INT8 00000009 _HWI_INT9 00000009 HWI_INT9 0000000a HWI_INT10 0000000a _HWI_INT10 0000000b _HWI_INT11 0000000b HWI_INT11 0000000c HWI_INT12 0000000c _HWI_INT12 0000000d HWI_INT13 0000000d _HWI_INT13 0000000e _HWI_INT14 0000000e HWI_INT14 0000000f HWI_INT15 0000000f _HWI_INT15 00000020 CLK_TCR 00000040 HST_MAXFRAMESET 00000042 GBL_FOOTPRINT 00000100 HST_MAXFRAMEALLOWED 00000200 LOG_system$size 00000400 TSK_STACKSIZE 00000400 trace$size 00000400 __STACK_SIZE 00000400 HST_DSMMEMSIZE 00000408 RTDX_BUFMEMSIZE 00002226 GBL_L2ALLOC 00004000 CLK_INTBIT 00004000 PRD_SCALAR 0000927c CLK_COUNTSPMS 0000927c _CLK_COUNTSPMS 0000927c CLK_PRD 0000927c _CLK_PRD 0000dbef GBL_TRCMASKVALUE 01940000 _CLK_REGS 01940000 CLK_REGS 082039a3 HWI_INTRMULTHIGH 310718a4 HWI_INTRMULTLOW 80000000 ___data__ 80000000 PRD_A_TABBEG 80000000 .data 80000000 SWI_A_TABBEG 80000000 SWI_A_TABEND 80000000 edata 80000000 _PRD_clock 80000000 CLK_A_TABBEG 80000000 ___edata__ 80000000 PRD_A_TABEND 80000000 PRD_clock 80000004 CLK_null 80000008 CLK_A_TABEND 80000008 IDL_A_TABBEG 80000008 LNK_dataPump 80000008 _LNK_dataPump 8000000c RTA_dispatcher 8000000c _RTA_dispatcher 80000010 IDL_cpuLoad 80000010 _IDL_cpuLoad 80000014 IDL_END 80000018 IDL_A_TABEND 80000018 LNK_dataPump$ 80000018 IDL_A_CALBEG 8000001c RTA_dispatcher$ 80000020 IDL_cpuLoad$ 80000024 IDL_END$ 80000028 IDL_D_tabbeg 80000028 ___bss__ 80000028 $bss 80000028 IDL_A_CALEND 80000028 .bss 8000002c IDL_D_calibrate 80000030 IDL_D_calbeg 80000034 _LOG_D_system 80000034 LOG_D_system 80000038 PIP_D_tabbeg 8000003c PIP_D_tablen 80000040 CLK_R_time 80000044 CLK_D_timefxn 80000048 CLK_D_tabbeg 8000004c CLK_D_isrhook 80000050 CLK_D_idletime 80000054 SWI_D_curmask 80000054 _SWI_D_curmask 80000058 SWI_D_curset 8000005c SWI_D_pending 80000060 SWI_D_curfxn 80000060 _SWI_D_curfxn 80000064 SWI_D_curmbox 80000068 SWI_D_lock 80000068 _SWI_D_lock 8000006c SWI_D_execaddr 80000070 SWI_D_runaddr 80000074 SWI_D_rdybeg 80000074 _SWI_D_rdybeg 80000078 SWI_D_ihook 8000007c SWI_D_ehook 80000080 SWI_D_rdytab 800000f8 PRD_D_tick 800000f8 _PRD_D_tick 800000fc PRD_D_cur 80000100 PRD_D_elapsed 80000104 PRD_D_prevtim 80000108 PRD_D_scalar 8000010c PRD_D_swihandle 80000110 PRD_D_tabbeg 80000114 PRD_D_tablen 80000118 PRD_D_thook 8000011c RTA_D_fromHost 80000120 RTA_D_toHost 80000124 RTA_D_logval 80000134 RTA_D_stsval 80000140 HST_D_chanmask 80000144 _MEM_D_NUMSEGMENTS 80000148 _MEM_D_memtab 8000014c _MEM_D_freelist 80000150 _MEM_D_lockaddr 80000154 _MEM_D_unlockaddr 80000158 _SYS 8000015c _HWI_dispatchTab 8000025c __HOOK_knlId 80000260 RTA_fromHost$pipe$dtab 8000026c RTA_toHost$pipe$dtab 80000278 __HOOK_NUMHOOKS 8000027c LNK_dspFrameRequestMask 80000280 LNK_dspFrameReadyMask 80000284 LNK_readPend 80000288 LNK_readDone 8000028c LNK_readFail 80000290 LNK_writeFail 80000294 HWI_D_ccmask 80000298 _HWI_D_spsave 800002a4 _GBL_irqEventTable 800002a8 _GBL_irqIntTable 800002ac IDL_D_busyObj 800002b0 _GBL_cslTimerHandle 800002b4 end 800002b4 ___end__ 800002dc TRC_cinit 800002e0 TRC_R_mask 800002e0 _TRC_R_mask 800002e4 GBL_initdone 800002e8 ___pinit__ 800002e8 pinit 8000036c HST_A_TABBEG 8000036c _HST_A_TABBEG 80000370 _RTA_fromHost 80000370 RTA_fromHost 80000378 RTA_fromHost$rtdx 80000384 _RTA_toHost 80000384 RTA_toHost 8000038c RTA_toHost$rtdx 80000398 RTA_fromHost$buf 80000398 HST_A_TABEND 80000398 _HST_A_TABEND 800003a8 LOG_system 800003a8 _LOG_A_TABBEG 800003a8 _LOG_system 800003a8 LOG_A_TABBEG 800003c0 _trace 800003c0 trace 800003d8 _LOG_A_TABEND 800003d8 LOG_A_TABEND 800003d8 IDL_busyObj$stsobj 800003d8 STS_A_TABBEG 800003d8 _STS_A_TABBEG 800003dc _IDL_busyObj 800003dc IDL_busyObj 800003e8 _STS_A_TABEND 800003e8 STS_A_TABEND 800003e8 SYS$config 80000400 hwi0 80000400 HWI_A_VECS 80000420 hwi1 80000440 hwi2 80000460 hwi3 80000480 hwi4 800004a0 hwi5 800004c0 hwi6 800004e0 hwi7 80000500 hwi8 80000520 hwi9 80000540 hwi10 80000560 hwi11 80000580 hwi12 800005a0 hwi13 800005c0 hwi14 800005e0 hwi15 80000628 __IRQ_eventTable 800006ac __IRQ_intTable 800006ec __IRQ_dispatchTable 80000778 __cleanup_ptr 8000077c __dtors_ptr 800007a8 __TIMER_deviceTable 800007c0 __TIMER_hDev0 800007c4 __TIMER_hDev1 800007c8 _RTDX_writing 800007dc __lock 800007e0 __unlock 800007e4 _handShakingBuffer 80000800 BIOS_init 80000800 _BIOS_init 8000095c BIOS$$CLKON 8000098c BIOS$$CLKOFF 800009d4 BIOS_start 800009d4 _BIOS_start 80000a40 _c_int00 80000b20 ___cinit__ 80000b20 cinit 800014a0 ___text__ 800014a0 _memcpy 800014a0 .text 80001740 _exit 80001890 _atexit 80001968 _abort 80001968 C$$EXIT 80001980 __CSL_init 80001b40 _TIMER_open 80001d80 _TIMER_reset 80001f40 __IRQ_init 80001fc0 _TIMER_configArgs 80002020 _main 80002060 __nop 80002068 __register_lock 8000207c __register_unlock 800020a0 _TIMER_start 800020e0 _IRQ_enable 80002120 _CSL_cfgInit 80002140 __IRQ_hookFetchPacket 80002160 __stack 80002160 etext 80002160 GBL_stackbeg 80002160 ___etext__ 80002160 _HWI_STKTOP 80002558 _HWI_STKBOTTOM 8000255f GBL_stackend 80002560 _RTDX_Buffer 80002968 _RTDX_Buffer_Start 8000296c _RTDX_Buffer_End 80002970 _rtdx_mon_state 8000298c _rtdx_buffer_state 800029e0 _RTDX_Init_RT_Monitor 80002a88 _RTDX_Final_RT_Monitor 80002acc _RTDX_IsFlowEnabled 80002ae0 _RTDX_Poll 80002fec _RTDX_Mon_Queue 80003140 _RTDX_Buffer_Initialize 80003498 _RTDX_Buffer_Write 800036c0 _RTDX_Buffer_Read 80003740 _RTDX_Mask_IER 80003758 _RTDX_Set_IER 80003780 RTA_toHost$buf 80003880 __SWI_lat3beg 80003880 SWI_F_enable 80003908 __SWI_lat3end 8000390c SWI_F_post 80003a14 __SWI_lat1beg 80003aa0 __SWI_lat1end1 80003aa4 SWI_F_exec 80003b1c SWI_F_iexec 80003b5c __SWI_lat1end2 80003c00 __SWI_lat2beg 80003cec __SWI_lat2end2 80003cf0 SWI_F_run 80003f60 LNK_F_checkBufferCall 80003f80 LNK_F_getChanPtr 80003fcc LNK_F_init 80003fd4 LNK_F_dataPump 80003fe0 LNK_rcloop 80004090 LNK_rdrtry 80004098 LNK_rrloop 80004150 LNK_wrrtry 80004158 LNK_wrloop 80004228 LNK_newin 80004338 LNK_newout 80004478 LNK_F_readCallBack 800044a0 __HWI_lat1beg 800044a0 _HWI_F_dispatch 800044a0 CLK_HOOKFXN 800044a0 HWI_F_dispatch 8000464c __HWI_lat2beg 8000464c __HWI_lat1end 80004768 __HWI_lat2end2 80004794 __HWI_lat3end2 800047c8 __HWI_lat2end1 8000480c __HWI_lat3beg 800048b8 __HWI_lat3end1 800048c0 PRD_F_swi 80004b1c PRD_F_tick 80004be0 RTA_F_getlog 80004c24 RTA_F_getsts 80004c6c RTA_F_readblk 80004c8c RTA_F_writeword 80004c98 RTA_F_resetmem 80004c98 __RTA_lat1beg 80004cd0 __RTA_lat1end 80004cd8 RTA_F_dispatch 80004d18 RTA_execute 80004e60 _GBL_cslCacheInit 800050a0 PIP_F_take 80005134 PIP_F_probe 80005134 PIP_F_give 80005208 PIP_F_start 800052c0 CLK_F_getfhtime 800052e0 CLK_F_getshtime 800052e0 CLK_TIMEFXN 800052e0 CLK_F_gethtime 80005354 CLK_F_getltime 80005360 CLK_F_isr 8000549c CLK_F_itime 8000549c _CLK_itime 8000549c _CLK_F_itime 800054b0 __CLK_lat1beg 800054dc __CLK_lat1end 800054e0 __auto_init 80005660 IDL_CALIBRFXN 80005660 IDL_F_calibrate 80005760 SWI_EXECFXN 80005760 PRD_THOOKFXN 80005760 SWI_RUNFXN 80005760 FXN_F_nop 80005768 _FXN_F_run 80005768 FXN_F_run 800057b8 _FXN_F_zero 800057b8 FXN_F_zero 800057e0 _GBL_cslInit 80005860 __LOG_lat1beg 80005860 LOG_F_event 80005860 _LOG_event 800058a4 __LOG_lat1end1 800058d0 __LOG_lat1end2 800058e0 __IDL_lat1beg 800058e0 IDL_F_busy 80005930 __IDL_lat1end 80005960 _CLK_start6x 80005960 _CLK_start 800059e0 _UTL_doAbort 800059e0 SYS_ABORTFXN 80005a40 STS_F_delta 80005a40 _STS_delta 80005a50 STS_F_add 80005a50 _STS_add 80005a7c _STS_reset 80005a7c STS_F_reset 80005aa0 RTA_F_andn 80005ac0 RTA_F_or 80005ae0 SYS_PUTCFXN 80005ae0 TSK_VEXITFXN 80005ae0 GBL_USERINITFXN 80005ae0 _FXN_F_nop 80005ae0 TSK_VCREATEFXN 80005ae0 TSK_VDELETEFXN 80005b00 IDL_F_loop 80005b00 _IDL_loop 80005b20 SYS_EXITFXN 80005b20 _UTL_halt 80005b40 GBL_F_version 80005b60 _UTL_doError 80005b60 SYS_ERRORFXN 80005b80 RTA_fromHost$pipe 80005b80 _PIP_A_TABBEG 80005b80 PIP_A_TABBEG 80005b84 RTA_fromHost$pipe$rd 80005bb0 RTA_fromHost$pipe$aaa 80005bb4 RTA_fromHost$pipe$wr 80005be0 RTA_fromHost$pipe$bbb 80005be4 RTA_toHost$pipe 80005be8 RTA_toHost$pipe$rd 80005c14 RTA_toHost$pipe$aaa 80005c18 RTA_toHost$pipe$wr 80005c44 RTA_toHost$pipe$bbb 80005c48 _PIP_A_TABEND 80005c48 PIP_A_TABEND 80006000 LOG_system$buf 80007000 trace$buf ffffffff HST_DSMBUFSEG ffffffff SDRAM ffffffff RTDX_DATAMEMSEG ffffffff _SDRAM [491 symbols] XXXXXXXXXXXXXXX Perhaps that might give you idea as to what I've left out. Thanks very much for getting back to me. Aine. Hi everyone, I'm trying to implement a HPI handshake between a windows app and my c6711dsk. I have this working without DSP/BIOS, but I can't get it to work using DSP/BIOS. This is my dsp code (I'm using the same code for both non-DSP/BIOS and DSP/BIOS) - #define ID_0 0x12345678 #define ID_1 0xf1f2f3f4 #define ID_2 0x08070605 #pragma DATA_SECTION(handShakingBuffer, "my_DataSect") int handShakingBuffer[HS_BUFFER_LEN]; /* * ======== main ======== */ void main() { handShakingBuffer[0] = ID_0; handShakingBuffer[1] = ID_1; handShakingBuffer[2] = ID_2; handShakingBuffer[3] = 0; handShakingBuffer[4] = 0; return; } Actually, the DSP/BIOS version also includes - #include "audiocfg.h" #include "audio.h" My windows app loads the dsp program to the dsp board, and polls until the following are set - handShakingBuffer[0] = ID_0; handShakingBuffer[1] = ID_1; handShakingBuffer[2] = ID_2; My windows app looks something like the following - sBoardFile = "F:\\ti\\c6000\\dsk6x11\\doc\\ti_ppdsk.cfg"; pBoardFile = fopen( sBoardFile, "r" ); fclose(pBoardFile); dsk6x_open(sBoardFile,&hBd) ) dsk6x_reset_dsp(hBd,0,1) ) dsk6x_hpi_open(hBd)) dsk6x_coff_load(hBd,coffNam,bVerbose,bClr,bDump)) dsk6x_hpi_generate_int(hBd)) do { readLength = HS_BUFFER_LEN*4; /* 4 bytes for 1 word */ /*-------------------------------------------------------------------*/ /* Test if handShakingBuffer actually read (completely) */ /*-------------------------------------------------------------------*/ if (!dsk6x_hpi_read(hBd, handShakingBuffer, &readLength, DSPHS_BUFFER_ADDRESS) || readLength != HS_BUFFER_LEN*4) { /* evm6x_hpi_read() failed */ continue; // try again } /*-------------------------------------------------------------------*/ /* Test if handShakingBuffer contains correct ID */ /*-------------------------------------------------------------------*/ handShakingFlag = 0; // reset hand shaking flag if(handShakingBuffer[0] != ID_0) handShakingFlag = 1; if(handShakingBuffer[1] != ID_1) handShakingFlag = 1; if(handShakingBuffer[2] != ID_2) handShakingFlag = 1; } while (handShakingFlag == 1); The DSP/BIOS version is getting trapped in the while loop, because the dsp is obviously not setting the handShakingBuffer, or the app is not reading this buffer correctly. THe non DSP bios version does not get trapped. My non-DSP bios project also includes a vector.asm file - * * TI Proprietary Information * Internal Data * .ref _c_int00 .sect "vectors" RESET_RST: mvkl .S2 _c_int00, B0 mvkh .S2 _c_int00, B0 B .S2 B0 NOP NOP NOP NOP NOP NMI_RST: NOP NOP NOP NOP NOP NOP NOP NOP RESV1: NOP NOP NOP NOP NOP NOP NOP NOP RESV2: NOP NOP NOP NOP NOP NOP NOP NOP INT4: NOP NOP NOP NOP NOP NOP NOP NOP INT5: NOP NOP NOP NOP NOP NOP NOP NOP INT6: NOP NOP NOP NOP NOP NOP NOP NOP INT7: NOP NOP NOP NOP NOP NOP NOP NOP INT8: NOP NOP NOP NOP NOP NOP NOP NOP INT9: NOP NOP NOP NOP NOP NOP NOP NOP INT10: NOP NOP NOP NOP NOP NOP NOP NOP INT11: NOP NOP NOP NOP NOP NOP NOP NOP INT12: NOP NOP NOP NOP NOP NOP NOP NOP INT13: NOP NOP NOP NOP NOP NOP NOP NOP INT14: NOP NOP NOP NOP NOP NOP NOP NOP INT15: NOP NOP NOP NOP NOP NOP NOP NOP and a cmd file - -c -heap 0x500 -stack 0x500 /* very large stack for DSP programs. */ -lrts6201.lib MEMORY { vecs: o = 00000000h l = 00000200h I_HS_MEM: o = 00000200h l = 00000020h IRAM: o = 00000220h l = 0000FDE0h } SECTIONS { "vectors" > vecs my_DataSect > I_HS_MEM .cinit > IRAM .text > IRAM .stack > IRAM .bss > IRAM .const > IRAM .data > IRAM .far > IRAM .switch > IRAM .sysmem > IRAM .tables > IRAM .cio > IRAM } My DSP/BIOS project contains a cdb file, and a cmd file. The cdb file is not set up to do anything other that to define the chip - c6711 etc. Is there anything else I should be setting up in the DSP/BIOS version? Thanks, Aine. This is my cmd file for the DSP/BIOS version, in case it gives any clues. Thanks. /* Do *not* directly modify this file. It was */ /* generated by the Configuration Tool; any */ /* changes risk being overwritten. */ /* INPUT audio.cdb */ /* MODULE PARAMETERS */ GBL_USERINITFXN = _FXN_F_nop; MEM_SEGZERO = MEM_NULL; MEM_MALLOCSEG = MEM_NULL; CLK_TIMEFXN = CLK_F_getshtime; CLK_HOOKFXN = HWI_F_dispatch; PRD_THOOKFXN = FXN_F_nop; RTDX_DATAMEMSEG = SDRAM; HST_DSMBUFSEG = SDRAM; SWI_EHOOKFXN = GBL_NULL; SWI_IHOOKFXN = GBL_NULL; SWI_EXECFXN = FXN_F_nop; SWI_RUNFXN = FXN_F_nop; TSK_STACKSEG = MEM_NULL; TSK_VCREATEFXN = _FXN_F_nop; TSK_VDELETEFXN = _FXN_F_nop; TSK_VEXITFXN = _FXN_F_nop; IDL_CALIBRFXN = IDL_F_calibrate; SYS_ABORTFXN = _UTL_doAbort; SYS_ERRORFXN = _UTL_doError; SYS_EXITFXN = _UTL_halt; SYS_PUTCFXN = _FXN_F_nop; /* OBJECT ALIASES */ _SDRAM = SDRAM; _PRD_clock = PRD_clock; _RTA_fromHost = RTA_fromHost; _RTA_toHost = RTA_toHost; _HWI_RESET = HWI_RESET; _HWI_NMI = HWI_NMI; _HWI_RESERVED0 = HWI_RESERVED0; _HWI_RESERVED1 = HWI_RESERVED1; _HWI_INT4 = HWI_INT4; _HWI_INT5 = HWI_INT5; _HWI_INT6 = HWI_INT6; _HWI_INT7 = HWI_INT7; _HWI_INT8 = HWI_INT8; _HWI_INT9 = HWI_INT9; _HWI_INT10 = HWI_INT10; _HWI_INT11 = HWI_INT11; _HWI_INT12 = HWI_INT12; _HWI_INT13 = HWI_INT13; _HWI_INT14 = HWI_INT14; _HWI_INT15 = HWI_INT15; _LNK_dataPump = LNK_dataPump; _RTA_dispatcher = RTA_dispatcher; _IDL_cpuLoad = IDL_cpuLoad; _LOG_system = LOG_system; _trace = trace; _IDL_busyObj = IDL_busyObj; /* MODULE GBL */ SECTIONS { .vers (COPY): {} /* version information */ } -llnkrtdx.a62 -ldrivers.a67 /* device drivers support */ -lbiosi.a62 /* DSP/BIOS support */ -lrtdx.lib /* RTDX support */ -lcsl6211.lib -lrtsbios.a67 /* C and C++ run-time library support */ _GBL_CACHE = GBL_CACHE; /* MODULE MEM */ -stack 0x400 MEMORY { SDRAM : origin = 0x80000000, len = 0x1000000 } /* MODULE CLK */ SECTIONS { .clk: { _CLK_start = _CLK_start6x; CLK_F_gethtime = CLK_F_getshtime; CLK_A_TABBEG = .; *(.clk) CLK_A_TABEND = .; CLK_A_TABLEN = (. - CLK_A_TABBEG) / 1; } > SDRAM } _CLK_PRD = CLK_PRD; _CLK_COUNTSPMS = CLK_COUNTSPMS; _CLK_REGS = CLK_REGS; _CLK_USETIMER = CLK_USETIMER; _CLK_TIMERNUM = CLK_TIMERNUM; _CLK_TDDR = CLK_TDDR; /* MODULE PRD */ SECTIONS { .prd: { PRD_A_TABBEG = .; /* no PRD objects */ PRD_A_TABEND = .; PRD_A_TABLEN = (. - PRD_A_TABBEG) / 32; } > SDRAM } /* MODULE RTDX */ _RTDX_interrupt_mask = 0x0; /* MODULE HWI */ SECTIONS { .hwi_reset: 0x0 {} } /* MODULE SWI */ SECTIONS { .swi: { SWI_A_TABBEG = .; /* no SWI objects */ SWI_A_TABEND = .; SWI_A_TABLEN = (. - SWI_A_TABBEG) / 44; } > SDRAM } /* MODULE TSK */ _KNL_swi = 0; /* MODULE IDL */ SECTIONS { .idl: { IDL_A_TABBEG = .; *(.idl) IDL_A_TABEND = .; IDL_A_TABLEN = (. - IDL_A_TABBEG) / 8; IDL_A_CALBEG = .; *(.idlcal) IDL_A_CALEND = .; IDL_A_CALLEN = (. - IDL_A_CALBEG) / 8; } > SDRAM } SECTIONS { .hwi_vec: { HWI_A_VECS = .; *(.hwi_vec) } align = 0x400 > SDRAM .bss: {} > SDRAM .far: {} > SDRAM .sysdata: {} > SDRAM .sysinit: {} > SDRAM .mem: {} > SDRAM .gblinit: {} > SDRAM .trcdata: {} > SDRAM .sysregs: {} > SDRAM .cinit: {} > SDRAM .pinit: {} > SDRAM .data: {} > SDRAM .const: {} > SDRAM .switch: {} > SDRAM .cio: {} > SDRAM .text: {} > SDRAM frt: {} > SDRAM .args: fill=0 { *(.args) . += 0x4; } > SDRAM .stack: fill=0xc0ffee { GBL_stackbeg = .; *(.stack) GBL_stackend = GBL_stackbeg + 0x400 - 1; _HWI_STKBOTTOM = GBL_stackbeg + 0x400 - 4 & ~7; _HWI_STKTOP = GBL_stackbeg; } > SDRAM .rtdx_data: {} > SDRAM .rtdx_text: {} > SDRAM .hst: { HST_A_TABBEG = .; _HST_A_TABBEG = .; *(.hst) HST_A_TABEND = .; _HST_A_TABEND = .; HST_A_TABLEN = (. - _HST_A_TABBEG) / 20; _HST_A_TABLEN = (. - _HST_A_TABBEG) / 20; } > SDRAM .dsm: {} > SDRAM /* RTA_fromHost buffer */ .hst1: align = 0x4 {} > SDRAM /* RTA_toHost buffer */ .hst0: align = 0x4 {} > SDRAM .hwi: {} > SDRAM .bios: {} > SDRAM .log: { LOG_A_TABBEG = .; _LOG_A_TABBEG = .; *(.log) LOG_A_TABEND = .; _LOG_A_TABEND = .; LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 24; _LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 24; } > SDRAM .printf (COPY): {} > SDRAM /* LOG_system buffer */ .LOG_system$buf: align = 0x800 fill = 0xffffffff {} > SDRAM /* trace buffer */ .trace$buf: align = 0x1000 fill = 0xffffffff {} > SDRAM .pip: { PIP_A_TABBEG = .; _PIP_A_TABBEG = .; *(.pip) PIP_A_TABEND = .; _PIP_A_TABEND = .; PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100; _PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100; } > SDRAM .sts: { STS_A_TABBEG = .; _STS_A_TABBEG = .; *(.sts) STS_A_TABEND = .; _STS_A_TABEND = .; STS_A_TABLEN = (. - _STS_A_TABBEG) / 16; _STS_A_TABLEN = (. - _STS_A_TABBEG) / 16; } > SDRAM .sys: {} > SDRAM } john@nospam.demon.co.uk (John McCabe) wrote in message news:<3f41daed.1860144@news.btclick.com>...
> On 18 Aug 2003 08:32:00 -0700, aine_canby@yahoo.com > (=?ISO-8859-1?Q?=C0ine_Canby?=) wrote: > > >Hi everyone, > > > >I'm trying to implement a HPI handshake between a windows app and my > >c6711dsk. > > > >I have this working without DSP/BIOS, but I can't get it to work using > >DSP/BIOS. > > What is your cache configuration? > > > > Best Regards > John McCabe > > To reply by email replace 'nospam' with 'assen'
On 19 Aug 2003 07:33:07 -0700, aine_canby@yahoo.com
(=?ISO-8859-1?Q?=C0ine_Canby?=) wrote:

>Hi again, > >I'm newish to the C6711DSK, so its quite possible that I'm leaving >something critical out due to my ignorence. > >Anyway the story is that the non-DSP/BIOS version works, but the >DSP/BIOS version wont work. > >These are some of the settings in my DSP BIOS - > >__Global Settings__ > >_General_ > >Target board: c6211
Change to c6711
>DSP Speed: 150Mhz >CSL: 6211
Change to 6711
>_621x/671x_ >Configure L2 Memory settings: Enabled >Program Cache Control: Not highlighted >L2 Mode - CCFG: 4 way cache >L2 MAR0-15: 0x0001
>void main() >{ > > handShakingBuffer[0] = ID_0; > handShakingBuffer[1] = ID_1; > handShakingBuffer[2] = ID_2; > handShakingBuffer[3] = 0; > handShakingBuffer[4] = 0;
Try flushing the cache here. use: CACHE_flush(CACHE_L2ALL, (void *)0, 0) I'm not saying this is going to work, but I had similar problems some time ago. Oh and please don't send so much information! Best Regards John McCabe To reply by email replace 'nospam' with 'assen'
On 19 Aug 2003 07:33:07 -0700, aine_canby@yahoo.com
(=?ISO-8859-1?Q?=C0ine_Canby?=) wrote:

>_621x/671x_ >Configure L2 Memory settings: Enabled >Program Cache Control: Not highlighted >L2 Mode - CCFG: 4 way cache
Oh yes, and make this 3 way cache. Best Regards John McCabe To reply by email replace 'nospam' with 'assen'
Sorry for the big posts but this problem is driving me mad - surely
DSP/BIOS would make things easier not harder. I am checking the hpi
return values, for example -

if (dsk6x_coff_load(hBd,coffNam,bVerbose,bClr,bDump))
      exit(4);

All of the hpi function succeed for both the DSP/BIOS and the
non-DSP/BIOS DSP programs.

With regard to status registers, is there a way I could monitor the
dsp board even though my windows application has control of the
parallel port, instead of Code Composer Studio. I compile my code on
CCS, but my application uploads the .out to the dsp board. CSS message
box read "JAG communication error", because it does not have control
of the port.

The only communication my application can recieve from the board is
the setting of the handshaking buffer, and this isn't working for my
DSP/BIOS program. I changed the reset vector for the non-dsp/bios
version from -

RESET_RST:
    
mvkl .S2 _c_int00, B0
mvkh .S2 _c_int00, B0
B    .S2 B0
NOP
NOP
NOP
NOP
NOP

to -

RESET_RST:

NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP


and I't seems to cause the same problem as I'm having with the
DSP/BIOS ver, that is, the application poll indefinitly, waiting for
the DSP program to write the handshaking values to the handshaking
buffer. I have HWI_RESET calling _c_int00 in the cdb file - this is
the default settings. I have no interrupt sourse of dipatcher - does
that sound OK?

Is there anything I could put at the start of my dsp/bios program to
confirm for me that it is executing. I could turn on a led, but that
means playing with the EMIF which I know nothing about. I was able to
toggle the leds in a non-dsp/bios program, but it is so prone to
errors - due to timing delays or something like that.

Anyway, I'm really not sure what to do and would love some more
suggestions,

Thanks you again,

Aine
On 19 Aug 2003 13:51:38 -0700, aine_canby@yahoo.com
(=?ISO-8859-1?Q?=C0ine_Canby?=) wrote:

>Sorry for the big posts but this problem is driving me mad - surely >DSP/BIOS would make things easier not harder. I am checking the hpi >return values, for example - > >if (dsk6x_coff_load(hBd,coffNam,bVerbose,bClr,bDump)) > exit(4); > >All of the hpi function succeed for both the DSP/BIOS and the >non-DSP/BIOS DSP programs. > >With regard to status registers, is there a way I could monitor the >dsp board even though my windows application has control of the >parallel port, instead of Code Composer Studio. I compile my code on >CCS, but my application uploads the .out to the dsp board. CSS message >box read "JAG communication error", because it does not have control >of the port.
Have you tried my suggestions re. the cache? Here's another idea I've just remembered was an issue with me... Go into the DSP/BIOS configuration. In the "Scheduling" section. right click on the "HWI - blah blah" entry and select "Properties". Check the box that says "Generate RESET vector at address 0". Compile and try again. Best Regards John McCabe To reply by email replace 'nospam' with 'assen'
Hi Aine,
with regret I see mine expirience can't help you: powest TMS5402,
without any OS, with selfmaden hard&soft debug tool, CCS use only
simulator. There is only common debug's methods advice. But i have
more questions as answers.
 Is BIOS needed for you, why?

Some details are unclear(maybe from sorrowful fact: i am't native
english).

> parallel port, instead of Code Composer Studio. I compile my code on > CCS, but my application uploads the .out to the dsp board. CSS message > box read "JAG communication error", because it does not have control > of the port.
Upload&work over JTAG or how?
> All of the hpi function succeed for both the DSP/BIOS and the > non-DSP/BIOS DSP programs.
Why you talk about?
> With regard to status registers, is there a way I could monitor the > dsp board even though my windows application has control of the > parallel port, instead of Code Composer Studio.
As i understand by definition CCS use JTAG pins, anothers use your program in TMS & Win application, its haven't intersection.
> The only communication my application can recieve from the board is > the setting of the handshaking buffer, and this isn't working for my > DSP/BIOS program.
As i understand you haven't start. To begin usually i make program 'set/reset XF' deadloop and see by oscylloscope this pin.
> I could turn on a led, but that means playing with the EMIF which I know >>>nothing about. I was able to > toggle the leds in a non-dsp/bios program, but it is so prone to > errors - due to timing delays or something like that.
Delays can change only time turn on/off LED; what is EMIF?
> Anyway, I'm really not sure what to do and would love some more ...
It is beatiful, will continue over mail if you don't mind. Cheers Victor
WE HAVE BLASTOFF!

OK, Its working now. I had to do a lot of fiddling around in order for
it to work, so I'll give details of what I did.

First of all I set -

"Generate RESET vector at address 0"

as directed by John, but when I rebuilt I got an error saying that
this was outside the memory space. I then checked my MEM, which
contained 1 MEM segment called SDRAM which had a base address at
0x80000000. I tried to change this to 0x00000000 but it was forced
back to 0x80000000 due to a conflict with the cache - I dont
understand why!

So then I went into memory settings and disabled -

"Configure L2 memory settings"

I was then able to set SDRAM's base to 0x00000000. At this stage my
DSP-BIOS program was working with my windows app. Then I went back
into global settings and re-enabled -

"Configure L2 memory settings"

I then rebuilt and tested again with my app, and all was fine.


I've always used the same cdb file, which was included in the
tutorials - I then alter this file as I need McBSPs,  EDMA , PIPs etc.
I do this basically because I dont now all the details of this file
yet, being a novice and all. Why was the SDRAM set at base 0x80000000?
Were the cache settings stored at 0x00000000? Should my caching be
working correctly now?

Thanks very much for your help everyone,

Take care,

Aine.




john@nospam.demon.co.uk (John McCabe) wrote in message news:<3f433545.3087870@news.btclick.com>...
> On 19 Aug 2003 13:51:38 -0700, aine_canby@yahoo.com > (=?ISO-8859-1?Q?=C0ine_Canby?=) wrote: > > >Sorry for the big posts but this problem is driving me mad - surely > >DSP/BIOS would make things easier not harder. I am checking the hpi > >return values, for example - > > > >if (dsk6x_coff_load(hBd,coffNam,bVerbose,bClr,bDump)) > > exit(4); > > > >All of the hpi function succeed for both the DSP/BIOS and the > >non-DSP/BIOS DSP programs. > > > >With regard to status registers, is there a way I could monitor the > >dsp board even though my windows application has control of the > >parallel port, instead of Code Composer Studio. I compile my code on > >CCS, but my application uploads the .out to the dsp board. CSS message > >box read "JAG communication error", because it does not have control > >of the port. > > Have you tried my suggestions re. the cache? > > Here's another idea I've just remembered was an issue with me... > > Go into the DSP/BIOS configuration. In the "Scheduling" section. right > click on the "HWI - blah blah" entry and select "Properties". Check > the box that says "Generate RESET vector at address 0". Compile and > try again. > > > Best Regards > John McCabe > > To reply by email replace 'nospam' with 'assen'