This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP/BIOS Will Not Run Correctly In External SRAM

I'm using an eZdsp board for the 28335 and trying to run the example program from spra958h.  However, I've relocated it into the external SRAM, ZONE7.  Its partially running as I can place a breakpoint in an SWI routine.  However the LED does not FLASH; its driven by a PRD.

If I place everything except .bios in ZONE7 it will run and the LED will flash.

Has anyone been able to run the bios from external SRAM?

I'm using the gel file call XINTF_Enable() to enable the XINTF prior to downloading.

  • Tom,

    Is your sequence something like

    • XINTF_enable()
    • download code
    • debug -> reset
    • run

    If so - then the XINTF will be turned off as part of the reset operation.    Either you need to run the enable GEL function after reset or have the code configure the XINTF before jumping there.  You can also add the xintf init gel function to the "OnReset()" gel function and it will be done each time you reset.

    There is a "run from XINTF" example with the header files that can help show you how to config XINTF in the code.

    -Lori

  • Tom,

    I hit send right as I read that you can run if everything but BIOS is in Zone 7. 

    Another idea - the eZdsp has a limited amount of external RAM.  It is mirrored within the zone.  It could be that your program is exceeding the physical size of the RAM.    You can check the memory map file (.map) to see how large your zone 7 download is and check to see what size physical RAM is on your eZdsp.

    -Lori

  • Lori,

    Thanks for your reply.

     

    The eZdsp has 256K external SRAM.  My program is using less than 8K.  I moved almost everything else out of ZONE7 except .bios.  Same result.

    I briefly looked at the example in the header file you pointed out, but it doesn't use the BIOS.

     

    I placed a breakpoint in the routine that handles the tick, PRD_F_tick and tried to follow the assembly.  It seems to execute that function regularly, but just doesn't call the PRD function.

    Any other thoughts?

  • It turned out that the F28335.gel file had been set up for "maximum" wait states on Zone 7. When we changed to reflect the values of the "xintf_run_from" example, everything worked as expected.

    Regards,

    Todd Anderson