diff options
Diffstat (limited to 'stmhal/cc3k')
| -rw-r--r-- | stmhal/cc3k/inc/ccspi.h | 4 | ||||
| -rw-r--r-- | stmhal/cc3k/src/cc3000_common.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/ccspi.c | 88 | ||||
| -rw-r--r-- | stmhal/cc3k/src/evnt_handler.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/hci.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/inet_ntop.c | 4 | ||||
| -rw-r--r-- | stmhal/cc3k/src/inet_pton.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/netapp.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/nvmem.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/patch_prog.c | 4 | ||||
| -rw-r--r-- | stmhal/cc3k/src/security.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/socket.c | 3 | ||||
| -rw-r--r-- | stmhal/cc3k/src/wlan.c | 3 |
13 files changed, 50 insertions, 77 deletions
diff --git a/stmhal/cc3k/inc/ccspi.h b/stmhal/cc3k/inc/ccspi.h index eb0e5d385..4f5e2a2bb 100644 --- a/stmhal/cc3k/inc/ccspi.h +++ b/stmhal/cc3k/inc/ccspi.h @@ -56,6 +56,10 @@ extern unsigned char wlan_tx_buffer[]; // Prototypes for the APIs. // //***************************************************************************** + +// the arguments must be of type pin_obj_t* and SPI_HandleTypeDef* +extern void SpiInit(void *spi, const void *pin_cs, const void *pin_en, const void *pin_irq); + extern void SpiOpen(gcSpiHandleRx pfRxHandler); extern void SpiClose(void); extern void SpiPauseSpi(void); diff --git a/stmhal/cc3k/src/cc3000_common.c b/stmhal/cc3k/src/cc3000_common.c index 7759cb20f..b4c87848c 100644 --- a/stmhal/cc3k/src/cc3000_common.c +++ b/stmhal/cc3k/src/cc3000_common.c @@ -43,8 +43,6 @@ * Include files * *****************************************************************************/ -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include "cc3000_common.h" #include "socket.h" @@ -164,4 +162,3 @@ UINT32 STREAM_TO_UINT32_f(CHAR* p, UINT16 offset) //! @} // //***************************************************************************** -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/ccspi.c b/stmhal/cc3k/src/ccspi.c index 0352c6e40..2abc637fe 100644 --- a/stmhal/cc3k/src/ccspi.c +++ b/stmhal/cc3k/src/ccspi.c @@ -31,8 +31,6 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *****************************************************************************/ -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include <string.h> @@ -44,7 +42,6 @@ #include "obj.h" #include "runtime.h" #include "pin.h" -#include "genhdr/pins.h" #include "led.h" #include "extint.h" #include "spi.h" @@ -58,14 +55,14 @@ #define DEBUG_printf(args...) (void)0 #endif -#define PIN_CS MICROPY_HW_WLAN_PIN_CS -#define PIN_EN MICROPY_HW_WLAN_PIN_EN -#define PIN_IRQ MICROPY_HW_WLAN_PIN_IRQ -#define SPI_HANDLE MICROPY_HW_WLAN_SPI_HANDLE -#define IRQ_LINE MICROPY_HW_WLAN_IRQ_LINE +// these need to be set to valid values before anything in this file will work +STATIC SPI_HandleTypeDef *SPI_HANDLE = NULL; +STATIC const pin_obj_t *PIN_CS = NULL; +STATIC const pin_obj_t *PIN_EN = NULL; +STATIC const pin_obj_t *PIN_IRQ = NULL; -#define CS_LOW() HAL_GPIO_WritePin(PIN_CS.gpio, PIN_CS.pin_mask, GPIO_PIN_RESET) -#define CS_HIGH() HAL_GPIO_WritePin(PIN_CS.gpio, PIN_CS.pin_mask, GPIO_PIN_SET) +#define CS_LOW() HAL_GPIO_WritePin(PIN_CS->gpio, PIN_CS->pin_mask, GPIO_PIN_RESET) +#define CS_HIGH() HAL_GPIO_WritePin(PIN_CS->gpio, PIN_CS->pin_mask, GPIO_PIN_SET) #define READ 3 #define WRITE 1 @@ -106,10 +103,19 @@ tSpiInformation sSpiInformation; char spi_buffer[CC3000_RX_BUFFER_SIZE]; unsigned char wlan_tx_buffer[CC3000_TX_BUFFER_SIZE]; -static const mp_obj_fun_native_t irq_callback_obj; +STATIC const mp_obj_fun_builtin_t irq_callback_obj; void SpiWriteDataSynchronous(unsigned char *data, unsigned short size); void SpiReadDataSynchronous(unsigned char *data, unsigned short size); +// set the pins to use to communicate with the CC3000 +// the arguments must be of type pin_obj_t* and SPI_HandleTypeDef* +void SpiInit(void *spi, const void *pin_cs, const void *pin_en, const void *pin_irq) { + SPI_HANDLE = spi; + PIN_CS = pin_cs; + PIN_EN = pin_en; + PIN_IRQ = pin_irq; +} + void SpiClose(void) { if (sSpiInformation.pRxPacket) { @@ -118,7 +124,7 @@ void SpiClose(void) tSLInformation.WlanInterruptDisable(); - //HAL_SPI_DeInit(&SPI_HANDLE); + //HAL_SPI_DeInit(SPI_HANDLE); } void SpiOpen(gcSpiHandleRx pfRxHandler) @@ -136,18 +142,18 @@ void SpiOpen(gcSpiHandleRx pfRxHandler) wlan_tx_buffer[CC3000_TX_BUFFER_SIZE - 1] = CC3000_BUFFER_MAGIC_NUMBER; /* SPI configuration */ - SPI_HANDLE.Init.Mode = SPI_MODE_MASTER; - SPI_HANDLE.Init.Direction = SPI_DIRECTION_2LINES; - SPI_HANDLE.Init.DataSize = SPI_DATASIZE_8BIT; - SPI_HANDLE.Init.CLKPolarity = SPI_POLARITY_LOW; - SPI_HANDLE.Init.CLKPhase = SPI_PHASE_2EDGE; - SPI_HANDLE.Init.NSS = SPI_NSS_SOFT; - SPI_HANDLE.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; - SPI_HANDLE.Init.FirstBit = SPI_FIRSTBIT_MSB; - SPI_HANDLE.Init.TIMode = SPI_TIMODE_DISABLED; - SPI_HANDLE.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; - SPI_HANDLE.Init.CRCPolynomial = 7; - spi_init(&SPI_HANDLE); + SPI_HANDLE->Init.Mode = SPI_MODE_MASTER; + SPI_HANDLE->Init.Direction = SPI_DIRECTION_2LINES; + SPI_HANDLE->Init.DataSize = SPI_DATASIZE_8BIT; + SPI_HANDLE->Init.CLKPolarity = SPI_POLARITY_LOW; + SPI_HANDLE->Init.CLKPhase = SPI_PHASE_2EDGE; + SPI_HANDLE->Init.NSS = SPI_NSS_SOFT; + SPI_HANDLE->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; + SPI_HANDLE->Init.FirstBit = SPI_FIRSTBIT_MSB; + SPI_HANDLE->Init.TIMode = SPI_TIMODE_DISABLED; + SPI_HANDLE->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; + SPI_HANDLE->Init.CRCPolynomial = 7; + spi_init(SPI_HANDLE); // configure wlan CS and EN pins GPIO_InitTypeDef GPIO_InitStructure; @@ -156,48 +162,48 @@ void SpiOpen(gcSpiHandleRx pfRxHandler) GPIO_InitStructure.Pull = GPIO_NOPULL; GPIO_InitStructure.Alternate = 0; - GPIO_InitStructure.Pin = PIN_CS.pin_mask; - HAL_GPIO_Init(PIN_CS.gpio, &GPIO_InitStructure); + GPIO_InitStructure.Pin = PIN_CS->pin_mask; + HAL_GPIO_Init(PIN_CS->gpio, &GPIO_InitStructure); - GPIO_InitStructure.Pin = PIN_EN.pin_mask; - HAL_GPIO_Init(PIN_EN.gpio, &GPIO_InitStructure); + GPIO_InitStructure.Pin = PIN_EN->pin_mask; + HAL_GPIO_Init(PIN_EN->gpio, &GPIO_InitStructure); - HAL_GPIO_WritePin(PIN_CS.gpio, PIN_CS.pin_mask, GPIO_PIN_SET); - HAL_GPIO_WritePin(PIN_EN.gpio, PIN_EN.pin_mask, GPIO_PIN_RESET); + HAL_GPIO_WritePin(PIN_CS->gpio, PIN_CS->pin_mask, GPIO_PIN_SET); + HAL_GPIO_WritePin(PIN_EN->gpio, PIN_EN->pin_mask, GPIO_PIN_RESET); /* do a dummy read, this ensures SCLK is low before actual communications start, it might be required */ CS_LOW(); uint8_t buf[1]; - HAL_SPI_Receive(&SPI_HANDLE, buf, sizeof(buf), SPI_TIMEOUT); + HAL_SPI_Receive(SPI_HANDLE, buf, sizeof(buf), SPI_TIMEOUT); CS_HIGH(); // register EXTI - extint_register((mp_obj_t)&PIN_IRQ, GPIO_MODE_IT_FALLING, GPIO_PULLUP, (mp_obj_t)&irq_callback_obj, true, NULL); - extint_enable(IRQ_LINE); + extint_register((mp_obj_t)PIN_IRQ, GPIO_MODE_IT_FALLING, GPIO_PULLUP, (mp_obj_t)&irq_callback_obj, true, NULL); + extint_enable(PIN_IRQ->pin); - DEBUG_printf("SpiOpen finished; IRQ.pin=%d IRQ_LINE=%d\n", PIN_IRQ.pin, IRQ_LINE); + DEBUG_printf("SpiOpen finished; IRQ.pin=%d IRQ_LINE=%d\n", PIN_IRQ->pin, PIN_IRQ->pin); } void SpiPauseSpi(void) { - extint_disable(IRQ_LINE); + extint_disable(PIN_IRQ->pin); } void SpiResumeSpi(void) { - extint_enable(IRQ_LINE); + extint_enable(PIN_IRQ->pin); } long ReadWlanInterruptPin(void) { - return HAL_GPIO_ReadPin(PIN_IRQ.gpio, PIN_IRQ.pin_mask); + return HAL_GPIO_ReadPin(PIN_IRQ->gpio, PIN_IRQ->pin_mask); } void WriteWlanPin(unsigned char val) { - HAL_GPIO_WritePin(PIN_EN.gpio, PIN_EN.pin_mask, + HAL_GPIO_WritePin(PIN_EN->gpio, PIN_EN->pin_mask, (WLAN_ENABLE)? GPIO_PIN_SET:GPIO_PIN_RESET); } @@ -306,7 +312,7 @@ void SpiWriteDataSynchronous(unsigned char *data, unsigned short size) { DEBUG_printf("SpiWriteDataSynchronous(data=%p [%x %x %x %x], size=%u)\n", data, data[0], data[1], data[2], data[3], size); __disable_irq(); - if (HAL_SPI_TransmitReceive(&SPI_HANDLE, data, data, size, SPI_TIMEOUT) != HAL_OK) { + if (HAL_SPI_TransmitReceive(SPI_HANDLE, data, data, size, SPI_TIMEOUT) != HAL_OK) { //BREAK(); } __enable_irq(); @@ -317,7 +323,7 @@ void SpiReadDataSynchronous(unsigned char *data, unsigned short size) { memset(data, READ, size); __disable_irq(); - if (HAL_SPI_TransmitReceive(&SPI_HANDLE, data, data, size, SPI_TIMEOUT) != HAL_OK) { + if (HAL_SPI_TransmitReceive(SPI_HANDLE, data, data, size, SPI_TIMEOUT) != HAL_OK) { //BREAK(); } __enable_irq(); @@ -453,5 +459,3 @@ STATIC mp_obj_t irq_callback(mp_obj_t line) } STATIC MP_DEFINE_CONST_FUN_OBJ_1(irq_callback_obj, irq_callback); - -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/evnt_handler.c b/stmhal/cc3k/src/evnt_handler.c index 2733408b7..80f34e469 100644 --- a/stmhal/cc3k/src/evnt_handler.c +++ b/stmhal/cc3k/src/evnt_handler.c @@ -42,8 +42,6 @@ //****************************************************************************** // INCLUDE FILES //****************************************************************************** -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include "cc3000_common.h" #include "string.h" @@ -849,4 +847,3 @@ void SimpleLinkWaitData(UINT8 *pBuf, UINT8 *from, UINT8 *fromlen) //! @} // //***************************************************************************** -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/hci.c b/stmhal/cc3k/src/hci.c index d476b3b33..4391692b8 100644 --- a/stmhal/cc3k/src/hci.c +++ b/stmhal/cc3k/src/hci.c @@ -39,8 +39,6 @@ //! @{ // //***************************************************************************** -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include <string.h> #include "cc3000_common.h" @@ -225,4 +223,3 @@ void hci_patch_send(UINT8 ucOpcode, UINT8 *pucBuff, CHAR *patch, UINT16 usDataLe // // //***************************************************************************** -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/inet_ntop.c b/stmhal/cc3k/src/inet_ntop.c index 1d03c82b0..1b7e01a23 100644 --- a/stmhal/cc3k/src/inet_ntop.c +++ b/stmhal/cc3k/src/inet_ntop.c @@ -15,9 +15,6 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K - #include <std.h> #include <string.h> #include "cc3000_common.h" @@ -197,4 +194,3 @@ char *inet_ntop(int af, const void *src, char *buf, size_t size) return NULL; } } -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/inet_pton.c b/stmhal/cc3k/src/inet_pton.c index 8193d173a..88c785866 100644 --- a/stmhal/cc3k/src/inet_pton.c +++ b/stmhal/cc3k/src/inet_pton.c @@ -15,8 +15,6 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include <string.h> #include "cc3000_common.h" @@ -216,4 +214,3 @@ static int inet_pton6(const char *src, unsigned char *dst) return (1); } #endif /* ENABLE_IPV6 */ -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/netapp.c b/stmhal/cc3k/src/netapp.c index a0f75894d..a6f60feda 100644 --- a/stmhal/cc3k/src/netapp.c +++ b/stmhal/cc3k/src/netapp.c @@ -32,8 +32,6 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *****************************************************************************/ -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include <string.h> #include "netapp.h" @@ -459,4 +457,3 @@ INT32 netapp_set_debug_level(UINT32 ulLevel) } #endif -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/nvmem.c b/stmhal/cc3k/src/nvmem.c index 4897ab3a6..c6e170a74 100644 --- a/stmhal/cc3k/src/nvmem.c +++ b/stmhal/cc3k/src/nvmem.c @@ -39,8 +39,6 @@ //! @{ // //***************************************************************************** -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include <string.h> #include "nvmem.h" @@ -334,4 +332,3 @@ INT32 nvmem_create_entry(UINT32 ulFileId, UINT32 ulNewLen) //! @} // //***************************************************************************** -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/patch_prog.c b/stmhal/cc3k/src/patch_prog.c index cda312036..fd128928f 100644 --- a/stmhal/cc3k/src/patch_prog.c +++ b/stmhal/cc3k/src/patch_prog.c @@ -1,6 +1,3 @@ -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K - #include <stdio.h> #include <string.h> #include "cc3000_common.h" @@ -415,4 +412,3 @@ void patch_prog_start() // Patch update done printf("All done, call wlan.patch_version()\n"); } -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/security.c b/stmhal/cc3k/src/security.c index e2ddb32da..62b4f8813 100644 --- a/stmhal/cc3k/src/security.c +++ b/stmhal/cc3k/src/security.c @@ -39,8 +39,6 @@ //! @{ // //***************************************************************************** -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include "security.h" @@ -530,4 +528,3 @@ INT32 aes_write_key(UINT8 *key) //! @} // //***************************************************************************** -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/socket.c b/stmhal/cc3k/src/socket.c index ea7e59799..bcc608e5f 100644 --- a/stmhal/cc3k/src/socket.c +++ b/stmhal/cc3k/src/socket.c @@ -39,8 +39,6 @@ //! @{ // //***************************************************************************** -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include <string.h> #include <stdlib.h> @@ -1182,4 +1180,3 @@ UINT16 getmssvalue (INT32 sd) return ret; } -#endif // MICROPY_HW_ENABLE_CC3K diff --git a/stmhal/cc3k/src/wlan.c b/stmhal/cc3k/src/wlan.c index ff010519f..0514d1150 100644 --- a/stmhal/cc3k/src/wlan.c +++ b/stmhal/cc3k/src/wlan.c @@ -39,8 +39,6 @@ //! @{ // //***************************************************************************** -#include "mpconfigport.h" -#if MICROPY_HW_ENABLE_CC3K #include <string.h> #include "wlan.h" @@ -1252,4 +1250,3 @@ INT32 wlan_smart_config_process() //! @} // //***************************************************************************** -#endif // MICROPY_HW_ENABLE_CC3K |
