Unexpected interrurpt problem on EPORT 7

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Unexpected interrurpt problem on EPORT 7

Jump to solution
453 Views
Britti1982
Contributor I
Hello everyone,
I have this problem in a project on MCF52259.

Using pit0 and pit1 interrupts for the timer and the AD conversion at intervals of 10milliseconds.

use Eport 1 as input interrupt for the management of a keyboard
use Eport 3, 5 and Eport Eport 7 to handle 3 incoming signals required to determine the behavior of my project.

In addition use the devices I2CQSPI, and all the uart interrupt mode with the relative levels of priority as default.

my unexpected  interrupt problem occurs  when on Eport 7 a variation occurs but not all times.
Depending on the expected error in this case occurs on a different task each time.

the chart of tasks is as follows:
 
 
 
TASK_TEMPLATE_STRUCT MQX_template_list[] ={                        // "PARAMETER" "TIME SLICE "{INIT_MICRO_TASK,  init_task,  1500, 9,"initialization", MQX_AUTO_START_TASK, 0, 0},    {TASK_CREATE_STRUCT,  task_struct, 1500, 10, "create_struct", MQX_AUTO_START_TASK,0, 0},    {TASK_CREATE_QUEUE,   task_queue,   1500 ,   12, "TASK_CREATE",  MQX_AUTO_START_TASK,  0,   0},    {TASK_MANAGEMENT, tk_Management,  1500 ,  12, "TASK_MANAGEMENT",0 , 0,  0},    {TASK_MENU_ON_RUN, tk_Menu_On_Run,  2500 ,  12, "TASK_MENU_ONRUN", 0,  0,  0},    {TASK_INQUIRY_DIG_HARWARE,tk_InquiryDigHardware, 1500, 12, "TASK_INQUIRY_HARDWARE", 0   , 0,  0},    {TASK_EXTERNAL_INQUIRY,tk_Inquiry_External_Hardware, 1500,12, "TASK_EXTERNAL_INQUIRY", 0   ,  0,   0},    {TASK_UART0_232, tk_uart_0,    1500 ,  12, "TASK_RS232",    0   ,  0,   0},    {TASK_UART1_485,tk_uart_1,    1000 ,  12, "TASK_RS485",    0   ,  0,   0},    {TASK_UART2_INT,tk_uart_2,    1000 , 12, "TASK_INTCOM",    0   ,  0,   0},    {TASK_SERVICE_BUTTON, tk_button_block, 2000,12, "TASK_BUTTON_SERVICE",  0  ,0, 0},#ifdef USB_TOOL       { USB_TASK      , USB_task,   2500L,  11, "USB"   ,   MQX_AUTO_START_TASK},#endif #ifdef CAN_BUS        { TX_TASK, Tx_Task, 1000L, 7L, "TX task", 0, 0, 0},    { RX_TASK, Rx_Task, 1000L, 7L, "RX task", 0, 0, 0},#endif        {0,              0,            0,    0,  0,            0,              0,   0}

 My feeling is that of being Eport 7 level 7 interrupts and an interrupt occurring while a uart or QSPI has LEVEL lower MQX it can no longer to go back after has been correctly its interrupt to Eport 7.

Can I change the interrupt level related to Eport 7?

Why?

0 Kudos
1 Solution
316 Views
DavidS
NXP Employee
NXP Employee

Hi Riccardo,

Interrupt source 1–7 (from the edge port module) are fixed at the corresponding level’s midpoint priority and cannot be changed.

Please review you ICRx register settings.  The ICR registers not used default to zero (disabled), and the ICR's you are using must be unique (i.e. each ICR register that is non-zero must have a different value).

Note this last statement is for MCF52259 interrupt controller.  There are ColdFire controllers without this restriction.

Regards,

David

View solution in original post

0 Kudos
1 Reply
317 Views
DavidS
NXP Employee
NXP Employee

Hi Riccardo,

Interrupt source 1–7 (from the edge port module) are fixed at the corresponding level’s midpoint priority and cannot be changed.

Please review you ICRx register settings.  The ICR registers not used default to zero (disabled), and the ICR's you are using must be unique (i.e. each ICR register that is non-zero must have a different value).

Note this last statement is for MCF52259 interrupt controller.  There are ColdFire controllers without this restriction.

Regards,

David

0 Kudos