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.

How to veriy DM648 PCI boot successfull?

Now I am working on DM648 boot through pci.

 just want to load executalbe file to L2RAM.

I do just followed:

1. Halt the DSP by setting LRST bit in MDCTL33 register to 0 (described in sprueu6) ;
2. Reset the BC (bootcomplete) Bit in BOOTCMPLT register (described in sprs372) ;
3. Set DSPBOOTADDR register to 0x00800000 - the base adress of the DM648 on chip bootloader (described in spraaj1) ;
4. Activate the DSP (on chip bootloader) by writing MDCTL to 0x0103 (setting LRST Bit to 1 and NEXT to 3 ('enable')  ;
5. Written the content of the initApp.out file  to the DSPs (internal) memory ,(useing DSP boot assist tool to transform the format to bin file first);
6. write the entry adress of the initApp to DSPBOOTADDR ;
7. set BC Bit in BOOTCMPLT to 1 ;

If  initApp.out  can execute successfully, It will initial an array with fix value. however, It seems, nothing is changed after I finished my work.
 I am sure the register I operateed is set the value I want.

Is anything I left?

  • Shichun,

    Can you instead try asserting a full device reset to the DM648 and starting direclty at step 5 (after polling that CONFIG_DONE = 1)?

    Also make sure that the array you are writing to is declared as volatile, to ensure the compiler isn't optimizing the wrties away.

    Another thing you can try is to change your code to simply spin in a while loop.  After step 7 is complete, check the value of the Program Counter (PC) register though an emulator .  This will make sure that the DSP is indeed running the code you loaded.

    Regards,

    Brad