From 6c56be47ce245340129438daafa09b4b0a45b2d2 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Thu, 26 Mar 2020 23:23:17 +0100 Subject: [PATCH 2/6] remove platform files --- src/bsp/include/nm_bsp_arduino.h | 74 ------ src/bsp/include/nm_bsp_avr.h | 54 ----- src/bsp/include/nm_bsp_internal.h | 59 ----- src/bsp/include/nm_bsp_samd21.h | 52 ----- src/bsp/source/nm_bsp_arduino.c | 214 ------------------ src/bsp/source/nm_bsp_arduino_avr.c | 164 -------------- .../source/nm_bus_wrapper_samd21.cpp | 200 ---------------- 7 files changed, 817 deletions(-) delete mode 100644 src/bsp/include/nm_bsp_arduino.h delete mode 100644 src/bsp/include/nm_bsp_avr.h delete mode 100644 src/bsp/include/nm_bsp_internal.h delete mode 100644 src/bsp/include/nm_bsp_samd21.h delete mode 100644 src/bsp/source/nm_bsp_arduino.c delete mode 100644 src/bsp/source/nm_bsp_arduino_avr.c delete mode 100644 src/bus_wrapper/source/nm_bus_wrapper_samd21.cpp diff --git a/src/bsp/include/nm_bsp_arduino.h b/src/bsp/include/nm_bsp_arduino.h deleted file mode 100644 index 77417e8..0000000 --- a/src/bsp/include/nm_bsp_arduino.h +++ /dev/null @@ -1,74 +0,0 @@ -/** - * - * \file - * - * \brief This module contains NMC1500 BSP APIs definitions. - * - * Copyright (c) 2015 Atmel Corporation. All rights reserved. - * - * \asf_license_start - * - * \page License - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE - * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * \asf_license_stop - * - */ - -#ifndef _NM_BSP_ARDUINO_H_ -#define _NM_BSP_ARDUINO_H_ - -#include - -#include - -/* - * Arduino variants may redefine those pins. - * If no pins are specified the following defaults are used: - * WINC1501_RESET_PIN - pin 5 - * WINC1501_INTN_PIN - pin 7 - * WINC1501_CHIP_EN_PIN - not connected (tied to VCC) - */ -#if !defined(WINC1501_RESET_PIN) - #define WINC1501_RESET_PIN 5 -#endif -#if !defined(WINC1501_INTN_PIN) - #define WINC1501_INTN_PIN 7 -#endif -#if !defined(WINC1501_SPI_CS_PIN) - #define WINC1501_SPI_CS_PIN 10 -#endif -#if !defined(WINC1501_CHIP_EN_PIN) - #define WINC1501_CHIP_EN_PIN -1 -#endif - -extern int8_t gi8Winc1501CsPin; -extern int8_t gi8Winc1501ResetPin; -extern int8_t gi8Winc1501IntnPin; -extern int8_t gi8Winc1501ChipEnPin; - -#endif /* _NM_BSP_ARDUINO_H_ */ diff --git a/src/bsp/include/nm_bsp_avr.h b/src/bsp/include/nm_bsp_avr.h deleted file mode 100644 index c5991f2..0000000 --- a/src/bsp/include/nm_bsp_avr.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - * - * \file - * - * \brief This module contains NMC1500 BSP APIs definitions. - * - * Copyright (c) 2015 Atmel Corporation. All rights reserved. - * - * \asf_license_start - * - * \page License - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE - * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * \asf_license_stop - * - */ - -#ifndef _NM_BSP_AVR_H_ -#define _NM_BSP_AVR_H_ - -#pragma once - -#define NM_DEBUG 0 -#define NM_BSP_PRINTF - -#define CONF_WINC_USE_SPI 1 - -#define NM_EDGE_INTERRUPT 1 - -#endif /* _NM_BSP_AVR_H_ */ diff --git a/src/bsp/include/nm_bsp_internal.h b/src/bsp/include/nm_bsp_internal.h deleted file mode 100644 index 5117a1d..0000000 --- a/src/bsp/include/nm_bsp_internal.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - * - * \file - * - * \brief This module contains NMC1500 BSP APIs declarations. - * - * Copyright (c) 2015 Atmel Corporation. All rights reserved. - * - * \asf_license_start - * - * \page License - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE - * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * \asf_license_stop - * - */ -/**@defgroup BSPDefine Defines - * @ingroup nm_bsp - * @{ - */ -#ifndef _NM_BSP_INTERNAL_H_ -#define _NM_BSP_INTERNAL_H_ - -#ifdef ARDUINO_ARCH_AVR -#define LIMITED_RAM_DEVICE -#include "bsp/include/nm_bsp_avr.h" -#else -#include "bsp/include/nm_bsp_samd21.h" -#endif - -#if defined(ARDUINO) && !defined(ARDUINO_SAMD_MKR1000) -#define CONF_PERIPH -#endif - -#endif //_NM_BSP_INTERNAL_H_ \ No newline at end of file diff --git a/src/bsp/include/nm_bsp_samd21.h b/src/bsp/include/nm_bsp_samd21.h deleted file mode 100644 index 296cd20..0000000 --- a/src/bsp/include/nm_bsp_samd21.h +++ /dev/null @@ -1,52 +0,0 @@ -/** - * - * \file - * - * \brief This module contains NMC1500 BSP APIs definitions. - * - * Copyright (c) 2015 Atmel Corporation. All rights reserved. - * - * \asf_license_start - * - * \page License - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE - * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * \asf_license_stop - * - */ - -#ifndef _NM_BSP_SAMD21_H_ -#define _NM_BSP_SAMD21_H_ - -#define NM_DEBUG 0 -#define NM_BSP_PRINTF - -#define CONF_WINC_USE_SPI 1 - -#define NM_EDGE_INTERRUPT 1 - -#endif /* _NM_BSP_SAMD21_H_ */ diff --git a/src/bsp/source/nm_bsp_arduino.c b/src/bsp/source/nm_bsp_arduino.c deleted file mode 100644 index b10674b..0000000 --- a/src/bsp/source/nm_bsp_arduino.c +++ /dev/null @@ -1,214 +0,0 @@ -/** - * - * \file - * - * \brief This module contains SAMD21 BSP APIs implementation. - * - * Copyright (c) 2014 Atmel Corporation. All rights reserved. - * - * \asf_license_start - * - * \page License - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 4. This software may only be redistributed and used in connection with an - * Atmel microcontroller product. - * - * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE - * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * \asf_license_stop - * - */ - -#include "bsp/include/nm_bsp.h" -#include "bsp/include/nm_bsp_arduino.h" -#include "common/include/nm_common.h" - -int8_t gi8Winc1501CsPin = WINC1501_SPI_CS_PIN; -int8_t gi8Winc1501ResetPin = WINC1501_RESET_PIN; -int8_t gi8Winc1501IntnPin = WINC1501_INTN_PIN; -int8_t gi8Winc1501ChipEnPin = WINC1501_CHIP_EN_PIN; - -static tpfNmBspIsr gpfIsr; - -void __attribute__((weak)) attachInterruptMultiArch(uint32_t pin, void *chip_isr, uint32_t mode) -{ - attachInterrupt(pin, chip_isr, mode); -} - -void __attribute__((weak)) detachInterruptMultiArch(uint32_t pin) -{ - detachInterrupt(pin); -} - -static void chip_isr(void) -{ - if (gpfIsr) { - gpfIsr(); - } -} - -/* - * @fn init_chip_pins - * @brief Initialize reset, chip enable and wake pin - * @author M.S.M - * @date 11 July 2012 - * @version 1.0 - */ -static void init_chip_pins(void) -{ - if (gi8Winc1501ResetPin > -1) - { - /* Configure RESETN pin as output. */ - pinMode(gi8Winc1501ResetPin, OUTPUT); - digitalWrite(gi8Winc1501ResetPin, HIGH); - } - - /* Configure INTN pins as input. */ - pinMode(gi8Winc1501IntnPin, INPUT); - - if (gi8Winc1501ChipEnPin > -1) - { - /* Configure CHIP_EN as pull-up */ - pinMode(gi8Winc1501ChipEnPin, INPUT_PULLUP); - } -} - -static void deinit_chip_pins(void) -{ - if (gi8Winc1501ResetPin > -1) - { - digitalWrite(gi8Winc1501ResetPin, LOW); - pinMode(gi8Winc1501ResetPin, INPUT); - } - - if (gi8Winc1501ChipEnPin > -1) - { - pinMode(gi8Winc1501ChipEnPin, INPUT); - } -} - -/* - * @fn nm_bsp_init - * @brief Initialize BSP - * @return 0 in case of success and -1 in case of failure - * @author M.S.M - * @date 11 July 2012 - * @version 1.0 - */ -sint8 nm_bsp_init(void) -{ - gpfIsr = NULL; - - init_chip_pins(); - - nm_bsp_reset(); - - return M2M_SUCCESS; -} - -/** - * @fn nm_bsp_deinit - * @brief De-iInitialize BSP - * @return 0 in case of success and -1 in case of failure - * @author M. Abdelmawla - * @date 11 July 2012 - * @version 1.0 - */ -sint8 nm_bsp_deinit(void) -{ - deinit_chip_pins(); - - return M2M_SUCCESS; -} - -/** - * @fn nm_bsp_reset - * @brief Reset NMC1500 SoC by setting CHIP_EN and RESET_N signals low, - * CHIP_EN high then RESET_N high - * @author M. Abdelmawla - * @date 11 July 2012 - * @version 1.0 - */ -void nm_bsp_reset(void) -{ - if (gi8Winc1501ResetPin > -1) - { - digitalWrite(gi8Winc1501ResetPin, LOW); - nm_bsp_sleep(100); - digitalWrite(gi8Winc1501ResetPin, HIGH); - nm_bsp_sleep(100); - } -} - -/* - * @fn nm_bsp_sleep - * @brief Sleep in units of mSec - * @param[IN] u32TimeMsec - * Time in milliseconds - * @author M.S.M - * @date 28 OCT 2013 - * @version 1.0 - */ -void nm_bsp_sleep(uint32 u32TimeMsec) -{ - while (u32TimeMsec--) { - delay(1); - } -} - -/* - * @fn nm_bsp_register_isr - * @brief Register interrupt service routine - * @param[IN] pfIsr - * Pointer to ISR handler - * @author M.S.M - * @date 28 OCT 2013 - * @sa tpfNmBspIsr - * @version 1.0 - */ -void nm_bsp_register_isr(tpfNmBspIsr pfIsr) -{ - gpfIsr = pfIsr; - attachInterruptMultiArch(gi8Winc1501IntnPin, chip_isr, FALLING); -} - -/* - * @fn nm_bsp_interrupt_ctrl - * @brief Enable/Disable interrupts - * @param[IN] u8Enable - * '0' disable interrupts. '1' enable interrupts - * @author M.S.M - * @date 28 OCT 2013 - * @version 1.0 - */ -void nm_bsp_interrupt_ctrl(uint8 u8Enable) -{ - if (u8Enable) { - attachInterruptMultiArch(gi8Winc1501IntnPin, chip_isr, FALLING); - } else { - detachInterruptMultiArch(gi8Winc1501IntnPin); - } -} diff --git a/src/bsp/source/nm_bsp_arduino_avr.c b/src/bsp/source/nm_bsp_arduino_avr.c deleted file mode 100644 index 050d5d5..0000000 --- a/src/bsp/source/nm_bsp_arduino_avr.c +++ /dev/null @@ -1,164 +0,0 @@ -/** - * - * \file - * - * \brief This module contains SAMD21 BSP APIs implementation. - * - * Copyright (c) 2014 Atmel Corporation. All rights reserved. - * - * \asf_license_start - * - * \page License - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 4. This software may only be redistributed and used in connection with an - * Atmel microcontroller product. - * - * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE - * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * \asf_license_stop - * - */ - -#ifdef ARDUINO_ARCH_AVR - -#include "bsp/include/nm_bsp.h" -#include "bsp/include/nm_bsp_arduino.h" -#include "common/include/nm_common.h" - -#define IS_MEGA (defined(ARDUINO_AVR_MEGA) || defined(ARDUINO_AVR_MEGA2560)) - -static tpfNmBspIsr gpfIsr; - -volatile uint8_t *_receivePortRegister; -volatile uint8_t *_pcint_maskreg; -uint8_t _receiveBitMask; -volatile uint8_t prev_pin_read = 1; - -uint8_t rx_pin_read() -{ - return *_receivePortRegister & _receiveBitMask; -} - -#if !IS_MEGA - -#if defined(PCINT0_vect) -ISR(PCINT0_vect) -{ - if (!rx_pin_read() && gpfIsr) - { - gpfIsr(); - } -} -#endif - -#if defined(PCINT1_vect) -ISR(PCINT1_vect, ISR_ALIASOF(PCINT0_vect)); -#endif - -#if defined(PCINT2_vect) -ISR(PCINT2_vect, ISR_ALIASOF(PCINT0_vect)); -#endif - -#if defined(PCINT3_vect) -ISR(PCINT3_vect, ISR_ALIASOF(PCINT0_vect)); -#endif - -#endif // !IS_MEGA - -#if defined(TIMER4_OVF_vect) -ISR(TIMER4_OVF_vect) { - uint8_t curr_pin_read = rx_pin_read(); - if ((curr_pin_read != prev_pin_read) && !curr_pin_read && gpfIsr) - { - gpfIsr(); - } - prev_pin_read = curr_pin_read; -} - -// stategy 3 - start a timer and perform a sort of polling -void attachFakeInterruptToTimer(void) { - TCCR4B = (1< -#include - -/* - * Variants may define an alternative SPI instace to use for WiFi101. - * If not defined the following defaults are used: - * WINC1501_SPI - SPI - */ -#if !defined(WINC1501_SPI) - #define WINC1501_SPI SPI -#endif - -extern "C" { - -#include "bsp/include/nm_bsp.h" -#include "bsp/include/nm_bsp_arduino.h" -#include "common/include/nm_common.h" -#include "bus_wrapper/include/nm_bus_wrapper.h" - -} - -#define NM_BUS_MAX_TRX_SZ 256 - -tstrNmBusCapabilities egstrNmBusCapabilities = -{ - NM_BUS_MAX_TRX_SZ -}; - -static const SPISettings wifi_SPISettings(12000000L, MSBFIRST, SPI_MODE0); - -static sint8 spi_rw(uint8* pu8Mosi, uint8* pu8Miso, uint16 u16Sz) -{ - uint8 u8Dummy = 0; - uint8 u8SkipMosi = 0, u8SkipMiso = 0; - - if (!pu8Mosi) { - pu8Mosi = &u8Dummy; - u8SkipMosi = 1; - } - else if(!pu8Miso) { - pu8Miso = &u8Dummy; - u8SkipMiso = 1; - } - else { - return M2M_ERR_BUS_FAIL; - } - - WINC1501_SPI.beginTransaction(wifi_SPISettings); - digitalWrite(gi8Winc1501CsPin, LOW); - - while (u16Sz) { - *pu8Miso = WINC1501_SPI.transfer(*pu8Mosi); - - u16Sz--; - if (!u8SkipMiso) - pu8Miso++; - if (!u8SkipMosi) - pu8Mosi++; - } - - digitalWrite(gi8Winc1501CsPin, HIGH); - WINC1501_SPI.endTransaction(); - - return M2M_SUCCESS; -} - -extern "C" { - -/* -* @fn nm_bus_init -* @brief Initialize the bus wrapper -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -* @author M.S.M -* @date 28 oct 2013 -* @version 1.0 -*/ -sint8 nm_bus_init(void * /* pvInitValue */) -{ - sint8 result = M2M_SUCCESS; - - /* Configure SPI peripheral. */ - WINC1501_SPI.begin(); - - /* Configure CS PIN. */ - pinMode(gi8Winc1501CsPin, OUTPUT); - digitalWrite(gi8Winc1501CsPin, HIGH); - - /* Reset WINC1500. */ - nm_bsp_reset(); - nm_bsp_sleep(1); - - return result; -} - -/* -* @fn nm_bus_ioctl -* @brief send/receive from the bus -* @param[IN] u8Cmd -* IOCTL command for the operation -* @param[IN] pvParameter -* Arbitrary parameter depenging on IOCTL -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -* @author M.S.M -* @date 28 oct 2013 -* @note For SPI only, it's important to be able to send/receive at the same time -* @version 1.0 -*/ -sint8 nm_bus_ioctl(uint8 u8Cmd, void* pvParameter) -{ - sint8 s8Ret = 0; - switch(u8Cmd) - { - case NM_BUS_IOCTL_RW: { - tstrNmSpiRw *pstrParam = (tstrNmSpiRw *)pvParameter; - s8Ret = spi_rw(pstrParam->pu8InBuf, pstrParam->pu8OutBuf, pstrParam->u16Sz); - } - break; - default: - s8Ret = -1; - M2M_ERR("invalide ioclt cmd\n"); - break; - } - - return s8Ret; -} - -/* -* @fn nm_bus_deinit -* @brief De-initialize the bus wrapper -* @author M.S.M -* @date 28 oct 2013 -* @version 1.0 -*/ -sint8 nm_bus_deinit(void) -{ - WINC1501_SPI.end(); - return 0; -} - -/* -* @fn nm_bus_reinit -* @brief re-initialize the bus wrapper -* @param [in] void *config -* re-init configuration data -* @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure -* @author Dina El Sissy -* @date 19 Sept 2012 -* @version 1.0 -*/ -sint8 nm_bus_reinit(void* /* config */) -{ - return M2M_SUCCESS; -} - -} // extern "C" - -- 2.17.1