33 #define MICRIUM_SOURCE
36 #ifdef VSC_INCLUDE_SOURCE_FILE_NAMES
37 const CPU_CHAR *os_int__c =
"$Id: $";
41 #if OS_CFG_ISR_POST_DEFERRED_EN > 0u
104 #ifdef OS_SAFETY_CRITICAL
105 if (p_err == (
OS_ERR *)0) {
106 OS_SAFETY_CRITICAL_EXCEPTION();
115 if (OSIntQNbrEntriesMax < OSIntQNbrEntries) {
116 OSIntQNbrEntriesMax = OSIntQNbrEntries;
119 OSIntQInPtr->Type = type;
120 OSIntQInPtr->ObjPtr = p_obj;
121 OSIntQInPtr->MsgPtr = p_void;
122 OSIntQInPtr->MsgSize = msg_size;
123 OSIntQInPtr->Flags = flags;
124 OSIntQInPtr->Opt = opt;
125 OSIntQInPtr->TS = ts;
127 OSIntQInPtr = OSIntQInPtr->NextPtr;
159 void OS_IntQRePost (
void)
165 switch (OSIntQOutPtr->Type) {
167 #if OS_CFG_FLAG_EN > 0u
168 (void)OS_FlagPost((OS_FLAG_GRP *) OSIntQOutPtr->ObjPtr,
170 (
OS_OPT ) OSIntQOutPtr->Opt,
171 (
CPU_TS ) OSIntQOutPtr->TS,
178 OS_QPost((OS_Q *) OSIntQOutPtr->ObjPtr,
179 (
void *) OSIntQOutPtr->MsgPtr,
181 (
OS_OPT ) OSIntQOutPtr->Opt,
182 (
CPU_TS ) OSIntQOutPtr->TS,
188 #if OS_CFG_SEM_EN > 0u
189 (void)OS_SemPost((OS_SEM *) OSIntQOutPtr->ObjPtr,
190 (
OS_OPT ) OSIntQOutPtr->Opt,
191 (
CPU_TS ) OSIntQOutPtr->TS,
197 #if OS_CFG_TASK_Q_EN > 0u
199 (
void *) OSIntQOutPtr->MsgPtr,
201 (
OS_OPT ) OSIntQOutPtr->Opt,
202 (
CPU_TS ) OSIntQOutPtr->TS,
208 #if OS_CFG_TASK_SUSPEND_EN > 0u
209 (void)OS_TaskResume((OS_TCB *) OSIntQOutPtr->ObjPtr,
216 (
OS_OPT ) OSIntQOutPtr->Opt,
217 (
CPU_TS ) OSIntQOutPtr->TS,
222 #if OS_CFG_TASK_SUSPEND_EN > 0u
223 (void)OS_TaskSuspend((OS_TCB *) OSIntQOutPtr->ObjPtr,
229 #if OS_CFG_SCHED_ROUND_ROBIN_EN > 0u
235 (
CPU_TS ) OSIntQOutPtr->TS,
237 #if OS_CFG_TMR_EN > 0u
239 if (OSTmrUpdateCtr == (
OS_CTR)0u) {
240 OSTmrUpdateCtr = OSTmrUpdateCnt;
269 void OS_IntQTask (
void *p_arg)
296 if (OSIntQTaskTimeMax < ts_end) {
297 OSIntQTaskTimeMax = ts_end;
300 OSIntQOutPtr = OSIntQOutPtr->NextPtr;
331 void OS_IntQTaskInit (
OS_ERR *p_err)
339 #ifdef OS_SAFETY_CRITICAL
340 if (p_err == (
OS_ERR *)0) {
341 OS_SAFETY_CRITICAL_EXCEPTION();
346 OSIntQOvfCtr = (
OS_QTY)0u;
358 OSIntQTaskTimeMax = (
CPU_TS)0;
361 p_int_q_next = p_int_q;
365 p_int_q->ObjPtr = (
void *)0;
366 p_int_q->MsgPtr = (
void *)0;
369 p_int_q->Opt = (
OS_OPT )0u;
370 p_int_q->NextPtr = p_int_q_next;
376 p_int_q->NextPtr = p_int_q_next;
377 OSIntQInPtr = p_int_q_next;
378 OSIntQOutPtr = p_int_q_next;
394 (
CPU_CHAR *)((
void *)
"uC/OS-III ISR Queue Task"),