VisualDSP3.5 & 2181 EZKIT

UPDATE :

     I change the title to get more accurate with my problem so any1 could find it.

          Finaly, it looks like i'm in need to make a custom monitor for onboard flash, so i can fully use the VisualDSP software ver 3.0

          Please have a look at the latests treads !

Old posts below :

Hi !

I have a software problem for a board that was made long time ago with a ADSP-2185N.

That board was unused since a long time, and i want to use it for a simple filter, so it perfectly fit my new application.

I was using, years ago, the 2181 EZ Kit Lite, wich are dos tools, to compile and link the program. Those lend me a nice .EXE, then a third party loader software was used to send program to the dsp and run it.

I tryed recently VisualDSP++ 3.5, wich lends me .DXE file, so i used elf2aexe in the VisualDSP installation to convert the prog to .EXE

Load it in the board, the prog does not start. (Note : i use -legacy assembler option in project options)

Tryed again the old dos tools, wich lead me to use a dos box to use them, got a .EXE that works.

My problem is, to compile with old DOS tools, i have to send code on an old machine, compile, then get back to my computer to send code to dsp.

Tested with a sample sine generator code, because i'm starting new project, and want to make sure things are OK.

Any advice on how to get elf2aexe working ?

attached :

- C1sin.dsp     Main code

- SYSTEM.K     Include file from main

- C1SIN-WORKING.exe     generated with old dos tools

- C1SIN-NOTW.dxe     generated with visualdsp

- C1SIN-NOTW.exe     generated from above with elf2aexe

attachments.zip
Parents
  • Hi, thank you for you're answer.

    I have upgraded my software to the October update, wich is working.

    My board come from http://www.kk7p.com/dsp.html , i'm using the windows loader that is on this web page.

    I am finaly able to load a _very_ simple code inside the dsp and got it to work, here is the code :

    .module/ram/abs=0      ASP;

    {********************  Interrupt vector table  *************************}
            jump start;  rti; rti; rti;     {00: reset }

            rti;         rti; rti; rti;     {04: IRQ2 }

            rti;         rti; rti; rti;     {08: IRQL1 }
            rti;         rti; rti; rti;     {0c: IRQL0 }

            rti;         rti; rti; rti;     {10: SPORT0 tx }

            rti;         rti; rti; rti;

            toggle fl1;  rti; rti; rti;     {18: IRQE }

            rti;         rti; rti; rti;     {1c: BDMA }
            rti;         rti; rti; rti;     {20: SPORT1 tx or IRQ1 }
            rti;         rti; rti; rti;     {24: SPORT1 rx or IRQ0 }
            rti;         rti; rti; rti;     {28: timer }
            rti;         rti; rti; rti;     {2c: power down }

    start:    imask=b#10000;            { Enable IRQE }

        icntl = b#00000;

    main:   

              jump main;    
    .endmod;

    got a button on the irqe pin, and a led on FL1.

    Compiled the code with visualdsp++, then elf2aexe the .dxe file.

    Then i had to edit the resulting .exe file to change those lignes ( 3 and 4 ):

       i
    @PA
    0030
    18060F
    0A001F
    0A001F
    0A001F
    0A001F
    0A001F
    0A001F

    To

      i
    @PA
    0000
    18030F
    0A001F
    0A001F
    0A001F
    0A001F
    0A001F

    According to the ADSP-2100 Family Assembler Tools Manual, i just change the place where the code is loaded inside the program memory RAM (line 3) and the adress of the reset vector jump (line 4).

    And it works, the led is toggled when i push the IRQE button.

    I have acces to the code of the custom monitor, wich is placed in flash memory, maybe i can find a way to change where it starts to execute the RAM loaded code ?

    Revelant part of the code that is executed is under the go: label.

    Any help is appreciated to make it load code at hex 30 adress instead of hex 00.

    EDIT :                                                                 hex 00 instead hex 30 (Sorry, was mistaking here)

    COMMAND.DSP.zip
Reply
  • Hi, thank you for you're answer.

    I have upgraded my software to the October update, wich is working.

    My board come from http://www.kk7p.com/dsp.html , i'm using the windows loader that is on this web page.

    I am finaly able to load a _very_ simple code inside the dsp and got it to work, here is the code :

    .module/ram/abs=0      ASP;

    {********************  Interrupt vector table  *************************}
            jump start;  rti; rti; rti;     {00: reset }

            rti;         rti; rti; rti;     {04: IRQ2 }

            rti;         rti; rti; rti;     {08: IRQL1 }
            rti;         rti; rti; rti;     {0c: IRQL0 }

            rti;         rti; rti; rti;     {10: SPORT0 tx }

            rti;         rti; rti; rti;

            toggle fl1;  rti; rti; rti;     {18: IRQE }

            rti;         rti; rti; rti;     {1c: BDMA }
            rti;         rti; rti; rti;     {20: SPORT1 tx or IRQ1 }
            rti;         rti; rti; rti;     {24: SPORT1 rx or IRQ0 }
            rti;         rti; rti; rti;     {28: timer }
            rti;         rti; rti; rti;     {2c: power down }

    start:    imask=b#10000;            { Enable IRQE }

        icntl = b#00000;

    main:   

              jump main;    
    .endmod;

    got a button on the irqe pin, and a led on FL1.

    Compiled the code with visualdsp++, then elf2aexe the .dxe file.

    Then i had to edit the resulting .exe file to change those lignes ( 3 and 4 ):

       i
    @PA
    0030
    18060F
    0A001F
    0A001F
    0A001F
    0A001F
    0A001F
    0A001F

    To

      i
    @PA
    0000
    18030F
    0A001F
    0A001F
    0A001F
    0A001F
    0A001F

    According to the ADSP-2100 Family Assembler Tools Manual, i just change the place where the code is loaded inside the program memory RAM (line 3) and the adress of the reset vector jump (line 4).

    And it works, the led is toggled when i push the IRQE button.

    I have acces to the code of the custom monitor, wich is placed in flash memory, maybe i can find a way to change where it starts to execute the RAM loaded code ?

    Revelant part of the code that is executed is under the go: label.

    Any help is appreciated to make it load code at hex 30 adress instead of hex 00.

    EDIT :                                                                 hex 00 instead hex 30 (Sorry, was mistaking here)

    COMMAND.DSP.zip
Children
No Data