Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

Revision:
19:3dd3e7f30f8b
Parent:
0:50cedd586816
--- a/simplelink/cc3100_driver.h	Thu Sep 03 20:10:39 2015 +0000
+++ b/simplelink/cc3100_driver.h	Thu Sep 10 17:56:09 2015 +0000
@@ -39,6 +39,7 @@
 
 #include "mbed.h"
 #include "cc3100_simplelink.h"
+#include "cc3100_user.h"
 
 #include "cc3100_protocol.h"
 #include "cc3100_spi.h"
@@ -46,7 +47,8 @@
 #include "cc3100_netapp.h"
 //#include "cc3100.h"
 
-#ifdef SL_PLATFORM_MULTI_THREADED
+//#ifdef SL_PLATFORM_MULTI_THREADED
+#if (defined (SL_PLATFORM_MULTI_THREADED)) || (defined (SL_PLATFORM_EXTERNAL_SPAWN))
 #include "osi.h"
 #endif
 
@@ -114,8 +116,8 @@
     uint8_t  *pData;
 } _SlArgsData_t;
 
-typedef struct {
-    _SlSyncObj_t	      SyncObj;
+typedef struct {     
+    _SlSyncObj_t	      SyncObj;    
     uint8_t               *pRespArgs;
     uint8_t			      ActionID;
     uint8_t			      AdditionalData; /* use for socketID and one bit which indicate supprt IPV6 or not (1=support, 0 otherwise) */
@@ -161,7 +163,7 @@
 
 
 typedef struct {
-    uint8_t         TxPoolCnt;
+    uint8_t         TxPoolCnt;    
     _SlLockObj_t    TxLockObj;
     _SlSyncObj_t    TxSyncObj;
 } _SlFlowContCB_t;
@@ -225,7 +227,8 @@
 
 public:
 
-#ifndef SL_PLATFORM_MULTI_THREADED
+//#ifndef SL_PLATFORM_MULTI_THREADED
+#if (!defined (SL_PLATFORM_MULTI_THREADED)) && (!defined (SL_PLATFORM_EXTERNAL_SPAWN))
     cc3100_driver(cc3100_spi &spi, cc3100_nonos &nonos, cc3100_netapp &netapp, cc3100_flowcont &flowcont);
 #else 
     cc3100_driver(cc3100_spi &spi, cc3100_netapp &netapp, cc3100_flowcont &flowcont);
@@ -288,12 +291,12 @@
 
     _SlReturnVal_t	 _SlFindAndSetActiveObj(_SlOpcode_t  Opcode, uint8_t Sd);
     
-    uint16_t _SlDrvAlignSize(uint16_t msgLen); 
+    uint16_t _SlDrvAlignSize(uint16_t msgLen);     
     void  _SlDrvSyncObjWaitForever(_SlSyncObj_t *pSyncObj);
     void  _SlDrvSyncObjSignal(_SlSyncObj_t *pSyncObj);
     void  _SlDrvObjLock(_SlLockObj_t *pLockObj, _SlTime_t Timeout);
     void  _SlDrvObjLockWaitForever(_SlLockObj_t *pLockObj);
-    void  _SlDrvObjUnLock(_SlLockObj_t *pLockObj);    
+    void  _SlDrvObjUnLock(_SlLockObj_t *pLockObj);        
     void  _SlDrvProtectionObjLockWaitForever();
     void  _SlDrvProtectionObjUnLock();
     void  _SlDrvMemZero(void* Addr, uint16_t size);
@@ -303,7 +306,8 @@
 private:
 
     cc3100_spi        &_spi;
-#ifndef SL_PLATFORM_MULTI_THREADED    
+//#ifndef SL_PLATFORM_MULTI_THREADED
+#if (!defined (SL_PLATFORM_MULTI_THREADED)) && (!defined (SL_PLATFORM_EXTERNAL_SPAWN))    
     cc3100_nonos      &_nonos;
 #endif    
     cc3100_netapp     &_netapp;