Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MaximInterface
Diff: CC3100_transport.cpp
- Revision:
- 0:33d4e66780c0
- Child:
- 2:50d5ecf99275
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CC3100_transport.cpp Fri Feb 24 11:23:12 2017 -0600
@@ -0,0 +1,106 @@
+/*******************************************************************************
+* Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
+* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+* OTHER DEALINGS IN THE SOFTWARE.
+*
+* Except as contained in this notice, the name of Maxim Integrated
+* Products, Inc. shall not be used except as stated in the Maxim Integrated
+* Products, Inc. Branding Policy.
+*
+* The mere transfer of this software does not imply any licenses
+* of trade secrets, proprietary technology, copyrights, patents,
+* trademarks, maskwork rights, or any other form of intellectual
+* property whatsoever. Maxim Integrated Products, Inc. retains all
+* ownership rights.
+*******************************************************************************/
+
+#include <sstream>
+#include <cstring>
+#include <InterruptIn.h>
+#include <DigitalOut.h>
+#include "CC3100.hpp"
+#include "CC3100_transport.h"
+#include "CC3100_pins.h"
+
+static const SlFd_t invalidFd = NULL;
+
+static mbed::InterruptIn irq(HOST_INTR_PIN);
+static mbed::DigitalOut nHIB(nHIB_PIN, 0);
+
+static SL_P_EVENT_HANDLER pIrqEventHandler = NULL;
+static void* pIrqEventHandlerValue = NULL;
+
+SlFd_t sl_IfOpen(const char *ifName, unsigned long flags)
+{
+ SlFd_t fd = invalidFd;
+ if (ifName != NULL)
+ {
+ std::string ifNameString(ifName);
+ std::istringstream ifNameStream(ifNameString);
+ ifNameStream >> fd;
+ }
+ return fd;
+}
+
+int sl_IfClose(SlFd_t fd)
+{
+ return 0; // Success
+}
+
+int sl_IfRead(SlFd_t fd, unsigned char *pBuff, int len)
+{
+ if (fd == invalidFd)
+ return 0; // Failure
+ std::memset(pBuff, 0xFF, len);
+ static_cast<CC3100::SPI *>(fd)->transfer(pBuff, len, pBuff);
+ return len; // Success
+}
+
+int sl_IfWrite(SlFd_t fd, const unsigned char *pBuff, int len)
+{
+ if (fd == invalidFd)
+ return 0; // Failure
+ static_cast<CC3100::SPI *>(fd)->transfer(pBuff, len, NULL);
+ return len; // Success
+}
+
+int sl_IfRegIntHdlr(SL_P_EVENT_HANDLER InterruptHdl , void* pValue)
+{
+ pIrqEventHandler = InterruptHdl;
+ pIrqEventHandlerValue = pValue;
+ return 0; // Success
+}
+
+static void interruptHandler(void)
+{
+ if (pIrqEventHandler != NULL)
+ pIrqEventHandler(pIrqEventHandlerValue);
+}
+
+void sl_DeviceEnable(void)
+{
+ irq.rise(&interruptHandler);
+ nHIB = 1;
+}
+
+void sl_DeviceDisable(void)
+{
+ irq.rise(NULL);
+ nHIB = 0;
+}