TI's MQTT Demo with freertos CM4F

Dependencies:   mbed

Committer:
dflet
Date:
Thu Sep 03 14:07:01 2015 +0000
Revision:
0:1e7b5dd9edb4
First commit, it's been hanging around for a while. Updated SPI mode change 1 to 0.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:1e7b5dd9edb4 1 /*
dflet 0:1e7b5dd9edb4 2 * nonos.h - CC31xx/CC32xx Host Driver Implementation
dflet 0:1e7b5dd9edb4 3 *
dflet 0:1e7b5dd9edb4 4 * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
dflet 0:1e7b5dd9edb4 5 *
dflet 0:1e7b5dd9edb4 6 *
dflet 0:1e7b5dd9edb4 7 * Redistribution and use in source and binary forms, with or without
dflet 0:1e7b5dd9edb4 8 * modification, are permitted provided that the following conditions
dflet 0:1e7b5dd9edb4 9 * are met:
dflet 0:1e7b5dd9edb4 10 *
dflet 0:1e7b5dd9edb4 11 * Redistributions of source code must retain the above copyright
dflet 0:1e7b5dd9edb4 12 * notice, this list of conditions and the following disclaimer.
dflet 0:1e7b5dd9edb4 13 *
dflet 0:1e7b5dd9edb4 14 * Redistributions in binary form must reproduce the above copyright
dflet 0:1e7b5dd9edb4 15 * notice, this list of conditions and the following disclaimer in the
dflet 0:1e7b5dd9edb4 16 * documentation and/or other materials provided with the
dflet 0:1e7b5dd9edb4 17 * distribution.
dflet 0:1e7b5dd9edb4 18 *
dflet 0:1e7b5dd9edb4 19 * Neither the name of Texas Instruments Incorporated nor the names of
dflet 0:1e7b5dd9edb4 20 * its contributors may be used to endorse or promote products derived
dflet 0:1e7b5dd9edb4 21 * from this software without specific prior written permission.
dflet 0:1e7b5dd9edb4 22 *
dflet 0:1e7b5dd9edb4 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
dflet 0:1e7b5dd9edb4 24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
dflet 0:1e7b5dd9edb4 25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
dflet 0:1e7b5dd9edb4 26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
dflet 0:1e7b5dd9edb4 27 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dflet 0:1e7b5dd9edb4 28 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
dflet 0:1e7b5dd9edb4 29 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
dflet 0:1e7b5dd9edb4 30 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
dflet 0:1e7b5dd9edb4 31 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
dflet 0:1e7b5dd9edb4 32 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
dflet 0:1e7b5dd9edb4 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dflet 0:1e7b5dd9edb4 34 *
dflet 0:1e7b5dd9edb4 35 */
dflet 0:1e7b5dd9edb4 36
dflet 0:1e7b5dd9edb4 37 #ifndef NONOS_H_
dflet 0:1e7b5dd9edb4 38 #define NONOS_H_
dflet 0:1e7b5dd9edb4 39
dflet 0:1e7b5dd9edb4 40 #include "cc3100_simplelink.h"
dflet 0:1e7b5dd9edb4 41
dflet 0:1e7b5dd9edb4 42 /*****************************************************************************/
dflet 0:1e7b5dd9edb4 43 /* Macro declarations */
dflet 0:1e7b5dd9edb4 44 /*****************************************************************************/
dflet 0:1e7b5dd9edb4 45
dflet 0:1e7b5dd9edb4 46 #ifndef SL_PLATFORM_MULTI_THREADED
dflet 0:1e7b5dd9edb4 47
dflet 0:1e7b5dd9edb4 48 namespace mbed_cc3100 {
dflet 0:1e7b5dd9edb4 49
dflet 0:1e7b5dd9edb4 50 /* This function call the user defined function, if defined, from the sync wait loop */
dflet 0:1e7b5dd9edb4 51 /* The use case of this function is to allow nonos system to call a user function to put the device into sleep */
dflet 0:1e7b5dd9edb4 52 /* The wake up should be activated after getting an interrupt from the device to Host */
dflet 0:1e7b5dd9edb4 53 /* The user function must return without blocking to prevent a delay on the event handling */
dflet 0:1e7b5dd9edb4 54 /*
dflet 0:1e7b5dd9edb4 55 #define _SlSyncWaitLoopCallback UserSleepFunction
dflet 0:1e7b5dd9edb4 56 */
dflet 0:1e7b5dd9edb4 57
dflet 0:1e7b5dd9edb4 58 const uint8_t NONOS_WAIT_FOREVER = 0xFF;
dflet 0:1e7b5dd9edb4 59 const uint8_t NONOS_NO_WAIT = 0x00;
dflet 0:1e7b5dd9edb4 60
dflet 0:1e7b5dd9edb4 61 const uint8_t NONOS_RET_OK = (0);
dflet 0:1e7b5dd9edb4 62 const int8_t NONOS_RET_ERR = (0xFF);
dflet 0:1e7b5dd9edb4 63 const uint8_t OSI_OK = NONOS_RET_OK;
dflet 0:1e7b5dd9edb4 64
dflet 0:1e7b5dd9edb4 65 const uint8_t NON_OS_SYNC_OBJ_CLEAR_VALUE = 0x11;
dflet 0:1e7b5dd9edb4 66 const uint8_t NON_OS_SYNC_OBJ_SIGNAL_VALUE = 0x22;
dflet 0:1e7b5dd9edb4 67 const uint8_t NON_OS_LOCK_OBJ_UNLOCK_VALUE = 0x33;
dflet 0:1e7b5dd9edb4 68 const uint8_t NON_OS_LOCK_OBJ_LOCK_VALUE = 0x44;
dflet 0:1e7b5dd9edb4 69
dflet 0:1e7b5dd9edb4 70 #define _SlTime_t _SlNonOsTime_t
dflet 0:1e7b5dd9edb4 71
dflet 0:1e7b5dd9edb4 72 #define _SlSyncObj_t _SlNonOsSemObj_t
dflet 0:1e7b5dd9edb4 73
dflet 0:1e7b5dd9edb4 74 #define _SlLockObj_t _SlNonOsSemObj_t
dflet 0:1e7b5dd9edb4 75
dflet 0:1e7b5dd9edb4 76 const uint8_t SL_OS_WAIT_FOREVER = NONOS_WAIT_FOREVER;
dflet 0:1e7b5dd9edb4 77
dflet 0:1e7b5dd9edb4 78 const uint8_t SL_OS_RET_CODE_OK = NONOS_RET_OK;
dflet 0:1e7b5dd9edb4 79
dflet 0:1e7b5dd9edb4 80 const uint8_t SL_OS_NO_WAIT = NONOS_NO_WAIT;
dflet 0:1e7b5dd9edb4 81
dflet 0:1e7b5dd9edb4 82
dflet 0:1e7b5dd9edb4 83 /*****************************************************************************/
dflet 0:1e7b5dd9edb4 84 /* Function prototypes */
dflet 0:1e7b5dd9edb4 85 /*****************************************************************************/
dflet 0:1e7b5dd9edb4 86
dflet 0:1e7b5dd9edb4 87 /*!
dflet 0:1e7b5dd9edb4 88 \brief This function creates a sync object
dflet 0:1e7b5dd9edb4 89
dflet 0:1e7b5dd9edb4 90 The sync object is used for synchronization between different thread or ISR and
dflet 0:1e7b5dd9edb4 91 a thread.
dflet 0:1e7b5dd9edb4 92
dflet 0:1e7b5dd9edb4 93 \param pSyncObj - pointer to the sync object control block
dflet 0:1e7b5dd9edb4 94
dflet 0:1e7b5dd9edb4 95 \return upon successful creation the function return 0
dflet 0:1e7b5dd9edb4 96 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 97 \note
dflet 0:1e7b5dd9edb4 98 \warning
dflet 0:1e7b5dd9edb4 99 */
dflet 0:1e7b5dd9edb4 100 #define _SlNonOsSyncObjCreate(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_CLEAR_VALUE)
dflet 0:1e7b5dd9edb4 101
dflet 0:1e7b5dd9edb4 102 /*!
dflet 0:1e7b5dd9edb4 103 \brief This function deletes a sync object
dflet 0:1e7b5dd9edb4 104
dflet 0:1e7b5dd9edb4 105 \param pSyncObj - pointer to the sync object control block
dflet 0:1e7b5dd9edb4 106
dflet 0:1e7b5dd9edb4 107 \return upon successful deletion the function should return 0
dflet 0:1e7b5dd9edb4 108 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 109 \note
dflet 0:1e7b5dd9edb4 110 \warning
dflet 0:1e7b5dd9edb4 111 */
dflet 0:1e7b5dd9edb4 112 #define _SlNonOsSyncObjDelete(pSyncObj) _SlNonOsSemSet(pSyncObj,0)//
dflet 0:1e7b5dd9edb4 113
dflet 0:1e7b5dd9edb4 114 /*!
dflet 0:1e7b5dd9edb4 115 \brief This function generates a sync signal for the object.
dflet 0:1e7b5dd9edb4 116
dflet 0:1e7b5dd9edb4 117 All suspended threads waiting on this sync object are resumed
dflet 0:1e7b5dd9edb4 118
dflet 0:1e7b5dd9edb4 119 \param pSyncObj - pointer to the sync object control block
dflet 0:1e7b5dd9edb4 120
dflet 0:1e7b5dd9edb4 121 \return upon successful signaling the function should return 0
dflet 0:1e7b5dd9edb4 122 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 123 \note the function could be called from ISR context
dflet 0:1e7b5dd9edb4 124 \warning
dflet 0:1e7b5dd9edb4 125 */
dflet 0:1e7b5dd9edb4 126 #define _SlNonOsSyncObjSignal(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE)//
dflet 0:1e7b5dd9edb4 127
dflet 0:1e7b5dd9edb4 128 /*!
dflet 0:1e7b5dd9edb4 129 \brief This function waits for a sync signal of the specific sync object
dflet 0:1e7b5dd9edb4 130
dflet 0:1e7b5dd9edb4 131 \param pSyncObj - pointer to the sync object control block
dflet 0:1e7b5dd9edb4 132 \param Timeout - numeric value specifies the maximum number of mSec to
dflet 0:1e7b5dd9edb4 133 stay suspended while waiting for the sync signal
dflet 0:1e7b5dd9edb4 134 Currently, the simple link driver uses only two values:
dflet 0:1e7b5dd9edb4 135 - NONOS_WAIT_FOREVER
dflet 0:1e7b5dd9edb4 136 - NONOS_NO_WAIT
dflet 0:1e7b5dd9edb4 137
dflet 0:1e7b5dd9edb4 138 \return upon successful reception of the signal within the timeout window return 0
dflet 0:1e7b5dd9edb4 139 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 140 \note
dflet 0:1e7b5dd9edb4 141 \warning
dflet 0:1e7b5dd9edb4 142 */
dflet 0:1e7b5dd9edb4 143 #define _SlNonOsSyncObjWait(pSyncObj,Timeout) _SlNonOsSemGet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE,NON_OS_SYNC_OBJ_CLEAR_VALUE,Timeout)//
dflet 0:1e7b5dd9edb4 144
dflet 0:1e7b5dd9edb4 145 /*!
dflet 0:1e7b5dd9edb4 146 \brief This function clears a sync object
dflet 0:1e7b5dd9edb4 147
dflet 0:1e7b5dd9edb4 148 \param pSyncObj - pointer to the sync object control block
dflet 0:1e7b5dd9edb4 149
dflet 0:1e7b5dd9edb4 150 \return upon successful clearing the function should return 0
dflet 0:1e7b5dd9edb4 151 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 152 \note
dflet 0:1e7b5dd9edb4 153 \warning
dflet 0:1e7b5dd9edb4 154 */
dflet 0:1e7b5dd9edb4 155 #define _SlNonOsSyncObjClear(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_CLEAR_VALUE)//
dflet 0:1e7b5dd9edb4 156
dflet 0:1e7b5dd9edb4 157 /*!
dflet 0:1e7b5dd9edb4 158 \brief This function creates a locking object.
dflet 0:1e7b5dd9edb4 159
dflet 0:1e7b5dd9edb4 160 The locking object is used for protecting a shared resources between different
dflet 0:1e7b5dd9edb4 161 threads.
dflet 0:1e7b5dd9edb4 162
dflet 0:1e7b5dd9edb4 163 \param pLockObj - pointer to the locking object control block
dflet 0:1e7b5dd9edb4 164
dflet 0:1e7b5dd9edb4 165 \return upon successful creation the function should return 0
dflet 0:1e7b5dd9edb4 166 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 167 \note
dflet 0:1e7b5dd9edb4 168 \warning
dflet 0:1e7b5dd9edb4 169 */
dflet 0:1e7b5dd9edb4 170 #define _SlNonOsLockObjCreate(pLockObj) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)
dflet 0:1e7b5dd9edb4 171
dflet 0:1e7b5dd9edb4 172 /*!
dflet 0:1e7b5dd9edb4 173 \brief This function deletes a locking object.
dflet 0:1e7b5dd9edb4 174
dflet 0:1e7b5dd9edb4 175 \param pLockObj - pointer to the locking object control block
dflet 0:1e7b5dd9edb4 176
dflet 0:1e7b5dd9edb4 177 \return upon successful deletion the function should return 0
dflet 0:1e7b5dd9edb4 178 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 179 \note
dflet 0:1e7b5dd9edb4 180 \warning
dflet 0:1e7b5dd9edb4 181 */
dflet 0:1e7b5dd9edb4 182 #define _SlNonOsLockObjDelete(pLockObj) _SlNonOsSemSet(pLockObj,0)//
dflet 0:1e7b5dd9edb4 183
dflet 0:1e7b5dd9edb4 184 /*!
dflet 0:1e7b5dd9edb4 185 \brief This function locks a locking object.
dflet 0:1e7b5dd9edb4 186
dflet 0:1e7b5dd9edb4 187 All other threads that call this function before this thread calls
dflet 0:1e7b5dd9edb4 188 the _SlNonOsLockObjUnlock would be suspended
dflet 0:1e7b5dd9edb4 189
dflet 0:1e7b5dd9edb4 190 \param pLockObj - pointer to the locking object control block
dflet 0:1e7b5dd9edb4 191 \param Timeout - numeric value specifies the maximum number of mSec to
dflet 0:1e7b5dd9edb4 192 stay suspended while waiting for the locking object
dflet 0:1e7b5dd9edb4 193 Currently, the simple link driver uses only two values:
dflet 0:1e7b5dd9edb4 194 - NONOS_WAIT_FOREVER
dflet 0:1e7b5dd9edb4 195 - NONOS_NO_WAIT
dflet 0:1e7b5dd9edb4 196
dflet 0:1e7b5dd9edb4 197
dflet 0:1e7b5dd9edb4 198 \return upon successful reception of the locking object the function should return 0
dflet 0:1e7b5dd9edb4 199 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 200 \note
dflet 0:1e7b5dd9edb4 201 \warning
dflet 0:1e7b5dd9edb4 202 */
dflet 0:1e7b5dd9edb4 203 #define _SlNonOsLockObjLock(pLockObj,Timeout) _SlNonOsSemGet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE,NON_OS_LOCK_OBJ_LOCK_VALUE,Timeout)//
dflet 0:1e7b5dd9edb4 204
dflet 0:1e7b5dd9edb4 205 /*!
dflet 0:1e7b5dd9edb4 206 \brief This function unlock a locking object.
dflet 0:1e7b5dd9edb4 207
dflet 0:1e7b5dd9edb4 208 \param pLockObj - pointer to the locking object control block
dflet 0:1e7b5dd9edb4 209
dflet 0:1e7b5dd9edb4 210 \return upon successful unlocking the function should return 0
dflet 0:1e7b5dd9edb4 211 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 212 \note
dflet 0:1e7b5dd9edb4 213 \warning
dflet 0:1e7b5dd9edb4 214 */
dflet 0:1e7b5dd9edb4 215 #define _SlNonOsLockObjUnlock(pLockObj) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)//
dflet 0:1e7b5dd9edb4 216
dflet 0:1e7b5dd9edb4 217 /*****************************************************************************
dflet 0:1e7b5dd9edb4 218
dflet 0:1e7b5dd9edb4 219 Overwrite SimpleLink driver OS adaptation functions
dflet 0:1e7b5dd9edb4 220
dflet 0:1e7b5dd9edb4 221
dflet 0:1e7b5dd9edb4 222 *****************************************************************************/
dflet 0:1e7b5dd9edb4 223
dflet 0:1e7b5dd9edb4 224 //class cc3100_nonos _nonos;
dflet 0:1e7b5dd9edb4 225
dflet 0:1e7b5dd9edb4 226 #undef sl_SyncObjCreate
dflet 0:1e7b5dd9edb4 227 #define sl_SyncObjCreate(pSyncObj,pName) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_CLEAR_VALUE)
dflet 0:1e7b5dd9edb4 228
dflet 0:1e7b5dd9edb4 229 #undef sl_SyncObjDelete
dflet 0:1e7b5dd9edb4 230 #define sl_SyncObjDelete(pSyncObj) _SlNonOsSemSet(pSyncObj,0)
dflet 0:1e7b5dd9edb4 231
dflet 0:1e7b5dd9edb4 232 #undef sl_SyncObjSignal
dflet 0:1e7b5dd9edb4 233 #define sl_SyncObjSignal(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE)
dflet 0:1e7b5dd9edb4 234
dflet 0:1e7b5dd9edb4 235 #undef sl_SyncObjSignalFromIRQ
dflet 0:1e7b5dd9edb4 236 #define sl_SyncObjSignalFromIRQ(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE)
dflet 0:1e7b5dd9edb4 237
dflet 0:1e7b5dd9edb4 238 #undef sl_SyncObjWait
dflet 0:1e7b5dd9edb4 239 #define sl_SyncObjWait(pSyncObj,Timeout) _SlNonOsSemGet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE,NON_OS_SYNC_OBJ_CLEAR_VALUE,Timeout)
dflet 0:1e7b5dd9edb4 240
dflet 0:1e7b5dd9edb4 241 #undef sl_LockObjCreate
dflet 0:1e7b5dd9edb4 242 #define sl_LockObjCreate(pLockObj,pName) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)
dflet 0:1e7b5dd9edb4 243
dflet 0:1e7b5dd9edb4 244 #undef sl_LockObjDelete
dflet 0:1e7b5dd9edb4 245 #define sl_LockObjDelete(pLockObj) _SlNonOsSemSet(pLockObj,0)
dflet 0:1e7b5dd9edb4 246
dflet 0:1e7b5dd9edb4 247 #undef sl_LockObjLock
dflet 0:1e7b5dd9edb4 248 #define sl_LockObjLock(pLockObj,Timeout) _SlNonOsSemGet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE,NON_OS_LOCK_OBJ_LOCK_VALUE,Timeout)
dflet 0:1e7b5dd9edb4 249
dflet 0:1e7b5dd9edb4 250 #undef sl_LockObjUnlock
dflet 0:1e7b5dd9edb4 251 #define sl_LockObjUnlock(pLockObj) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)
dflet 0:1e7b5dd9edb4 252 /*
dflet 0:1e7b5dd9edb4 253 #undef sl_Spawn
dflet 0:1e7b5dd9edb4 254 #define sl_Spawn(pEntry,pValue,flags) _nonos._SlNonOsSpawn(pEntry,pValue,flags)
dflet 0:1e7b5dd9edb4 255
dflet 0:1e7b5dd9edb4 256 #undef _SlTaskEntry
dflet 0:1e7b5dd9edb4 257 #define _SlTaskEntry _nonos._SlNonOsMainLoopTask
dflet 0:1e7b5dd9edb4 258 */
dflet 0:1e7b5dd9edb4 259 /*!
dflet 0:1e7b5dd9edb4 260 \brief type definition for the return values of this adaptation layer
dflet 0:1e7b5dd9edb4 261 */
dflet 0:1e7b5dd9edb4 262 typedef int8_t _SlNonOsRetVal_t;
dflet 0:1e7b5dd9edb4 263
dflet 0:1e7b5dd9edb4 264 /*!
dflet 0:1e7b5dd9edb4 265 \brief type definition for a time value
dflet 0:1e7b5dd9edb4 266 */
dflet 0:1e7b5dd9edb4 267 typedef uint8_t _SlNonOsTime_t;
dflet 0:1e7b5dd9edb4 268
dflet 0:1e7b5dd9edb4 269 /*!
dflet 0:1e7b5dd9edb4 270 \brief type definition for a sync object container
dflet 0:1e7b5dd9edb4 271
dflet 0:1e7b5dd9edb4 272 Sync object is object used to synchronize between two threads or thread and interrupt handler.
dflet 0:1e7b5dd9edb4 273 One thread is waiting on the object and the other thread send a signal, which then
dflet 0:1e7b5dd9edb4 274 release the waiting thread.
dflet 0:1e7b5dd9edb4 275 The signal must be able to be sent from interrupt context.
dflet 0:1e7b5dd9edb4 276 This object is generally implemented by binary semaphore or events.
dflet 0:1e7b5dd9edb4 277 */
dflet 0:1e7b5dd9edb4 278 typedef uint8_t _SlNonOsSemObj_t;
dflet 0:1e7b5dd9edb4 279
dflet 0:1e7b5dd9edb4 280 class cc3100_driver;
dflet 0:1e7b5dd9edb4 281
dflet 0:1e7b5dd9edb4 282 class cc3100_nonos
dflet 0:1e7b5dd9edb4 283 {
dflet 0:1e7b5dd9edb4 284
dflet 0:1e7b5dd9edb4 285 public:
dflet 0:1e7b5dd9edb4 286
dflet 0:1e7b5dd9edb4 287 cc3100_nonos(cc3100_driver &driver);
dflet 0:1e7b5dd9edb4 288
dflet 0:1e7b5dd9edb4 289 ~cc3100_nonos();
dflet 0:1e7b5dd9edb4 290
dflet 0:1e7b5dd9edb4 291 /*!
dflet 0:1e7b5dd9edb4 292 \brief This function call the pEntry callback from a different context
dflet 0:1e7b5dd9edb4 293
dflet 0:1e7b5dd9edb4 294 \param pEntry - pointer to the entry callback function
dflet 0:1e7b5dd9edb4 295
dflet 0:1e7b5dd9edb4 296 \param pValue - pointer to any type of memory structure that would be
dflet 0:1e7b5dd9edb4 297 passed to pEntry callback from the execution thread.
dflet 0:1e7b5dd9edb4 298
dflet 0:1e7b5dd9edb4 299 \param flags - execution flags - reserved for future usage
dflet 0:1e7b5dd9edb4 300
dflet 0:1e7b5dd9edb4 301 \return upon successful registration of the spawn the function return 0
dflet 0:1e7b5dd9edb4 302 (the function is not blocked till the end of the execution of the function
dflet 0:1e7b5dd9edb4 303 and could be returned before the execution is actually completed)
dflet 0:1e7b5dd9edb4 304 Otherwise, a negative value indicating the error code shall be returned
dflet 0:1e7b5dd9edb4 305 \note
dflet 0:1e7b5dd9edb4 306 \warning
dflet 0:1e7b5dd9edb4 307 */
dflet 0:1e7b5dd9edb4 308 _SlNonOsRetVal_t _SlNonOsSpawn(_SlSpawnEntryFunc_t pEntry , void* pValue , uint32_t flags);
dflet 0:1e7b5dd9edb4 309
dflet 0:1e7b5dd9edb4 310
dflet 0:1e7b5dd9edb4 311 /*!
dflet 0:1e7b5dd9edb4 312 \brief This function must be called from the main loop in non-os paltforms
dflet 0:1e7b5dd9edb4 313
dflet 0:1e7b5dd9edb4 314 \param None
dflet 0:1e7b5dd9edb4 315
dflet 0:1e7b5dd9edb4 316 \return 0 - No more activities
dflet 0:1e7b5dd9edb4 317 1 - Activity still in progress
dflet 0:1e7b5dd9edb4 318 \note
dflet 0:1e7b5dd9edb4 319 \warning
dflet 0:1e7b5dd9edb4 320 */
dflet 0:1e7b5dd9edb4 321 _SlNonOsRetVal_t _SlNonOsMainLoopTask(void);
dflet 0:1e7b5dd9edb4 322
dflet 0:1e7b5dd9edb4 323 _SlNonOsRetVal_t _SlNonOsSemGet(_SlNonOsSemObj_t* pSyncObj, _SlNonOsSemObj_t WaitValue, _SlNonOsSemObj_t SetValue, _SlNonOsTime_t Timeout);
dflet 0:1e7b5dd9edb4 324 _SlNonOsRetVal_t _SlNonOsSemSet(_SlNonOsSemObj_t* pSemObj , _SlNonOsSemObj_t Value);
dflet 0:1e7b5dd9edb4 325
dflet 0:1e7b5dd9edb4 326
dflet 0:1e7b5dd9edb4 327 #if (defined(_SlSyncWaitLoopCallback))
dflet 0:1e7b5dd9edb4 328 void _SlSyncWaitLoopCallback(void);
dflet 0:1e7b5dd9edb4 329 #endif
dflet 0:1e7b5dd9edb4 330
dflet 0:1e7b5dd9edb4 331 private:
dflet 0:1e7b5dd9edb4 332
dflet 0:1e7b5dd9edb4 333 cc3100_driver &_driver;
dflet 0:1e7b5dd9edb4 334
dflet 0:1e7b5dd9edb4 335 };//class
dflet 0:1e7b5dd9edb4 336
dflet 0:1e7b5dd9edb4 337 //extern _SlNonOsRetVal_t _SlNonOsSpawn(_SlSpawnEntryFunc_t pEntry , void* pValue , uint32_t flags);
dflet 0:1e7b5dd9edb4 338
dflet 0:1e7b5dd9edb4 339 }//namespace mbed_cc3100
dflet 0:1e7b5dd9edb4 340
dflet 0:1e7b5dd9edb4 341 #endif /* !SL_PLATFORM_MULTI_THREADED */
dflet 0:1e7b5dd9edb4 342
dflet 0:1e7b5dd9edb4 343
dflet 0:1e7b5dd9edb4 344
dflet 0:1e7b5dd9edb4 345 #endif
dflet 0:1e7b5dd9edb4 346