summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d5215fd)
raw | patch | inline | side by side (parent: d5215fd)
author | Judah Vang <judah@ti.com> | |
Fri, 20 Sep 2013 19:26:48 +0000 (12:26 -0700) | ||
committer | Chris Ring <cring@ti.com> | |
Thu, 26 Sep 2013 00:41:41 +0000 (17:41 -0700) |
packages/ti/sdo/ipc/family/f28m35x/NotifyDriverCirc.c | patch | blob | history | |
packages/ti/sdo/ipc/family/f28m35x/TransportCirc.c | patch | blob | history |
diff --git a/packages/ti/sdo/ipc/family/f28m35x/NotifyDriverCirc.c b/packages/ti/sdo/ipc/family/f28m35x/NotifyDriverCirc.c
index 3edbe7cb94b3dc9041293aab7bd962fe3179c4e5..2d83f26e6e8dd19fdc24b4e85efb1f5fc59fb79e 100644 (file)
{
#ifdef xdc_target__isaCompatible_v7M
volatile UInt32 *set = (volatile UInt32 *)MTOCIPCSET;
+ volatile UInt32 *clear = (volatile UInt32 *)MTOCIPCCLR;
#else
volatile UInt16 *set = (volatile UInt16 *)CTOMIPCSET;
+ volatile UInt32 *clear = (volatile UInt32 *)CTOMIPCCLR;
#endif
+ UInt hwiKey;
+
+ /* Make sure multiple threads are not hitting this at the same time */
+ hwiKey = Hwi_disable();
+ /* Make sure we get a leading edge... */
+ *clear = 1 << IpcMgr_ipcSetFlag;
+
+ /* Signal the other side */
*set = 1 << IpcMgr_ipcSetFlag;
+
+ /* Restore the interrupt line */
+ Hwi_restore(hwiKey);
}
/*
/* Make sure the NotifyDriverCirc_Object is not NULL */
Assert_isTrue(obj != NULL, IpcMgr_A_internal);
- /* Clear the remote interrupt */
- NotifyDriverCirc_intClear();
-
/* get the writeIndex and readIndex */
writeIndex = obj->getWriteIndex[0];
readIndex = obj->getReadIndex[0];
diff --git a/packages/ti/sdo/ipc/family/f28m35x/TransportCirc.c b/packages/ti/sdo/ipc/family/f28m35x/TransportCirc.c
index a4799a987846179aede8cf13b5efd363d3b66530..c0138ae4f9bb9963d7d8c60177f4a14ffca1b3d2 100644 (file)
buf = MessageQ_alloc(msg->heapId, msgSize);
/* Make sure buf is not NULL */
- Assert_isTrue(buf != NULL, IpcMgr_A_internal);
+ if (buf == NULL) {
+ TransportCirc_errFxn(TransportCirc_Reason_FAILEDALLOC,
+ ti_sdo_ipc_family_f28m35x_TransportCirc_Handle_upCast(obj),
+ NULL,
+ (UArg)msg);
+
+ return;
+ }
/* copy the message to the buffer allocated, set the heap id */
memcpy((Ptr)buf, (Ptr)msg, msgSize);