AnsweredAssumed Answered

Program hangs in initExternalMemory

Question asked by emi.rein on Oct 31, 2013
Latest reply on Nov 4, 2013 by emi.rein



I am porting convolution reverberation routines to the ADSP-21469 EZLite board, using the example AD1939_Block_Based_Talkthru_192 kHz. That example runs fine. So far I have only added code to the functions main and blockProcess_audio and did not modify the init routines. The main function starts with calls to adi_initComponents, initPLL and initExternalMemory and so on. Now the program hangs in the last function.

Looking in initPLL_DDR2DRAM.asm it appeared that the function hangs in the loop:


wait_for_cal: USTAT1 = dm(DDR2STAT0);


     if not tf jump wait_for_cal;

     // NOTE: If no banks are enabled in DDR2 mode calibration won't happen

     // and DD2CAL_DONE will never get set.


Apparently there are no banks enabled in DDR2 mode and the loop is infinite.


The app.ldf file has been extended with the definition for external memory:

     mem_sdram_swco   { TYPE(SW RAM SYNCHRONOUS) START(0x00600009) END(0x00BFFFFF) WIDTH(16) }

     mem_sdram_nwco   { TYPE(PM RAM SYNCHRONOUS) START(0x00400000) END(0x005FFFFC) WIDTH(16) }

     mem_sdram_dmda   { TYPE(DM RAM SYNCHRONOUS) START(0x00900000) END(0x01BFFFFF) WIDTH(16) }

     mem_sdram_pmda   { TYPE(DM RAM SYNCHRONOUS) START(0x01C00000) END(0x021FFFFF) WIDTH(16) }

as well as with the appropriate sections:



       INPUT_SECTIONS( $OBJECTS(mem_sdram_dmda) $LIBRARIES(mem_sdram_dmda))

     } > mem_sdram_dmda




       INPUT_SECTIONS( $OBJECTS(mem_sdram_pmda) $LIBRARIES(mem_sdram_pmda))

     } > mem_sdram_pmda


Your help is very appreciated.





Message was edited by: Reinier van der Welle In addition to the above. The program hangs in initPLL_DDR2DRAM only in the Simulator, but not in EZ-KIT Lite. I had the impression that DDR2 memory would be simulated in Simulator, but that is not the case? Thanks, Reinier