industrialNETworXnetx

poddw | 19.01.2010 | 22:54 | 3 replies

FIQ configuration

I want to change an IRQ to an FIQ in my system.

The steps I've done are:
- create a RX_FIQ_SET_T array just like the RX_INTERRUPT_SET_T array with an object for the new item:

static const RX_FIQ_SET_T atrXFiqInt[] = {
{
{"WATCHDOG",RX_PERIPHERAL_TYPE_FIQ,0}, /* Watchdog 1st Stage Interrupt */
SRT_NETX_VIC_FIQ_STAT_watchdog, /* Use Watchdog Interrupt */
},
};

- Added this to the peripherals list:

static const RX_PERIPHERAL_CONFIG_T atrXCfgPre[] = {
{(RX_PERIPHERAL_TYPE)RX_PERIPHERAL_TYPE_TIMER,atrXHwTim,MAX_CNT(atrXHwTim)},
{(RX_PERIPHERAL_TYPE)RX_PERIPHERAL_TYPE_INTERRUPT,atrXInt,MAX_CNT(atrXInt)},
{(RX_PERIPHERAL_TYPE)RX_PERIPHERAL_TYPE_FIQ,atrXFiqInt,MAX_CNT(atrXFiqInt)},
};

- When I call:
erXRes = Drv_FiqIdentifyInterrupt("WATCHDOG",0,&hMyInt);
I get DRV_FIQ_UNKNOWN.

What am I not doing correctly ?

Thanks,

Andreas Jacob | 20.01.2010 | 16:37

Hi poddw,

you call the DrvFiqInit on the wrong structure.

Wrong call:

/* Wrong structure for the FIQ driver */
static const RX_PERIPHERAL_CONFIG_T atrXCfgPre[] = {
{(RX_PERIPHERAL_TYPE)RX_PERIPHERAL_TYPE_TIMER,atrXHwTim,MAX_CNT(atrXHwTim)},
{(RX_PERIPHERAL_TYPE)RX_PERIPHERAL_TYPE_INTERRUPT,atrXInt,MAX_CNT(atrXInt)},

/* remove the following line */
{(RX_PERIPHERAL_TYPE)RX_PERIPHERAL_TYPE_FIQ,atrXFiqInt,MAX_CNT(atrXFiqInt)},
};

Please add the following line into the "atrXDrvCfgPost" structure:

{DrvFiqInit, (RX_PERIPHERAL_TYPE)RX_PERIPHERAL_TYPE_FIQ,atrXFiqInt,MAX_CNT(atrXFiqInt)},

poddw | 20.01.2010 | 17:06

Thank you. That resolved the issue.

How do I figure that out from the documentation or code ? Are interrupt and timers exceptions and everything else goes in the atrXDrvCfgPost[] ?

Andreas Jacob | 21.01.2010 | 09:03

Hi,

good question. I assume it is not really good documented in the manuals.

The only drivers you put into the atrXCfgPre structure are the Timer and the Interrupt.
All the others you put into the atrXDrvCfgPost structure.

Login

Registration
netX Community Day

When
March 25th, 2010
10:00 - 17:00

Where
Automation day
D-Böblingen

Registration required …