lpcware

LPC_MRT->IRQ_FLAG address wrong

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 15, 2016 by lpcware
Content originally posted in LPCWare by Rob65 on Wed Nov 05 05:41:40 MST 2014
Looking at the lpc8xx.h in CMSIS I found a problem.

The MRT definitions in the file contain:

typedef struct {
__IO uint32_t INTVAL;
__IO uint32_t TIMER;        
__IO uint32_t CTRL;         
__IO uint32_t STAT;         
} MRT_Channel_cfg_Type;

typedef struct {
  MRT_Channel_cfg_Type Channel[4];
   uint32_t Reserved0[1];
  __IO uint32_t IDLE_CH;
  __IO uint32_t IRQ_FLAG;
} LPC_MRT_TypeDef;


but this places the IRQ_FLAG at address 0x4000  4048. The user manual mentions 0x4000 40f8
This means that the Reserved0[1] should be Reserved0[45] instead - and nog magically my code works  and that there is a bug in the NXP supplied lpc8xxx.h :O

Rob

Outcomes