Hi community
I am having a problem with the interrupt controller, looks like i forgot to route a required clock to the interrupt controller module.
At the moment i try to read the registers with the debugger, it tells me "Memory map prevented reading of target memory.."
Isn't it enough to enable the ICLK for the interrupt module? In the Technical Reference Manual, i can see that MPU_INTC_FCLK exists, but there is no PRCM register to enable the MPU_INTC_FCLK.
My code looks like this:
#define OMAP_PRCM_CORE_CM_REGS_PA 0x48004A00
// enable clock
#define OMAP_INTC_MPU_REGS_PA 0x48200000
#define CM_CLKEN_ICR (1 << 29)
#define CM_IDLEST_ST_ICR (1 << 29)
// ------------ interrupt controller (INTCPS) module initialization -----------
// softreset interrupt controller module
volatile OMAP_INTCPS_REGS* pIntrCtrlReg = (OMAP_INTCPS_REGS*)OMAP_INTC_MPU_REGS_PA;
pIntrCtrlReg->INTCPS_SYSCONFIG |= INTCPS_SYSCONFIG_SOFTRESET;
while ((pIntrCtrlReg->INTCPS_SYSSTATUS & INTCPS_SYSSTATUS_RESETDONE) == 0) {
;
}
volatile OMAP_PRCM_CORE_CM_REGS* pPrcmCoreRegs = (OMAP_PRCM_CORE_CM_REGS*)OMAP_PRCM_CORE_CM_REGS_PA;
pPrcmCoreRegs->CM_ICLKEN1_CORE |= CM_CLKEN_ICR;
while (pPrcmCoreRegs->CM_IDLEST1_CORE & CM_IDLEST_ST_ICR) {
;
}
I have attached a screenshot of the debugger: