Unexpected interrurpt problem on EPORT 7

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Unexpected interrurpt problem on EPORT 7

跳至解决方案
1,224 次查看
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 项奖励
回复
1 解答
1,087 次查看
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 项奖励
回复
1 回复
1,088 次查看
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 项奖励
回复