License headers and code style fixes.

This commit is contained in:
Marco Grella 2015-10-09 19:40:39 +02:00
parent 875bfd0a1a
commit fc65757114
45 changed files with 12232 additions and 12337 deletions

View file

@ -25,7 +25,7 @@ CONTIKI_CPU_ARCH= watchdog.c \
clock.c clock.c
ifdef GCC ifdef GCC
CONTIKI_CPU_PORT= sysmem.c \ CONTIKI_CPU_PORT= syscalls.c \
console.c \ console.c \
crt.c \ crt.c \
uart.c uart.c

View file

@ -1,33 +1,33 @@
/* /*
* Copyright (c) 2012, STMicroelectronics. * Copyright (c) 2012, STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
* are met: * are met:
* 1. Redistributions of source code must retain the above copyright * 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
* 3. Neither the name of the Institute nor the names of its contributors * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * 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 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* *
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include <stdio.h> #include <stdio.h>
#include "contiki.h" #include "contiki.h"
@ -40,13 +40,14 @@
#include "stm32l1xx_hal.h" #include "stm32l1xx_hal.h"
#include "st-lib.h" #include "st-lib.h"
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#define RELOAD_VALUE ((F_CPU/CLOCK_CONF_SECOND) - 1) #define RELOAD_VALUE ((F_CPU / CLOCK_CONF_SECOND) - 1)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static volatile unsigned long seconds = 0; static volatile unsigned long seconds = 0;
static volatile clock_time_t ticks; static volatile clock_time_t ticks;
void st_lib_sys_tick_handler(void); void st_lib_sys_tick_handler(void);
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void st_lib_sys_tick_handler(void) void
st_lib_sys_tick_handler(void)
{ {
ticks++; ticks++;
if((ticks % CLOCK_SECOND) == 0) { if((ticks % CLOCK_SECOND) == 0) {
@ -60,29 +61,34 @@ void st_lib_sys_tick_handler(void)
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void clock_init(void) void
clock_init(void)
{ {
ticks = 0; ticks = 0;
st_lib_hal_systick_clk_source_config(SYSTICK_CLKSOURCE_HCLK); st_lib_hal_systick_clk_source_config(SYSTICK_CLKSOURCE_HCLK);
st_lib_hal_systick_config(RELOAD_VALUE); st_lib_hal_systick_config(RELOAD_VALUE);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
unsigned long clock_seconds(void) unsigned long
clock_seconds(void)
{ {
return seconds; return seconds;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void clock_set_seconds(unsigned long sec) void
clock_set_seconds(unsigned long sec)
{ {
seconds = sec; seconds = sec;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
clock_time_t clock_time(void) clock_time_t
clock_time(void)
{ {
return ticks; return ticks;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void clock_delay(unsigned int i) void
clock_delay(unsigned int i)
{ {
for(; i > 0; i--) { for(; i > 0; i--) {
unsigned int j; unsigned int j;
@ -93,10 +99,11 @@ void clock_delay(unsigned int i)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* Wait for a multiple of clock ticks (7.8 ms at 128 Hz). */ /* Wait for a multiple of clock ticks (7.8 ms at 128 Hz). */
void clock_wait(clock_time_t t) void
clock_wait(clock_time_t t)
{ {
clock_time_t start; clock_time_t start;
start = clock_time(); start = clock_time();
while(clock_time() - start < (clock_time_t)t); while(clock_time() - start < (clock_time_t)t) ;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/

View file

@ -1,38 +1,32 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file console.c * All rights reserved.
* @author AST
* @version V1.0.0
* @date 26-Aug-2014
* @brief This file provides implementation of standard input/output
******************************************************************************
* @attention
* *
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * Redistribution and use in source and binary forms, with or without
* * modification, are permitted provided that the following conditions
* Redistribution and use in source and binary forms, with or without modification, * are met:
* are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright
* 1. Redistributions of source code must retain the above copyright notice, * notice, this list of conditions and the following disclaimer.
* this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright
* 2. Redistributions in binary form must reproduce the above copyright notice, * notice, this list of conditions and the following disclaimer in the
* this list of conditions and the following disclaimer in the documentation * documentation and/or other materials provided with the distribution.
* and/or other materials provided with the distribution. * 3. Neither the name of the Institute nor the names of its contributors
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* *
******************************************************************************
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include <stdio.h> #include <stdio.h>
@ -49,7 +43,8 @@ extern st_lib_uart_handle_typedef st_lib_uart_handle;
* @brief Initialises Nucleo UART port for user IO * @brief Initialises Nucleo UART port for user IO
* @retval 0 * @retval 0
*/ */
int console_init(void) int
console_init(void)
{ {
st_lib_uart_handle.Instance = USART2; st_lib_uart_handle.Instance = USART2;
@ -69,7 +64,8 @@ int console_init(void)
* @param ch Character to send * @param ch Character to send
* @retval Character sent * @retval Character sent
*/ */
int uart_send_char(int ch) int
uart_send_char(int ch)
{ {
st_lib_hal_uart_transmit(&st_lib_uart_handle, (uint8_t *)&ch, 1, HAL_MAX_DELAY); st_lib_hal_uart_transmit(&st_lib_uart_handle, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
return ch; return ch;
@ -78,7 +74,8 @@ int uart_send_char(int ch)
/** @brief Receives a character from serial port /** @brief Receives a character from serial port
* @retval Character received * @retval Character received
*/ */
int uart_receive_char(void) int
uart_receive_char(void)
{ {
uint8_t ch; uint8_t ch;
st_lib_hal_uart_receive(&st_lib_uart_handle, &ch, 1, HAL_MAX_DELAY); st_lib_hal_uart_receive(&st_lib_uart_handle, &ch, 1, HAL_MAX_DELAY);
@ -87,7 +84,7 @@ int uart_receive_char(void)
st_lib_hal_uart_transmit(&st_lib_uart_handle, &ch, 1, HAL_MAX_DELAY); st_lib_hal_uart_transmit(&st_lib_uart_handle, &ch, 1, HAL_MAX_DELAY);
/* And cope with Windows */ /* And cope with Windows */
if(ch == '\r'){ if(ch == '\r') {
uint8_t ret = '\n'; uint8_t ret = '\n';
st_lib_hal_uart_transmit(&st_lib_uart_handle, &ret, 1, HAL_MAX_DELAY); st_lib_hal_uart_transmit(&st_lib_uart_handle, &ret, 1, HAL_MAX_DELAY);
} }
@ -95,9 +92,9 @@ int uart_receive_char(void)
return ch; return ch;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#if defined (__IAR_SYSTEMS_ICC__) #if defined(__IAR_SYSTEMS_ICC__)
size_t __write(int Handle, const unsigned char * Buf, size_t Bufsize); size_t __write(int Handle, const unsigned char *Buf, size_t Bufsize);
size_t __read(int Handle, unsigned char *Buf, size_t Bufsize); size_t __read(int Handle, unsigned char *Buf, size_t Bufsize);
/** @brief IAR specific low level standard input /** @brief IAR specific low level standard input
@ -106,79 +103,82 @@ size_t __read(int Handle, unsigned char *Buf, size_t Bufsize);
* @param bufsize Number of characters to read * @param bufsize Number of characters to read
* @retval Number of characters read * @retval Number of characters read
*/ */
size_t __read(int handle, unsigned char *buf, size_t bufsize) size_t
__read(int handle, unsigned char *buf, size_t bufsize)
{ {
int i; int i;
if (handle != 0){ if(handle != 0) {
return -1; return -1;
} }
for(i=0; i<bufsize; i++) { for(i = 0; i < bufsize; i++) {
buf[i] = uart_receive_char(); buf[i] = uart_receive_char();
} }
return bufsize; return bufsize;
} }
/** @brief IAR specific low level standard output /** @brief IAR specific low level standard output
* @param handle IAR internal handle * @param handle IAR internal handle
* @param buf Buffer containing characters to be written to stdout * @param buf Buffer containing characters to be written to stdout
* @param bufsize Number of characters to write * @param bufsize Number of characters to write
* @retval Number of characters read * @retval Number of characters read
*/ */
size_t __write(int handle, const unsigned char * buf, size_t bufsize) size_t
__write(int handle, const unsigned char *buf, size_t bufsize)
{ {
int i; int i;
if (handle != 1 && handle != 2) { if(handle != 1 && handle != 2) {
return -1; return -1;
} }
for(i=0; i< bufsize; i++) { for(i = 0; i < bufsize; i++) {
uart_send_char(buf[i]); uart_send_char(buf[i]);
} }
return bufsize; return bufsize;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#elif defined (__CC_ARM) #elif defined(__CC_ARM)
/** /**
* @brief fputc call for standard output implementation * @brief fputc call for standard output implementation
* @param ch Character to print * @param ch Character to print
* @param f File pointer * @param f File pointer
* @retval Character printed * @retval Character printed
*/ */
int fputc(int ch, FILE *f) int
fputc(int ch, FILE *f)
{ {
return uart_send_char(ch); return uart_send_char(ch);
} }
/** @brief fgetc call for standard input implementation /** @brief fgetc call for standard input implementation
* @param f File pointer * @param f File pointer
* @retval Character acquired from standard input * @retval Character acquired from standard input
*/ */
int fgetc(FILE *f) int
fgetc(FILE *f)
{ {
return uart_receive_char(); return uart_receive_char();
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#elif defined (__GNUC__) #elif defined(__GNUC__)
/** @brief putchar call for standard output implementation /** @brief putchar call for standard output implementation
* @param ch Character to print * @param ch Character to print
* @retval Character printed * @retval Character printed
*/ */
int __io_putchar(int ch) int
__io_putchar(int ch)
{ {
return uart_send_char(ch); return uart_send_char(ch);
} }
/** @brief getchar call for standard input implementation /** @brief getchar call for standard input implementation
* @param None * @param None
* @retval Character acquired from standard input * @retval Character acquired from standard input
*/ */
int __io_getchar(void) int
__io_getchar(void)
{ {
return uart_receive_char(); return uart_receive_char();
} }

View file

@ -1,45 +1,39 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file console.h * All rights reserved.
* @author AST
* @version V1.0.0
* @date 26-Aug-2014
* @brief This file provides implementation of standard input/output
******************************************************************************
* @attention
* *
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * Redistribution and use in source and binary forms, with or without
* * modification, are permitted provided that the following conditions
* Redistribution and use in source and binary forms, with or without modification, * are met:
* are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright
* 1. Redistributions of source code must retain the above copyright notice, * notice, this list of conditions and the following disclaimer.
* this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright
* 2. Redistributions in binary form must reproduce the above copyright notice, * notice, this list of conditions and the following disclaimer in the
* this list of conditions and the following disclaimer in the documentation * documentation and/or other materials provided with the distribution.
* and/or other materials provided with the distribution. * 3. Neither the name of the Institute nor the names of its contributors
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* *
******************************************************************************
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#if defined (__IAR_SYSTEMS_ICC__) #if defined(__IAR_SYSTEMS_ICC__)
size_t __write(int handle, const unsigned char * buf, size_t bufsize); size_t __write(int handle, const unsigned char *buf, size_t bufsize);
size_t __read(int handle, unsigned char *buf, size_t bufsize); size_t __read(int handle, unsigned char *buf, size_t bufsize);
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#elif defined (__CC_ARM) #elif defined(__CC_ARM)
/** /**
* @brief fputc call for standard output implementation * @brief fputc call for standard output implementation
* @param ch Character to print * @param ch Character to print
@ -54,7 +48,7 @@ int fputc(int ch, FILE *f);
*/ */
int fgetc(FILE *f); int fgetc(FILE *f);
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#elif defined (__GNUC__) #elif defined(__GNUC__)
/** @brief putchar call for standard output implementation /** @brief putchar call for standard output implementation
* @param ch Character to print * @param ch Character to print
* @retval Character printed * @retval Character printed

View file

@ -1,84 +1,86 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file main.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief source file * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include <stdio.h> #include <stdio.h>
#include <sys/stat.h> #include <sys/stat.h>
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int _lseek (int file, int
_lseek(int file,
int ptr, int ptr,
int dir) int dir)
{ {
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int _close (int file) int
_close(int file)
{ {
return -1; return -1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void _exit (int n) void
_exit(int n)
{ {
/* FIXME: return code is thrown away. */ /* FIXME: return code is thrown away. */
while(1); while(1) ;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int _kill (int n, int m) int
_kill(int n, int m)
{ {
return -1; return -1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int _fstat(int file, struct stat *st) int
_fstat(int file, struct stat *st)
{ {
st->st_mode = S_IFCHR; st->st_mode = S_IFCHR;
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int _isatty (int fd) int
_isatty(int fd)
{ {
return 1; return 1;
fd = fd; fd = fd;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int _getpid (int n) int
_getpid(int n)
{ {
return -1; return -1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int _open (const char * path, int flags, ...) int
_open(const char *path, int flags, ...)
{ {
return -1; return -1;
} }

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file console.c * All rights reserved.
* @author AST
* @version V1.0.0
* @date 26-Aug-2014
* @brief This file provides implementation of standard input/output
******************************************************************************
* @attention
* *
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * Redistribution and use in source and binary forms, with or without
* * modification, are permitted provided that the following conditions
* Redistribution and use in source and binary forms, with or without modification, * are met:
* are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright
* 1. Redistributions of source code must retain the above copyright notice, * notice, this list of conditions and the following disclaimer.
* this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright
* 2. Redistributions in binary form must reproduce the above copyright notice, * notice, this list of conditions and the following disclaimer in the
* this list of conditions and the following disclaimer in the documentation * documentation and/or other materials provided with the distribution.
* and/or other materials provided with the distribution. * 3. Neither the name of the Institute nor the names of its contributors
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* *
******************************************************************************
*/ */
/*---------------------------------------------------------------------------*/
/* /*
* Implementation of multithreading in ARM Cortex-M3. To be done. * Implementation of multithreading in ARM Cortex-M3. To be done.
*/ */

File diff suppressed because it is too large Load diff

View file

@ -1,33 +1,33 @@
/* /*
* Copyright (c) 2012, STMicroelectronics. * Copyright (c) 2012, STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
* are met: * are met:
* 1. Redistributions of source code must retain the above copyright * 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
* 3. Neither the name of the Institute nor the names of its contributors * 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * 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 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* *
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include "contiki.h" #include "contiki.h"
#include "platform-conf.h" #include "platform-conf.h"
@ -47,7 +47,8 @@ volatile uint32_t rtimer_clock = 0uL;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
st_lib_tim_handle_typedef htim2; st_lib_tim_handle_typedef htim2;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void st_lib_tim2_irq_handler(void) void
st_lib_tim2_irq_handler(void)
{ {
/* clear interrupt pending flag */ /* clear interrupt pending flag */
st_lib_hal_tim_clear_it(&htim2, TIM_IT_UPDATE); st_lib_hal_tim_clear_it(&htim2, TIM_IT_UPDATE);
@ -55,7 +56,8 @@ void st_lib_tim2_irq_handler(void)
rtimer_clock++; rtimer_clock++;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void rtimer_arch_init(void) void
rtimer_arch_init(void)
{ {
st_lib_tim_clock_config_typedef s_clock_source_config; st_lib_tim_clock_config_typedef s_clock_source_config;
st_lib_tim_oc_init_typedef s_config_oc; st_lib_tim_oc_init_typedef s_config_oc;
@ -79,7 +81,6 @@ void rtimer_arch_init(void)
s_config_oc.OCPolarity = TIM_OCPOLARITY_HIGH; s_config_oc.OCPolarity = TIM_OCPOLARITY_HIGH;
st_lib_hal_tim_oc_config_channel(&htim2, &s_config_oc, TIM_CHANNEL_1); st_lib_hal_tim_oc_config_channel(&htim2, &s_config_oc, TIM_CHANNEL_1);
st_lib_hal_tim_clear_flag(&htim2, TIM_FLAG_UPDATE); st_lib_hal_tim_clear_flag(&htim2, TIM_FLAG_UPDATE);
/* Enable TIM2 Update interrupt */ /* Enable TIM2 Update interrupt */
@ -87,18 +88,18 @@ void rtimer_arch_init(void)
st_lib_hal_tim_enable(&htim2); st_lib_hal_tim_enable(&htim2);
st_lib_hal_nvic_set_priority((st_lib_irq_n_type) TIM2_IRQn, 0, 0); st_lib_hal_nvic_set_priority((st_lib_irq_n_type)TIM2_IRQn, 0, 0);
st_lib_hal_nvic_enable_irq((st_lib_irq_n_type)(TIM2_IRQn)); st_lib_hal_nvic_enable_irq((st_lib_irq_n_type)(TIM2_IRQn));
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
rtimer_clock_t rtimer_arch_now(void) rtimer_clock_t
rtimer_arch_now(void)
{ {
return rtimer_clock; return rtimer_clock;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void rtimer_arch_schedule(rtimer_clock_t t) void
rtimer_arch_schedule(rtimer_clock_t t)
{ {
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/

View file

@ -0,0 +1,66 @@
/*
* Copyright (c) 2012, STMicroelectronics.
* All rights reserved.
*
* 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. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS 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.
*
*
*/
/*---------------------------------------------------------------------------*/
/*
* Function implementation taken and adapted from:
* cpu/stm32w108/e_stdio/src/syscalls.c
*/
/*---------------------------------------------------------------------------*/
#include <errno.h>
#include <stdio.h>
/*---------------------------------------------------------------------------*/
extern int errno;
/*---------------------------------------------------------------------------*/
/* Register name faking - works in collusion with the linker. */
register char *stack_ptr asm ("sp");
/*---------------------------------------------------------------------------*/
caddr_t
_sbrk(int incr)
{
extern char end; /* Defined by the linker */
static char *heap_end;
char *prev_heap_end;
if(heap_end == 0) {
heap_end = &end;
}
prev_heap_end = heap_end;
if(heap_end + incr > stack_ptr) {
_write(1, "Heap and stack collision\n", 25);
/*abort ();*/
errno = ENOMEM;
return (caddr_t)-1;
}
heap_end += incr;
return (caddr_t)prev_heap_end;
}
/*---------------------------------------------------------------------------*/

View file

@ -1,67 +0,0 @@
/**
*****************************************************************************
**
** File : sysmem.c
**
** Author : Ac6
**
** Abstract : System Workbench Minimal System Memory calls file
**
** For more information about which c-functions
** need which of these lowlevel functions
** please consult the Newlib libc-manual
**
** Environment : System Workbench for MCU
**
** Distribution: The file is distributed as is, without any warranty
** of any kind.
**
** (c)Copyright System Workbench for MCU.
** You may use this file as-is or modify it according to the needs of your
** project. Distribution of this file (unmodified or modified) is not
** permitted. System Workbench for MCU permit registered System Workbench(R) users the
** rights to distribute the assembled, compiled & linked contents of this
** file as part of an application binary file, provided that it is built
** using the System Workbench for MCU toolchain.
**
*****************************************************************************
*/
/* Includes */
/*---------------------------------------------------------------------------*/
#include <errno.h>
#include <stdio.h>
/*---------------------------------------------------------------------------*/
/* Variables */
extern int errno;
register char * stack_ptr asm("sp");
/*---------------------------------------------------------------------------*/
/* Functions */
/*---------------------------------------------------------------------------*/
/**
_sbrk
Increase program data space. Malloc and related functions depend on this
**/
caddr_t _sbrk(int incr)
{
extern char end asm("end");
static char *heap_end;
char *prev_heap_end;
if (heap_end == 0) {
heap_end = &end;
}
prev_heap_end = heap_end;
if (heap_end + incr > stack_ptr) {
errno = ENOMEM;
return (caddr_t) -1;
}
heap_end += incr;
return (caddr_t) prev_heap_end;
}
/*---------------------------------------------------------------------------*/

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file cpu/arm/stm32l152/uart.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Source file for UART read/write * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include "console.h" #include "console.h"
#include <stdio.h> #include <stdio.h>
@ -43,8 +37,8 @@ _write(int handle, const unsigned char *buffer, size_t size)
{ {
int data_idx; int data_idx;
for (data_idx = 0; data_idx < size; data_idx++) { for(data_idx = 0; data_idx < size; data_idx++) {
__io_putchar( *buffer++ ); __io_putchar(*buffer++);
} }
return size; return size;
} }

View file

@ -37,30 +37,25 @@
void void
watchdog_init(void) watchdog_init(void)
{ {
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
watchdog_start(void) watchdog_start(void)
{ {
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
watchdog_periodic(void) watchdog_periodic(void)
{ {
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
watchdog_stop(void) watchdog_stop(void)
{ {
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
watchdog_reboot(void) watchdog_reboot(void)
{ {
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/

View file

@ -1,39 +1,39 @@
/** /**
****************************************************************************** ******************************************************************************
* @file contiki-spirit1-main.c * @file contiki-spirit1-main.c
* @author System LAB * @author System LAB
* @version V1.0.0 * @version V1.0.0
* @date 17-June-2015 * @date 17-June-2015
* @brief Contiki main file for SPIRIT1 platform * @brief Contiki main file for SPIRIT1 platform
****************************************************************************** ******************************************************************************
* @attention * @attention
* *
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
* *
* Redistribution and use in source and binary forms, with or without modification, * Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met: * are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice, * 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, * 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation * this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution. * and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors * 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * 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 * 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. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************** ******************************************************************************
*/ */
/** /**
* \file * \file
* A very simple Contiki application showing sensor values for ST Nucleo * A very simple Contiki application showing sensor values for ST Nucleo
@ -66,7 +66,7 @@
#define DEBUG DEBUG_PRINT #define DEBUG DEBUG_PRINT
#include "net/ip/uip-debug.h" #include "net/ip/uip-debug.h"
#define PRINT_INTERVAL 5*CLOCK_SECOND #define PRINT_INTERVAL 5 * CLOCK_SECOND
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
PROCESS(sensor_demo_process, "Sensor demo process"); PROCESS(sensor_demo_process, "Sensor demo process");
@ -94,42 +94,39 @@ PROCESS_THREAD(sensor_demo_process, ev, data)
SENSORS_ACTIVATE(gyroscope_sensor); SENSORS_ACTIVATE(gyroscope_sensor);
#endif #endif
while(1) while(1) {
{
etimer_set(&etimer, PRINT_INTERVAL); etimer_set(&etimer, PRINT_INTERVAL);
PROCESS_WAIT_EVENT(); PROCESS_WAIT_EVENT();
if (ev == sensors_event && data == &button_sensor) if(ev == sensors_event && data == &button_sensor) {
{
printf("Sensor event detected: Button Pressed.\n\n"); printf("Sensor event detected: Button Pressed.\n\n");
printf("Toggling Leds\n"); printf("Toggling Leds\n");
_button_pressed++; _button_pressed++;
leds_toggle(LEDS_ALL); leds_toggle(LEDS_ALL);
} }
printf("Button state:\t%s (pressed %lu times)\n", button_sensor.value(0) ? "Released" : "Pressed",
printf("Button state:\t%s (pressed %lu times)\n", button_sensor.value(0)?"Released":"Pressed",
_button_pressed); _button_pressed);
#ifdef COMPILE_SENSORS #ifdef COMPILE_SENSORS
printf("LEDs status:\tRED:n/a GREEN:%s\n", leds_get()&LEDS_GREEN?"on":"off"); printf("LEDs status:\tRED:n/a GREEN:%s\n", leds_get() & LEDS_GREEN ? "on" : "off");
#else #else
printf("LEDs status:\tRED:%s GREEN:%s\n", leds_get()&LEDS_RED?"on":"off", printf("LEDs status:\tRED:%s GREEN:%s\n", leds_get() & LEDS_RED ? "on" : "off",
leds_get()&LEDS_GREEN?"on":"off"); leds_get() & LEDS_GREEN ? "on" : "off");
#endif /*COMPILE_SENSORS*/ #endif /*COMPILE_SENSORS*/
sensor_value = radio_sensor.value(RADIO_SENSOR_LAST_PACKET); sensor_value = radio_sensor.value(RADIO_SENSOR_LAST_PACKET);
printf("Radio (RSSI):\t%d.%d dBm\n", sensor_value/10, ABS_VALUE(sensor_value)%10); printf("Radio (RSSI):\t%d.%d dBm\n", sensor_value / 10, ABS_VALUE(sensor_value) % 10);
printf("Radio (LQI):\t%d\n", radio_sensor.value(RADIO_SENSOR_LAST_VALUE)); printf("Radio (LQI):\t%d\n", radio_sensor.value(RADIO_SENSOR_LAST_VALUE));
#ifdef COMPILE_SENSORS #ifdef COMPILE_SENSORS
sensor_value = temperature_sensor.value(0); sensor_value = temperature_sensor.value(0);
printf("Temperature:\t%d.%d C\n", sensor_value/10, ABS_VALUE(sensor_value)%10); printf("Temperature:\t%d.%d C\n", sensor_value / 10, ABS_VALUE(sensor_value) % 10);
sensor_value = humidity_sensor.value(0); sensor_value = humidity_sensor.value(0);
printf("Humidity:\t%d.%d rH\n", sensor_value/10, ABS_VALUE(sensor_value)%10); printf("Humidity:\t%d.%d rH\n", sensor_value / 10, ABS_VALUE(sensor_value) % 10);
sensor_value = pressure_sensor.value(0); sensor_value = pressure_sensor.value(0);
printf("Pressure:\t%d.%d mbar\n", sensor_value/10, ABS_VALUE(sensor_value)%10); printf("Pressure:\t%d.%d mbar\n", sensor_value / 10, ABS_VALUE(sensor_value) % 10);
/* NOTE: this demo uses the mapping of ST Nucleo sensors on Contiki sensor API. /* NOTE: this demo uses the mapping of ST Nucleo sensors on Contiki sensor API.
* For a real use case of sensors like acceleration, magneto and gyroscope, * For a real use case of sensors like acceleration, magneto and gyroscope,
@ -149,7 +146,7 @@ PROCESS_THREAD(sensor_demo_process, ev, data)
gyroscope_sensor.value(Z_AXIS)); gyroscope_sensor.value(Z_AXIS));
#endif #endif
printf ("\n"); printf("\n");
} }
PROCESS_END(); PROCESS_END();

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/contiki-conf.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-May-2015 * modification, are permitted provided that the following conditions
* @brief Contiki configuration parameters * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#ifndef __CONTIKI_CONF_H__ #ifndef __CONTIKI_CONF_H__
#define __CONTIKI_CONF_H__ #define __CONTIKI_CONF_H__
@ -57,17 +51,14 @@
#define SICSLOWPAN_CONF_MAC_MAX_PAYLOAD \ #define SICSLOWPAN_CONF_MAC_MAX_PAYLOAD \
(NETSTACK_RADIO_MAX_PAYLOAD_LEN - NETSTACK_MAC_HEADER_LEN - \ (NETSTACK_RADIO_MAX_PAYLOAD_LEN - NETSTACK_MAC_HEADER_LEN - \
NETSTACK_RDC_HEADER_LEN ) NETSTACK_RDC_HEADER_LEN)
#define RIMESTATS_CONF_ENABLED 0 #define RIMESTATS_CONF_ENABLED 0
#define RIMESTATS_CONF_ON 0 #define RIMESTATS_CONF_ON 0
/* Network setup for IPv6 */ /* Network setup for IPv6 */
#define CXMAC_CONF_ANNOUNCEMENTS 0 #define CXMAC_CONF_ANNOUNCEMENTS 0
/* A trick to resolve a compilation error with IAR. */ /* A trick to resolve a compilation error with IAR. */
#ifdef __ICCARM__ #ifdef __ICCARM__
#define UIP_CONF_DS6_AADDR_NBU 1 #define UIP_CONF_DS6_AADDR_NBU 1
@ -86,7 +77,6 @@
#define PROCESS_CONF_STATS 1 #define PROCESS_CONF_STATS 1
/*#define PROCESS_CONF_FASTPOLL 4*/ /*#define PROCESS_CONF_FASTPOLL 4*/
#define LINKADDR_CONF_SIZE 8 #define LINKADDR_CONF_SIZE 8
#define UIP_CONF_LL_802154 1 #define UIP_CONF_LL_802154 1
@ -100,10 +90,9 @@
#endif /* UIP_CONF_DS6_ROUTE_NBU */ #endif /* UIP_CONF_DS6_ROUTE_NBU */
#define UIP_CONF_ND6_SEND_RA 0 #define UIP_CONF_ND6_SEND_RA 0
#define UIP_CONF_ND6_REACHABLE_TIME 600000 //90000// 600000 #define UIP_CONF_ND6_REACHABLE_TIME 600000 /* 90000// 600000 */
#define UIP_CONF_ND6_RETRANS_TIMER 10000 #define UIP_CONF_ND6_RETRANS_TIMER 10000
#define UIP_CONF_IPV6 1 #define UIP_CONF_IPV6 1
#ifndef UIP_CONF_IPV6_QUEUE_PKT #ifndef UIP_CONF_IPV6_QUEUE_PKT
#define UIP_CONF_IPV6_QUEUE_PKT 0 #define UIP_CONF_IPV6_QUEUE_PKT 0
@ -111,13 +100,12 @@
#define UIP_CONF_IP_FORWARD 0 #define UIP_CONF_IP_FORWARD 0
#ifndef UIP_CONF_BUFFER_SIZE #ifndef UIP_CONF_BUFFER_SIZE
#define UIP_CONF_BUFFER_SIZE 280 #define UIP_CONF_BUFFER_SIZE 280
//#define UIP_CONF_BUFFER_SIZE 600 /* #define UIP_CONF_BUFFER_SIZE 600 */
#endif #endif
#define SICSLOWPAN_CONF_MAXAGE 4 #define SICSLOWPAN_CONF_MAXAGE 4
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 2 #define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 2
#ifndef SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS #ifndef SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS
#define SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS 5 #define SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS 5
#endif /* SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS */ #endif /* SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS */

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file contiki-spirit1-main.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Contiki main file for stm32nucleo-spirit1 platform * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1 * \addtogroup stm32nucleo-spirit1
* @{ * @{
@ -97,10 +92,10 @@ extern unsigned char node_mac[8];
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#ifdef __GNUC__ #ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */ set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else #else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE * f)
#endif /* __GNUC__ */ #endif /* __GNUC__ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#if NETSTACK_CONF_WITH_IPV6 #if NETSTACK_CONF_WITH_IPV6
@ -111,27 +106,30 @@ PROCINIT(&etimer_process);
#endif /*NETSTACK_CONF_WITH_IPV6*/ #endif /*NETSTACK_CONF_WITH_IPV6*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#define BUSYWAIT_UNTIL(cond, max_time) \ #define BUSYWAIT_UNTIL(cond, max_time) \
do { \ do { \
rtimer_clock_t t0; \ rtimer_clock_t t0; \
t0 = RTIMER_NOW(); \ t0 = RTIMER_NOW(); \
while(!(cond) && RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + (max_time))); \ while(!(cond) && RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + (max_time))) ; \
} while(0) } while(0)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void set_rime_addr(void); static void set_rime_addr(void);
void stm32cube_hal_init(); void stm32cube_hal_init();
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#if 0 #if 0
static void panic_main(void) static void
panic_main(void)
{ {
volatile uint16_t k; volatile uint16_t k;
while(1) { while(1) {
leds_toggle(LEDS_ALL); leds_toggle(LEDS_ALL);
for(k = 0; k < 0xffff/8; k += 1) { } for(k = 0; k < 0xffff / 8; k += 1) {
}
} }
} }
#endif #endif
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
int main (int argc, char *argv[]) int
main(int argc, char *argv[])
{ {
stm32cube_hal_init(); stm32cube_hal_init();
@ -146,7 +144,6 @@ int main (int argc, char *argv[])
process_init(); process_init();
process_start(&etimer_process, NULL); process_start(&etimer_process, NULL);
/* Restore node id if such has been stored in external mem */ /* Restore node id if such has been stored in external mem */
node_id_restore(); /* also configures node_mac[] */ node_id_restore(); /* also configures node_mac[] */
@ -158,7 +155,6 @@ int main (int argc, char *argv[])
energest_init(); energest_init();
#if NETSTACK_CONF_WITH_IPV6 #if NETSTACK_CONF_WITH_IPV6
memcpy(&uip_lladdr.addr, node_mac, sizeof(uip_lladdr.addr)); memcpy(&uip_lladdr.addr, node_mac, sizeof(uip_lladdr.addr));
@ -185,7 +181,8 @@ int main (int argc, char *argv[])
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void set_rime_addr(void) static void
set_rime_addr(void)
{ {
linkaddr_t addr; linkaddr_t addr;

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file acceleration-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable aceleration sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-temperature-sensor * \addtogroup stm32nucleo-spirit1-temperature-sensor
* @{ * @{
@ -50,32 +45,37 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active = 1; static int _active = 1;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
/*Acceleration and Gyroscope sensors share the same hw*/ /*Acceleration and Gyroscope sensors share the same hw*/
if (!st_lib_bsp_imu_6axes_is_initialized()) { if(!st_lib_bsp_imu_6axes_is_initialized()) {
if (IMU_6AXES_OK == st_lib_bsp_imu_6axes_init()) { if(IMU_6AXES_OK == st_lib_bsp_imu_6axes_init()) {
_active = 1; _active = 1;
} }
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return _active; return _active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
int32_t ret_val = 0; int32_t ret_val = 0;
volatile st_lib_axes_raw_typedef axes_raw_data; volatile st_lib_axes_raw_typedef axes_raw_data;
@ -87,15 +87,15 @@ static int value(int type)
*/ */
st_lib_bsp_imu_6axes_x_get_axes_raw(&axes_raw_data); st_lib_bsp_imu_6axes_x_get_axes_raw(&axes_raw_data);
switch (type) { switch(type) {
case X_AXIS: case X_AXIS:
ret_val = axes_raw_data.AXIS_X ; ret_val = axes_raw_data.AXIS_X;
break; break;
case Y_AXIS: case Y_AXIS:
ret_val = axes_raw_data.AXIS_Y ; ret_val = axes_raw_data.AXIS_Y;
break; break;
case Z_AXIS: case Z_AXIS:
ret_val = axes_raw_data.AXIS_Z ; ret_val = axes_raw_data.AXIS_Z;
break; break;
default: default:
break; break;
@ -104,7 +104,8 @@ static int value(int type)
return ret_val; return ret_val;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -122,7 +123,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file acceleration-sensor.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable aceleration sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/dev/button-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable button sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals
* @{ * @{
@ -46,9 +41,10 @@
#include "lib/sensors.h" #include "lib/sensors.h"
#include "st-lib.h" #include "st-lib.h"
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active = 0 ; static int _active = 0;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
/* See spirit1_appli.c for the Callback: it triggers the relevant /* See spirit1_appli.c for the Callback: it triggers the relevant
* sensors_changed event * sensors_changed event
@ -56,27 +52,32 @@ static void init(void)
st_lib_bsp_pb_init(BUTTON_USER, BUTTON_MODE_EXTI); st_lib_bsp_pb_init(BUTTON_USER, BUTTON_MODE_EXTI);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return active; return active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
return st_lib_bsp_pb_get_state(BUTTON_USER); return st_lib_bsp_pb_get_state(BUTTON_USER);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -94,7 +95,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file gyroscope-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable aceleration sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-gyroscope-sensor * \addtogroup stm32nucleo-spirit1-gyroscope-sensor
* @{ * @{
@ -50,32 +45,37 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active = 1; static int _active = 1;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
/*Acceleration and Gyroscope sensors share the same hw*/ /*Acceleration and Gyroscope sensors share the same hw*/
if (!st_lib_bsp_imu_6axes_is_initialized()) { if(!st_lib_bsp_imu_6axes_is_initialized()) {
if (IMU_6AXES_OK == st_lib_bsp_imu_6axes_init()) { if(IMU_6AXES_OK == st_lib_bsp_imu_6axes_init()) {
_active = 1; _active = 1;
} }
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return _active; return _active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
int32_t ret_val = 0; int32_t ret_val = 0;
volatile st_lib_axes_raw_typedef axes_raw_data; volatile st_lib_axes_raw_typedef axes_raw_data;
@ -87,15 +87,15 @@ static int value(int type)
*/ */
st_lib_bsp_imu_6axes_g_get_axes_raw(&axes_raw_data); st_lib_bsp_imu_6axes_g_get_axes_raw(&axes_raw_data);
switch (type) { switch(type) {
case X_AXIS: case X_AXIS:
ret_val = axes_raw_data.AXIS_X ; ret_val = axes_raw_data.AXIS_X;
break; break;
case Y_AXIS: case Y_AXIS:
ret_val = axes_raw_data.AXIS_Y ; ret_val = axes_raw_data.AXIS_Y;
break; break;
case Z_AXIS: case Z_AXIS:
ret_val = axes_raw_data.AXIS_Z ; ret_val = axes_raw_data.AXIS_Z;
break; break;
default: default:
break; break;
@ -104,7 +104,8 @@ static int value(int type)
return ret_val; return ret_val;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -122,7 +123,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file gyroscope-sensor.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable aceleration sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file humidity-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable humidity sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-humidity-sensor * \addtogroup stm32nucleo-spirit1-humidity-sensor
* @{ * @{
@ -50,31 +45,36 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active = 1; static int _active = 1;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
/*Temperature and Humity sensors share the same hw*/ /*Temperature and Humity sensors share the same hw*/
if (!st_lib_bsp_hum_temp_is_initialized()) { if(!st_lib_bsp_hum_temp_is_initialized()) {
st_lib_bsp_hum_temp_init(); st_lib_bsp_hum_temp_init();
_active=1; _active = 1;
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return _active; return _active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
uint32_t humidity; uint32_t humidity;
volatile float humidity_value; volatile float humidity_value;
@ -85,7 +85,8 @@ static int value(int type)
return humidity; return humidity;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -103,7 +104,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file humidity-sensor.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable humidity sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/dev/leds-arch.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Contiki LEDs API binding for the boards in use: Nucleo and SPIRIT1 * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals
* @{ * @{
@ -50,14 +45,15 @@
/* The Red LED (on SPIRIT1 exp board) is exposed only if the sensor board is NOT /* The Red LED (on SPIRIT1 exp board) is exposed only if the sensor board is NOT
* used, becasue of a pin conflict. * used, becasue of a pin conflict.
*/ */
extern st_lib_gpio_typedef* st_lib_a_led_gpio_port[]; extern st_lib_gpio_typedef *st_lib_a_led_gpio_port[];
extern const uint16_t st_lib_a_led_gpio_pin[]; extern const uint16_t st_lib_a_led_gpio_pin[];
#endif /*COMPILE_SENSORS*/ #endif /*COMPILE_SENSORS*/
extern st_lib_gpio_typedef* st_lib_gpio_port[]; extern st_lib_gpio_typedef *st_lib_gpio_port[];
extern const uint16_t st_lib_gpio_pin[]; extern const uint16_t st_lib_gpio_pin[];
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void leds_arch_init(void) void
leds_arch_init(void)
{ {
/* We have at least one led, the one on the Nucleo (GREEN)*/ /* We have at least one led, the one on the Nucleo (GREEN)*/
st_lib_bsp_led_init(LED2); st_lib_bsp_led_init(LED2);
@ -72,10 +68,11 @@ void leds_arch_init(void)
#endif /*COMPILE_SENSORS*/ #endif /*COMPILE_SENSORS*/
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
unsigned char leds_arch_get(void) unsigned char
leds_arch_get(void)
{ {
unsigned char ret = 0 ; unsigned char ret = 0;
if (st_lib_hal_gpio_read_pin(st_lib_gpio_port[LED2],st_lib_gpio_pin[LED2])) { if(st_lib_hal_gpio_read_pin(st_lib_gpio_port[LED2], st_lib_gpio_pin[LED2])) {
ret |= LEDS_GREEN; ret |= LEDS_GREEN;
} }
@ -83,7 +80,7 @@ unsigned char leds_arch_get(void)
/* The Red LED (on SPIRIT1 exp board) is exposed only if the sensor board is NOT /* The Red LED (on SPIRIT1 exp board) is exposed only if the sensor board is NOT
* used, becasue of a pin conflict. * used, becasue of a pin conflict.
*/ */
if (st_lib_hal_gpio_read_pin(st_lib_a_led_gpio_port[RADIO_SHIELD_LED], if(st_lib_hal_gpio_read_pin(st_lib_a_led_gpio_port[RADIO_SHIELD_LED],
st_lib_a_led_gpio_pin[RADIO_SHIELD_LED])) { st_lib_a_led_gpio_pin[RADIO_SHIELD_LED])) {
ret |= LEDS_RED; ret |= LEDS_RED;
} }
@ -92,9 +89,10 @@ unsigned char leds_arch_get(void)
return ret; return ret;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void leds_arch_set(unsigned char leds) void
leds_arch_set(unsigned char leds)
{ {
if (leds & LEDS_GREEN) { if(leds & LEDS_GREEN) {
st_lib_bsp_led_on(LED2); st_lib_bsp_led_on(LED2);
} else { } else {
st_lib_bsp_led_off(LED2); st_lib_bsp_led_off(LED2);
@ -104,7 +102,7 @@ void leds_arch_set(unsigned char leds)
/* The Red LED (on SPIRIT1 exp board) is exposed only if the sensor board is NOT /* The Red LED (on SPIRIT1 exp board) is exposed only if the sensor board is NOT
* used, becasue of a pin conflict. * used, becasue of a pin conflict.
*/ */
if (leds & LEDS_RED) { if(leds & LEDS_RED) {
st_lib_radio_shield_led_on(RADIO_SHIELD_LED); st_lib_radio_shield_led_on(RADIO_SHIELD_LED);
} else { } else {
st_lib_radio_shield_led_off(RADIO_SHIELD_LED); st_lib_radio_shield_led_off(RADIO_SHIELD_LED);

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file magneto-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable magneto sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-magneto-sensor * \addtogroup stm32nucleo-spirit1-magneto-sensor
* @{ * @{
@ -50,28 +45,33 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active = 1; static int _active = 1;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
BSP_MAGNETO_Init(); BSP_MAGNETO_Init();
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return _active; return _active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
int32_t ret_val = 0; int32_t ret_val = 0;
volatile st_lib_axes_raw_typedef axes_raw_data; volatile st_lib_axes_raw_typedef axes_raw_data;
@ -83,15 +83,15 @@ static int value(int type)
*/ */
st_lib_bsp_magneto_m_get_axes_raw(&axes_raw_data); st_lib_bsp_magneto_m_get_axes_raw(&axes_raw_data);
switch (type) { switch(type) {
case X_AXIS: case X_AXIS:
ret_val = axes_raw_data.AXIS_X ; ret_val = axes_raw_data.AXIS_X;
break; break;
case Y_AXIS: case Y_AXIS:
ret_val = axes_raw_data.AXIS_Y ; ret_val = axes_raw_data.AXIS_Y;
break; break;
case Z_AXIS: case Z_AXIS:
ret_val = axes_raw_data.AXIS_Z ; ret_val = axes_raw_data.AXIS_Z;
break; break;
default: default:
break; break;
@ -100,7 +100,8 @@ static int value(int type)
return ret_val; return ret_val;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -118,7 +119,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file magneto-sensor.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable magneto sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file pressure-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable pressure sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-pressure-sensor * \addtogroup stm32nucleo-spirit1-pressure-sensor
* @{ * @{
@ -50,28 +45,33 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active = 1; static int _active = 1;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
st_lib_bsp_pressure_init(); st_lib_bsp_pressure_init();
_active =1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return _active; return _active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
uint16_t pressure; uint16_t pressure;
volatile float pressure_value; volatile float pressure_value;
@ -82,7 +82,8 @@ static int value(int type)
return pressure; return pressure;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -100,7 +101,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file pressure-sensor.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable pressure sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/dev/radio-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 7-September-2015 * modification, are permitted provided that the following conditions
* @brief Enable radio sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals
* @{ * @{
@ -50,27 +45,32 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active; static int _active;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
/*Nothing to do at the moment, can be used in the future.*/ /*Nothing to do at the moment, can be used in the future.*/
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return _active; return _active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
int32_t radio_sensor; int32_t radio_sensor;
float radio_sensor_value; float radio_sensor_value;
@ -79,20 +79,21 @@ static int value(int type)
case RADIO_SENSOR_LAST_PACKET: case RADIO_SENSOR_LAST_PACKET:
/*TODO: check which method of getting these value is more appropriate */ /*TODO: check which method of getting these value is more appropriate */
radio_sensor_value = DBM_VALUE(packetbuf_attr(PACKETBUF_ATTR_RSSI)); radio_sensor_value = DBM_VALUE(packetbuf_attr(PACKETBUF_ATTR_RSSI));
//radio_sensor_value = st_lib_spirit_qi_get_rssi_dbm(); /* radio_sensor_value = st_lib_spirit_qi_get_rssi_dbm(); */
radio_sensor = (int32_t) (radio_sensor_value * 10); radio_sensor = (int32_t)(radio_sensor_value * 10);
break; break;
case RADIO_SENSOR_LAST_VALUE: case RADIO_SENSOR_LAST_VALUE:
default: default:
/*TODO: check which method of getting these value is more appropriate */ /*TODO: check which method of getting these value is more appropriate */
radio_sensor = packetbuf_attr(PACKETBUF_ATTR_LINK_QUALITY); radio_sensor = packetbuf_attr(PACKETBUF_ATTR_LINK_QUALITY);
//radio_sensor = (int32_t) st_lib_spirit_qi_get_lqi(); /* radio_sensor = (int32_t) st_lib_spirit_qi_get_lqi(); */
} }
return radio_sensor; return radio_sensor;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -110,7 +111,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:
@ -123,3 +125,4 @@ static int status(int type)
SENSORS_SENSOR(radio_sensor, RADIO_SENSOR, value, configure, status); SENSORS_SENSOR(radio_sensor, RADIO_SENSOR, value, configure, status);
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** @} */ /** @} */

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/dev/sensor-common.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Common defines for sensors data structurers * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals
@ -51,8 +45,8 @@
#define Y_AXIS 0x01 #define Y_AXIS 0x01
#define Z_AXIS 0x02 #define Z_AXIS 0x02
#define ABS_VALUE(x) (((x)>0)?(x):(-(x))) #define ABS_VALUE(x) (((x) > 0) ? (x) : (-(x)))
#define DBM_VALUE(x) (-120.0+((float)((x)-20))/2) #define DBM_VALUE(x) (-120.0 + ((float)((x) - 20)) / 2)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#endif /*SENSOR_COMMON_H_*/ #endif /*SENSOR_COMMON_H_*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/

View file

@ -1,39 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/dev/temperature-sensor.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable temperature sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/** /**
* \addtogroup stm32nucleo-spirit1-temperature-sensor * \addtogroup stm32nucleo-spirit1-temperature-sensor
* @{ * @{
@ -50,31 +45,36 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int _active = 0; static int _active = 0;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void init(void) static void
init(void)
{ {
/*Temperature and Humity sensors share the same hw*/ /*Temperature and Humity sensors share the same hw*/
if (!st_lib_bsp_hum_temp_is_initialized()) { if(!st_lib_bsp_hum_temp_is_initialized()) {
st_lib_bsp_hum_temp_init(); st_lib_bsp_hum_temp_init();
_active=1; _active = 1;
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void activate(void) static void
activate(void)
{ {
_active = 1; _active = 1;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void deactivate(void) static void
deactivate(void)
{ {
_active = 0; _active = 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int active(void) static int
active(void)
{ {
return _active; return _active;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int value(int type) static int
value(int type)
{ {
int32_t temperature; int32_t temperature;
volatile float temperature_value; volatile float temperature_value;
@ -84,7 +84,8 @@ static int value(int type)
return temperature; return temperature;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int configure(int type, int value) static int
configure(int type, int value)
{ {
switch(type) { switch(type) {
case SENSORS_HW_INIT: case SENSORS_HW_INIT:
@ -102,7 +103,8 @@ static int configure(int type, int value)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int status(int type) static int
status(int type)
{ {
switch(type) { switch(type) {
case SENSORS_READY: case SENSORS_READY:

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/dev/temperature-sensor.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Enable temperature sensor functionality * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/dev/uart1.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Include file for BAUD2UBR macro * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1-peripherals * \addtogroup stm32nucleo-spirit1-peripherals

View file

@ -1,38 +1,32 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file hw-config.h * All rights reserved.
* @author System LAB
* @version V1.0.0
* @date 17-May-2015
* @brief Header file for Hardware Configuration & Setup
******************************************************************************
* @attention
* *
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * Redistribution and use in source and binary forms, with or without
* * modification, are permitted provided that the following conditions
* Redistribution and use in source and binary forms, with or without modification, * are met:
* are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright
* 1. Redistributions of source code must retain the above copyright notice, * notice, this list of conditions and the following disclaimer.
* this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright
* 2. Redistributions in binary form must reproduce the above copyright notice, * notice, this list of conditions and the following disclaimer in the
* this list of conditions and the following disclaimer in the documentation * documentation and/or other materials provided with the distribution.
* and/or other materials provided with the distribution. * 3. Neither the name of the Institute nor the names of its contributors
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software * may be used to endorse or promote products derived from this software
* without specific prior written permission. * without specific prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* *
******************************************************************************
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#ifndef __HW_CONFIG_H #ifndef __HW_CONFIG_H
@ -63,7 +57,6 @@
#define I2Cx_EV_IRQHandler I2C1_EV_IRQHandler #define I2Cx_EV_IRQHandler I2C1_EV_IRQHandler
#define I2Cx_ER_IRQHandler I2C1_ER_IRQHandler #define I2Cx_ER_IRQHandler I2C1_ER_IRQHandler
#define I2Cx I2C1 #define I2Cx I2C1
#define I2Cx_CLK_ENABLE() __I2C1_CLK_ENABLE() #define I2Cx_CLK_ENABLE() __I2C1_CLK_ENABLE()
#define I2Cx_SDA_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE() #define I2Cx_SDA_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
@ -104,15 +97,14 @@
#define USARTx_RX_PIN GPIO_PIN_3 #define USARTx_RX_PIN GPIO_PIN_3
#define USARTx_RX_GPIO_PORT GPIOA #define USARTx_RX_GPIO_PORT GPIOA
/* Definition for USARTx's NVIC */ /* Definition for USARTx's NVIC */
#define USARTx_IRQn USART2_IRQn #define USARTx_IRQn USART2_IRQn
#define USARTx_IRQHandler USART2_IRQHandler #define USARTx_IRQHandler USART2_IRQHandler
#define USARTx_TX_AF GPIO_AF7_USART2 #define USARTx_TX_AF GPIO_AF7_USART2
#define USARTx_RX_AF GPIO_AF7_USART2 #define USARTx_RX_AF GPIO_AF7_USART2
/* Enable sensor mask */
/* Enable sensor mask */
#define PRESSURE_SENSOR 0x00000001 #define PRESSURE_SENSOR 0x00000001
#define TEMPERATURE_SENSOR 0x00000002 #define TEMPERATURE_SENSOR 0x00000002
#define HUMIDITY_SENSOR 0x00000004 #define HUMIDITY_SENSOR 0x00000004

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/node-id.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Source file for node Id * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include "node-id.h" #include "node-id.h"
#include "contiki-conf.h" #include "contiki-conf.h"
@ -43,18 +37,19 @@ unsigned short node_id = 0;
unsigned char node_mac[8]; unsigned char node_mac[8];
volatile uint32_t device_id[3]; volatile uint32_t device_id[3];
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#define DEVICE_ID_REG0 (*((volatile uint32_t *) 0x1FF80050)) #define DEVICE_ID_REG0 (*((volatile uint32_t *)0x1FF80050))
#define DEVICE_ID_REG1 (*((volatile uint32_t *) 0x1FF80054)) #define DEVICE_ID_REG1 (*((volatile uint32_t *)0x1FF80054))
#define DEVICE_ID_REG2 (*((volatile uint32_t *) 0x1FF80064)) #define DEVICE_ID_REG2 (*((volatile uint32_t *)0x1FF80064))
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void node_id_restore(void) void
node_id_restore(void)
{ {
device_id[0] = DEVICE_ID_REG0; device_id[0] = DEVICE_ID_REG0;
device_id[1] = DEVICE_ID_REG1; device_id[1] = DEVICE_ID_REG1;
device_id[2] = DEVICE_ID_REG2; device_id[2] = DEVICE_ID_REG2;
(*(uint32_t*)node_mac)=DEVICE_ID_REG1; (*(uint32_t *)node_mac) = DEVICE_ID_REG1;
(*(((uint32_t*)node_mac)+1))=DEVICE_ID_REG2+DEVICE_ID_REG0; (*(((uint32_t *)node_mac) + 1)) = DEVICE_ID_REG2 + DEVICE_ID_REG0;
node_id = (unsigned short) DEVICE_ID_REG2; node_id = (unsigned short)DEVICE_ID_REG2;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file platform/stm32nucleo-spirit1/platform-conf.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-May-2015 * modification, are permitted provided that the following conditions
* @brief Configuration parameters * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \addtogroup stm32nucleo-spirit1 * \addtogroup stm32nucleo-spirit1
@ -69,7 +63,7 @@
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#define F_CPU 32000000ul #define F_CPU 32000000ul
#define RTIMER_ARCH_SECOND 32768 #define RTIMER_ARCH_SECOND 32768
#define PRESCALER ((F_CPU / (RTIMER_ARCH_SECOND*2))) #define PRESCALER ((F_CPU / (RTIMER_ARCH_SECOND * 2)))
#define UART1_CONF_TX_WITH_INTERRUPT 0 #define UART1_CONF_TX_WITH_INTERRUPT 0
#define WITH_SERIAL_LINE_INPUT 1 #define WITH_SERIAL_LINE_INPUT 1
@ -84,7 +78,7 @@
#define CLOCK_CONF_SECOND 128 #define CLOCK_CONF_SECOND 128
/* One tick: 62.5 ms */ /* One tick: 62.5 ms */
#define RTIMER_CLOCK_LT(a,b) ((signed short)((a)-(b)) < 0) #define RTIMER_CLOCK_LT(a, b) ((signed short)((a) - (b)) < 0)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
typedef unsigned long clock_time_t; typedef unsigned long clock_time_t;
typedef unsigned long long rtimer_clock_t; typedef unsigned long long rtimer_clock_t;

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file main.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Source file for SPIRIT1 * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include "stm32l1xx.h" #include "stm32l1xx.h"
#include "spirit1-arch.h" #include "spirit1-arch.h"
@ -53,8 +47,8 @@ spirit1_arch_refresh_status(void)
{ {
volatile uint16_t mcstate = 0x0000; volatile uint16_t mcstate = 0x0000;
uint8_t header[2]; uint8_t header[2];
header[0]=0x01; header[0] = 0x01;
header[1]=MC_STATE1_BASE; header[1] = MC_STATE1_BASE;
uint32_t spi_timeout = ((uint32_t)1000); /*<! Value of Timeout when SPI communication fails */ uint32_t spi_timeout = ((uint32_t)1000); /*<! Value of Timeout when SPI communication fails */
IRQ_DISABLE(); IRQ_DISABLE();
@ -62,17 +56,18 @@ spirit1_arch_refresh_status(void)
/* Puts the SPI chip select low to start the transaction */ /* Puts the SPI chip select low to start the transaction */
st_lib_radio_spi_cs_low(); st_lib_radio_spi_cs_low();
for (volatile uint16_t index = 0; index < CS_TO_SCLK_DELAY; index++); for(volatile uint16_t index = 0; index < CS_TO_SCLK_DELAY; index++) {
}
/* Write the aHeader bytes and read the SPIRIT1 status bytes */ /* Write the aHeader bytes and read the SPIRIT1 status bytes */
st_lib_hal_spi_transmit_receive(&st_lib_p_spi_handle, (uint8_t *)&header[0], (uint8_t *)&mcstate, 1, spi_timeout); st_lib_hal_spi_transmit_receive(&st_lib_p_spi_handle, (uint8_t *)&header[0], (uint8_t *)&mcstate, 1, spi_timeout);
mcstate = mcstate<<8; mcstate = mcstate << 8;
/* Write the aHeader bytes and read the SPIRIT1 status bytes */ /* Write the aHeader bytes and read the SPIRIT1 status bytes */
st_lib_hal_spi_transmit_receive(&st_lib_p_spi_handle, (uint8_t *)&header[1], (uint8_t *)&mcstate, 1, spi_timeout); st_lib_hal_spi_transmit_receive(&st_lib_p_spi_handle, (uint8_t *)&header[1], (uint8_t *)&mcstate, 1, spi_timeout);
/* To be sure to don't rise the Chip Select before the end of last sending */ /* To be sure to don't rise the Chip Select before the end of last sending */
while (st_lib_hal_spi_get_flag(&st_lib_p_spi_handle, SPI_FLAG_TXE) == RESET); while(st_lib_hal_spi_get_flag(&st_lib_p_spi_handle, SPI_FLAG_TXE) == RESET) ;
/* Puts the SPI chip select high to end the transaction */ /* Puts the SPI chip select high to end the transaction */
st_lib_radio_spi_cs_high(); st_lib_radio_spi_cs_high();
@ -80,7 +75,4 @@ spirit1_arch_refresh_status(void)
IRQ_ENABLE(); IRQ_ENABLE();
return mcstate; return mcstate;
} }

View file

@ -39,8 +39,8 @@
#include "radio_spi.h" #include "radio_spi.h"
#include "st-lib.h" #include "st-lib.h"
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#define IRQ_ENABLE() st_lib_radio_gpio_interrupt_cmd(RADIO_GPIO_IRQ,0x0F,0x0F,ENABLE); #define IRQ_ENABLE() st_lib_radio_gpio_interrupt_cmd(RADIO_GPIO_IRQ, 0x0F, 0x0F, ENABLE);
#define IRQ_DISABLE() st_lib_radio_gpio_interrupt_cmd(RADIO_GPIO_IRQ,0x0F,0x0F,DISABLE); #define IRQ_DISABLE() st_lib_radio_gpio_interrupt_cmd(RADIO_GPIO_IRQ, 0x0F, 0x0F, DISABLE);
#define spirit_spi_busy() (!(RADIO_SPI_CS_PORT->IDR & RADIO_SPI_CS_PIN)) #define spirit_spi_busy() (!(RADIO_SPI_CS_PORT->IDR & RADIO_SPI_CS_PIN))
#define SPIRIT1_STATUS() (spirit1_arch_refresh_status() & SPIRIT1_STATE_STATEBITS) #define SPIRIT1_STATUS() (spirit1_arch_refresh_status() & SPIRIT1_STATE_STATEBITS)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/

View file

@ -10,22 +10,22 @@
* 2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution. * documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its * 3. Neither the name of the Institute nor the names of its contributors
* contributors may be used to endorse or promote products derived * may be used to endorse or promote products derived from this software
* from this software without specific prior written permission. * without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS 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.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT HOLDER OR CONTRIBUTORS 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.
* *
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
@ -33,22 +33,22 @@
#define __SPIRIT1_CONST_H__ #define __SPIRIT1_CONST_H__
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* The state bitfield and values for different states, as read from MC_STATE[1:0] registers, /* The state bitfield and values for different states, as read from MC_STATE[1:0] registers,
which are returned on any SPI read or write operation. */ which are returned on any SPI read or write operation. */
#define SPIRIT1_STATE_STATEBITS (0x00FE) #define SPIRIT1_STATE_STATEBITS (0x00FE)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#define SPIRIT1_STATE_STANDBY ((0x0040)<<1) #define SPIRIT1_STATE_STANDBY ((0x0040) << 1)
#define SPIRIT1_STATE_SLEEP ((0x0036)<<1) #define SPIRIT1_STATE_SLEEP ((0x0036) << 1)
#define SPIRIT1_STATE_READY ((0x0003)<<1) #define SPIRIT1_STATE_READY ((0x0003) << 1)
#define SPIRIT1_STATE_LOCK ((0x000F)<<1) #define SPIRIT1_STATE_LOCK ((0x000F) << 1)
#define SPIRIT1_STATE_RX ((0x0033)<<1) #define SPIRIT1_STATE_RX ((0x0033) << 1)
#define SPIRIT1_STATE_TX ((0x005F)<<1) #define SPIRIT1_STATE_TX ((0x005F) << 1)
/* NB the below states were extracted from ST drivers, but are not specified in the datasheet */ /* NB the below states were extracted from ST drivers, but are not specified in the datasheet */
#define SPIRIT1_STATE_PM_SETUP ((0x003D)<<1) #define SPIRIT1_STATE_PM_SETUP ((0x003D) << 1)
#define SPIRIT1_STATE_XO_SETTLING ((0x0023)<<1) #define SPIRIT1_STATE_XO_SETTLING ((0x0023) << 1)
#define SPIRIT1_STATE_SYNTH_SETUP ((0x0053)<<1) #define SPIRIT1_STATE_SYNTH_SETUP ((0x0053) << 1)
#define SPIRIT1_STATE_PROTOCOL ((0x001F)<<1) #define SPIRIT1_STATE_PROTOCOL ((0x001F) << 1)
#define SPIRIT1_STATE_SYNTH_CALIBRATION ((0x004F)<<1) #define SPIRIT1_STATE_SYNTH_CALIBRATION ((0x004F) << 1)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* strobe commands */ /* strobe commands */
#define SPIRIT1_STROBE_TX 0x60 #define SPIRIT1_STROBE_TX 0x60

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file spirit1.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
* @brief Source file for SPIRIT1 * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include "spirit1.h" #include "spirit1.h"
#include "spirit1-arch.h" #include "spirit1-arch.h"
@ -47,7 +41,7 @@
#include <stdio.h> #include <stdio.h>
#include "st-lib.h" #include "st-lib.h"
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
//MGR extern st_lib_spirit_irqs st_lib_x_irq_status; /* MGR extern st_lib_spirit_irqs st_lib_x_irq_status; */
extern volatile st_lib_spirit_flag_status rx_timeout; extern volatile st_lib_spirit_flag_status rx_timeout;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#define XXX_ACK_WORKAROUND 1 #define XXX_ACK_WORKAROUND 1
@ -65,7 +59,7 @@ extern volatile st_lib_spirit_flag_status rx_timeout;
do { \ do { \
rtimer_clock_t t0; \ rtimer_clock_t t0; \
t0 = RTIMER_NOW(); \ t0 = RTIMER_NOW(); \
while(!(cond) && RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + (max_time))); \ while(!(cond) && RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + (max_time))) ; \
} while(0) } while(0)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
@ -81,24 +75,24 @@ extern volatile st_lib_spirit_flag_status rx_timeout;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static volatile unsigned int spirit_on = OFF; static volatile unsigned int spirit_on = OFF;
static volatile uint8_t receiving_packet = 0; static volatile uint8_t receiving_packet = 0;
static packetbuf_attr_t last_rssi = 0 ; //MGR static packetbuf_attr_t last_rssi = 0; /* MGR */
static packetbuf_attr_t last_lqi = 0 ; //MGR static packetbuf_attr_t last_lqi = 0; /* MGR */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* /*
* The buffers which hold incoming data. * The buffers which hold incoming data.
* The +1 because of the first byte, * The +1 because of the first byte,
* which will contain the length of the packet. * which will contain the length of the packet.
*/ */
static uint8_t spirit_rxbuf[MAX_PACKET_LEN+1]; static uint8_t spirit_rxbuf[MAX_PACKET_LEN + 1];
static uint8_t spirit_txbuf[MAX_PACKET_LEN+1-SPIRIT_MAX_FIFO_LEN]; static uint8_t spirit_txbuf[MAX_PACKET_LEN + 1 - SPIRIT_MAX_FIFO_LEN];
void st_lib_spirit_management_set_frequency_base(uint32_t); void st_lib_spirit_management_set_frequency_base(uint32_t);
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int just_got_an_ack = 0; /* Interrupt callback just detected an ack */ static int just_got_an_ack = 0; /* Interrupt callback just detected an ack */
#if NULLRDC_CONF_802154_AUTOACK #if NULLRDC_CONF_802154_AUTOACK
#define ACK_LEN 3 #define ACK_LEN 3
static int wants_an_ack = 0; /* The packet sent expects an ack */ static int wants_an_ack = 0; /* The packet sent expects an ack */
//static int just_got_an_ack = 0; /* Interrupt callback just detected an ack */ /* static int just_got_an_ack = 0; / * Interrupt callback just detected an ack * / */
//#define ACKPRINTF printf /* #define ACKPRINTF printf */
#define ACKPRINTF(...) #define ACKPRINTF(...)
#endif /* NULLRDC_CONF_802154_AUTOACK */ #endif /* NULLRDC_CONF_802154_AUTOACK */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
@ -155,7 +149,8 @@ spirit1_strobe(uint8_t s)
st_lib_spirit_cmd_strobe_command(s); st_lib_spirit_cmd_strobe_command(s);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void spirit_set_ready_state(void) void
spirit_set_ready_state(void)
{ {
PRINTF("READY IN\n"); PRINTF("READY IN\n");
@ -192,17 +187,17 @@ spirit_radio_init(void)
/* wake up to READY state */ /* wake up to READY state */
/* weirdly enough, this *should* actually *set* the pin, not clear it! The pins is declared as GPIO_pin13 == 0x2000 */ /* weirdly enough, this *should* actually *set* the pin, not clear it! The pins is declared as GPIO_pin13 == 0x2000 */
RADIO_GPIO_SDN_PORT->BSRR = RADIO_GPIO_SDN_PIN; RADIO_GPIO_SDN_PORT->BSRR = RADIO_GPIO_SDN_PIN;
st_lib_hal_gpio_write_pin(RADIO_GPIO_SDN_PORT, RADIO_GPIO_SDN_PIN,GPIO_PIN_RESET); st_lib_hal_gpio_write_pin(RADIO_GPIO_SDN_PORT, RADIO_GPIO_SDN_PIN, GPIO_PIN_RESET);
/* wait minimum 1.5 ms to allow SPIRIT1 a proper boot-up sequence */ /* wait minimum 1.5 ms to allow SPIRIT1 a proper boot-up sequence */
BUSYWAIT_UNTIL(0, 3 * RTIMER_SECOND/2000); BUSYWAIT_UNTIL(0, 3 * RTIMER_SECOND / 2000);
/* Soft reset of core */ /* Soft reset of core */
spirit1_strobe(SPIRIT1_STROBE_SRES); spirit1_strobe(SPIRIT1_STROBE_SRES);
/* Configures the SPIRIT1 radio part */ /* Configures the SPIRIT1 radio part */
st_lib_s_radio_init x_radio_init = { st_lib_s_radio_init x_radio_init = {
// XTAL_FREQUENCY, /* XTAL_FREQUENCY, */
XTAL_OFFSET_PPM, XTAL_OFFSET_PPM,
BASE_FREQUENCY, BASE_FREQUENCY,
CHANNEL_SPACE, CHANNEL_SPACE,
@ -214,7 +209,7 @@ spirit_radio_init(void)
}; };
st_lib_spirit_radio_init(&x_radio_init); st_lib_spirit_radio_init(&x_radio_init);
st_lib_spirit_radio_set_xtal_frequency(XTAL_FREQUENCY); st_lib_spirit_radio_set_xtal_frequency(XTAL_FREQUENCY);
st_lib_spirit_radio_set_pa_level_dbm(0,POWER_DBM); st_lib_spirit_radio_set_pa_level_dbm(0, POWER_DBM);
st_lib_spirit_radio_set_pa_level_max_index(0); st_lib_spirit_radio_set_pa_level_max_index(0);
/* Configures the SPIRIT1 packet handler part*/ /* Configures the SPIRIT1 packet handler part*/
@ -236,8 +231,8 @@ spirit_radio_init(void)
st_lib_spirit_irq_de_init(NULL); st_lib_spirit_irq_de_init(NULL);
st_lib_spirit_irq_clear_status(); st_lib_spirit_irq_clear_status();
st_lib_spirit_irq(TX_DATA_SENT, S_ENABLE); st_lib_spirit_irq(TX_DATA_SENT, S_ENABLE);
st_lib_spirit_irq(RX_DATA_READY,S_ENABLE); st_lib_spirit_irq(RX_DATA_READY, S_ENABLE);
st_lib_spirit_irq(VALID_SYNC,S_ENABLE); st_lib_spirit_irq(VALID_SYNC, S_ENABLE);
st_lib_spirit_irq(RX_DATA_DISC, S_ENABLE); st_lib_spirit_irq(RX_DATA_DISC, S_ENABLE);
st_lib_spirit_irq(TX_FIFO_ERROR, S_ENABLE); st_lib_spirit_irq(TX_FIFO_ERROR, S_ENABLE);
st_lib_spirit_irq(RX_FIFO_ERROR, S_ENABLE); st_lib_spirit_irq(RX_FIFO_ERROR, S_ENABLE);
@ -261,7 +256,7 @@ spirit_radio_init(void)
st_lib_radio_gpio_init(RADIO_GPIO_IRQ, RADIO_MODE_EXTI_IN); st_lib_radio_gpio_init(RADIO_GPIO_IRQ, RADIO_MODE_EXTI_IN);
/* Configure the radio to route the IRQ signal to its GPIO 3 */ /* Configure the radio to route the IRQ signal to its GPIO 3 */
st_lib_spirit_gpio_init(&(st_lib_s_gpio_init){SPIRIT_GPIO_IRQ, SPIRIT_GPIO_MODE_DIGITAL_OUTPUT_LP, SPIRIT_GPIO_DIG_OUT_IRQ}); st_lib_spirit_gpio_init(&(st_lib_s_gpio_init){SPIRIT_GPIO_IRQ, SPIRIT_GPIO_MODE_DIGITAL_OUTPUT_LP, SPIRIT_GPIO_DIG_OUT_IRQ });
process_start(&spirit_radio_process, NULL); process_start(&spirit_radio_process, NULL);
@ -285,7 +280,7 @@ spirit_radio_prepare(const void *payload, unsigned short payload_len)
frame802154_t info154; frame802154_t info154;
wants_an_ack = 0; wants_an_ack = 0;
if(payload_len > ACK_LEN if(payload_len > ACK_LEN
&& frame802154_parse((char*)payload, payload_len, &info154) != 0) { && frame802154_parse((char *)payload, payload_len, &info154) != 0) {
if(info154.fcf.frame_type == FRAME802154_DATAFRAME if(info154.fcf.frame_type == FRAME802154_DATAFRAME
&& info154.fcf.ack_required != 0) { && info154.fcf.ack_required != 0) {
wants_an_ack = 1; wants_an_ack = 1;
@ -326,9 +321,9 @@ spirit_radio_transmit(unsigned short payload_len)
spirit_set_ready_state(); spirit_set_ready_state();
spirit1_strobe(SPIRIT1_STROBE_TX); spirit1_strobe(SPIRIT1_STROBE_TX);
just_got_an_ack = 0; just_got_an_ack = 0;
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_TX, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_TX, 1 * RTIMER_SECOND / 1000);
//BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 4 * RTIMER_SECOND/1000); //For GFSK with high data rate /* BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 4 * RTIMER_SECOND/1000); //For GFSK with high data rate */
BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 50 * RTIMER_SECOND/1000); //For FSK with low data rate BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 50 * RTIMER_SECOND / 1000); /* For FSK with low data rate */
/* Reset radio - needed for immediate RX of ack */ /* Reset radio - needed for immediate RX of ack */
CLEAR_TXBUF(); CLEAR_TXBUF();
@ -336,11 +331,11 @@ spirit_radio_transmit(unsigned short payload_len)
IRQ_DISABLE(); IRQ_DISABLE();
st_lib_spirit_irq_clear_status(); st_lib_spirit_irq_clear_status();
spirit1_strobe(SPIRIT1_STROBE_SABORT); spirit1_strobe(SPIRIT1_STROBE_SABORT);
BUSYWAIT_UNTIL(0, RTIMER_SECOND/2500); BUSYWAIT_UNTIL(0, RTIMER_SECOND / 2500);
spirit1_strobe(SPIRIT1_STROBE_READY); spirit1_strobe(SPIRIT1_STROBE_READY);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 1 * RTIMER_SECOND / 1000);
spirit1_strobe(SPIRIT1_STROBE_RX); spirit1_strobe(SPIRIT1_STROBE_RX);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 1 * RTIMER_SECOND / 1000);
IRQ_ENABLE(); IRQ_ENABLE();
#if XXX_ACK_WORKAROUND #if XXX_ACK_WORKAROUND
@ -348,14 +343,14 @@ spirit_radio_transmit(unsigned short payload_len)
#endif /* XXX_ACK_WORKAROUND */ #endif /* XXX_ACK_WORKAROUND */
#if NULLRDC_CONF_802154_AUTOACK #if NULLRDC_CONF_802154_AUTOACK
if (wants_an_ack) { if(wants_an_ack) {
rtimer_txdone = RTIMER_NOW(); rtimer_txdone = RTIMER_NOW();
BUSYWAIT_UNTIL(just_got_an_ack, 2 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(just_got_an_ack, 2 * RTIMER_SECOND / 1000);
rtimer_rxack = RTIMER_NOW(); rtimer_rxack = RTIMER_NOW();
if(just_got_an_ack) { if(just_got_an_ack) {
ACKPRINTF("debug_ack: ack received after %u/%u ticks\n", ACKPRINTF("debug_ack: ack received after %u/%u ticks\n",
(uint32_t)(rtimer_rxack - rtimer_txdone), 2 * RTIMER_SECOND/1000); (uint32_t)(rtimer_rxack - rtimer_txdone), 2 * RTIMER_SECOND / 1000);
} else { } else {
ACKPRINTF("debug_ack: no ack received\n"); ACKPRINTF("debug_ack: no ack received\n");
} }
@ -373,16 +368,17 @@ spirit_radio_transmit(unsigned short payload_len)
return RADIO_TX_OK; return RADIO_TX_OK;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int spirit_radio_send(const void *payload, unsigned short payload_len) static int
spirit_radio_send(const void *payload, unsigned short payload_len)
{ {
if(spirit_radio_prepare(payload, payload_len) == RADIO_TX_ERR) { if(spirit_radio_prepare(payload, payload_len) == RADIO_TX_ERR) {
return RADIO_TX_ERR; return RADIO_TX_ERR;
} }
return spirit_radio_transmit(payload_len); return spirit_radio_transmit(payload_len);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int spirit_radio_read(void *buf, unsigned short bufsize) static int
spirit_radio_read(void *buf, unsigned short bufsize)
{ {
PRINTF("READ IN\n"); PRINTF("READ IN\n");
@ -391,11 +387,11 @@ static int spirit_radio_read(void *buf, unsigned short bufsize)
IRQ_DISABLE(); IRQ_DISABLE();
CLEAR_RXBUF(); CLEAR_RXBUF();
spirit1_strobe(SPIRIT1_STROBE_SABORT); spirit1_strobe(SPIRIT1_STROBE_SABORT);
BUSYWAIT_UNTIL(0, RTIMER_SECOND/2500); BUSYWAIT_UNTIL(0, RTIMER_SECOND / 2500);
spirit1_strobe(SPIRIT1_STROBE_READY); spirit1_strobe(SPIRIT1_STROBE_READY);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 1 * RTIMER_SECOND / 1000);
spirit1_strobe(SPIRIT1_STROBE_RX); spirit1_strobe(SPIRIT1_STROBE_RX);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 1 * RTIMER_SECOND / 1000);
PRINTF("READ OUT RX BUF EMPTY\n"); PRINTF("READ OUT RX BUF EMPTY\n");
IRQ_ENABLE(); IRQ_ENABLE();
return 0; return 0;
@ -409,8 +405,8 @@ static int spirit_radio_read(void *buf, unsigned short bufsize)
/* Copies the packet received */ /* Copies the packet received */
memcpy(buf, spirit_rxbuf + 1, spirit_rxbuf[0]); memcpy(buf, spirit_rxbuf + 1, spirit_rxbuf[0]);
packetbuf_set_attr(PACKETBUF_ATTR_RSSI, last_rssi); //MGR packetbuf_set_attr(PACKETBUF_ATTR_RSSI, last_rssi); /* MGR */
packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY, last_lqi); //MGR packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY, last_lqi); /* MGR */
bufsize = spirit_rxbuf[0]; bufsize = spirit_rxbuf[0];
CLEAR_RXBUF(); CLEAR_RXBUF();
@ -418,7 +414,6 @@ static int spirit_radio_read(void *buf, unsigned short bufsize)
return bufsize; return bufsize;
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int static int
@ -443,7 +438,7 @@ spirit_radio_channel_clear(void)
st_lib_spirit_irq_clear_status(); st_lib_spirit_irq_clear_status();
IRQ_ENABLE(); IRQ_ENABLE();
{ {
rtimer_clock_t timeout = RTIMER_NOW() + 5 * RTIMER_SECOND/1000; rtimer_clock_t timeout = RTIMER_NOW() + 5 * RTIMER_SECOND / 1000;
do { do {
st_lib_spirit_refresh_status(); st_lib_spirit_refresh_status();
} while((st_lib_g_x_status.MC_STATE != MC_STATE_READY) && (RTIMER_NOW() < timeout)); } while((st_lib_g_x_status.MC_STATE != MC_STATE_READY) && (RTIMER_NOW() < timeout));
@ -456,18 +451,18 @@ spirit_radio_channel_clear(void)
rssi_value = st_lib_spirit_qi_get_rssi_dbm(); rssi_value = st_lib_spirit_qi_get_rssi_dbm();
/* Puts the SPIRIT1 in its previous state */ /* Puts the SPIRIT1 in its previous state */
if(spirit_state==OFF) { if(spirit_state == OFF) {
spirit_radio_off(); spirit_radio_off();
} else { } else {
spirit1_strobe(SPIRIT1_STROBE_RX); spirit1_strobe(SPIRIT1_STROBE_RX);
/* SpiritCmdStrobeRx();*/ /* SpiritCmdStrobeRx();*/
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 5 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 5 * RTIMER_SECOND / 1000);
} }
PRINTF("CHANNEL CLEAR OUT\n"); PRINTF("CHANNEL CLEAR OUT\n");
/* Checks the RSSI value with the threshold */ /* Checks the RSSI value with the threshold */
if(rssi_value<CCA_THRESHOLD) { if(rssi_value < CCA_THRESHOLD) {
return 0; return 0;
} else { } else {
return 1; return 1;
@ -501,7 +496,7 @@ spirit_radio_off(void)
/* Clear any pending irqs */ /* Clear any pending irqs */
st_lib_spirit_irq_clear_status(); st_lib_spirit_irq_clear_status();
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 5 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 5 * RTIMER_SECOND / 1000);
if(SPIRIT1_STATUS() != SPIRIT1_STATE_READY) { if(SPIRIT1_STATUS() != SPIRIT1_STATE_READY) {
PRINTF("Spirit1: failed off->ready\n"); PRINTF("Spirit1: failed off->ready\n");
return 1; return 1;
@ -509,7 +504,7 @@ spirit_radio_off(void)
/* Puts the SPIRIT1 in STANDBY */ /* Puts the SPIRIT1 in STANDBY */
spirit1_strobe(SPIRIT1_STROBE_STANDBY); spirit1_strobe(SPIRIT1_STROBE_STANDBY);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_STANDBY, 5 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_STANDBY, 5 * RTIMER_SECOND / 1000);
if(SPIRIT1_STATUS() != SPIRIT1_STATE_STANDBY) { if(SPIRIT1_STATUS() != SPIRIT1_STATE_STANDBY) {
PRINTF("Spirit1: failed off->stdby\n"); PRINTF("Spirit1: failed off->stdby\n");
return 1; return 1;
@ -523,30 +518,31 @@ spirit_radio_off(void)
return 0; return 0;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static int spirit_radio_on(void) static int
spirit_radio_on(void)
{ {
PRINTF("Spirit1: on\n"); PRINTF("Spirit1: on\n");
spirit1_strobe(SPIRIT1_STROBE_SABORT); spirit1_strobe(SPIRIT1_STROBE_SABORT);
BUSYWAIT_UNTIL(0, RTIMER_SECOND/2500); BUSYWAIT_UNTIL(0, RTIMER_SECOND / 2500);
if(spirit_on == OFF) { if(spirit_on == OFF) {
IRQ_DISABLE(); IRQ_DISABLE();
/* ensure we are in READY state as we go from there to Rx */ /* ensure we are in READY state as we go from there to Rx */
spirit1_strobe(SPIRIT1_STROBE_READY); spirit1_strobe(SPIRIT1_STROBE_READY);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 5 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_READY, 5 * RTIMER_SECOND / 1000);
if(SPIRIT1_STATUS() != SPIRIT1_STATE_READY) { if(SPIRIT1_STATUS() != SPIRIT1_STATE_READY) {
PRINTF("Spirit1: failed to turn on\n"); PRINTF("Spirit1: failed to turn on\n");
while(1); while(1) ;
//return 1; /* return 1; */
} }
/* now we go to Rx */ /* now we go to Rx */
spirit1_strobe(SPIRIT1_STROBE_RX); spirit1_strobe(SPIRIT1_STROBE_RX);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 5 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 5 * RTIMER_SECOND / 1000);
if(SPIRIT1_STATUS() != SPIRIT1_STATE_RX) { if(SPIRIT1_STATUS() != SPIRIT1_STATE_RX) {
PRINTF("Spirit1: failed to enter rx\n"); PRINTF("Spirit1: failed to enter rx\n");
while(1); while(1) ;
//return 1; /* return 1; */
} }
/* Enables the mcu to get IRQ from the SPIRIT1 */ /* Enables the mcu to get IRQ from the SPIRIT1 */
@ -579,13 +575,12 @@ PROCESS_THREAD(spirit_radio_process, ev, data)
/* Check if the packet has an ACK request */ /* Check if the packet has an ACK request */
frame802154_t info154; frame802154_t info154;
if(len > ACK_LEN && if(len > ACK_LEN &&
frame802154_parse((char*)packetbuf_dataptr(), len, &info154) != 0) { frame802154_parse((char *)packetbuf_dataptr(), len, &info154) != 0) {
if(info154.fcf.frame_type == FRAME802154_DATAFRAME && if(info154.fcf.frame_type == FRAME802154_DATAFRAME &&
info154.fcf.ack_required != 0 && info154.fcf.ack_required != 0 &&
linkaddr_cmp((linkaddr_t *)&info154.dest_addr, linkaddr_cmp((linkaddr_t *)&info154.dest_addr,
&linkaddr_node_addr)) { &linkaddr_node_addr)) {
#if !XXX_ACK_WORKAROUND #if !XXX_ACK_WORKAROUND
/* Send an ACK packet */ /* Send an ACK packet */
uint8_t ack_frame[ACK_LEN] = { uint8_t ack_frame[ACK_LEN] = {
@ -595,14 +590,14 @@ PROCESS_THREAD(spirit_radio_process, ev, data)
}; };
IRQ_DISABLE(); IRQ_DISABLE();
spirit1_strobe(SPIRIT1_STROBE_FTX); spirit1_strobe(SPIRIT1_STROBE_FTX);
st_lib_spirit_pkt_basic_set_payload_length((uint16_t) ACK_LEN); st_lib_spirit_pkt_basic_set_payload_length((uint16_t)ACK_LEN);
st_lib_spirit_spi_write_linear_fifo((uint16_t) ACK_LEN, (uint8_t *) ack_frame); st_lib_spirit_spi_write_linear_fifo((uint16_t)ACK_LEN, (uint8_t *)ack_frame);
spirit_set_ready_state(); spirit_set_ready_state();
IRQ_ENABLE(); IRQ_ENABLE();
spirit1_strobe(SPIRIT1_STROBE_TX); spirit1_strobe(SPIRIT1_STROBE_TX);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_TX, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_TX, 1 * RTIMER_SECOND / 1000);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() != SPIRIT1_STATE_TX, 1 * RTIMER_SECOND / 1000);
ACKPRINTF("debug_ack: sent ack %d\n", ack_frame[2]); ACKPRINTF("debug_ack: sent ack %d\n", ack_frame[2]);
#endif /* !XXX_ACK_WORKAROUND */ #endif /* !XXX_ACK_WORKAROUND */
} }
@ -622,7 +617,7 @@ PROCESS_THREAD(spirit_radio_process, ev, data)
if(SPIRIT1_STATUS() == SPIRIT1_STATE_READY) { if(SPIRIT1_STATUS() == SPIRIT1_STATE_READY) {
spirit1_strobe(SPIRIT1_STROBE_RX); spirit1_strobe(SPIRIT1_STROBE_RX);
BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 1 * RTIMER_SECOND/1000); BUSYWAIT_UNTIL(SPIRIT1_STATUS() == SPIRIT1_STATE_RX, 1 * RTIMER_SECOND / 1000);
} }
} }
} }
@ -633,9 +628,9 @@ PROCESS_THREAD(spirit_radio_process, ev, data)
void void
spirit1_interrupt_callback(void) spirit1_interrupt_callback(void)
{ {
#define INTPRINTF(...) // PRINTF #define INTPRINTF(...) /* PRINTF */
st_lib_spirit_irqs x_irq_status; st_lib_spirit_irqs x_irq_status;
if (spirit_spi_busy() || interrupt_callback_in_progress) { if(spirit_spi_busy() || interrupt_callback_in_progress) {
process_poll(&spirit_radio_process); process_poll(&spirit_radio_process);
interrupt_callback_wants_poll = 1; interrupt_callback_wants_poll = 1;
return; return;
@ -689,13 +684,13 @@ spirit1_interrupt_callback(void)
process_poll(&spirit_radio_process); process_poll(&spirit_radio_process);
last_rssi = (packetbuf_attr_t) st_lib_spirit_qi_get_rssi(); //MGR last_rssi = (packetbuf_attr_t)st_lib_spirit_qi_get_rssi(); /* MGR */
last_lqi = (packetbuf_attr_t) st_lib_spirit_qi_get_lqi(); //MGR last_lqi = (packetbuf_attr_t)st_lib_spirit_qi_get_lqi(); /* MGR */
receiving_packet = 0; receiving_packet = 0;
#if NULLRDC_CONF_802154_AUTOACK #if NULLRDC_CONF_802154_AUTOACK
if (spirit_rxbuf[0] == ACK_LEN) { if(spirit_rxbuf[0] == ACK_LEN) {
/* For debugging purposes we assume this is an ack for us */ /* For debugging purposes we assume this is an ack for us */
just_got_an_ack = 1; just_got_an_ack = 1;
} }
@ -705,8 +700,7 @@ spirit1_interrupt_callback(void)
return; return;
} }
if(x_irq_status.IRQ_RX_DATA_DISC) if(x_irq_status.IRQ_RX_DATA_DISC) {
{
/* RX command - to ensure the device will be ready for the next reception */ /* RX command - to ensure the device will be ready for the next reception */
if(x_irq_status.IRQ_RX_TIMEOUT) { if(x_irq_status.IRQ_RX_TIMEOUT) {
st_lib_spirit_cmd_strobe_flush_rx_fifo(); st_lib_spirit_cmd_strobe_flush_rx_fifo();

View file

@ -1,39 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file st-lib.h * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 30-July-2015 * modification, are permitted provided that the following conditions
* @brief Contiki style wrapping library for STM32Cube HAL APIs * are met:
****************************************************************************** * 1. Redistributions of source code must retain the above copyright
* @attention * notice, this list of conditions and the following disclaimer.
* * 2. Redistributions in binary form must reproduce the above copyright
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * notice, this list of conditions and the following disclaimer in the
* * documentation and/or other materials provided with the distribution.
* Redistribution and use in source and binary forms, with or without modification, * 3. Neither the name of the Institute nor the names of its contributors
* are permitted provided that the following conditions are met: * may be used to endorse or promote products derived from this software
* 1. Redistributions of source code must retain the above copyright notice, * without specific prior written permission.
* this list of conditions and the following disclaimer. *
* 2. Redistributions in binary form must reproduce the above copyright notice, * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* this list of conditions and the following disclaimer in the documentation * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* and/or other materials provided with the distribution. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* may be used to endorse or promote products derived from this software * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* without specific prior written permission. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \defgroup stm32nucleo-spirit1 STM32Cube HAL APIs * \defgroup stm32nucleo-spirit1 STM32Cube HAL APIs
@ -73,7 +67,6 @@
#define st_lib_spirit_spi_write_linear_fifo(...) SpiritSpiWriteLinearFifo(__VA_ARGS__) #define st_lib_spirit_spi_write_linear_fifo(...) SpiritSpiWriteLinearFifo(__VA_ARGS__)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* radio_gpio.h */ /* radio_gpio.h */
#include "radio_gpio.h" #include "radio_gpio.h"
@ -241,7 +234,6 @@
/* stm32l1xx_hal_rcc.h */ /* stm32l1xx_hal_rcc.h */
#include "stm32l1xx_hal_rcc.h" #include "stm32l1xx_hal_rcc.h"
#define st_lib_tim2_clk_enable(...) __TIM2_CLK_ENABLE(__VA_ARGS__) #define st_lib_tim2_clk_enable(...) __TIM2_CLK_ENABLE(__VA_ARGS__)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
@ -274,7 +266,6 @@
#define st_lib_hal_tim_oc_config_channel(...) HAL_TIM_OC_ConfigChannel(__VA_ARGS__) #define st_lib_hal_tim_oc_config_channel(...) HAL_TIM_OC_ConfigChannel(__VA_ARGS__)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* stm32l1xx_hal_uart.h */ /* stm32l1xx_hal_uart.h */
#include "stm32l1xx_hal_uart.h" #include "stm32l1xx_hal_uart.h"

View file

@ -1,30 +1,34 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file stm32l-spirit1-config.h * All rights reserved.
* @author MCD Application Team
* @version V3.4.0
* @date 29-June-2012
* @brief Evaluation board specific configuration file.
******************************************************************************
* @attention
* *
* <h2><center>&copy; COPYRIGHT 2012 STMicroelectronics</center></h2> * 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. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* *
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* You may not use this file except in compliance with the License. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* You may obtain a copy of the License at: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS 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.
* *
* http://www.st.com/software_license_agreement_liberty_v2
* *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/ */
/*----------------------------------------------------------------------------*/
/* Define to prevent recursive inclusion -------------------------------------*/ /* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32L_SPIRIT1_CONFIG_H #ifndef __STM32L_SPIRIT1_CONFIG_H
#define __STM32L_SPIRIT1_CONFIG_H #define __STM32L_SPIRIT1_CONFIG_H
@ -36,25 +40,25 @@
/* Define the STM32F10x hardware depending on the used evaluation board */ /* Define the STM32F10x hardware depending on the used evaluation board */
#ifdef USE_STM3210B_EVAL #ifdef USE_STM3210B_EVAL
#define USB_DISCONNECT GPIOD #define USB_DISCONNECT GPIOD
#define USB_DISCONNECT_PIN GPIO_PIN_9 #define USB_DISCONNECT_PIN GPIO_PIN_9
#define RCC_APB2Periph_GPIO_DISCONNECT RCC_APB2Periph_GPIOD #define RCC_APB2Periph_GPIO_DISCONNECT RCC_APB2Periph_GPIOD
#define EVAL_COM1_IRQHandler USART1_IRQHandler #define EVAL_COM1_IRQHandler USART1_IRQHandler
#elif defined (USE_STM3210E_EVAL) #elif defined(USE_STM3210E_EVAL)
#define USB_DISCONNECT GPIOB #define USB_DISCONNECT GPIOB
#define USB_DISCONNECT_PIN GPIO_PIN_14 #define USB_DISCONNECT_PIN GPIO_PIN_14
#define RCC_APB2Periph_GPIO_DISCONNECT RCC_APB2Periph_GPIOB #define RCC_APB2Periph_GPIO_DISCONNECT RCC_APB2Periph_GPIOB
#define EVAL_COM1_IRQHandler USART1_IRQHandler #define EVAL_COM1_IRQHandler USART1_IRQHandler
#elif defined (USE_STM3210C_EVAL) #elif defined(USE_STM3210C_EVAL)
#define USB_DISCONNECT 0 #define USB_DISCONNECT 0
#define USB_DISCONNECT_PIN 0 #define USB_DISCONNECT_PIN 0
#define RCC_APB2Periph_GPIO_DISCONNECT 0 #define RCC_APB2Periph_GPIO_DISCONNECT 0
#define EVAL_COM1_IRQHandler USART2_IRQHandler #define EVAL_COM1_IRQHandler USART2_IRQHandler
#elif defined (USE_STM32L152_EVAL) || defined (USE_STM32L152D_EVAL) #elif defined(USE_STM32L152_EVAL) || defined(USE_STM32L152D_EVAL)
/* /*
For STM32L15xx devices it is possible to use the internal USB pullup For STM32L15xx devices it is possible to use the internal USB pullup
controlled by register SYSCFG_PMC (refer to RM0038 reference manual for controlled by register SYSCFG_PMC (refer to RM0038 reference manual for
more details). more details).
@ -64,29 +68,29 @@
To have more details on how to use an external pull up, please refer to To have more details on how to use an external pull up, please refer to
STM3210E-EVAL evaluation board manuals. STM3210E-EVAL evaluation board manuals.
*/ */
/* Uncomment the following define to use an external pull up instead of the /* Uncomment the following define to use an external pull up instead of the
integrated STM32L15xx internal pull up. In this case make sure to set up integrated STM32L15xx internal pull up. In this case make sure to set up
correctly the external required hardware and the GPIO defines below.*/ correctly the external required hardware and the GPIO defines below.*/
/* #define USB_USE_EXTERNAL_PULLUP */ /* #define USB_USE_EXTERNAL_PULLUP */
#if !defined(USB_USE_EXTERNAL_PULLUP) #if !defined(USB_USE_EXTERNAL_PULLUP)
#define STM32L15_USB_CONNECT SYSCFG_USBPuCmd(ENABLE) #define STM32L15_USB_CONNECT SYSCFG_USBPuCmd(ENABLE)
#define STM32L15_USB_DISCONNECT SYSCFG_USBPuCmd(DISABLE) #define STM32L15_USB_DISCONNECT SYSCFG_USBPuCmd(DISABLE)
#elif defined(USB_USE_EXTERNAL_PULLUP) #elif defined(USB_USE_EXTERNAL_PULLUP)
/* PA0 is chosen just as illustrating example, you should modify the defines /* PA0 is chosen just as illustrating example, you should modify the defines
below according to your hardware configuration. */ below according to your hardware configuration. */
#define USB_DISCONNECT GPIOA #define USB_DISCONNECT GPIOA
#define USB_DISCONNECT_PIN GPIO_PIN_0 #define USB_DISCONNECT_PIN GPIO_PIN_0
#define RCC_AHBPeriph_GPIO_DISCONNECT RCC_AHBPeriph_GPIOA #define RCC_AHBPeriph_GPIO_DISCONNECT RCC_AHBPeriph_GPIOA
#define STM32L15_USB_CONNECT GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN) #define STM32L15_USB_CONNECT GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN)
#define STM32L15_USB_DISCONNECT GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN) #define STM32L15_USB_DISCONNECT GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN)
#endif /* USB_USE_EXTERNAL_PULLUP */ #endif /* USB_USE_EXTERNAL_PULLUP */
#ifdef USE_STM32L152_EVAL #ifdef USE_STM32L152_EVAL
#define EVAL_COM1_IRQHandler USART2_IRQHandler #define EVAL_COM1_IRQHandler USART2_IRQHandler
#elif defined (USE_STM32L152D_EVAL) #elif defined(USE_STM32L152D_EVAL)
#define EVAL_COM1_IRQHandler USART1_IRQHandler #define EVAL_COM1_IRQHandler USART1_IRQHandler
#endif /*USE_STM32L152_EVAL*/ #endif /*USE_STM32L152_EVAL*/
#endif /* USE_STM3210B_EVAL */ #endif /* USE_STM3210B_EVAL */

View file

@ -1,38 +1,33 @@
/** /*
****************************************************************************** * Copyright (c) 2012, STMicroelectronics.
* @file uart-msg.c * All rights reserved.
* @author System LAB *
* @version V1.0.0 * Redistribution and use in source and binary forms, with or without
* @date 17-June-2015 * modification, are permitted provided that the following conditions
****************************************************************************** * are met:
* @attention * 1. Redistributions of source code must retain the above copyright
* * notice, this list of conditions and the following disclaimer.
* <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2> * 2. Redistributions in binary form must reproduce the above copyright
* * notice, this list of conditions and the following disclaimer in the
* Redistribution and use in source and binary forms, with or without modification, * documentation and/or other materials provided with the distribution.
* are permitted provided that the following conditions are met: * 3. Neither the name of the Institute nor the names of its contributors
* 1. Redistributions of source code must retain the above copyright notice, * may be used to endorse or promote products derived from this software
* this list of conditions and the following disclaimer. * without specific prior written permission.
* 2. Redistributions in binary form must reproduce the above copyright notice, *
* this list of conditions and the following disclaimer in the documentation * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* and/or other materials provided with the distribution. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* 3. Neither the name of STMicroelectronics nor the names of its contributors * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* may be used to endorse or promote products derived from this software * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* without specific prior written permission. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * SUCH DAMAGE.
* 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.
*
******************************************************************************
*/
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#include "contiki.h" #include "contiki.h"
#include "dev/leds.h" #include "dev/leds.h"
@ -47,22 +42,23 @@
void uart_send_msg(char *); void uart_send_msg(char *);
extern st_lib_uart_handle_typedef st_lib_uart_handle; extern st_lib_uart_handle_typedef st_lib_uart_handle;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static unsigned char databyte[1] = {0}; static unsigned char databyte[1] = { 0 };
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* @brief Rx Transfer completed callbacks. * @brief Rx Transfer completed callbacks.
* @param huart: Pointer to a st_lib_uart_handle_typedef structure that contains * @param huart: Pointer to a st_lib_uart_handle_typedef structure that contains
* the configuration information for the specified UART module. * the configuration information for the specified UART module.
* @retval None * @retval None
*/ */
void st_lib_hal_uart_rx_cplt_callback(st_lib_uart_handle_typedef *huart) void
st_lib_hal_uart_rx_cplt_callback(st_lib_uart_handle_typedef *huart)
{ {
slip_input_byte(databyte[0]); slip_input_byte(databyte[0]);
st_lib_hal_uart_receive_it(&st_lib_uart_handle, databyte, 1); st_lib_hal_uart_receive_it(&st_lib_uart_handle, databyte, 1);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
uart1_set_input(int (*input) (unsigned char c)) uart1_set_input(int (*input)(unsigned char c))
{ {
st_lib_hal_uart_receive_it(&st_lib_uart_handle, databyte, 1); st_lib_hal_uart_receive_it(&st_lib_uart_handle, databyte, 1);
} }
@ -71,7 +67,7 @@ void
slip_arch_init(unsigned long ubr) slip_arch_init(unsigned long ubr)
{ {
st_lib_hal_uart_enable_it(&st_lib_uart_handle, UART_IT_RXNE); st_lib_hal_uart_enable_it(&st_lib_uart_handle, UART_IT_RXNE);
//uart1_set_input(slip_input_byte); /* uart1_set_input(slip_input_byte); */
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
void void
@ -86,8 +82,9 @@ slip_arch_writeb(unsigned char c)
* @param msg the pointer to the message to be sent * @param msg the pointer to the message to be sent
* @retval None * @retval None
*/ */
void uart_send_msg(char *msg) void
uart_send_msg(char *msg)
{ {
st_lib_hal_uart_transmit(&st_lib_uart_handle, (uint8_t*)msg, 1, 5000); st_lib_hal_uart_transmit(&st_lib_uart_handle, (uint8_t *)msg, 1, 5000);
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/