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.

Access to some OMAP-L138 peripheral registers blocked or disabled in debugger

Other Parts Discussed in Thread: OMAP-L138

I have an example program that uses the McBSP on an OMAP-L138 LCDK development board. When I run the program from within Code Composer and attempt to access the peripheral registers all I see is zeros.  Also, if I try to modify any of the register values the updates are ignored and the register remains at zero.  Looking at the full set of peripherals it seems that some are enabled and some are disabled.  For example the REVID registers for some peripherals (e.g. UART0 and UART1) shows zero whereas others (e.g. UART2) show what looks like a sensible REVID value.

I had guessed that this might be to do with power domains or clock sources or some other initial configuration of the device.  However, this does not seem to make sense as there are peripherals which share the same power domains and clock sources where some are 'enabled' and others are 'disabled'.

Is there a simple explanation and 'fix' for whatever is happening here to allow examining and changing the peripheal registers from the debugger?

'enabled' peripherals:
SYSCFG, UART2, I2C0, TIMER64*, SPI1, RTC, PLL*, GPIO, DDR2, MMCSD0, EMIF, EMAC, ECTL, MDIO, PSC*, SYSCFG

'disabled' peripherals:
EDMA, UART0, UART1, I2C1, HPIO, SPIO0, ECAP, EPWM, LCD, MMCSD1, USB, MCASP, MCBSP*, UPP*, VPIF, SATA

  • Hi Mike,

    Which gel file you are using for initialization of all these peripherals ?

    I have ccsv5.5 installed, and i am using gel file form below mentioned location in my target configuration file.

    ~\ccsv5\ccs_base\emulation\boards\lcdkomapl138\gel

    For example the REVID registers for some peripherals (e.g. UART0 and UART1) shows zero whereas others (e.g. UART2) show what looks like a sensible REVID value.

    I simply connected LCDK and run script file and was able to see REVID for all three UART's. i.e UART0, UART1 and UART2.

    Below are the screenshots of UART registers.

    Please validate.

  • It turned out that the clocks for the specific peripherals had not been enabled. I used the Psc_ModuleClkCtrl function from the BIOS PSP library to enable the clocks and all worked as expected after that. For example:

    Psc_ModuleClkCtrl(Psc_DevId_1, CSL_PSC_MCBSP0, TRUE);
    Psc_ModuleClkCtrl(Psc_DevId_0, CSL_PSC_CC0,    TRUE);