Hi everyone,
The backlight on our system is connected to a DAC which receives data through SPI3 channel 1. I need to turn on the backlight immediately at power-on, so I added a function to do that in main.c before jumping to boot loader. However, the XLDR hangs at a place where a SPI-related register is written to. The added function is shown below:
VOID Set BackLightOn()
{
OMAP_PRCM_PER_CM_REGS* pPrcmPerCM = OALPAtoUA(OMAP_PRCM_PER_CM_REGS_PA);
OMAP_MCSPI_REGS *pSPI3Regs;
OMAP_MCSPI_CHANNEL_REGS *pSPI3Channel1Regs;
SETREG32(&pPrcmPerCM->CM_FCLKEN_PER, CM_CLKEN_MCSPI3); // enable SPI3 clock
SETREG32(&pPrcmPerCM->CM_ICLKEN_PER, CM_CLKEN_MCSPI3);
pSPI3Regs = (OMAP_MCSPI_REGS *)OALPAtoUA(OMAP_MCSPI3_REGS_PA);
pSPI3Channel1Regs = (OMAP_MCSPI_CHANNEL_REGS *)OALPAtoUA((&pSPI3Regs->MCSPI_CHCONF1));
// Disable all interrupts. OUTREG32(&pSPI3Regs->MCSPI_IRQENABLE, 0); // It hangs right here !!! } I appreciate very much any help/tips/comments that you can give me. Luan