diff options
| author | danicampora | 2015-02-22 17:31:26 +0100 |
|---|---|---|
| committer | danicampora | 2015-02-22 17:50:50 +0100 |
| commit | 33ddb566a7565b4fba4a68939d43bcdb5f132836 (patch) | |
| tree | bd348fd647ca26de8e05b18e411bcf7323a09a8c /cc3200/mods | |
| parent | 5c047b97f2e41b51f8314f6ee06788b1d9246dbf (diff) | |
cc3200: Remove dependencies from FreeRTOS.
Use the simplelink wrappers instead. This is one step further
towards having a single module for the cc3200 and the cc3100.
Diffstat (limited to 'cc3200/mods')
| -rw-r--r-- | cc3200/mods/modpyb.c | 3 | ||||
| -rw-r--r-- | cc3200/mods/modwlan.c | 37 | ||||
| -rw-r--r-- | cc3200/mods/modwlan.h | 7 | ||||
| -rw-r--r-- | cc3200/mods/pybsd.c | 2 |
4 files changed, 13 insertions, 36 deletions
diff --git a/cc3200/mods/modpyb.c b/cc3200/mods/modpyb.c index 80a4f74ac..4cfeeec91 100644 --- a/cc3200/mods/modpyb.c +++ b/cc3200/mods/modpyb.c @@ -59,12 +59,13 @@ #include "pybi2c.h" #include "pybsd.h" #include "utils.h" +#include "gccollect.h" #ifdef DEBUG extern OsiTaskHandle mpTaskHandle; extern OsiTaskHandle svTaskHandle; -extern TaskHandle_t xSimpleLinkSpawnTaskHndl; +extern OsiTaskHandle xSimpleLinkSpawnTaskHndl; #endif /// \module pyb - functions related to the pyboard diff --git a/cc3200/mods/modwlan.c b/cc3200/mods/modwlan.c index e27aa84ce..9cab92188 100644 --- a/cc3200/mods/modwlan.c +++ b/cc3200/mods/modwlan.c @@ -37,17 +37,10 @@ #include "modwlan.h" #include "pybioctl.h" #include "pybuart.h" -#include "osi.h" #include "debug.h" #include "serverstask.h" #include "mpexception.h" -#ifdef USE_FREERTOS -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#endif - /****************************************************************************** DEFINE TYPES @@ -88,7 +81,6 @@ typedef struct _wlan_obj_t { uint8_t macAddr[SL_MAC_ADDR_LEN]; uint8_t ssid_name[33]; uint8_t bssid[6]; - bool servers_enabled; // IPVv4 data uint32_t ip; @@ -152,7 +144,7 @@ STATIC wlan_obj_t wlan_obj; /****************************************************************************** DECLARE EXPORTED DATA ******************************************************************************/ -SemaphoreHandle_t xWlanSemaphore = NULL; +OsiLockObj_t wlan_LockObj; /****************************************************************************** DECLARE PRIVATE FUNCTIONS @@ -355,11 +347,7 @@ void wlan_init0 (void) { wlan_obj.mode = -1; wlan_obj.base.type = NULL; memset (wlan_obj.macAddr, 0, SL_MAC_ADDR_LEN); -#ifdef USE_FREERTOS - if (NULL == xWlanSemaphore) { - xWlanSemaphore = xSemaphoreCreateBinary(); - } -#endif + ASSERT(OSI_OK == sl_LockObjCreate(&wlan_LockObj, "WlanLock")); wlan_initialize_data (); } @@ -369,9 +357,7 @@ modwlan_Status_t wlan_sl_enable (SlWlanMode_t mode, const char *ssid, uint8_t ss if (mode == ROLE_STA || mode == ROLE_AP || mode == ROLE_P2P) { if (wlan_obj.mode < 0) { wlan_obj.mode = sl_Start(0, 0, 0); - #ifdef USE_FREERTOS - xSemaphoreGive (xWlanSemaphore); - #endif + sl_LockObjUnlock (&wlan_LockObj); } // get the mac address @@ -492,9 +478,7 @@ modwlan_Status_t wlan_sl_enable (SlWlanMode_t mode, const char *ssid, uint8_t ss void wlan_sl_disable (void) { if (wlan_obj.mode >= 0) { - #ifdef USE_FREERTOS - xSemaphoreTake (xWlanSemaphore, portMAX_DELAY); - #endif + sl_LockObjLock (&wlan_LockObj, SL_OS_WAIT_FOREVER); wlan_obj.mode = -1; sl_Stop(SL_STOP_TIMEOUT); } @@ -543,14 +527,10 @@ STATIC void wlan_initialize_data (void) { STATIC void wlan_reenable (SlWlanMode_t mode) { // Stop and start again wlan_obj.mode = -1; -#ifdef USE_FREERTOS - xSemaphoreTake (xWlanSemaphore, portMAX_DELAY); -#endif + sl_LockObjLock (&wlan_LockObj, SL_OS_WAIT_FOREVER); sl_Stop(SL_STOP_TIMEOUT); wlan_obj.mode = sl_Start(0, 0, 0); -#ifdef USE_FREERTOS - xSemaphoreGive (xWlanSemaphore); -#endif + sl_LockObjUnlock (&wlan_LockObj); ASSERT (wlan_obj.mode == mode); } @@ -647,7 +627,8 @@ STATIC mp_obj_t wlan_make_new (mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_k SlWlanMode_t mode = mp_obj_get_int(args[0]); // Stop all other processes using the wlan engine - if ( (wlan_obj.servers_enabled = servers_are_enabled()) ) { + bool servers_enabled; + if ( (servers_enabled = servers_are_enabled()) ) { wlan_servers_stop(); } if (mode == ROLE_AP) { @@ -667,7 +648,7 @@ STATIC mp_obj_t wlan_make_new (mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n_k } // Start the servers again - if (wlan_obj.servers_enabled) { + if (servers_enabled) { servers_enable (); } } else if (wlan_obj.mode < 0) { diff --git a/cc3200/mods/modwlan.h b/cc3200/mods/modwlan.h index 7a84f2a51..3143d4063 100644 --- a/cc3200/mods/modwlan.h +++ b/cc3200/mods/modwlan.h @@ -48,12 +48,7 @@ typedef enum /****************************************************************************** DECLARE PUBLIC DATA ******************************************************************************/ -#ifdef USE_FREERTOS -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -extern SemaphoreHandle_t xWlanSemaphore; -#endif +extern _SlLockObj_t wlan_LockObj; /****************************************************************************** DECLARE PUBLIC FUNCTIONS diff --git a/cc3200/mods/pybsd.c b/cc3200/mods/pybsd.c index 269c65ad5..c9d6512b2 100644 --- a/cc3200/mods/pybsd.c +++ b/cc3200/mods/pybsd.c @@ -40,7 +40,7 @@ #include "pybpin.h" #include "pybsd.h" #include "ff.h" -#include "osi.h" +#include "simplelink.h" #include "debug.h" #include "mpexception.h" |
