I'm trying to boot DSP from ARM core with QNX. I'm using CCS5.4.
First I use a small example project run on ARM core without OS. It did two steps bellow and DSP was boot up correctly:
1. Write DSP code data to specified RAM position according to .out file;
2. Wakeup DSP by operating registers as bellow:
//=========wakeup DSP start==========
SYS_REGS->HOST1CFG = entry_point;//entry_point comes from .out file, and checked correct.
CSL_FINST(psc0Regs->MDCTL[CSL_PSC_DSP], PSC_MDCTL_NEXT, ENABLE);
CSL_FINST(psc0Regs->PTCMD, PSC_PTCMD_GO1, SET);
while(CSL_FEXT(psc0Regs->PTSTAT, PSC_PTSTAT_GOSTAT1)==CSL_PSC_PTSTAT_GOSTAT1_IN_TRANSITION);
CSL_FINST(psc0Regs->MDCTL[CSL_PSC_DSP], PSC_MDCTL_LRST, DEASSERT);
//=========wakeup DSP end==========
But when I transport this DSP boot process to an application in QNX, the DSP cannot boot up.
I'm sure these registers are operated equivalent as without OS. So I think it may because QNX did something when boot up OS which affected DSP core. If I don't want touch QNX BSP code, how can I boot up the DSP core? By what operation sequency the DSP core can be reset to run from the entry point specified in HOST1CFG? If DSP core cannot boot up, what's the possible reason? Which registers/sections should be take care?
Thanks so much!