diff options
Diffstat (limited to 'nuttx/drivers/wireless')
-rw-r--r-- | nuttx/drivers/wireless/cc3000/Kconfig | 18 | ||||
-rw-r--r-- | nuttx/drivers/wireless/cc3000/cc3000.c | 28 | ||||
-rw-r--r-- | nuttx/drivers/wireless/cc3000/spi.c | 6 | ||||
-rw-r--r-- | nuttx/drivers/wireless/cc3000/wlan.c | 8 |
4 files changed, 44 insertions, 16 deletions
diff --git a/nuttx/drivers/wireless/cc3000/Kconfig b/nuttx/drivers/wireless/cc3000/Kconfig index 44b285728..e9f22ed99 100644 --- a/nuttx/drivers/wireless/cc3000/Kconfig +++ b/nuttx/drivers/wireless/cc3000/Kconfig @@ -54,4 +54,22 @@ config CC3000_SPI_FREQUENCY ---help--- Define to use a different SPI bus frequency. +config CC3000_WORKER_STACKSIZE + int "Worker thread stack size" + default 240 + +config CC3000_SELECT_STACKSIZE + int "Select thread stack size" + default 368 + +config CC3000_UNSOLICED_STACKSIZE + int "Unsolicited thread stack size" + default 264 + +config CC3000_PROBES + bool "Thread probes" + default n + ---help--- + Select to use DO and D1 to indicate worker thread and ISR + endif diff --git a/nuttx/drivers/wireless/cc3000/cc3000.c b/nuttx/drivers/wireless/cc3000/cc3000.c index 42afa00a3..ba60d3438 100644 --- a/nuttx/drivers/wireless/cc3000/cc3000.c +++ b/nuttx/drivers/wireless/cc3000/cc3000.c @@ -85,13 +85,27 @@ #error "CONFIG_MQ_MAXMSGSIZE needs to be >= CC3000_RX_BUFFER_SIZE" #endif +#ifndef CONFIG_CC3000_WORKER_STACKSIZE +# define CONFIG_CC3000_WORKER_STACKSIZE 240 +#endif + +#ifndef CONFIG_CC3000_SELECT_STACKSIZE +# define CONFIG_CC3000_SELECT_STACKSIZE 368 +#endif + #ifndef ARRAY_SIZE # define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #endif -#define NUMBER_OF_MSGS 2 +#define NUMBER_OF_MSGS 1 #define FREE_SLOT -1 +#if defined(CONFIG_CC3000_PROBES) +#define PROBE(pin,state) priv->config->probe(priv->config,pin, state) +#else +#define PROBE(pin,state) +#endif + /**************************************************************************** * Private Types ****************************************************************************/ @@ -560,14 +574,14 @@ static void * cc3000_worker(FAR void *arg) sem_post(&priv->readysem); while(1) { - priv->config->probe(config,0, 1); + PROBE(0,1); cc3000_devtake(priv); /* Done ? */ if ((cc3000_wait_irq(priv) != -EINTR) && (priv->workertid != -1)) { - priv->config->probe(config,0, 0); + PROBE(0,0); nllvdbg("State%d\n",priv->state); switch (priv->state) { @@ -694,9 +708,9 @@ static int cc3000_interrupt(int irq, FAR void *context) /* Run the worker thread */ - priv->config->probe(priv->config,1, 0); + PROBE(1,0); sem_post(&priv->irqsem); - priv->config->probe(priv->config,1, 1); + PROBE(1,1); /* Clear any pending interrupts and return success */ @@ -781,7 +795,7 @@ static int cc3000_open(FAR struct file *filep) } pthread_attr_init(&tattr); - tattr.stacksize = 336; + tattr.stacksize = CONFIG_CC3000_WORKER_STACKSIZE; param.sched_priority = SCHED_PRIORITY_MAX; pthread_attr_setschedparam(&tattr, ¶m); @@ -796,7 +810,7 @@ static int cc3000_open(FAR struct file *filep) } pthread_attr_init(&tattr); - tattr.stacksize = 460; + tattr.stacksize = CONFIG_CC3000_SELECT_STACKSIZE; param.sched_priority = SCHED_PRIORITY_DEFAULT+10; pthread_attr_setschedparam(&tattr, ¶m); ret = pthread_create(&priv->selecttid, &tattr, select_thread_func, diff --git a/nuttx/drivers/wireless/cc3000/spi.c b/nuttx/drivers/wireless/cc3000/spi.c index a0d3b82c8..a237511ab 100644 --- a/nuttx/drivers/wireless/cc3000/spi.c +++ b/nuttx/drivers/wireless/cc3000/spi.c @@ -43,6 +43,10 @@ * Pre-processor Definitions *****************************************************************************/ +#ifndef CONFIG_CC3000_UNSOLICED_STACKSIZE +# define CONFIG_CC3000_UNSOLICED_STACKSIZE 264 +#endif + #undef SPI_DEBUG /* Define to enable debug */ #undef SPI_VERBOSE /* Define to enable verbose debug */ @@ -240,7 +244,7 @@ void SpiOpen(gcSpiHandleRx pfRxHandler) pthread_attr_t attr; struct sched_param param; pthread_attr_init(&attr); - attr.stacksize = 292; + attr.stacksize = CONFIG_CC3000_UNSOLICED_STACKSIZE; param.sched_priority = SCHED_PRIORITY_DEFAULT-10; pthread_attr_setschedparam(&attr, ¶m); status = pthread_create(&spiconf.unsoliced_thread, &attr, diff --git a/nuttx/drivers/wireless/cc3000/wlan.c b/nuttx/drivers/wireless/cc3000/wlan.c index 11c934b6c..ac6ba206a 100644 --- a/nuttx/drivers/wireless/cc3000/wlan.c +++ b/nuttx/drivers/wireless/cc3000/wlan.c @@ -176,14 +176,6 @@ static void SimpleLink_Init_Start(uint16_t usPatchesAvailableAtHost) * sFWPatches 0 no patch or pointer to FW patches * sDriverPatches 0 no patch or pointer to driver patches * sBootLoaderPatches 0 no patch or pointer to bootloader patches - * sReadWlanInterruptPin init callback. the callback read wlan - * interrupt status. - * sWlanInterruptEnable init callback. the callback enable wlan - * interrupt. - * sWlanInterruptDisable init callback. the callback disable wlan - * interrupt. - * sWriteWlanPin init callback. the callback write value - * to device pin. * * Returned Value: * None |