|
在一个Uart2_HISR中调用如下函数,向任务发送消息:
void modem_uart_tx_cb(UART_PORT port)
{
ilm_struct *msg;
ASSERT(port == MODEM_UART_PORT);
modem_print("Tx Cb is Called");
if (send_Txilm[port]) { /* RX indication has been sent */
msg = allocate_ilm(MOD_UART1_HISR + MODEM_UART_PORT - uart_port1);
msg->src_mod_id = MOD_UART1_HISR + MODEM_UART_PORT - uart_port1;
msg->dest_mod_id = MOD_MODEMINTF;
//msg->sap_id = INVALID_SAP;
msg->msg_id = MSG_ID_UART_READY_TO_WRITE_IND;
msg->local_para_ptr = NULL;
msg->peer_buff_ptr = NULL;
msg_send_ext_queue(msg);
send_Txilm[port] = KAL_FALSE;
}
}
static void Modemctl_Task(task_entry_struct * task_entry_ptr)
{
ilm_struct current_ilm;
ilm_struct* ilm_ptr = ¤t_ilm;
while(1) {
receive_msg_ext_q(task_info_g[task_entry_ptr->task_indx].task_ext_qid, ¤t_ilm);
..............
}
任务创建:
const comptask_info_struct custom_comp_config_tbl[ MAX_CUSTOM_TASKS ] =
{
{"MODEM TASK", "MODEM Q", 210, 4096, 50, 0,
Modemctl_Create, KAL_FALSE
},
};
在receive_msg_ext_q处发生任务Exception,Data Abort,请问怎么解决?
下面是日志信息:
Primitive 369 369 MOD_UART2_HISR MOD_MODEMINTF INVALID_SAP MSG_ID_UART_READY_TO_WRITE_IND
Trace 0 0 MOD_TST TRACE_WARNING System lost 10961 traces, 0 primtives and 0 others
Trace 369 369 MOD_NIL TRACE_ERROR Exception type: data abort
Trace 369 369 MOD_NIL TRACE_ERROR software version: .16.zzz.v1
Trace 369 369 MOD_NIL TRACE_ERROR boot mode: normal mode
Trace 369 369 MOD_NIL TRACE_ERROR rtc sec = 0, rtc min = 0, rtc hour = 0
Trace 369 369 MOD_NIL TRACE_ERROR rtc day = 1, rtc mon = 1, rtc wday = 1, rtc year = 4
Trace 369 369 MOD_NIL TRACE_ERROR execution unit: MODEM TA
Trace 369 369 MOD_NIL TRACE_ERROR status: 0x00000000
Trace 369 369 MOD_NIL TRACE_ERROR stack pointer: 0x08214194
Trace 369 369 MOD_NIL TRACE_ERROR stack dump:
Trace 369 369 MOD_NIL TRACE_ERROR 0x002EC1A7
Trace 369 369 MOD_NIL TRACE_ERROR 0x002EA36B
Trace 369 369 MOD_NIL TRACE_ERROR 0x0000000D
Trace 369 369 MOD_NIL TRACE_ERROR 0x00000001
Trace 369 369 MOD_NIL TRACE_ERROR 0x00000001
Trace 369 369 MOD_NIL TRACE_ERROR 0x00000067
Trace 369 369 MOD_NIL TRACE_ERROR 0x0046F051
Trace 369 369 MOD_NIL TRACE_ERROR 0x00379731
Trace 369 369 MOD_NIL TRACE_ERROR 0x002ED2D1
Trace 369 369 MOD_NIL TRACE_ERROR 0x002ED2DF
Trace 369 369 MOD_NIL TRACE_ERROR number of messages in the external queue: 1
Trace 369 369 MOD_NIL TRACE_ERROR messages in the external queue:
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_UART_READY_TO_WRITE_IND
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR MSG_ID_INVALID_TYPE
Trace 369 369 MOD_NIL TRACE_ERROR interrupt mask: 0x00000000 0x00000000
Trace 369 369 MOD_NIL TRACE_ERROR processing_lisr: 0x00000000
Trace 369 369 MOD_NIL TRACE_ERROR lr: 0x002ED2DE
Trace 369 369 MOD_NIL TRACE_ERROR diagnosis: healthy
Trace 369 369 MOD_NIL TRACE_ERROR owner:
Trace 369 369 MOD_NIL TRACE_ERROR timing check: 0 0 0 0 0 0
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 369 369 MOD_NIL TRACE_ERROR
Trace 0 0 MOD_NVRAM Read Result: LID=33, status=0, size=16, des=RTC Calibration |
|