From 765ce0c22f4d3fda225445147886e1dc32da4819 Mon Sep 17 00:00:00 2001 From: Atis Elsts Date: Fri, 14 Aug 2015 16:16:46 +0200 Subject: [PATCH 01/46] Fix Rime attribute serialization in chameleon-bitopts.c for big endian systems --- core/net/rime/chameleon-bitopt.c | 36 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/core/net/rime/chameleon-bitopt.c b/core/net/rime/chameleon-bitopt.c index 151fde2b1..9183f8cbe 100644 --- a/core/net/rime/chameleon-bitopt.c +++ b/core/net/rime/chameleon-bitopt.c @@ -68,6 +68,27 @@ static const uint8_t bitmask[9] = { 0x00, 0x80, 0xc0, 0xe0, 0xf0, #define PRINTF(...) #endif +/*---------------------------------------------------------------------------*/ +/* For get_bits/set_bits functions in this file to work correctly, + * the values contained in packetbuf_attr_t variables (uint16_t internally) + * must be in little endian byte order. + */ +/* Write little endian 16 bit value */ +static void CC_INLINE +le16_write(void *ptr, uint16_t v) +{ + uint8_t *p = (uint8_t *)ptr; + p[0] = v & 0xff; + p[1] = v >> 8; +} +/*---------------------------------------------------------------------------*/ +/* Read little endian 16 bit value */ +static uint16_t CC_INLINE +le16_read(const void *ptr) +{ + const uint8_t *p = (const uint8_t *)ptr; + return ((uint16_t)p[1] << 8) | p[0]; +} /*---------------------------------------------------------------------------*/ uint8_t CC_INLINE get_bits_in_byte(uint8_t *from, int bitpos, int vallen) @@ -279,10 +300,10 @@ pack_header(struct channel *c) ((uint8_t *)packetbuf_addr(a->type))[0], ((uint8_t *)packetbuf_addr(a->type))[1]); } else { - packetbuf_attr_t val; - val = packetbuf_attr(a->type); - set_bits(&hdrptr[byteptr], bitptr & 7, - (uint8_t *)&val, len); + uint8_t buffer[2]; + packetbuf_attr_t val = packetbuf_attr(a->type); + le16_write(buffer, val); + set_bits(&hdrptr[byteptr], bitptr & 7, buffer, len); PRINTF("value %d\n", /*linkaddr_node_addr.u8[0], linkaddr_node_addr.u8[1],*/ val); @@ -349,9 +370,10 @@ unpack_header(void) a->type, addr.u8[0], addr.u8[1]); packetbuf_set_addr(a->type, &addr); } else { - packetbuf_attr_t val = 0; - get_bits((uint8_t *)&val, &hdrptr[byteptr], bitptr & 7, len); - + packetbuf_attr_t val; + uint8_t buffer[2] = {0}; + get_bits(buffer, &hdrptr[byteptr], bitptr & 7, len); + val = le16_read(buffer); packetbuf_set_attr(a->type, val); PRINTF("%d.%d: unpack_header type %d, val %d\n", linkaddr_node_addr.u8[0], linkaddr_node_addr.u8[1], From 8159297bfd48ba270c76240db1142701e114e197 Mon Sep 17 00:00:00 2001 From: Andreas Urke Date: Mon, 19 Oct 2015 17:15:54 +0200 Subject: [PATCH 02/46] Add configuration of DIS interval and DIS start delay to rpl-conf.h Make a define for configuration of DIS start delay and move it + existing DIS interval conf into RPL-conf.h --- core/net/rpl/rpl-conf.h | 18 ++++++++++++++++++ core/net/rpl/rpl-private.h | 7 +------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/core/net/rpl/rpl-conf.h b/core/net/rpl/rpl-conf.h index f4b2a14fe..d32faf5b2 100644 --- a/core/net/rpl/rpl-conf.h +++ b/core/net/rpl/rpl-conf.h @@ -296,4 +296,22 @@ + random_rand() % (RPL_PROBING_INTERVAL)) #endif +/* + * Interval of DIS transmission + */ +#ifdef RPL_CONF_DIS_INTERVAL +#define RPL_DIS_INTERVAL RPL_CONF_DIS_INTERVAL +#else +#define RPL_DIS_INTERVAL 60 +#endif + +/* + * Added delay of first DIS transmission after boot + */ +#ifdef RPL_CONF_DIS_START_DELAY +#define RPL_DIS_START_DELAY RPL_CONF_DIS_START_DELAY +#else +#define RPL_DIS_START_DELAY 5 +#endif + #endif /* RPL_CONF_H */ diff --git a/core/net/rpl/rpl-private.h b/core/net/rpl/rpl-private.h index 6f4764b27..6b043d49d 100644 --- a/core/net/rpl/rpl-private.h +++ b/core/net/rpl/rpl-private.h @@ -184,12 +184,7 @@ /* DIS related */ #define RPL_DIS_SEND 1 -#ifdef RPL_DIS_INTERVAL_CONF -#define RPL_DIS_INTERVAL RPL_DIS_INTERVAL_CONF -#else -#define RPL_DIS_INTERVAL 60 -#endif -#define RPL_DIS_START_DELAY 5 + /*---------------------------------------------------------------------------*/ /* Lollipop counters */ From 857d69a338ff3d7e08f9297bcc00b6d4429b8b15 Mon Sep 17 00:00:00 2001 From: Andreas Urke Date: Mon, 19 Oct 2015 17:31:40 +0200 Subject: [PATCH 03/46] Remove stray stars in comments --- core/net/rpl/rpl-conf.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/net/rpl/rpl-conf.h b/core/net/rpl/rpl-conf.h index d32faf5b2..5511b8289 100644 --- a/core/net/rpl/rpl-conf.h +++ b/core/net/rpl/rpl-conf.h @@ -238,7 +238,7 @@ /* * RPL probing. When enabled, probes will be sent periodically to keep * parent link estimates up to date. - * */ + */ #ifdef RPL_CONF_WITH_PROBING #define RPL_WITH_PROBING RPL_CONF_WITH_PROBING #else @@ -247,7 +247,7 @@ /* * RPL probing interval. - * */ + */ #ifdef RPL_CONF_PROBING_INTERVAL #define RPL_PROBING_INTERVAL RPL_CONF_PROBING_INTERVAL #else @@ -256,7 +256,7 @@ /* * RPL probing expiration time. - * */ + */ #ifdef RPL_CONF_PROBING_EXPIRATION_TIME #define RPL_PROBING_EXPIRATION_TIME RPL_CONF_PROBING_EXPIRATION_TIME #else @@ -265,7 +265,7 @@ /* * Function used to select the next parent to be probed. - * */ + */ #ifdef RPL_CONF_PROBING_SELECT_FUNC #define RPL_PROBING_SELECT_FUNC RPL_CONF_PROBING_SELECT_FUNC #else @@ -279,7 +279,7 @@ * To probe with DIS, use: * #define RPL_CONF_PROBING_SEND_FUNC(instance, addr) dis_output((addr)) * Any other custom probing function is also acceptable. - * */ + */ #ifdef RPL_CONF_PROBING_SEND_FUNC #define RPL_PROBING_SEND_FUNC RPL_CONF_PROBING_SEND_FUNC #else @@ -288,7 +288,7 @@ /* * Function used to calculate next RPL probing interval - * */ + */ #ifdef RPL_CONF_PROBING_DELAY_FUNC #define RPL_PROBING_DELAY_FUNC RPL_CONF_PROBING_DELAY_FUNC #else From 586f4a4ae366c19fb6324485a2ca09d7f43139e0 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Wed, 11 Nov 2015 11:44:42 +0100 Subject: [PATCH 04/46] sicslowpan.c: warning-free compilation even with fragmentation disabled --- core/net/ipv6/sicslowpan.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/net/ipv6/sicslowpan.c b/core/net/ipv6/sicslowpan.c index 34648ab2b..3a870a8c5 100644 --- a/core/net/ipv6/sicslowpan.c +++ b/core/net/ipv6/sicslowpan.c @@ -1363,8 +1363,10 @@ output(const uip_lladdr_t *localdest) /* The MAC address of the destination of the packet */ linkaddr_t dest; +#if SICSLOWPAN_CONF_FRAG /* Number of bytes processed. */ uint16_t processed_ip_out_len; +#endif /* SICSLOWPAN_CONF_FRAG */ /* init */ uncomp_hdr_len = 0; @@ -1593,8 +1595,8 @@ input(void) uint16_t frag_size = 0; /* offset of the fragment in the IP packet */ uint8_t frag_offset = 0; - uint8_t is_fragment = 0; #if SICSLOWPAN_CONF_FRAG + uint8_t is_fragment = 0; /* tag of the fragment */ uint16_t frag_tag = 0; uint8_t first_fragment = 0, last_fragment = 0; From e0e20aa3fdbe7241b2606d2a31923fd40671bc1f Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Mon, 9 Nov 2015 13:48:47 +0000 Subject: [PATCH 05/46] Turn off ENERGEST_TYPE_LISTEN in CC13xx prop mode off() --- cpu/cc26xx-cc13xx/rf-core/prop-mode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpu/cc26xx-cc13xx/rf-core/prop-mode.c b/cpu/cc26xx-cc13xx/rf-core/prop-mode.c index 0a7c4692f..a3ab8e171 100644 --- a/cpu/cc26xx-cc13xx/rf-core/prop-mode.c +++ b/cpu/cc26xx-cc13xx/rf-core/prop-mode.c @@ -971,6 +971,8 @@ off(void) rx_off_prop(); rf_core_power_down(); + ENERGEST_OFF(ENERGEST_TYPE_LISTEN); + /* Switch HF clock source to the RCOSC to preserve power */ oscillators_switch_to_hf_rc(); From 320a753666c4ca8795b205b7b18ce599a1d0e3d8 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Mon, 9 Nov 2015 13:49:26 +0000 Subject: [PATCH 06/46] Turn CC13xx RF back off after prop TX if it was off to start with --- cpu/cc26xx-cc13xx/rf-core/prop-mode.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpu/cc26xx-cc13xx/rf-core/prop-mode.c b/cpu/cc26xx-cc13xx/rf-core/prop-mode.c index a3ab8e171..10bcbd00e 100644 --- a/cpu/cc26xx-cc13xx/rf-core/prop-mode.c +++ b/cpu/cc26xx-cc13xx/rf-core/prop-mode.c @@ -647,6 +647,7 @@ static int transmit(unsigned short transmit_len) { int ret; + uint8_t was_off = 0; uint32_t cmd_status; volatile rfc_CMD_PROP_TX_ADV_t *cmd_tx_adv; @@ -654,6 +655,7 @@ transmit(unsigned short transmit_len) uint16_t total_length; if(!rf_is_on()) { + was_off = 1; if(on() != RF_CORE_CMD_OK) { PRINTF("transmit: on() failed\n"); return RADIO_TX_ERR; @@ -739,6 +741,10 @@ transmit(unsigned short transmit_len) rx_on_prop(); + if(was_off) { + off(); + } + return ret; } /*---------------------------------------------------------------------------*/ From b4393e861f8be347b7f102d841c964d60620dc4c Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Mon, 9 Nov 2015 13:50:03 +0000 Subject: [PATCH 07/46] Only set CC13xx prop mode channel if a new channel is being requested --- cpu/cc26xx-cc13xx/rf-core/prop-mode.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpu/cc26xx-cc13xx/rf-core/prop-mode.c b/cpu/cc26xx-cc13xx/rf-core/prop-mode.c index 10bcbd00e..7f46c7aed 100644 --- a/cpu/cc26xx-cc13xx/rf-core/prop-mode.c +++ b/cpu/cc26xx-cc13xx/rf-core/prop-mode.c @@ -1066,6 +1066,12 @@ set_value(radio_param_t param, radio_value_t value) return RADIO_RESULT_INVALID_VALUE; } + if(get_channel() == (uint8_t)value) { + /* We already have that very same channel configured. + * Nothing to do here. */ + return RADIO_RESULT_OK; + } + set_channel((uint8_t)value); break; case RADIO_PARAM_TXPOWER: From 2dd75d838474ba8b28f7b111ba5bdd62338c5901 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Tue, 27 Oct 2015 17:24:44 +0100 Subject: [PATCH 08/46] Added option to specify make variables in the compile regression test --- regression-tests/Makefile.compile-test | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/regression-tests/Makefile.compile-test b/regression-tests/Makefile.compile-test index 60eaf4279..bbf6396d3 100644 --- a/regression-tests/Makefile.compile-test +++ b/regression-tests/Makefile.compile-test @@ -36,12 +36,14 @@ nine := x x x x x x x x x max = $(subst xx,x,$(join ${1},${2})) gt = $(filter-out $(words ${1}),$(words $(call max,${1},${2}))) addzero = $(if $(call gt,${nine},$(1)),$(words ${1}),0$(words ${1})) +get_target = $(firstword $(subst :, ,$1)) +get_target_vars = $(wordlist 2,15,$(subst :, ,$1)) define dooneexample @echo Building example $(3): $(1) for target $(2) @((cd $(EXAMPLESDIR)/$(1); \ export STM32W_CPUREV=CC; \ - make TARGET=$(2) clean && make TARGET=$(2) WERROR=1) > \ + make $(4) TARGET=$(2) clean && make $(4) TARGET=$(2) WERROR=1) > \ $(3)-$(subst /,-,$(1))$(2).report 2>&1 && \ (echo $(1) $(2): OK | tee $(3)-$(subst /,-,$(1))$(2).summary) || \ (echo $(1) $(2): FAIL ಠ.ಠ | tee $(3)-$(subst /,-,$(1))$(2).summary ; \ @@ -50,7 +52,7 @@ endef define doexample $(eval i+=x) -$(call dooneexample,$(dir ${1}),$(notdir ${1}),$(call addzero,${i})) +$(call dooneexample,$(dir $(call get_target,${1})),$(notdir $(call get_target,${1})),$(call addzero,${i}),$(call get_target_vars,${1})) endef #end of GNU make magic From 43d26d9d8323b60ac8d6e942e57720d26fe73727 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Tue, 27 Oct 2015 17:26:08 +0100 Subject: [PATCH 09/46] Moved STM32W_CPUREV to the relevant compile regression test --- regression-tests/15-compile-arm-apcs-ports/Makefile | 2 +- regression-tests/Makefile.compile-test | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/regression-tests/15-compile-arm-apcs-ports/Makefile b/regression-tests/15-compile-arm-apcs-ports/Makefile index 61873d531..1ae39b62a 100644 --- a/regression-tests/15-compile-arm-apcs-ports/Makefile +++ b/regression-tests/15-compile-arm-apcs-ports/Makefile @@ -3,7 +3,7 @@ TOOLSDIR=../../tools EXAMPLES = \ hello-world/econotag \ -hello-world/mbxxx \ +hello-world/mbxxx:STM32W_CPUREV=CC \ ipv6/rpl-border-router/econotag \ er-rest-example/econotag \ webserver-ipv6/econotag \ diff --git a/regression-tests/Makefile.compile-test b/regression-tests/Makefile.compile-test index bbf6396d3..2f596aa27 100644 --- a/regression-tests/Makefile.compile-test +++ b/regression-tests/Makefile.compile-test @@ -42,7 +42,6 @@ get_target_vars = $(wordlist 2,15,$(subst :, ,$1)) define dooneexample @echo Building example $(3): $(1) for target $(2) @((cd $(EXAMPLESDIR)/$(1); \ - export STM32W_CPUREV=CC; \ make $(4) TARGET=$(2) clean && make $(4) TARGET=$(2) WERROR=1) > \ $(3)-$(subst /,-,$(1))$(2).report 2>&1 && \ (echo $(1) $(2): OK | tee $(3)-$(subst /,-,$(1))$(2).summary) || \ From 9dac1edae985522dde112113fbe55373c4f69e32 Mon Sep 17 00:00:00 2001 From: Oliver Schmidt Date: Tue, 17 Nov 2015 21:08:25 +0100 Subject: [PATCH 10/46] Build the webserver as done in tools/6502/Makefile. --- regression-tests/16-compile-6502-ports/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regression-tests/16-compile-6502-ports/Makefile b/regression-tests/16-compile-6502-ports/Makefile index 921e29ba8..5fdb0c986 100644 --- a/regression-tests/16-compile-6502-ports/Makefile +++ b/regression-tests/16-compile-6502-ports/Makefile @@ -7,7 +7,7 @@ irc-80col/c64 \ telnet-server/c64 \ webbrowser/c64 \ webbrowser-80col/c64 \ -webserver/c64 \ +webserver/c64:HTTPD-CFS=1 \ wget/c64 \ telnet-server/apple2enh \ telnet-server/atarixl \ From 938a425949a54736863babdad14e6a00261697d6 Mon Sep 17 00:00:00 2001 From: Tommy Sparber Date: Fri, 30 Oct 2015 21:41:59 +1100 Subject: [PATCH 11/46] Cleanup trailing spaces and convert tabs to spaces This commit removes trailing spaces and converts tabs to spaces in all files affected by fix-doxygen PR. --- apps/program-handler/program-handler.c | 168 +++--- core/net/ip/uip.h | 133 ++--- core/net/ipv6/sicslowpan.c | 187 +++--- core/net/ipv6/uip-ds6-nbr.c | 20 +- core/net/ipv6/uip-ds6.c | 10 +- core/net/ipv6/uip-nd6.c | 28 +- core/net/ipv6/uip-nd6.h | 4 +- core/net/ipv6/uip6.c | 186 +++--- cpu/arm/aducrf101/Common/ADuCRF101.h | 532 +++++++++--------- cpu/arm/aducrf101/Common/radioeng.c | 380 ++++++------- cpu/arm/at91sam7s/loader/elfloader-arch-otf.h | 8 +- cpu/arm/at91sam7s/loader/elfloader-otf.h | 31 +- cpu/avr/dev/lanc111.c | 20 +- cpu/avr/minileds.c | 47 +- cpu/mc1322x/lib/printf.c | 2 +- cpu/msp430/f1xxx/clock.c | 8 +- cpu/stm32w108/hal/error.h | 2 - cpu/stm32w108/hal/micro/cortexm3/nvm.h | 56 +- cpu/stm32w108/hal/micro/cortexm3/uart.h | 14 +- .../micro/generic/compiler/platform-common.h | 44 +- cpu/stm32w108/hal/micro/micro-common.h | 1 - doc/sicslowpan-doc.txt | 52 +- doc/uip6-doc.txt | 56 +- platform/avr-ravenusb/cdc_task.c | 2 +- platform/avr-ravenusb/rng.c | 10 +- platform/cooja-ip64/contiki-cooja-ip64-main.c | 2 +- platform/cooja/contiki-cooja-main.c | 25 +- platform/wismote/dev/acc-sensor.c | 3 +- platform/wismote/dev/ext-sensor.c | 3 +- 29 files changed, 1001 insertions(+), 1033 deletions(-) diff --git a/apps/program-handler/program-handler.c b/apps/program-handler/program-handler.c index 4173d7c04..d3195084a 100644 --- a/apps/program-handler/program-handler.c +++ b/apps/program-handler/program-handler.c @@ -1,19 +1,19 @@ /* * Copyright (c) 2003, Adam Dunkels. - * All rights reserved. + * 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. + * 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. + * with the distribution. * 3. The name of the author may not be used to endorse or promote * products derived from this software without specific prior - * written permission. + * written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -25,7 +25,7 @@ * 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. + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * This file is part of the Contiki desktop OS * @@ -35,7 +35,7 @@ /** * \file * The program handler, used for loading programs and starting the - * screensaver. + * screensaver. * \author Adam Dunkels * * The Contiki program handler is responsible for the Contiki menu and @@ -45,7 +45,7 @@ * The program handler also is responsible for starting the * screensaver when the CTK detects that it should be started. */ - + #include #include @@ -161,7 +161,7 @@ char program_handler_screensaver[20]; /*-----------------------------------------------------------------------------------*/ void program_handler_add(struct dsc *dsc, char *menuname, - unsigned char desktop) + unsigned char desktop) { contikidsc[contikidsclast++] = dsc; ctk_menuitem_add(&contikimenu, menuname); @@ -228,7 +228,7 @@ program_handler_load(char *name, char *arg) { #ifdef WITH_LOADER_ARCH struct pnarg *pnarg; - + pnarg = pnarg_copy(name, arg); if(pnarg != NULL) { process_post(&program_handler_process, LOADER_EVENT_DISPLAY_NAME, pnarg); @@ -272,17 +272,17 @@ static void make_windows(void) { ctk_window_new(&runwindow, 16, 3, "Run"); - + CTK_WIDGET_ADD(&runwindow, &namelabel); CTK_WIDGET_ADD(&runwindow, &nameentry); CTK_WIDGET_ADD(&runwindow, &loadbutton); - + CTK_WIDGET_FOCUS(&runwindow, &nameentry); - + ctk_dialog_new(&loadingdialog, 25, 1); CTK_WIDGET_ADD(&loadingdialog, &loadingmsg); CTK_WIDGET_ADD(&loadingdialog, &loadingname); - + ctk_dialog_new(&errordialog, 22, 8); CTK_WIDGET_ADD(&errordialog, &errormsg); CTK_WIDGET_ADD(&errordialog, &errorfilelabel); @@ -302,20 +302,20 @@ PROCESS_THREAD(program_handler_process, ev, data) struct dsc **dscp; PROCESS_BEGIN(); - + /* Create the menus */ ctk_menu_add(&contikimenu); #if WITH_LOADER_ARCH runmenuitem = ctk_menuitem_add(&contikimenu, "Run program..."); - + make_windows(); #endif /* WITH_LOADER_ARCH */ #if QUIT_MENU quitmenuitem = ctk_menuitem_add(&contikimenu, "Quit"); #endif /* QUIT_MENU */ - + displayname = NULL; - + #if CTK_CONF_SCREENSAVER program_handler_screensaver[0] = 0; #endif /* CTK_CONF_SCREENSAVER */ @@ -325,106 +325,106 @@ PROCESS_THREAD(program_handler_process, ev, data) if(ev == ctk_signal_button_activate) { #ifdef WITH_LOADER_ARCH if(data == (process_data_t)&loadbutton) { - ctk_window_close(&runwindow); - program_handler_load(name, NULL); + ctk_window_close(&runwindow); + program_handler_load(name, NULL); } else if(data == (process_data_t)&errorokbutton) { - ctk_dialog_close(); + ctk_dialog_close(); } #endif /* WITH_LOADER_ARCH */ #if QUIT_MENU if(data == (process_data_t)&quityesbutton) { - ctk_draw_init(); - exit(EXIT_SUCCESS); + ctk_draw_init(); + exit(EXIT_SUCCESS); } else if(data == (process_data_t)&quitnobutton) { - ctk_dialog_close(); + ctk_dialog_close(); } #endif /* QUIT_MENU */ dscp = &contikidsc[0]; - for(i = 0; i < CTK_MAXMENUITEMS; ++i) { - if(*dscp != NULL + for(i = 0; i < CTK_MAXMENUITEMS; ++i) { + if(*dscp != NULL #if CTK_CONF_ICONS - && data == (process_data_t)(*dscp)->icon + && data == (process_data_t)(*dscp)->icon #endif /* CTK_CONF_ICONS */ - ) { - RUN((*dscp)->prgname, (*dscp)->process, NULL); - break; - } - ++dscp; + ) { + RUN((*dscp)->prgname, (*dscp)->process, NULL); + break; + } + ++dscp; } } else if(ev == ctk_signal_menu_activate) { if((struct ctk_menu *)data == &contikimenu) { #if WITH_LOADER_ARCH - dsc = contikidsc[contikimenu.active]; - if(dsc != NULL) { - RUN(dsc->prgname, dsc->process, NULL); - } else if(contikimenu.active == runmenuitem) { - make_windows(); - ctk_window_close(&runwindow); - ctk_window_open(&runwindow); - CTK_WIDGET_FOCUS(&runwindow, &nameentry); - } + dsc = contikidsc[contikimenu.active]; + if(dsc != NULL) { + RUN(dsc->prgname, dsc->process, NULL); + } else if(contikimenu.active == runmenuitem) { + make_windows(); + ctk_window_close(&runwindow); + ctk_window_open(&runwindow); + CTK_WIDGET_FOCUS(&runwindow, &nameentry); + } #else /* WITH_LOADER_ARCH */ - if(contikidsc[contikimenu.active] != NULL) { - RUN(contikidsc[contikimenu.active]->prgname, - contikidsc[contikimenu.active]->process, - NULL); - } + if(contikidsc[contikimenu.active] != NULL) { + RUN(contikidsc[contikimenu.active]->prgname, + contikidsc[contikimenu.active]->process, + NULL); + } #endif /* WITH_LOADER_ARCH */ #if QUIT_MENU - if(contikimenu.active == quitmenuitem) { - ctk_dialog_new(&quitdialog, 24, 5); - CTK_WIDGET_ADD(&quitdialog, &quitdialoglabel); - CTK_WIDGET_ADD(&quitdialog, &quityesbutton); - CTK_WIDGET_ADD(&quitdialog, &quitnobutton); - CTK_WIDGET_FOCUS(&quitdialog, &quitnobutton); - ctk_dialog_open(&quitdialog); - } + if(contikimenu.active == quitmenuitem) { + ctk_dialog_new(&quitdialog, 24, 5); + CTK_WIDGET_ADD(&quitdialog, &quitdialoglabel); + CTK_WIDGET_ADD(&quitdialog, &quityesbutton); + CTK_WIDGET_ADD(&quitdialog, &quitnobutton); + CTK_WIDGET_FOCUS(&quitdialog, &quitnobutton); + ctk_dialog_open(&quitdialog); + } #endif /* QUIT_MENU */ } #if CTK_CONF_SCREENSAVER } else if(ev == ctk_signal_screensaver_start) { #if WITH_LOADER_ARCH if(program_handler_screensaver[0] != 0) { - program_handler_load(program_handler_screensaver, NULL); + program_handler_load(program_handler_screensaver, NULL); } #endif /* WITH_LOADER_ARCH */ #endif /* CTK_CONF_SCREENSAVER */ } else if(ev == LOADER_EVENT_DISPLAY_NAME) { #if WITH_LOADER_ARCH if(displayname == NULL) { - make_windows(); - - ctk_label_set_text(&loadingname, ((struct pnarg *)data)->name); - ctk_dialog_open(&loadingdialog); - process_post(&program_handler_process, LOADER_EVENT_LOAD, data); - displayname = data; + make_windows(); + + ctk_label_set_text(&loadingname, ((struct pnarg *)data)->name); + ctk_dialog_open(&loadingdialog); + process_post(&program_handler_process, LOADER_EVENT_LOAD, data); + displayname = data; } else { - /* Try again. */ - process_post(&program_handler_process, LOADER_EVENT_DISPLAY_NAME, data); + /* Try again. */ + process_post(&program_handler_process, LOADER_EVENT_DISPLAY_NAME, data); } #endif /* WITH_LOADER_ARCH */ } else if(ev == LOADER_EVENT_LOAD) { #if WITH_LOADER_ARCH if(displayname == data) { - ctk_dialog_close(); - displayname = NULL; - log_message("Loading ", ((struct pnarg *)data)->name); - err = LOADER_LOAD(((struct pnarg *)data)->name, - ((struct pnarg *)data)->arg); - if(err != LOADER_OK) { - make_windows(); - errorfilename[0] = '"'; - strncpy(errorfilename + 1, ((struct pnarg *)data)->name, - sizeof(errorfilename) - 2); - errorfilename[1 + strlen(((struct pnarg *)data)->name)] = '"'; - ctk_label_set_text(&errortype, (char *)errormsgs[err]); - ctk_dialog_open(&errordialog); - log_message((char *)errormsgs[err], errorfilename); - } - pnarg_free(data); + ctk_dialog_close(); + displayname = NULL; + log_message("Loading ", ((struct pnarg *)data)->name); + err = LOADER_LOAD(((struct pnarg *)data)->name, + ((struct pnarg *)data)->arg); + if(err != LOADER_OK) { + make_windows(); + errorfilename[0] = '"'; + strncpy(errorfilename + 1, ((struct pnarg *)data)->name, + sizeof(errorfilename) - 2); + errorfilename[1 + strlen(((struct pnarg *)data)->name)] = '"'; + ctk_label_set_text(&errortype, (char *)errormsgs[err]); + ctk_dialog_open(&errordialog); + log_message((char *)errormsgs[err], errorfilename); + } + pnarg_free(data); } else { - /* Try again. */ - process_post(&program_handler_process, LOADER_EVENT_DISPLAY_NAME, data); + /* Try again. */ + process_post(&program_handler_process, LOADER_EVENT_DISPLAY_NAME, data); } #endif /* WITH_LOADEER_ARCH */ } diff --git a/core/net/ip/uip.h b/core/net/ip/uip.h index 12861cdd9..58f201ced 100644 --- a/core/net/ip/uip.h +++ b/core/net/ip/uip.h @@ -64,17 +64,11 @@ #define UIP_TCPH_LEN 20 /* Size of TCP header */ #define UIP_ICMPH_LEN 4 /* Size of ICMP header */ -#define UIP_IPUDPH_LEN (UIP_UDPH_LEN + UIP_IPH_LEN) /* Size of IP + - * UDP - * header */ -#define UIP_IPTCPH_LEN (UIP_TCPH_LEN + UIP_IPH_LEN) /* Size of IP + - * TCP - * header */ +#define UIP_IPUDPH_LEN (UIP_UDPH_LEN + UIP_IPH_LEN) /* Size of IP + UDP header */ +#define UIP_IPTCPH_LEN (UIP_TCPH_LEN + UIP_IPH_LEN) /* Size of IP + TCP header */ #define UIP_TCPIP_HLEN UIP_IPTCPH_LEN -#define UIP_IPICMPH_LEN (UIP_IPH_LEN + UIP_ICMPH_LEN) /* size of ICMP - + IP header */ -#define UIP_LLIPH_LEN (UIP_LLH_LEN + UIP_IPH_LEN) /* size of L2 - + IP header */ +#define UIP_IPICMPH_LEN (UIP_IPH_LEN + UIP_ICMPH_LEN) /* Size of ICMP + IP header */ +#define UIP_LLIPH_LEN (UIP_LLH_LEN + UIP_IPH_LEN) /* Size of L2 + IP header */ #if NETSTACK_CONF_WITH_IPV6 /** * The sums below are quite used in ND. When used for uip_buf, we @@ -99,12 +93,12 @@ * */ typedef union uip_ip4addr_t { - uint8_t u8[4]; /* Initializer, must come first. */ + uint8_t u8[4]; /* Initializer, must come first. */ uint16_t u16[2]; } uip_ip4addr_t; typedef union uip_ip6addr_t { - uint8_t u8[16]; /* Initializer, must come first. */ + uint8_t u8[16]; /* Initializer, must come first. */ uint16_t u16[8]; } uip_ip6addr_t; @@ -1057,7 +1051,7 @@ struct uip_udp_conn *uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport); * \hideinitializer */ #define uip_ip4addr_cmp(addr1, addr2) ((addr1)->u16[0] == (addr2)->u16[0] && \ - (addr1)->u16[1] == (addr2)->u16[1]) + (addr1)->u16[1] == (addr2)->u16[1]) #define uip_ip6addr_cmp(addr1, addr2) (memcmp(addr1, addr2, sizeof(uip_ip6addr_t)) == 0) #if NETSTACK_CONF_WITH_IPV6 @@ -1358,26 +1352,21 @@ struct uip_conn { uint16_t lport; /**< The local TCP port, in network byte order. */ uint16_t rport; /**< The local remote TCP port, in network byte - order. */ + order. */ uint8_t rcv_nxt[4]; /**< The sequence number that we expect to - receive next. */ - uint8_t snd_nxt[4]; /**< The sequence number that was last sent by - us. */ + receive next. */ + uint8_t snd_nxt[4]; /**< The sequence number that was last sent by us. */ uint16_t len; /**< Length of the data that was previously sent. */ - uint16_t mss; /**< Current maximum segment size for the - connection. */ - uint16_t initialmss; /**< Initial maximum segment size for the - connection. */ - uint8_t sa; /**< Retransmission time-out calculation state - variable. */ - uint8_t sv; /**< Retransmission time-out calculation state - variable. */ + uint16_t mss; /**< Current maximum segment size for the connection. */ + uint16_t initialmss; /**< Initial maximum segment size for the connection. */ + uint8_t sa; /**< Retransmission time-out calculation state variable. */ + uint8_t sv; /**< Retransmission time-out calculation state variable. */ uint8_t rto; /**< Retransmission time-out. */ uint8_t tcpstateflags; /**< TCP state and flags. */ uint8_t timer; /**< The retransmission timer. */ uint8_t nrtx; /**< The number of retransmissions for the last - segment sent. */ + segment sent. */ /** The application state. */ uip_tcp_appstate_t appstate; @@ -1431,9 +1420,9 @@ struct uip_fallback_interface { void (*init)(void); /** * \retval >=0 - * in case of success + * in case of success * \retval <0 - * in case of failure + * in case of failure */ int (*output)(void); }; @@ -1464,51 +1453,43 @@ extern struct uip_stats uip_stat; */ struct uip_stats { struct { - uip_stats_t recv; /**< Number of received packets at the IP - layer. */ - uip_stats_t sent; /**< Number of sent packets at the IP - layer. */ - uip_stats_t forwarded;/**< Number of forwarded packets at the IP - layer. */ - uip_stats_t drop; /**< Number of dropped packets at the IP - layer. */ + uip_stats_t recv; /**< Number of received packets at the IP layer. */ + uip_stats_t sent; /**< Number of sent packets at the IP layer. */ + uip_stats_t forwarded;/**< Number of forwarded packets at the IP layer. */ + uip_stats_t drop; /**< Number of dropped packets at the IP layer. */ uip_stats_t vhlerr; /**< Number of packets dropped due to wrong - IP version or header length. */ + IP version or header length. */ uip_stats_t hblenerr; /**< Number of packets dropped due to wrong - IP length, high byte. */ + IP length, high byte. */ uip_stats_t lblenerr; /**< Number of packets dropped due to wrong - IP length, low byte. */ + IP length, low byte. */ uip_stats_t fragerr; /**< Number of packets dropped because they - were IP fragments. */ + were IP fragments. */ uip_stats_t chkerr; /**< Number of packets dropped due to IP - checksum errors. */ + checksum errors. */ uip_stats_t protoerr; /**< Number of packets dropped because they - were neither ICMP, UDP nor TCP. */ + were neither ICMP, UDP nor TCP. */ } ip; /**< IP statistics. */ struct { uip_stats_t recv; /**< Number of received ICMP packets. */ uip_stats_t sent; /**< Number of sent ICMP packets. */ uip_stats_t drop; /**< Number of dropped ICMP packets. */ - uip_stats_t typeerr; /**< Number of ICMP packets with a wrong - type. */ - uip_stats_t chkerr; /**< Number of ICMP packets with a bad - checksum. */ + uip_stats_t typeerr; /**< Number of ICMP packets with a wrong type. */ + uip_stats_t chkerr; /**< Number of ICMP packets with a bad checksum. */ } icmp; /**< ICMP statistics. */ #if UIP_TCP struct { uip_stats_t recv; /**< Number of recived TCP segments. */ uip_stats_t sent; /**< Number of sent TCP segments. */ uip_stats_t drop; /**< Number of dropped TCP segments. */ - uip_stats_t chkerr; /**< Number of TCP segments with a bad - checksum. */ - uip_stats_t ackerr; /**< Number of TCP segments with a bad ACK - number. */ + uip_stats_t chkerr; /**< Number of TCP segments with a bad checksum. */ + uip_stats_t ackerr; /**< Number of TCP segments with a bad ACK number. */ uip_stats_t rst; /**< Number of received TCP RST (reset) segments. */ uip_stats_t rexmit; /**< Number of retransmitted TCP segments. */ uip_stats_t syndrop; /**< Number of dropped SYNs because too few - connections were available. */ + connections were available. */ uip_stats_t synrst; /**< Number of SYNs for closed ports, - triggering a RST. */ + triggering a RST. */ } tcp; /**< TCP statistics. */ #endif #if UIP_UDP @@ -1517,7 +1498,7 @@ struct uip_stats { uip_stats_t recv; /**< Number of recived UDP segments. */ uip_stats_t sent; /**< Number of sent UDP segments. */ uip_stats_t chkerr; /**< Number of UDP segments with a bad - checksum. */ + checksum. */ } udp; /**< UDP statistics. */ #endif /* UIP_UDP */ #if NETSTACK_CONF_WITH_IPV6 @@ -1554,33 +1535,33 @@ CCIF extern uint8_t uip_flags; functions/macros. */ #define UIP_ACKDATA 1 /* Signifies that the outstanding data was - acked and the application should send - out new data instead of retransmitting - the last data. */ + acked and the application should send + out new data instead of retransmitting + the last data. */ #define UIP_NEWDATA 2 /* Flags the fact that the peer has sent - us new data. */ + us new data. */ #define UIP_REXMIT 4 /* Tells the application to retransmit the - data that was last sent. */ + data that was last sent. */ #define UIP_POLL 8 /* Used for polling the application, to - check if the application has data that - it wants to send. */ + check if the application has data that + it wants to send. */ #define UIP_CLOSE 16 /* The remote host has closed the - connection, thus the connection has - gone away. Or the application signals - that it wants to close the - connection. */ + connection, thus the connection has + gone away. Or the application signals + that it wants to close the + connection. */ #define UIP_ABORT 32 /* The remote host has aborted the - connection, thus the connection has - gone away. Or the application signals - that it wants to abort the - connection. */ + connection, thus the connection has + gone away. Or the application signals + that it wants to abort the + connection. */ #define UIP_CONNECTED 64 /* We have got a connection from a remote host and have set up a new connection for it, or an active connection has been successfully established. */ #define UIP_TIMEDOUT 128 /* The connection has been aborted due to - too many retransmissions. */ + too many retransmissions. */ /** @@ -1606,16 +1587,16 @@ void uip_process(uint8_t flag); the macros defined in this file. */ #define UIP_DATA 1 /* Tells uIP that there is incoming - data in the uip_buf buffer. The - length of the data is stored in the - global variable uip_len. */ + data in the uip_buf buffer. The + length of the data is stored in the + global variable uip_len. */ #define UIP_TIMER 2 /* Tells uIP that the periodic timer - has fired. */ + has fired. */ #define UIP_POLL_REQUEST 3 /* Tells uIP that a connection should - be polled. */ + be polled. */ #define UIP_UDP_SEND_CONN 4 /* Tells uIP that a UDP datagram - should be constructed in the - uip_buf buffer. */ + should be constructed in the + uip_buf buffer. */ #if UIP_UDP #define UIP_UDP_TIMER 5 #endif /* UIP_UDP */ diff --git a/core/net/ipv6/sicslowpan.c b/core/net/ipv6/sicslowpan.c index 3a870a8c5..c546ff038 100644 --- a/core/net/ipv6/sicslowpan.c +++ b/core/net/ipv6/sicslowpan.c @@ -52,9 +52,9 @@ * FOR HC-06 COMPLIANCE TODO: * -Add compression options to UDP, currently only supports * both ports compressed or both ports elided - * + * * -Verify TC/FL compression works - * + * * -Add stateless multicast option */ @@ -317,7 +317,7 @@ set_packet_attrs() /** Addresses contexts for IPHC. */ #if SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 0 -static struct sicslowpan_addr_context +static struct sicslowpan_addr_context addr_contexts[SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS]; #endif @@ -381,7 +381,7 @@ addr_context_lookup_by_prefix(uip_ipaddr_t *ipaddr) static struct sicslowpan_addr_context* addr_context_lookup_by_number(uint8_t number) { -/* Remove code to avoid warnings and save flash if no context is used */ +/* Remove code to avoid warnings and save flash if no context is used */ #if SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 0 int i; for(i = 0; i < SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS; i++) { @@ -540,11 +540,11 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) * We have to process both in the same time as the offset of traffic class * depends on the presence of version and flow label */ - + /* hc06 format of tc is ECN | DSCP , original is DSCP | ECN */ tmp = (UIP_IP_BUF->vtc << 4) | (UIP_IP_BUF->tcflow >> 4); tmp = ((tmp & 0x03) << 6) | (tmp >> 2); - + if(((UIP_IP_BUF->tcflow & 0x0F) == 0) && (UIP_IP_BUF->flow == 0)) { /* flow label can be compressed */ @@ -585,7 +585,7 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) iphc0 |= SICSLOWPAN_IPHC_NH_C; } #endif /*UIP_CONF_UDP*/ -#ifdef SICSLOWPAN_NH_COMPRESSOR +#ifdef SICSLOWPAN_NH_COMPRESSOR if(SICSLOWPAN_NH_COMPRESSOR.is_compressable(UIP_IP_BUF->proto)) { iphc0 |= SICSLOWPAN_IPHC_NH_C; } @@ -627,7 +627,7 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) != NULL) { /* elide the prefix - indicate by CID and set context + SAC */ PRINTF("IPHC: compressing src with context - setting CID & SAC ctx: %d\n", - context->number); + context->number); iphc1 |= SICSLOWPAN_IPHC_CID | SICSLOWPAN_IPHC_SAC; PACKETBUF_IPHC_BUF[2] |= context->number << 4; /* compession compare with this nodes address (source) */ @@ -636,9 +636,9 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) &UIP_IP_BUF->srcipaddr, &uip_lladdr); /* No context found for this address */ } else if(uip_is_addr_linklocal(&UIP_IP_BUF->srcipaddr) && - UIP_IP_BUF->destipaddr.u16[1] == 0 && - UIP_IP_BUF->destipaddr.u16[2] == 0 && - UIP_IP_BUF->destipaddr.u16[3] == 0) { + UIP_IP_BUF->destipaddr.u16[1] == 0 && + UIP_IP_BUF->destipaddr.u16[2] == 0 && + UIP_IP_BUF->destipaddr.u16[3] == 0) { iphc1 |= compress_addr_64(SICSLOWPAN_IPHC_SAM_BIT, &UIP_IP_BUF->srcipaddr, &uip_lladdr); } else { @@ -684,12 +684,13 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) /* compession compare with link adress (destination) */ iphc1 |= compress_addr_64(SICSLOWPAN_IPHC_DAM_BIT, - &UIP_IP_BUF->destipaddr, (uip_lladdr_t *)link_destaddr); + &UIP_IP_BUF->destipaddr, + (uip_lladdr_t *)link_destaddr); /* No context found for this address */ } else if(uip_is_addr_linklocal(&UIP_IP_BUF->destipaddr) && - UIP_IP_BUF->destipaddr.u16[1] == 0 && - UIP_IP_BUF->destipaddr.u16[2] == 0 && - UIP_IP_BUF->destipaddr.u16[3] == 0) { + UIP_IP_BUF->destipaddr.u16[1] == 0 && + UIP_IP_BUF->destipaddr.u16[2] == 0 && + UIP_IP_BUF->destipaddr.u16[3] == 0) { iphc1 |= compress_addr_64(SICSLOWPAN_IPHC_DAM_BIT, &UIP_IP_BUF->destipaddr, (uip_lladdr_t *)link_destaddr); } else { @@ -706,7 +707,7 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) /* UDP header compression */ if(UIP_IP_BUF->proto == UIP_PROTO_UDP) { PRINTF("IPHC: Uncompressed UDP ports on send side: %x, %x\n", - UIP_HTONS(UIP_UDP_BUF->srcport), UIP_HTONS(UIP_UDP_BUF->destport)); + UIP_HTONS(UIP_UDP_BUF->srcport), UIP_HTONS(UIP_UDP_BUF->destport)); /* Mask out the last 4 bits can be used as a mask */ if(((UIP_HTONS(UIP_UDP_BUF->srcport) & 0xfff0) == SICSLOWPAN_UDP_4_BIT_PORT_MIN) && ((UIP_HTONS(UIP_UDP_BUF->destport) & 0xfff0) == SICSLOWPAN_UDP_4_BIT_PORT_MIN)) { @@ -714,10 +715,10 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) *hc06_ptr = SICSLOWPAN_NHC_UDP_CS_P_11; PRINTF("IPHC: remove 12 b of both source & dest with prefix 0xFOB\n"); *(hc06_ptr + 1) = - (uint8_t)((UIP_HTONS(UIP_UDP_BUF->srcport) - - SICSLOWPAN_UDP_4_BIT_PORT_MIN) << 4) + - (uint8_t)((UIP_HTONS(UIP_UDP_BUF->destport) - - SICSLOWPAN_UDP_4_BIT_PORT_MIN)); + (uint8_t)((UIP_HTONS(UIP_UDP_BUF->srcport) - + SICSLOWPAN_UDP_4_BIT_PORT_MIN) << 4) + + (uint8_t)((UIP_HTONS(UIP_UDP_BUF->destport) - + SICSLOWPAN_UDP_4_BIT_PORT_MIN)); hc06_ptr += 2; } else if((UIP_HTONS(UIP_UDP_BUF->destport) & 0xff00) == SICSLOWPAN_UDP_8_BIT_PORT_MIN) { /* we can compress 8 bits of dest, leave source. */ @@ -725,16 +726,16 @@ compress_hdr_hc06(linkaddr_t *link_destaddr) PRINTF("IPHC: leave source, remove 8 bits of dest with prefix 0xF0\n"); memcpy(hc06_ptr + 1, &UIP_UDP_BUF->srcport, 2); *(hc06_ptr + 3) = - (uint8_t)((UIP_HTONS(UIP_UDP_BUF->destport) - - SICSLOWPAN_UDP_8_BIT_PORT_MIN)); + (uint8_t)((UIP_HTONS(UIP_UDP_BUF->destport) - + SICSLOWPAN_UDP_8_BIT_PORT_MIN)); hc06_ptr += 4; } else if((UIP_HTONS(UIP_UDP_BUF->srcport) & 0xff00) == SICSLOWPAN_UDP_8_BIT_PORT_MIN) { /* we can compress 8 bits of src, leave dest. Copy compressed port */ *hc06_ptr = SICSLOWPAN_NHC_UDP_CS_P_10; PRINTF("IPHC: remove 8 bits of source with prefix 0xF0, leave dest. hch: %i\n", *hc06_ptr); *(hc06_ptr + 1) = - (uint8_t)((UIP_HTONS(UIP_UDP_BUF->srcport) - - SICSLOWPAN_UDP_8_BIT_PORT_MIN)); + (uint8_t)((UIP_HTONS(UIP_UDP_BUF->srcport) - + SICSLOWPAN_UDP_8_BIT_PORT_MIN)); memcpy(hc06_ptr + 2, &UIP_UDP_BUF->destport, 2); hc06_ptr += 4; } else { @@ -811,13 +812,13 @@ uncompress_hdr_hc06(uint16_t ip_len) SICSLOWPAN_IP_BUF->vtc = 0x60 | ((tmp >> 2) & 0x0f); /* ECN rolled down two steps + lowest DSCP bits at top two bits */ SICSLOWPAN_IP_BUF->tcflow = ((tmp >> 2) & 0x30) | (tmp << 6) | - (SICSLOWPAN_IP_BUF->tcflow & 0x0f); + (SICSLOWPAN_IP_BUF->tcflow & 0x0f); } else { /* Traffic class is compressed (set version and no TC)*/ SICSLOWPAN_IP_BUF->vtc = 0x60; /* highest flow label bits + ECN bits */ SICSLOWPAN_IP_BUF->tcflow = (*hc06_ptr & 0x0F) | - ((*hc06_ptr >> 2) & 0x30); + ((*hc06_ptr >> 2) & 0x30); memcpy(&SICSLOWPAN_IP_BUF->flow, hc06_ptr + 1, 2); hc06_ptr += 3; } @@ -908,14 +909,13 @@ uncompress_hdr_hc06(uint16_t ip_len) /* no multicast */ /* Context based */ if(iphc1 & SICSLOWPAN_IPHC_DAC) { - uint8_t dci = (iphc1 & SICSLOWPAN_IPHC_CID) ? - PACKETBUF_IPHC_BUF[2] & 0x0f : 0; + uint8_t dci = (iphc1 & SICSLOWPAN_IPHC_CID) ? PACKETBUF_IPHC_BUF[2] & 0x0f : 0; context = addr_context_lookup_by_number(dci); /* all valid cases below need the context! */ if(context == NULL) { - PRINTF("sicslowpan uncompress_hdr: error context not found\n"); - return; + PRINTF("sicslowpan uncompress_hdr: error context not found\n"); + return; } uncompress_addr(&SICSLOWPAN_IP_BUF->destipaddr, context->prefix, unc_ctxconf[tmp], @@ -939,56 +939,56 @@ uncompress_hdr_hc06(uint16_t ip_len) PRINTF("IPHC: Incoming header value: %i\n", *hc06_ptr); switch(*hc06_ptr & SICSLOWPAN_NHC_UDP_CS_P_11) { case SICSLOWPAN_NHC_UDP_CS_P_00: - /* 1 byte for NHC, 4 byte for ports, 2 bytes chksum */ - memcpy(&SICSLOWPAN_UDP_BUF->srcport, hc06_ptr + 1, 2); - memcpy(&SICSLOWPAN_UDP_BUF->destport, hc06_ptr + 3, 2); - PRINTF("IPHC: Uncompressed UDP ports (ptr+5): %x, %x\n", - UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); - hc06_ptr += 5; - break; + /* 1 byte for NHC, 4 byte for ports, 2 bytes chksum */ + memcpy(&SICSLOWPAN_UDP_BUF->srcport, hc06_ptr + 1, 2); + memcpy(&SICSLOWPAN_UDP_BUF->destport, hc06_ptr + 3, 2); + PRINTF("IPHC: Uncompressed UDP ports (ptr+5): %x, %x\n", + UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); + hc06_ptr += 5; + break; case SICSLOWPAN_NHC_UDP_CS_P_01: /* 1 byte for NHC + source 16bit inline, dest = 0xF0 + 8 bit inline */ - PRINTF("IPHC: Decompressing destination\n"); - memcpy(&SICSLOWPAN_UDP_BUF->srcport, hc06_ptr + 1, 2); - SICSLOWPAN_UDP_BUF->destport = UIP_HTONS(SICSLOWPAN_UDP_8_BIT_PORT_MIN + (*(hc06_ptr + 3))); - PRINTF("IPHC: Uncompressed UDP ports (ptr+4): %x, %x\n", - UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); - hc06_ptr += 4; - break; + PRINTF("IPHC: Decompressing destination\n"); + memcpy(&SICSLOWPAN_UDP_BUF->srcport, hc06_ptr + 1, 2); + SICSLOWPAN_UDP_BUF->destport = UIP_HTONS(SICSLOWPAN_UDP_8_BIT_PORT_MIN + (*(hc06_ptr + 3))); + PRINTF("IPHC: Uncompressed UDP ports (ptr+4): %x, %x\n", + UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); + hc06_ptr += 4; + break; case SICSLOWPAN_NHC_UDP_CS_P_10: /* 1 byte for NHC + source = 0xF0 + 8bit inline, dest = 16 bit inline*/ - PRINTF("IPHC: Decompressing source\n"); - SICSLOWPAN_UDP_BUF->srcport = UIP_HTONS(SICSLOWPAN_UDP_8_BIT_PORT_MIN + - (*(hc06_ptr + 1))); - memcpy(&SICSLOWPAN_UDP_BUF->destport, hc06_ptr + 2, 2); - PRINTF("IPHC: Uncompressed UDP ports (ptr+4): %x, %x\n", - UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); - hc06_ptr += 4; - break; + PRINTF("IPHC: Decompressing source\n"); + SICSLOWPAN_UDP_BUF->srcport = UIP_HTONS(SICSLOWPAN_UDP_8_BIT_PORT_MIN + + (*(hc06_ptr + 1))); + memcpy(&SICSLOWPAN_UDP_BUF->destport, hc06_ptr + 2, 2); + PRINTF("IPHC: Uncompressed UDP ports (ptr+4): %x, %x\n", + UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); + hc06_ptr += 4; + break; case SICSLOWPAN_NHC_UDP_CS_P_11: - /* 1 byte for NHC, 1 byte for ports */ - SICSLOWPAN_UDP_BUF->srcport = UIP_HTONS(SICSLOWPAN_UDP_4_BIT_PORT_MIN + - (*(hc06_ptr + 1) >> 4)); - SICSLOWPAN_UDP_BUF->destport = UIP_HTONS(SICSLOWPAN_UDP_4_BIT_PORT_MIN + - ((*(hc06_ptr + 1)) & 0x0F)); - PRINTF("IPHC: Uncompressed UDP ports (ptr+2): %x, %x\n", - UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); - hc06_ptr += 2; - break; + /* 1 byte for NHC, 1 byte for ports */ + SICSLOWPAN_UDP_BUF->srcport = UIP_HTONS(SICSLOWPAN_UDP_4_BIT_PORT_MIN + + (*(hc06_ptr + 1) >> 4)); + SICSLOWPAN_UDP_BUF->destport = UIP_HTONS(SICSLOWPAN_UDP_4_BIT_PORT_MIN + + ((*(hc06_ptr + 1)) & 0x0F)); + PRINTF("IPHC: Uncompressed UDP ports (ptr+2): %x, %x\n", + UIP_HTONS(SICSLOWPAN_UDP_BUF->srcport), UIP_HTONS(SICSLOWPAN_UDP_BUF->destport)); + hc06_ptr += 2; + break; default: - PRINTF("sicslowpan uncompress_hdr: error unsupported UDP compression\n"); - return; + PRINTF("sicslowpan uncompress_hdr: error unsupported UDP compression\n"); + return; } if(!checksum_compressed) { /* has_checksum, default */ - memcpy(&SICSLOWPAN_UDP_BUF->udpchksum, hc06_ptr, 2); - hc06_ptr += 2; - PRINTF("IPHC: sicslowpan uncompress_hdr: checksum included\n"); + memcpy(&SICSLOWPAN_UDP_BUF->udpchksum, hc06_ptr, 2); + hc06_ptr += 2; + PRINTF("IPHC: sicslowpan uncompress_hdr: checksum included\n"); } else { - PRINTF("IPHC: sicslowpan uncompress_hdr: checksum *NOT* included\n"); + PRINTF("IPHC: sicslowpan uncompress_hdr: checksum *NOT* included\n"); } uncomp_hdr_len += UIP_UDPH_LEN; } @@ -1000,7 +1000,7 @@ uncompress_hdr_hc06(uint16_t ip_len) } packetbuf_hdr_len = hc06_ptr - packetbuf_ptr; - + /* IP length field. */ if(ip_len == 0) { int len = packetbuf_datalen() - packetbuf_hdr_len + uncomp_hdr_len - UIP_IPH_LEN; @@ -1012,7 +1012,7 @@ uncompress_hdr_hc06(uint16_t ip_len) SICSLOWPAN_IP_BUF->len[0] = (ip_len - UIP_IPH_LEN) >> 8; SICSLOWPAN_IP_BUF->len[1] = (ip_len - UIP_IPH_LEN) & 0x00FF; } - + /* length field in UDP header */ if(SICSLOWPAN_IP_BUF->proto == UIP_PROTO_UDP) { memcpy(&SICSLOWPAN_UDP_BUF->udplen, &SICSLOWPAN_IP_BUF->len[0], 2); @@ -1144,7 +1144,7 @@ compress_hdr_hc1(linkaddr_t *link_destaddr) UIP_HTONS(UIP_UDP_BUF->destport) < SICSLOWPAN_UDP_PORT_MAX) { /* HC1 encoding */ PACKETBUF_HC1_HC_UDP_PTR[PACKETBUF_HC1_HC_UDP_HC1_ENCODING] = 0xFB; - + /* HC_UDP encoding, ttl, src and dest ports, checksum */ PACKETBUF_HC1_HC_UDP_PTR[PACKETBUF_HC1_HC_UDP_UDP_ENCODING] = 0xE0; PACKETBUF_HC1_HC_UDP_PTR[PACKETBUF_HC1_HC_UDP_TTL] = UIP_IP_BUF->ttl; @@ -1192,17 +1192,17 @@ uncompress_hdr_hc1(uint16_t ip_len) SICSLOWPAN_IP_BUF->vtc = 0x60; SICSLOWPAN_IP_BUF->tcflow = 0; SICSLOWPAN_IP_BUF->flow = 0; - + /* src and dest ip addresses */ uip_ip6addr(&SICSLOWPAN_IP_BUF->srcipaddr, 0xfe80, 0, 0, 0, 0, 0, 0, 0); uip_ds6_set_addr_iid(&SICSLOWPAN_IP_BUF->srcipaddr, - (uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_SENDER)); + (uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_SENDER)); uip_ip6addr(&SICSLOWPAN_IP_BUF->destipaddr, 0xfe80, 0, 0, 0, 0, 0, 0, 0); uip_ds6_set_addr_iid(&SICSLOWPAN_IP_BUF->destipaddr, - (uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_RECEIVER)); - + (uip_lladdr_t *)packetbuf_addr(PACKETBUF_ADDR_RECEIVER)); + uncomp_hdr_len += UIP_IPH_LEN; - + /* Next header field */ switch(PACKETBUF_HC1_PTR[PACKETBUF_HC1_ENCODING] & 0x06) { case SICSLOWPAN_HC1_NH_ICMP6: @@ -1248,7 +1248,7 @@ uncompress_hdr_hc1(uint16_t ip_len) /* this shouldn't happen, drop */ return; } - + /* IP length field. */ if(ip_len == 0) { int len = packetbuf_datalen() - packetbuf_hdr_len + uncomp_hdr_len - UIP_IPH_LEN; @@ -1412,7 +1412,7 @@ output(const uip_lladdr_t *localdest) } else { linkaddr_copy(&dest, (const linkaddr_t *)localdest); } - + PRINTFO("sicslowpan output: sending packet len %d\n", uip_len); if(uip_len >= COMPRESSION_THRESHOLD) { @@ -1512,7 +1512,7 @@ output(const uip_lladdr_t *localdest) /* set processed_ip_out_len to what we already sent from the IP payload*/ processed_ip_out_len = packetbuf_payload_len + uncomp_hdr_len; - + /* * Create following fragments * Datagram tag is already in the buffer, we need to set the @@ -1527,7 +1527,7 @@ output(const uip_lladdr_t *localdest) while(processed_ip_out_len < uip_len) { PRINTFO("sicslowpan output: fragment "); PACKETBUF_FRAG_PTR[PACKETBUF_FRAG_OFFSET] = processed_ip_out_len >> 3; - + /* Copy payload and send */ if(uip_len - processed_ip_out_len < packetbuf_payload_len) { /* last fragment */ @@ -1759,8 +1759,8 @@ input(void) PACKETBUF_HC1_PTR[PACKETBUF_HC1_DISPATCH]); return; } - - + + #if SICSLOWPAN_CONF_FRAG copypayload: #endif /*SICSLOWPAN_CONF_FRAG*/ @@ -1791,7 +1791,7 @@ input(void) } memcpy((uint8_t *)SICSLOWPAN_IP_BUF + uncomp_hdr_len + (uint16_t)(frag_offset << 3), packetbuf_ptr + packetbuf_hdr_len, packetbuf_payload_len); - + /* update processed_ip_in_len if fragment, sicslowpan_len otherwise */ #if SICSLOWPAN_CONF_FRAG @@ -1873,13 +1873,13 @@ sicslowpan_init(void) * The platform contiki-conf.h file can override this using e.g. * #define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=0xbb;addr_contexts[0].prefix[1]=0xbb;} */ -#if SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 0 +#if SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 0 addr_contexts[0].used = 1; addr_contexts[0].number = 0; #ifdef SICSLOWPAN_CONF_ADDR_CONTEXT_0 - SICSLOWPAN_CONF_ADDR_CONTEXT_0; + SICSLOWPAN_CONF_ADDR_CONTEXT_0; #else - addr_contexts[0].prefix[0] = 0xaa; + addr_contexts[0].prefix[0] = 0xaa; addr_contexts[0].prefix[1] = 0xaa; #endif #endif /* SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 0 */ @@ -1889,23 +1889,22 @@ sicslowpan_init(void) int i; for(i = 1; i < SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS; i++) { #ifdef SICSLOWPAN_CONF_ADDR_CONTEXT_1 - if (i==1) { - addr_contexts[1].used = 1; - addr_contexts[1].number = 1; - SICSLOWPAN_CONF_ADDR_CONTEXT_1; + if (i==1) { + addr_contexts[1].used = 1; + addr_contexts[1].number = 1; + SICSLOWPAN_CONF_ADDR_CONTEXT_1; #ifdef SICSLOWPAN_CONF_ADDR_CONTEXT_2 } else if (i==2) { - addr_contexts[2].used = 1; - addr_contexts[2].number = 2; - SICSLOWPAN_CONF_ADDR_CONTEXT_2; + addr_contexts[2].used = 1; + addr_contexts[2].number = 2; + SICSLOWPAN_CONF_ADDR_CONTEXT_2; #endif } else { addr_contexts[i].used = 0; - } + } #else addr_contexts[i].used = 0; #endif /* SICSLOWPAN_CONF_ADDR_CONTEXT_1 */ - } } #endif /* SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 1 */ diff --git a/core/net/ipv6/uip-ds6-nbr.c b/core/net/ipv6/uip-ds6-nbr.c index db14f8647..9bbd1bbd3 100644 --- a/core/net/ipv6/uip-ds6-nbr.c +++ b/core/net/ipv6/uip-ds6-nbr.c @@ -203,18 +203,18 @@ uip_ds6_link_neighbor_callback(int status, int numtx) #if UIP_DS6_LL_NUD /* From RFC4861, page 72, last paragraph of section 7.3.3: * - * "In some cases, link-specific information may indicate that a path to - * a neighbor has failed (e.g., the resetting of a virtual circuit). In - * such cases, link-specific information may be used to purge Neighbor - * Cache entries before the Neighbor Unreachability Detection would do - * so. However, link-specific information MUST NOT be used to confirm - * the reachability of a neighbor; such information does not provide - * end-to-end confirmation between neighboring IP layers." + * "In some cases, link-specific information may indicate that a path to + * a neighbor has failed (e.g., the resetting of a virtual circuit). In + * such cases, link-specific information may be used to purge Neighbor + * Cache entries before the Neighbor Unreachability Detection would do + * so. However, link-specific information MUST NOT be used to confirm + * the reachability of a neighbor; such information does not provide + * end-to-end confirmation between neighboring IP layers." * * However, we assume that receiving a link layer ack ensures the delivery - * of the transmitted packed to the IP stack of the neighbour. This is a - * fair assumption and allows battery powered nodes save some battery by - * not re-testing the state of a neighbour periodically if it + * of the transmitted packed to the IP stack of the neighbour. This is a + * fair assumption and allows battery powered nodes save some battery by + * not re-testing the state of a neighbour periodically if it * acknowledges link packets. */ if(status == MAC_TX_OK) { uip_ds6_nbr_t *nbr; diff --git a/core/net/ipv6/uip-ds6.c b/core/net/ipv6/uip-ds6.c index 148c8aa24..5202a71c5 100644 --- a/core/net/ipv6/uip-ds6.c +++ b/core/net/ipv6/uip-ds6.c @@ -297,9 +297,9 @@ uip_ds6_prefix_t * uip_ds6_prefix_lookup(uip_ipaddr_t *ipaddr, uint8_t ipaddrlen) { if(uip_ds6_list_loop((uip_ds6_element_t *)uip_ds6_prefix_list, - UIP_DS6_PREFIX_NB, sizeof(uip_ds6_prefix_t), - ipaddr, ipaddrlen, - (uip_ds6_element_t **)&locprefix) == FOUND) { + UIP_DS6_PREFIX_NB, sizeof(uip_ds6_prefix_t), + ipaddr, ipaddrlen, + (uip_ds6_element_t **)&locprefix) == FOUND) { return locprefix; } return NULL; @@ -489,8 +489,8 @@ uip_ds6_aaddr_lookup(uip_ipaddr_t *ipaddr) { #if UIP_DS6_AADDR_NB if(uip_ds6_list_loop((uip_ds6_element_t *)uip_ds6_if.aaddr_list, - UIP_DS6_AADDR_NB, sizeof(uip_ds6_aaddr_t), ipaddr, 128, - (uip_ds6_element_t **)&locaaddr) == FOUND) { + UIP_DS6_AADDR_NB, sizeof(uip_ds6_aaddr_t), ipaddr, 128, + (uip_ds6_element_t **)&locaaddr) == FOUND) { return locaaddr; } #endif /* UIP_DS6_AADDR_NB */ diff --git a/core/net/ipv6/uip-nd6.c b/core/net/ipv6/uip-nd6.c index 1b966027a..5d3c0dc8d 100644 --- a/core/net/ipv6/uip-nd6.c +++ b/core/net/ipv6/uip-nd6.c @@ -93,7 +93,7 @@ void uip_log(char *msg); /** \name Pointers to the header structures. * All pointers except UIP_IP_BUF depend on uip_ext_len, which at * packet reception, is the total length of the extension headers. - * + * * The pointer to ND6 options header also depends on nd6_opt_offset, * which we set in each function. * @@ -143,7 +143,7 @@ extract_lladdr_aligned(uip_lladdr_t *dest) { } #endif /* UIP_ND6_SEND_NA || UIP_ND6_SEND_RA || !UIP_CONF_ROUTER */ /*------------------------------------------------------------------*/ -/* create a llao */ +/* create a llao */ static void create_llao(uint8_t *llao, uint8_t type) { llao[UIP_ND6_OPT_TYPE_OFFSET] = type; @@ -361,7 +361,7 @@ uip_nd6_ns_output(uip_ipaddr_t * src, uip_ipaddr_t * dest, uip_ipaddr_t * tgt) UIP_IP_BUF->len[0] = 0; /* length will not be more than 255 */ /* * check if we add a SLLAO option: for DAD, MUST NOT, for NUD, MAY - * (here yes), for Address resolution , MUST + * (here yes), for Address resolution , MUST */ if(!(uip_ds6_is_my_addr(tgt))) { if(src != NULL) { @@ -378,7 +378,7 @@ uip_nd6_ns_output(uip_ipaddr_t * src, uip_ipaddr_t * dest, uip_ipaddr_t * tgt) UIP_ICMPH_LEN + UIP_ND6_NS_LEN + UIP_ND6_OPT_LLAO_LEN; create_llao(&uip_buf[uip_l2_l3_icmp_hdr_len + UIP_ND6_NS_LEN], - UIP_ND6_OPT_SLLAO); + UIP_ND6_OPT_SLLAO); uip_len = UIP_IPH_LEN + UIP_ICMPH_LEN + UIP_ND6_NS_LEN + UIP_ND6_OPT_LLAO_LEN; @@ -437,9 +437,9 @@ na_input(void) PRINTF("\n"); UIP_STAT(++uip_stat.nd6.recv); - /* + /* * booleans. the three last one are not 0 or 1 but 0 or 0x80, 0x40, 0x20 - * but it works. Be careful though, do not use tests such as is_router == 1 + * but it works. Be careful though, do not use tests such as is_router == 1 */ is_llchange = 0; is_router = ((UIP_ND6_NA_BUF->flagsreserved & UIP_ND6_NA_FLAG_ROUTER)); @@ -505,7 +505,7 @@ na_input(void) goto discard; } memcpy(lladdr, &nd6_opt_llao[UIP_ND6_OPT_DATA_OFFSET], - UIP_LLADDR_LEN); + UIP_LLADDR_LEN); if(is_solicited) { nbr->state = NBR_REACHABLE; nbr->nscount = 0; @@ -528,7 +528,7 @@ na_input(void) || nd6_opt_llao == 0) { if(nd6_opt_llao != 0) { memcpy(lladdr, &nd6_opt_llao[UIP_ND6_OPT_DATA_OFFSET], - UIP_LLADDR_LEN); + UIP_LLADDR_LEN); } if(is_solicited) { nbr->state = NBR_REACHABLE; @@ -564,7 +564,7 @@ na_input(void) uip_packetqueue_free(&nbr->packethandle); return; } - + #endif /*UIP_CONF_IPV6_QUEUE_PKT */ discard: @@ -590,7 +590,7 @@ rs_input(void) #if UIP_CONF_IPV6_CHECKS /* - * Check hop limit / icmp code + * Check hop limit / icmp code * target address must not be multicast * if the NA is solicited, dest must not be multicast */ @@ -796,7 +796,7 @@ uip_nd6_rs_output(void) UIP_ICMPH_LEN + UIP_ND6_RS_LEN + UIP_ND6_OPT_LLAO_LEN; create_llao(&uip_buf[uip_l2_l3_icmp_hdr_len + UIP_ND6_RS_LEN], - UIP_ND6_OPT_SLLAO); + UIP_ND6_OPT_SLLAO); } UIP_ICMP_BUF->icmpchksum = 0; @@ -877,9 +877,9 @@ ra_input(void) nbr->state = NBR_STALE; } if(memcmp(&nd6_opt_llao[UIP_ND6_OPT_DATA_OFFSET], - lladdr, UIP_LLADDR_LEN) != 0) { + lladdr, UIP_LLADDR_LEN) != 0) { memcpy(lladdr, &nd6_opt_llao[UIP_ND6_OPT_DATA_OFFSET], - UIP_LLADDR_LEN); + UIP_LLADDR_LEN); nbr->state = NBR_STALE; } nbr->isrouter = 1; @@ -937,7 +937,7 @@ ra_input(void) if((nd6_opt_prefix_info->flagsreserved1 & UIP_ND6_RA_FLAG_AUTONOMOUS) && (nd6_opt_prefix_info->validlt != 0) && (nd6_opt_prefix_info->preflen == UIP_DEFAULT_PREFIX_LEN)) { - + uip_ipaddr_copy(&ipaddr, &nd6_opt_prefix_info->prefix); uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); addr = uip_ds6_addr_lookup(&ipaddr); diff --git a/core/net/ipv6/uip-nd6.h b/core/net/ipv6/uip-nd6.h index 8b5893328..852443903 100644 --- a/core/net/ipv6/uip-nd6.h +++ b/core/net/ipv6/uip-nd6.h @@ -128,9 +128,9 @@ #endif #ifdef UIP_CONF_ND6_RETRANS_TIMER -#define UIP_ND6_RETRANS_TIMER UIP_CONF_ND6_RETRANS_TIMER +#define UIP_ND6_RETRANS_TIMER UIP_CONF_ND6_RETRANS_TIMER #else -#define UIP_ND6_RETRANS_TIMER 1000 +#define UIP_ND6_RETRANS_TIMER 1000 #endif #define UIP_ND6_DELAY_FIRST_PROBE_TIME 5 diff --git a/core/net/ipv6/uip6.c b/core/net/ipv6/uip6.c index 63858017c..5c524860d 100644 --- a/core/net/ipv6/uip6.c +++ b/core/net/ipv6/uip6.c @@ -103,7 +103,7 @@ void uip_log(char *msg); #if UIP_STATISTICS == 1 struct uip_stats uip_stat; #endif /* UIP_STATISTICS == 1 */ - + /*---------------------------------------------------------------------------*/ /** @@ -299,15 +299,15 @@ uip_add32(uint8_t *op32, uint16_t op16) uip_acc32[2] = op32[2] + (op16 >> 8); uip_acc32[1] = op32[1]; uip_acc32[0] = op32[0]; - + if(uip_acc32[2] < (op16 >> 8)) { ++uip_acc32[1]; if(uip_acc32[1] == 0) { ++uip_acc32[0]; } } - - + + if(uip_acc32[3] < (op16 & 0xff)) { ++uip_acc32[2]; if(uip_acc32[2] == 0) { @@ -332,7 +332,7 @@ chksum(uint16_t sum, const uint8_t *data, uint16_t len) dataptr = data; last_byte = data + len - 1; - + while(dataptr < last_byte) { /* At least two more bytes */ t = (dataptr[0] << 8) + dataptr[1]; sum += t; @@ -341,7 +341,7 @@ chksum(uint16_t sum, const uint8_t *data, uint16_t len) } dataptr += 2; } - + if(dataptr == last_byte) { t = (dataptr[0] << 8) + 0; sum += t; @@ -386,11 +386,11 @@ upper_layer_chksum(uint8_t proto) */ volatile uint16_t upper_layer_len; uint16_t sum; - + upper_layer_len = (((uint16_t)(UIP_IP_BUF->len[0]) << 8) + UIP_IP_BUF->len[1] - uip_ext_len); - + PRINTF("Upper layer checksum len: %d from: %d\n", upper_layer_len, - UIP_IPH_LEN + UIP_LLH_LEN + uip_ext_len); + UIP_IPH_LEN + UIP_LLH_LEN + uip_ext_len); /* First sum pseudoheader. */ /* IP protocol and length fields. This addition cannot carry. */ @@ -401,7 +401,7 @@ upper_layer_chksum(uint8_t proto) /* Sum TCP header and data. */ sum = chksum(sum, &uip_buf[UIP_IPH_LEN + UIP_LLH_LEN + uip_ext_len], upper_layer_len); - + return (sum == 0) ? 0xffff : uip_htons(sum); } /*---------------------------------------------------------------------------*/ @@ -409,7 +409,7 @@ uint16_t uip_icmp6chksum(void) { return upper_layer_chksum(UIP_PROTO_ICMP6); - + } /*---------------------------------------------------------------------------*/ #if UIP_TCP @@ -432,7 +432,7 @@ uip_udpchksum(void) void uip_init(void) { - + uip_ds6_init(); uip_icmp6_init(); uip_nd6_init(); @@ -466,7 +466,7 @@ struct uip_conn * uip_connect(const uip_ipaddr_t *ripaddr, uint16_t rport) { register struct uip_conn *conn, *cconn; - + /* Find an unused local port. */ again: ++lastport; @@ -503,7 +503,7 @@ uip_connect(const uip_ipaddr_t *ripaddr, uint16_t rport) if(conn == 0) { return 0; } - + conn->tcpstateflags = UIP_SYN_SENT; conn->snd_nxt[0] = iss[0]; @@ -517,7 +517,7 @@ uip_connect(const uip_ipaddr_t *ripaddr, uint16_t rport) conn->rcv_nxt[3] = 0; conn->initialmss = conn->mss = UIP_TCP_MSS; - + conn->len = 1; /* TCP length of the SYN is one. */ conn->nrtx = 0; conn->timer = 1; /* Send the SYN next time around. */ @@ -527,7 +527,7 @@ uip_connect(const uip_ipaddr_t *ripaddr, uint16_t rport) conn->lport = uip_htons(lastport); conn->rport = rport; uip_ipaddr_copy(&conn->ripaddr, ripaddr); - + return conn; } #endif /* UIP_TCP && UIP_ACTIVE_OPEN */ @@ -538,14 +538,14 @@ remove_ext_hdr(void) /* Remove ext header before TCP/UDP processing. */ if(uip_ext_len > 0) { PRINTF("Cutting ext-header before processing (extlen: %d, uiplen: %d)\n", - uip_ext_len, uip_len); + uip_ext_len, uip_len); if(uip_len < UIP_IPH_LEN + uip_ext_len) { PRINTF("ERROR: uip_len too short compared to ext len\n"); uip_clear_buf(); return; } memmove(((uint8_t *)UIP_TCP_BUF), (uint8_t *)UIP_TCP_BUF + uip_ext_len, - uip_len - UIP_IPH_LEN - uip_ext_len); + uip_len - UIP_IPH_LEN - uip_ext_len); uip_len -= uip_ext_len; @@ -561,7 +561,7 @@ struct uip_udp_conn * uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport) { register struct uip_udp_conn *conn; - + /* Find an unused local port. */ again: ++lastport; @@ -569,7 +569,7 @@ uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport) if(lastport >= 32000) { lastport = 4096; } - + for(c = 0; c < UIP_UDP_CONNS; ++c) { if(uip_udp_conns[c].lport == uip_htons(lastport)) { goto again; @@ -587,7 +587,7 @@ uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport) if(conn == 0) { return 0; } - + conn->lport = UIP_HTONS(lastport); conn->rport = rport; if(ripaddr == NULL) { @@ -596,7 +596,7 @@ uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport) uip_ipaddr_copy(&conn->ripaddr, ripaddr); } conn->ttl = uip_ds6_if.cur_hop_limit; - + return conn; } #endif /* UIP_UDP */ @@ -668,7 +668,7 @@ uip_reass(void) uint16_t offset=0; uint16_t len; uint16_t i; - + /* If ip_reasstmr is zero, no packet is present in the buffer */ /* We first write the unfragmentable part of IP header into the reassembly buffer. The reset the other reassembly variables. */ @@ -710,9 +710,9 @@ uip_reass(void) PRINTF("dest "); PRINT6ADDR(&FBUF->destipaddr); PRINTF("next %d\n", UIP_IP_BUF->proto); - + } - + /* If the offset or the offset + fragment length overflows the reassembly buffer, we discard the entire packet. */ if(offset > UIP_REASS_BUFSIZE || @@ -744,12 +744,12 @@ uip_reass(void) return uip_len; } } - + /* Copy the fragment into the reassembly buffer, at the right offset. */ memcpy((uint8_t *)FBUF + UIP_IPH_LEN + uip_ext_len + offset, (uint8_t *)UIP_FRAG_BUF + UIP_FRAGH_LEN, len); - + /* Update the bitmap. */ if(offset >> 6 == (offset + len) >> 6) { uip_reassbitmap[offset >> 6] |= @@ -760,18 +760,18 @@ uip_reass(void) bytes in the endpoints and fill the stuff inbetween with 0xff. */ uip_reassbitmap[offset >> 6] |= bitmap_bits[(offset >> 3) & 7]; - + for(i = (1 + (offset >> 6)); i < ((offset + len) >> 6); ++i) { uip_reassbitmap[i] = 0xff; } uip_reassbitmap[(offset + len) >> 6] |= ~bitmap_bits[((offset + len) >> 3) & 7]; } - + /* Finally, we check if we have a full packet in the buffer. We do this by checking if we have the last fragment and if all bits in the bitmap are set. */ - + if(uip_reassflags & UIP_REASS_FLAG_LASTFRAG) { /* Check all bytes up to and including all but the last byte in the bitmap. */ @@ -798,9 +798,9 @@ uip_reass(void) UIP_IP_BUF->len[1] = ((uip_reasslen - UIP_IPH_LEN) & 0xff); PRINTF("REASSEMBLED PAQUET %d (%d)\n", uip_reasslen, (UIP_IP_BUF->len[0] << 8) | UIP_IP_BUF->len[1]); - + return uip_reasslen; - + } } else { PRINTF("Already reassembling another paquet\n"); @@ -831,7 +831,7 @@ uip_reass_over(void) memcpy(UIP_IP_BUF, FBUF, UIP_IPH_LEN); /* copy the header for src and dest address*/ uip_icmp6_error_output(ICMP6_TIME_EXCEEDED, ICMP6_TIME_EXCEED_REASSEMBLY, 0); - + UIP_STAT(++uip_stat.ip.sent); uip_flags = 0; } @@ -881,14 +881,14 @@ ext_hdr_options_process(void) uip_ext_opt_offset += UIP_EXT_HDR_OPT_PADN_BUF->opt_len + 2; break; case UIP_EXT_HDR_OPT_RPL: - /* Fixes situation when a node that is not using RPL - * joins a network which does. The received packages will include the - * RPL header and processed by the "default" case of the switch - * (0x63 & 0xC0 = 0x40). Hence, the packet is discarded as the header - * is considered invalid. - * Using this fix, the header is ignored, and the next header (if - * present) is processed. - */ + /* Fixes situation when a node that is not using RPL + * joins a network which does. The received packages will include the + * RPL header and processed by the "default" case of the switch + * (0x63 & 0xC0 = 0x40). Hence, the packet is discarded as the header + * is considered invalid. + * Using this fix, the header is ignored, and the next header (if + * present) is processed. + */ #if UIP_CONF_IPV6_RPL PRINTF("Processing RPL option\n"); if(rpl_verify_header(uip_ext_opt_offset)) { @@ -949,7 +949,7 @@ uip_process(uint8_t flag) } #endif /* UIP_UDP */ uip_sappdata = uip_appdata = &uip_buf[UIP_IPTCPH_LEN + UIP_LLH_LEN]; - + /* Check if we were invoked because of a poll request for a particular connection. */ if(flag == UIP_POLL_REQUEST) { @@ -974,7 +974,7 @@ uip_process(uint8_t flag) #if UIP_TCP uip_clear_buf(); uip_slen = 0; - + /* Increase the initial sequence number. */ if(++iss[3] == 0) { if(++iss[2] == 0) { @@ -983,7 +983,7 @@ uip_process(uint8_t flag) } } } - + /* * Check if the connection is in a state in which we simply wait * for the connection to time out. If so, we increase the @@ -1009,7 +1009,7 @@ uip_process(uint8_t flag) uip_connr->tcpstateflags == UIP_SYN_RCVD) && uip_connr->nrtx == UIP_MAXSYNRTX)) { uip_connr->tcpstateflags = UIP_CLOSED; - + /* * We call UIP_APPCALL() with uip_flags set to * UIP_TIMEDOUT to inform the application that the @@ -1017,18 +1017,18 @@ uip_process(uint8_t flag) */ uip_flags = UIP_TIMEDOUT; UIP_APPCALL(); - + /* We also send a reset packet to the remote host. */ UIP_TCP_BUF->flags = TCP_RST | TCP_ACK; goto tcp_send_nodata; } - + /* Exponential backoff. */ uip_connr->timer = UIP_RTO << (uip_connr->nrtx > 4? 4: uip_connr->nrtx); ++(uip_connr->nrtx); - + /* * Ok, so we need to retransmit. We do this differently * depending on which state we are in. In ESTABLISHED, we @@ -1042,14 +1042,14 @@ uip_process(uint8_t flag) case UIP_SYN_RCVD: /* In the SYN_RCVD state, we should retransmit our SYNACK. */ goto tcp_send_synack; - + #if UIP_ACTIVE_OPEN case UIP_SYN_SENT: /* In the SYN_SENT state, we retransmit out SYN. */ UIP_TCP_BUF->flags = 0; goto tcp_send_syn; #endif /* UIP_ACTIVE_OPEN */ - + case UIP_ESTABLISHED: /* * In the ESTABLISHED state, we call upon the application @@ -1060,7 +1060,7 @@ uip_process(uint8_t flag) uip_flags = UIP_REXMIT; UIP_APPCALL(); goto apprexmit; - + case UIP_FIN_WAIT_1: case UIP_CLOSING: case UIP_LAST_ACK: @@ -1096,12 +1096,12 @@ uip_process(uint8_t flag) } #endif /* UIP_UDP */ - + /* This is where the input processing starts. */ UIP_STAT(++uip_stat.ip.recv); - + /* Start of IP input header processing code. */ - + /* Check validity of the IP header. */ if((UIP_IP_BUF->vtc & 0xf0) != 0x60) { /* IP version and header length. */ UIP_STAT(++uip_stat.ip.drop); @@ -1117,7 +1117,7 @@ uip_process(uint8_t flag) * the packet has been padded and we set uip_len to the correct * value.. */ - + if((UIP_IP_BUF->len[0] << 8) + UIP_IP_BUF->len[1] <= uip_len) { uip_len = (UIP_IP_BUF->len[0] << 8) + UIP_IP_BUF->len[1] + UIP_IPH_LEN; /* @@ -1135,7 +1135,7 @@ uip_process(uint8_t flag) UIP_LOG("ip: packet shorter than reported in IP header."); goto drop; } - + PRINTF("IPv6 packet received from "); PRINT6ADDR(&UIP_IP_BUF->srcipaddr); PRINTF(" to "); @@ -1168,11 +1168,11 @@ uip_process(uint8_t flag) uip_ext_len += (UIP_EXT_BUF->len << 3) + 8; break; case 1: - PRINTF("Dropping packet after extension header processing\n"); + PRINTF("Dropping packet after extension header processing\n"); /* silently discard */ goto drop; case 2: - PRINTF("Sending error message after extension header processing\n"); + PRINTF("Sending error message after extension header processing\n"); /* send icmp error message (created in ext_hdr_options_process) * and discard*/ goto send; @@ -1417,7 +1417,7 @@ uip_process(uint8_t flag) UIP_LOG("ip6: unrecognized header"); goto send; /* End of headers processing */ - + icmp6_input: /* This is IPv6 ICMPv6 processing code. */ PRINTF("icmp6_input: length %d type: %d \n", uip_len, UIP_ICMP_BUF->type); @@ -1459,14 +1459,14 @@ uip_process(uint8_t flag) UIP_LOG("icmp6: unknown ICMPv6 message."); uip_clear_buf(); } - + if(uip_len > 0) { goto send; } else { goto drop; } /* End of IPv6 ICMP processing. */ - + #if UIP_UDP /* UDP input processing. */ @@ -1475,7 +1475,7 @@ uip_process(uint8_t flag) remove_ext_hdr(); PRINTF("Receiving UDP packet\n"); - + /* UDP processing is really just a hack. We don't do anything to the UDP/IP headers, but let the UDP application do all the hard work. If the application sets uip_slen, it has a packet to @@ -1538,7 +1538,7 @@ uip_process(uint8_t flag) udp_found: PRINTF("In udp_found\n"); UIP_STAT(++uip_stat.udp.recv); - + uip_conn = NULL; uip_flags = UIP_NEWDATA; uip_sappdata = uip_appdata = &uip_buf[UIP_IPUDPH_LEN + UIP_LLH_LEN]; @@ -1597,7 +1597,7 @@ uip_process(uint8_t flag) UIP_STAT(++uip_stat.tcp.recv); PRINTF("Receiving TCP packet\n"); /* Start of TCP input header processing code. */ - + if(uip_tcpchksum() != 0xffff) { /* Compute and check the TCP checksum. */ UIP_STAT(++uip_stat.tcp.drop); @@ -1632,7 +1632,7 @@ uip_process(uint8_t flag) if((UIP_TCP_BUF->flags & TCP_CTL) != TCP_SYN) { goto reset; } - + tmp16 = UIP_TCP_BUF->destport; /* Next, check listening connections. */ for(c = 0; c < UIP_LISTENPORTS; ++c) { @@ -1640,7 +1640,7 @@ uip_process(uint8_t flag) goto found_listen; } } - + /* No matching connection found, so we send a RST packet. */ UIP_STAT(++uip_stat.tcp.synrst); @@ -1652,7 +1652,7 @@ uip_process(uint8_t flag) } UIP_STAT(++uip_stat.tcp.rst); - + UIP_TCP_BUF->flags = TCP_RST | TCP_ACK; uip_len = UIP_IPTCPH_LEN; UIP_TCP_BUF->tcpoffset = 5 << 4; @@ -1661,15 +1661,15 @@ uip_process(uint8_t flag) c = UIP_TCP_BUF->seqno[3]; UIP_TCP_BUF->seqno[3] = UIP_TCP_BUF->ackno[3]; UIP_TCP_BUF->ackno[3] = c; - + c = UIP_TCP_BUF->seqno[2]; UIP_TCP_BUF->seqno[2] = UIP_TCP_BUF->ackno[2]; UIP_TCP_BUF->ackno[2] = c; - + c = UIP_TCP_BUF->seqno[1]; UIP_TCP_BUF->seqno[1] = UIP_TCP_BUF->ackno[1]; UIP_TCP_BUF->ackno[1] = c; - + c = UIP_TCP_BUF->seqno[0]; UIP_TCP_BUF->seqno[0] = UIP_TCP_BUF->ackno[0]; UIP_TCP_BUF->ackno[0] = c; @@ -1684,12 +1684,12 @@ uip_process(uint8_t flag) } } } - + /* Swap port numbers. */ tmp16 = UIP_TCP_BUF->srcport; UIP_TCP_BUF->srcport = UIP_TCP_BUF->destport; UIP_TCP_BUF->destport = tmp16; - + /* Swap IP addresses. */ uip_ipaddr_copy(&UIP_IP_BUF->destipaddr, &UIP_IP_BUF->srcipaddr); uip_ds6_select_src(&UIP_IP_BUF->srcipaddr, &UIP_IP_BUF->destipaddr); @@ -1730,7 +1730,7 @@ uip_process(uint8_t flag) goto drop; } uip_conn = uip_connr; - + /* Fill in the necessary fields for the new connection. */ uip_connr->rto = uip_connr->timer = UIP_RTO; uip_connr->sa = 0; @@ -1771,7 +1771,7 @@ uip_process(uint8_t flag) (uint16_t)uip_buf[UIP_IPTCPH_LEN + UIP_LLH_LEN + 3 + c]; uip_connr->initialmss = uip_connr->mss = tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16; - + /* And we are done processing options. */ break; } else { @@ -1786,19 +1786,19 @@ uip_process(uint8_t flag) } } } - + /* Our response will be a SYNACK. */ #if UIP_ACTIVE_OPEN tcp_send_synack: UIP_TCP_BUF->flags = TCP_ACK; - + tcp_send_syn: UIP_TCP_BUF->flags |= TCP_SYN; #else /* UIP_ACTIVE_OPEN */ tcp_send_synack: UIP_TCP_BUF->flags = TCP_SYN | TCP_ACK; #endif /* UIP_ACTIVE_OPEN */ - + /* We send out the TCP Maximum Segment Size option with our SYNACK. */ UIP_TCP_BUF->optdata[0] = TCP_OPT_MSS; @@ -1839,9 +1839,9 @@ uip_process(uint8_t flag) receive a SYN, in which case we should retransmit our SYNACK (which is done futher down). */ if(!((((uip_connr->tcpstateflags & UIP_TS_MASK) == UIP_SYN_SENT) && - ((UIP_TCP_BUF->flags & TCP_CTL) == (TCP_SYN | TCP_ACK))) || + ((UIP_TCP_BUF->flags & TCP_CTL) == (TCP_SYN | TCP_ACK))) || (((uip_connr->tcpstateflags & UIP_TS_MASK) == UIP_SYN_RCVD) && - ((UIP_TCP_BUF->flags & TCP_CTL) == TCP_SYN)))) { + ((UIP_TCP_BUF->flags & TCP_CTL) == TCP_SYN)))) { if((uip_len > 0 || ((UIP_TCP_BUF->flags & (TCP_SYN | TCP_FIN)) != 0)) && (UIP_TCP_BUF->seqno[0] != uip_connr->rcv_nxt[0] || UIP_TCP_BUF->seqno[1] != uip_connr->rcv_nxt[1] || @@ -1875,7 +1875,7 @@ uip_process(uint8_t flag) uip_connr->snd_nxt[1] = uip_acc32[1]; uip_connr->snd_nxt[2] = uip_acc32[2]; uip_connr->snd_nxt[3] = uip_acc32[3]; - + /* Do RTT estimation, unless we have done retransmissions. */ if(uip_connr->nrtx == 0) { signed char m; @@ -1899,7 +1899,7 @@ uip_process(uint8_t flag) /* Reset length of outstanding data. */ uip_connr->len = 0; } - + } /* Do different things depending on in what state the connection is. */ @@ -1927,7 +1927,7 @@ uip_process(uint8_t flag) } /* We need to retransmit the SYNACK */ if((UIP_TCP_BUF->flags & TCP_CTL) == TCP_SYN) { - goto tcp_send_synack; + goto tcp_send_synack; } goto drop; #if UIP_ACTIVE_OPEN @@ -1991,7 +1991,7 @@ uip_process(uint8_t flag) uip_conn->tcpstateflags = UIP_CLOSED; goto reset; #endif /* UIP_ACTIVE_OPEN */ - + case UIP_ESTABLISHED: /* In the ESTABLISHED state, we call upon the application to feed data into the uip_buf. If the UIP_ACKDATA flag is set, the @@ -2093,7 +2093,7 @@ uip_process(uint8_t flag) UIP_APPCALL(); appsend: - + if(uip_flags & UIP_ABORT) { uip_slen = 0; uip_connr->tcpstateflags = UIP_CLOSED; @@ -2145,7 +2145,7 @@ uip_process(uint8_t flag) uip_connr->nrtx = 0; apprexmit: uip_appdata = uip_sappdata; - + /* If the application has data to be sent, or if the incoming packet had new data in it, we must send out a packet. */ if(uip_slen > 0 && uip_connr->len > 0) { @@ -2174,7 +2174,7 @@ uip_process(uint8_t flag) UIP_APPCALL(); } break; - + case UIP_FIN_WAIT_1: /* The application has closed the connection, but the remote host hasn't closed its end yet. Thus we do nothing but wait for a @@ -2203,7 +2203,7 @@ uip_process(uint8_t flag) goto tcp_send_ack; } goto drop; - + case UIP_FIN_WAIT_2: if(uip_len > 0) { uip_add_rcv_nxt(uip_len); @@ -2223,7 +2223,7 @@ uip_process(uint8_t flag) case UIP_TIME_WAIT: goto tcp_send_ack; - + case UIP_CLOSING: if(uip_flags & UIP_ACKDATA) { uip_connr->tcpstateflags = UIP_TIME_WAIT; @@ -2231,7 +2231,7 @@ uip_process(uint8_t flag) } } goto drop; - + /* We jump here when we are ready to send the packet, and just want to set the appropriate TCP sequence numbers in the TCP header. */ tcp_send_ack: @@ -2249,12 +2249,12 @@ uip_process(uint8_t flag) packet. */ tcp_send: PRINTF("In tcp_send\n"); - + UIP_TCP_BUF->ackno[0] = uip_connr->rcv_nxt[0]; UIP_TCP_BUF->ackno[1] = uip_connr->rcv_nxt[1]; UIP_TCP_BUF->ackno[2] = uip_connr->rcv_nxt[2]; UIP_TCP_BUF->ackno[3] = uip_connr->rcv_nxt[3]; - + UIP_TCP_BUF->seqno[0] = uip_connr->snd_nxt[0]; UIP_TCP_BUF->seqno[1] = uip_connr->snd_nxt[1]; UIP_TCP_BUF->seqno[2] = uip_connr->snd_nxt[2]; @@ -2288,7 +2288,7 @@ uip_process(uint8_t flag) UIP_IP_BUF->len[1] = ((uip_len - UIP_IPH_LEN) & 0xff); UIP_TCP_BUF->urgp[0] = UIP_TCP_BUF->urgp[1] = 0; - + /* Calculate TCP checksum. */ UIP_TCP_BUF->tcpchksum = 0; UIP_TCP_BUF->tcpchksum = ~(uip_tcpchksum()); @@ -2304,7 +2304,7 @@ uip_process(uint8_t flag) send: PRINTF("Sending packet with length %d (%d)\n", uip_len, (UIP_IP_BUF->len[0] << 8) | UIP_IP_BUF->len[1]); - + UIP_STAT(++uip_stat.ip.sent); /* Return and let the caller do the actual transmission. */ uip_flags = 0; diff --git a/cpu/arm/aducrf101/Common/ADuCRF101.h b/cpu/arm/aducrf101/Common/ADuCRF101.h index 287c6416a..719744c3e 100644 --- a/cpu/arm/aducrf101/Common/ADuCRF101.h +++ b/cpu/arm/aducrf101/Common/ADuCRF101.h @@ -61,7 +61,7 @@ #ifdef __cplusplus extern "C" { -#endif +#endif /* ------------------------- Interrupt Number Definition ------------------------ */ @@ -827,7 +827,7 @@ typedef struct { /*!< pADI_ADC0 Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for ADCCFG*/ -#define ADCCFG_RVAL 0xA00 +#define ADCCFG_RVAL 0xA00 /* ADCCFG[REF] - Reference select */ #define ADCCFG_REF_BBA (*(volatile unsigned long *) 0x42A00034) @@ -870,7 +870,7 @@ typedef struct { /*!< pADI_ADC0 Structure #define ADCCFG_CHSEL_AGND (0xD << 0 ) /* AGND. Internal ADC ground input for offset calibration. */ /* Reset Value for ADCCON*/ -#define ADCCON_RVAL 0x90 +#define ADCCON_RVAL 0x90 /* ADCCON[REFBUF] - Reference buffer enable bit. */ #define ADCCON_REFBUF_BBA (*(volatile unsigned long *) 0x42A0009C) @@ -916,7 +916,7 @@ typedef struct { /*!< pADI_ADC0 Structure #define ADCCON_START_EN (0x1 << 0 ) /* EN. Start conversion when SOFT conversion mode is selected. This bit does not clear after a single software conversion. */ /* Reset Value for ADCSTA*/ -#define ADCSTA_RVAL 0x0 +#define ADCSTA_RVAL 0x0 /* ADCSTA[READY] - ADC Ready bit */ #define ADCSTA_READY_BBA (*(volatile unsigned long *) 0x42A00100) @@ -926,7 +926,7 @@ typedef struct { /*!< pADI_ADC0 Structure #define ADCSTA_READY_EN (0x1 << 0 ) /* EN. Set by the ADC when a conversion is complete. This bit generates an interrupt if enabled (IEN set in ADCCON). */ /* Reset Value for ADCDAT*/ -#define ADCDAT_RVAL 0x0 +#define ADCDAT_RVAL 0x0 /* ADCDAT[VALUE] - ADC result */ #define ADCDAT_VALUE_MSK (0xFFF << 2 ) @@ -935,13 +935,13 @@ typedef struct { /*!< pADI_ADC0 Structure #define ADCDAT_Value_Reserved_MSK (0x3 << 0 ) /* Reset Value for ADCGN*/ -#define ADCGN_RVAL 0x0 +#define ADCGN_RVAL 0x0 /* ADCGN[VALUE] - Gain */ #define ADCGN_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for ADCOF*/ -#define ADCOF_RVAL 0x0 +#define ADCOF_RVAL 0x0 /* ADCOF[VALUE] - Offset */ #define ADCOF_VALUE_MSK (0xFFFF << 0 ) @@ -972,7 +972,7 @@ typedef struct { /*!< pADI_CLKCTL Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for CLKCON*/ -#define CLKCON_RVAL 0x0 +#define CLKCON_RVAL 0x0 /* CLKCON[CLKOUT] - GPIO output clock multiplexer select bits. */ #define CLKCON_CLKOUT_MSK (0x7 << 5 ) @@ -1002,7 +1002,7 @@ typedef struct { /*!< pADI_CLKCTL Structure #define CLKCON_CD_DIV128 (0x7 << 0 ) /* DIV128. */ /* Reset Value for XOSCCON*/ -#define XOSCCON_RVAL 0x0 +#define XOSCCON_RVAL 0x0 /* XOSCCON[ENABLE] - Crystal oscillator circuit enable bit. */ #define XOSCCON_ENABLE_BBA (*(volatile unsigned long *) 0x42048200) @@ -1012,7 +1012,7 @@ typedef struct { /*!< pADI_CLKCTL Structure #define XOSCCON_ENABLE_EN (0x1 << 0 ) /* EN. Enables the watch crystal circuitry.(LFXTAL) */ /* Reset Value for CLKACT*/ -#define CLKACT_RVAL 0x3FFF +#define CLKACT_RVAL 0x3FFF /* CLKACT[T1] - T1 clocks enable bit. */ #define CLKACT_T1_BBA (*(volatile unsigned long *) 0x4204902C) @@ -1099,7 +1099,7 @@ typedef struct { /*!< pADI_CLKCTL Structure #define CLKACT_DMA_EN (0x1 << 0 ) /* EN. Enable DMA clock. */ /* Reset Value for CLKPD*/ -#define CLKPD_RVAL 0x3FFF +#define CLKPD_RVAL 0x3FFF /* CLKPD[T1] - T1 clocks enable bit. */ #define CLKPD_T1_BBA (*(volatile unsigned long *) 0x420490AC) @@ -1231,7 +1231,7 @@ typedef struct { /*!< pADI_DMA Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for DMASTA*/ -#define DMASTA_RVAL 0xD0000 +#define DMASTA_RVAL 0xD0000 /* DMASTA[CHNLSMINUS1] - Number of available DMA channels minus 1. For example, if there are 14 channels available, the register reads back 0xD for these bits. */ #define DMASTA_CHNLSMINUS1_MSK (0x1F << 16 ) @@ -1259,7 +1259,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMASTA_ENABLE_SET (0x1 << 0 ) /* SET. Controller is enabled. */ /* Reset Value for DMACFG*/ -#define DMACFG_RVAL 0x0 +#define DMACFG_RVAL 0x0 /* DMACFG[ENABLE] - Controller enable. */ #define DMACFG_ENABLE_BBA (*(volatile unsigned long *) 0x42200080) @@ -1269,19 +1269,19 @@ typedef struct { /*!< pADI_DMA Structure #define DMACFG_ENABLE_EN (0x1 << 0 ) /* EN. Controller is enabled. */ /* Reset Value for DMAPDBPTR*/ -#define DMAPDBPTR_RVAL 0x0 +#define DMAPDBPTR_RVAL 0x0 /* DMAPDBPTR[CTRLBASEPTR] - Pointer to the base address of the primary data structure. 5 + log (2)M LSBs are reserved and must be written 0. M is the number of channels. */ #define DMAPDBPTR_CTRLBASEPTR_MSK (0xFFFFFFFF << 0 ) /* Reset Value for DMAADBPTR*/ -#define DMAADBPTR_RVAL 0x100 +#define DMAADBPTR_RVAL 0x100 /* DMAADBPTR[ALTCBPTR] - Base address of the alternate data structure. */ #define DMAADBPTR_ALTCBPTR_MSK (0xFFFFFFFF << 0 ) /* Reset Value for DMASWREQ*/ -#define DMASWREQ_RVAL 0x0 +#define DMASWREQ_RVAL 0x0 /* DMASWREQ[SPI0RX] - DMA SPI0 RX. */ #define DMASWREQ_SPI0RX_BBA (*(volatile unsigned long *) 0x422002B4) @@ -1361,7 +1361,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMASWREQ_SPI1TX_EN (0x1 << 0 ) /* EN. Generates a DMA request for SPI1TX. */ /* Reset Value for DMARMSKSET*/ -#define DMARMSKSET_RVAL 0x0 +#define DMARMSKSET_RVAL 0x0 /* DMARMSKSET[SPI0RX] - DMA SPI0 RX. */ #define DMARMSKSET_SPI0RX_BBA (*(volatile unsigned long *) 0x42200434) @@ -1441,7 +1441,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMARMSKSET_SPI1TX_EN (0x1 << 0 ) /* EN. When read: Requests are disabled for SPI1TX When written: Disables peripheral associated with SPI1TX from generating DMA requests. */ /* Reset Value for DMARMSKCLR*/ -#define DMARMSKCLR_RVAL 0x0 +#define DMARMSKCLR_RVAL 0x0 /* DMARMSKCLR[SPI0RX] - DMA SPI0 RX. */ #define DMARMSKCLR_SPI0RX_BBA (*(volatile unsigned long *) 0x422004B4) @@ -1521,7 +1521,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMARMSKCLR_SPI1TX_EN (0x1 << 0 ) /* EN. Enables peripheral associated with SPI1TX to generate DMA requests. */ /* Reset Value for DMAENSET*/ -#define DMAENSET_RVAL 0x0 +#define DMAENSET_RVAL 0x0 /* DMAENSET[SPI0RX] - DMA SPI0 RX */ #define DMAENSET_SPI0RX_BBA (*(volatile unsigned long *) 0x42200534) @@ -1601,7 +1601,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMAENSET_SPI1TX_EN (0x1 << 0 ) /* EN. Enables SPI1TX. */ /* Reset Value for DMAENCLR*/ -#define DMAENCLR_RVAL 0x0 +#define DMAENCLR_RVAL 0x0 /* DMAENCLR[SPI0RX] - DMA SPI0 RX */ #define DMAENCLR_SPI0RX_BBA (*(volatile unsigned long *) 0x422005B4) @@ -1681,7 +1681,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMAENCLR_SPI1TX_EN (0x1 << 0 ) /* EN. Disables SPI1TX. */ /* Reset Value for DMAALTSET*/ -#define DMAALTSET_RVAL 0x0 +#define DMAALTSET_RVAL 0x0 /* DMAALTSET[SPI0RX] - DMA SPI0 RX. */ #define DMAALTSET_SPI0RX_BBA (*(volatile unsigned long *) 0x42200634) @@ -1761,7 +1761,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMAALTSET_SPI1TX_EN (0x1 << 0 ) /* EN. When read: DMA SPI1TX is using the alternate data structure. When written: Selects the alternate data structure for SPI1TX. */ /* Reset Value for DMAALTCLR*/ -#define DMAALTCLR_RVAL 0x0 +#define DMAALTCLR_RVAL 0x0 /* DMAALTCLR[SPI0RX] - DMA SPI0 RX. */ #define DMAALTCLR_SPI0RX_BBA (*(volatile unsigned long *) 0x422006B4) @@ -1841,7 +1841,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMAALTCLR_SPI1TX_EN (0x1 << 0 ) /* EN. Selects the primary data structure for SPI1TX. */ /* Reset Value for DMAPRISET*/ -#define DMAPRISET_RVAL 0x0 +#define DMAPRISET_RVAL 0x0 /* DMAPRISET[SPI0RX] - DMA SPI0 RX. */ #define DMAPRISET_SPI0RX_BBA (*(volatile unsigned long *) 0x42200734) @@ -1921,7 +1921,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMAPRISET_SPI1TX_EN (0x1 << 0 ) /* EN. When read: DMA SPI1TX is using a high priority level. When written: SPI1TX uses the high priority level. */ /* Reset Value for DMAPRICLR*/ -#define DMAPRICLR_RVAL 0x0 +#define DMAPRICLR_RVAL 0x0 /* DMAPRICLR[SPI0RX] - DMA SPI0 RX. */ #define DMAPRICLR_SPI0RX_BBA (*(volatile unsigned long *) 0x422007B4) @@ -2001,7 +2001,7 @@ typedef struct { /*!< pADI_DMA Structure #define DMAPRICLR_SPI1TX_EN (0x1 << 0 ) /* EN. SPI1TX uses the default priority level. */ /* Reset Value for DMAERRCLR*/ -#define DMAERRCLR_RVAL 0x0 +#define DMAERRCLR_RVAL 0x0 /* DMAERRCLR[ERROR] - DMA Bus Error status. */ #define DMAERRCLR_ERROR_BBA (*(volatile unsigned long *) 0x42200980) @@ -2078,7 +2078,7 @@ typedef struct { /*!< pADI_FEE Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for FEESTA*/ -#define FEESTA_RVAL 0x0 +#define FEESTA_RVAL 0x0 /* FEESTA[SIGNERR] - Kernel space signature check on reset error */ #define FEESTA_SIGNERR_BBA (*(volatile unsigned long *) 0x42050018) @@ -2123,7 +2123,7 @@ typedef struct { /*!< pADI_FEE Structure #define FEESTA_CMDBUSY_SET (0x1 << 0 ) /* SET. Set when the flash block is executing any command entered via the command register. */ /* Reset Value for FEECON0*/ -#define FEECON0_RVAL 0x0 +#define FEECON0_RVAL 0x0 /* FEECON0[WREN] - Write enable bit. */ #define FEECON0_WREN_BBA (*(volatile unsigned long *) 0x42050088) @@ -2147,7 +2147,7 @@ typedef struct { /*!< pADI_FEE Structure #define FEECON0_IENCMD_EN (0x1 << 0 ) /* EN. An interrupt is generated when a command or flash write completes. */ /* Reset Value for FEECMD*/ -#define FEECMD_RVAL 0x0 +#define FEECMD_RVAL 0x0 /* FEECMD[CMD] - Commands supported by the flash controller. */ #define FEECMD_CMD_MSK (0xF << 0 ) @@ -2158,31 +2158,31 @@ typedef struct { /*!< pADI_FEE Structure #define FEECMD_CMD_ABORT (0x4 << 0 ) /* ABORT. If this command is issued, then any command currently in progress is stopped. The status indicates command completed with an error status in FEESTA[5:4]. Note that this is the only command that can be issued while another command is already in progress. This command can also be used to stop a write that may be in progress. If a write is aborted, the address of the location being written can be read via the FEEADRAL/FEEADRAH register. While the flash controller is writing one longword, another longword write may be in the pipeline from the Cortex-M3 or DMA engine (depending on how the software implements writes). Therefore, both writes may need to be aborted. If a write or erase is aborted, then the flash timing is violated and it is not possible to determine if the write or erase completed successfully. To enable this operation, 0xF456 followed by 0xF123 must first be written to FEEKEY (this is to prevent accidental aborts). */ /* Reset Value for FEEADR0L*/ -#define FEEADR0L_RVAL 0x0 +#define FEEADR0L_RVAL 0x0 /* FEEADR0L[VALUE] - Used in conjunction with FEEADR0H, to indicate the page to be erased, or the start of a section to be signed. The address of a memory location inside the page should be stored in FEEADR0L/H, bits[15:0] in FEEADR0L, and bits[17:16] in FEEADR0H. The 9 LSBs of the address are ignored. */ #define FEEADR0L_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for FEEADR0H*/ -#define FEEADR0H_RVAL 0x0 +#define FEEADR0H_RVAL 0x0 /* FEEADR0H[VALUE] - Used in conjunction with FEEADR0L, to indicate the page to be erased, or the start of a section to be signed. The address of a memory location inside the page should be stored in FEEADR0L/H, bits[15:0] in FEEADR0L, and bits[17:16] in FEEADR0H. */ #define FEEADR0H_VALUE_MSK (0x3 << 0 ) /* Reset Value for FEEADR1L*/ -#define FEEADR1L_RVAL 0x0 +#define FEEADR1L_RVAL 0x0 /* FEEADR1L[VALUE] - Used in conjunction with FEEADR1H, to identify the last page used by the Sign command. The address of a memory location inside the page should be stored in FEEADR1L/H, bits[15:0] in FEEADR1L, and bits[17:16] in FEEADR1H. The 9 LSBs of the address are ignored. */ #define FEEADR1L_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for FEEADR1H*/ -#define FEEADR1H_RVAL 0x0 +#define FEEADR1H_RVAL 0x0 /* FEEADR1H[VALUE] - Used in conjunction with FEEADR1L, to identify the last page used by the Sign command. The address of a memory location inside the page should be stored in FEEADR1L/H, bits[15:0] in FEEADR1L, and bits[17:16] in FEEADR1H. */ #define FEEADR1H_VALUE_MSK (0x3 << 0 ) /* Reset Value for FEEKEY*/ -#define FEEKEY_RVAL 0x0 +#define FEEKEY_RVAL 0x0 /* FEEKEY[VALUE] - Enter 0xF456 followed by 0xF123. Returns 0x0 if read. */ #define FEEKEY_VALUE_MSK (0xFFFF << 0 ) @@ -2190,31 +2190,31 @@ typedef struct { /*!< pADI_FEE Structure #define FEEKEY_VALUE_USERKEY2 (0xF123 << 0 ) /* USERKEY2 */ /* Reset Value for FEEPROL*/ -#define FEEPROL_RVAL 0xFFFF +#define FEEPROL_RVAL 0xFFFF /* FEEPROL[VALUE] - Lower 16 bits of the write protection. This register is read only if the write protection in flash has been programmed, i.e. FEEPROH/L have previously been configured to protect pages. */ #define FEEPROL_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for FEEPROH*/ -#define FEEPROH_RVAL 0xFFFF +#define FEEPROH_RVAL 0xFFFF /* FEEPROH[VALUE] - Upper 16 bits of the write protection. This register is read only if the write protection in flash has been programmed, i.e. FEEPROH/L have previously been configured to protect pages. */ #define FEEPROH_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for FEESIGL*/ -#define FEESIGL_RVAL 0xFFFF +#define FEESIGL_RVAL 0xFFFF /* FEESIGL[VALUE] - Lower 16 bits of the signature. Signature[15:0]. */ #define FEESIGL_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for FEESIGH*/ -#define FEESIGH_RVAL 0xFFFF +#define FEESIGH_RVAL 0xFFFF /* FEESIGH[VALUE] - Upper eight bits of the signature. Signature[23:16]. */ #define FEESIGH_VALUE_MSK (0xFF << 0 ) /* Reset Value for FEECON1*/ -#define FEECON1_RVAL 0x1 +#define FEECON1_RVAL 0x1 /* FEECON1[DBG] - Serial Wire debug enable. */ #define FEECON1_DBG_BBA (*(volatile unsigned long *) 0x42050700) @@ -2224,19 +2224,19 @@ typedef struct { /*!< pADI_FEE Structure #define FEECON1_DBG_EN (0x1 << 0 ) /* EN. Enable access via the serial wire debug interface. */ /* Reset Value for FEEADRAL*/ -#define FEEADRAL_RVAL 0x800 +#define FEEADRAL_RVAL 0x800 /* FEEADRAL[VALUE] - Lower 16 bits of the FEEADRA register. If a write is aborted then this will contain the address of the location been written when the write was aborted. */ #define FEEADRAL_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for FEEADRAH*/ -#define FEEADRAH_RVAL 0x2 +#define FEEADRAH_RVAL 0x2 /* FEEADRAH[VALUE] - Upper 16 bits of the FEEADRA register. */ #define FEEADRAH_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for FEEAEN0*/ -#define FEEAEN0_RVAL 0x0 +#define FEEAEN0_RVAL 0x0 /* FEEAEN0[FEE] - Flash controller interrupt abort enable bit */ #define FEEAEN0_FEE_BBA (*(volatile unsigned long *) 0x42050F3C) @@ -2344,7 +2344,7 @@ typedef struct { /*!< pADI_FEE Structure #define FEEAEN0_T2_EN (0x1 << 0 ) /* EN. Timer2 interrupt abort enabled */ /* Reset Value for FEEAEN1*/ -#define FEEAEN1_RVAL 0x0 +#define FEEAEN1_RVAL 0x0 /* FEEAEN1[DMAI2CMRX] - I2C master RX DMA interrupt abort enable bit */ #define FEEAEN1_DMAI2CMRX_BBA (*(volatile unsigned long *) 0x42050FBC) @@ -2445,7 +2445,7 @@ typedef struct { /*!< pADI_FEE Structure #define FEEAEN1_UART_EN (0x1 << 0 ) /* EN. UART interrupt abort enabled. */ /* Reset Value for FEEAEN2*/ -#define FEEAEN2_RVAL 0x0 +#define FEEAEN2_RVAL 0x0 /* FEEAEN2[PWM3] - PWM3 interrupt abort enable bit */ #define FEEAEN2_PWM3_BBA (*(volatile unsigned long *) 0x42051028) @@ -2544,7 +2544,7 @@ typedef struct { /*!< pADI_GP0 Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for GP0CON*/ -#define GP0CON_RVAL 0x0 +#define GP0CON_RVAL 0x0 /* GP0CON[CON7] - Configuration bits for Px.7 (not available for port 1). */ #define GP0CON_CON7_MSK (0x3 << 14 ) @@ -2595,7 +2595,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0CON_CON0_SPI1MISO (0x1 << 0 ) /* SPI1MISO. SPI MISO (SPI1) */ /* Reset Value for GP0OEN*/ -#define GP0OEN_RVAL 0x0 +#define GP0OEN_RVAL 0x0 /* GP0OEN[OEN7] - Port pin direction. */ #define GP0OEN_OEN7_BBA (*(volatile unsigned long *) 0x420C009C) @@ -2654,7 +2654,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0OEN_OEN0_OUT (0x1 << 0 ) /* OUT. Enables the output on corresponding port pin.. */ /* Reset Value for GP0PUL*/ -#define GP0PUL_RVAL 0xFF +#define GP0PUL_RVAL 0xFF /* GP0PUL[PUL7] - Pull Up Enable for port pin. */ #define GP0PUL_PUL7_BBA (*(volatile unsigned long *) 0x420C011C) @@ -2713,7 +2713,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0PUL_PUL0_EN (0x1 << 0 ) /* EN. Enables the internal pull up on corresponding port pin. */ /* Reset Value for GP0OCE*/ -#define GP0OCE_RVAL 0x0 +#define GP0OCE_RVAL 0x0 /* GP0OCE[OCE7] - Output enable. Sets the GPIO pads on corresponding port to open circuit mode. */ #define GP0OCE_OCE7_BBA (*(volatile unsigned long *) 0x420C019C) @@ -2772,7 +2772,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0OCE_OCE0_EN (0x1 << 0 ) /* EN */ /* Reset Value for GP0IN*/ -#define GP0IN_RVAL 0xFF +#define GP0IN_RVAL 0xFF /* GP0IN[IN7] - Reflects the level on the corresponding GPIO pins except when in configured in open circuit. */ #define GP0IN_IN7_BBA (*(volatile unsigned long *) 0x420C029C) @@ -2831,7 +2831,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0IN_IN0_HIGH (0x1 << 0 ) /* HIGH */ /* Reset Value for GP0OUT*/ -#define GP0OUT_RVAL 0x0 +#define GP0OUT_RVAL 0x0 /* GP0OUT[OUT7] - Data out register. */ #define GP0OUT_OUT7_BBA (*(volatile unsigned long *) 0x420C031C) @@ -2890,7 +2890,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0OUT_OUT0_HIGH (0x1 << 0 ) /* HIGH. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP0SET*/ -#define GP0SET_RVAL 0x0 +#define GP0SET_RVAL 0x0 /* GP0SET[SET7] - Set output high for corresponding port pin. */ #define GP0SET_SET7_BBA (*(volatile unsigned long *) 0x420C039C) @@ -2941,7 +2941,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0SET_SET0_SET (0x1 << 0 ) /* SET. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP0CLR*/ -#define GP0CLR_RVAL 0x0 +#define GP0CLR_RVAL 0x0 /* GP0CLR[CLR7] - Set by user code to drive the corresponding GPIO low. */ #define GP0CLR_CLR7_BBA (*(volatile unsigned long *) 0x420C041C) @@ -2992,7 +2992,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP0CLR_CLR0_CLR (0x1 << 0 ) /* CLR */ /* Reset Value for GP0TGL*/ -#define GP0TGL_RVAL 0x0 +#define GP0TGL_RVAL 0x0 /* GP0TGL[TGL7] - Toggle for corresponding port pin. */ #define GP0TGL_TGL7_BBA (*(volatile unsigned long *) 0x420C049C) @@ -3055,7 +3055,7 @@ typedef struct { /*!< pADI_GP0 Structure #endif // (__NO_MMR_STRUCTS__==1) /* Reset Value for GP1CON*/ -#define GP1CON_RVAL 0x0 +#define GP1CON_RVAL 0x0 /* GP1CON[CON6] - Configuration bits for P1.6 */ #define GP1CON_CON6_MSK (0x3 << 12 ) @@ -3100,7 +3100,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1CON_CON0_PWM2 (0x3 << 0 ) /* PWM2 */ /* Reset Value for GP1OEN*/ -#define GP1OEN_RVAL 0x0 +#define GP1OEN_RVAL 0x0 /* GP1OEN[OEN6] - Port pin direction. */ #define GP1OEN_OEN6_BBA (*(volatile unsigned long *) 0x420C0698) @@ -3152,7 +3152,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1OEN_OEN0_OUT (0x1 << 0 ) /* OUT. Enables the output on corresponding port pin.. */ /* Reset Value for GP1PUL*/ -#define GP1PUL_RVAL 0x7F +#define GP1PUL_RVAL 0x7F /* GP1PUL[PUL6] - Pull Up Enable for port pin. */ #define GP1PUL_PUL6_BBA (*(volatile unsigned long *) 0x420C0718) @@ -3204,7 +3204,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1PUL_PUL0_EN (0x1 << 0 ) /* EN. Enables the internal pull up on corresponding port pin. */ /* Reset Value for GP1OCE*/ -#define GP1OCE_RVAL 0x0 +#define GP1OCE_RVAL 0x0 /* GP1OCE[OCE6] - Output enable. Sets the GPIO pads on corresponding port to open circuit mode. */ #define GP1OCE_OCE6_BBA (*(volatile unsigned long *) 0x420C0798) @@ -3256,7 +3256,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1OCE_OCE0_EN (0x1 << 0 ) /* EN */ /* Reset Value for GP1IN*/ -#define GP1IN_RVAL 0x7F +#define GP1IN_RVAL 0x7F /* GP1IN[IN6] - Reflects the level on the corresponding GPIO pins except when in configured in open circuit. */ #define GP1IN_IN6_BBA (*(volatile unsigned long *) 0x420C0898) @@ -3308,7 +3308,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1IN_IN0_HIGH (0x1 << 0 ) /* HIGH */ /* Reset Value for GP1OUT*/ -#define GP1OUT_RVAL 0x0 +#define GP1OUT_RVAL 0x0 /* GP1OUT[OUT6] - Output for port pin. */ #define GP1OUT_OUT6_BBA (*(volatile unsigned long *) 0x420C0918) @@ -3360,7 +3360,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1OUT_OUT0_HIGH (0x1 << 0 ) /* HIGH. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP1SET*/ -#define GP1SET_RVAL 0x0 +#define GP1SET_RVAL 0x0 /* GP1SET[SET6] - Set output high for corresponding port pin. */ #define GP1SET_SET6_BBA (*(volatile unsigned long *) 0x420C0998) @@ -3405,7 +3405,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1SET_SET0_SET (0x1 << 0 ) /* SET. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP1CLR*/ -#define GP1CLR_RVAL 0x0 +#define GP1CLR_RVAL 0x0 /* GP1CLR[CLR6] - Set by user code to drive the corresponding GPIO low. */ #define GP1CLR_CLR6_BBA (*(volatile unsigned long *) 0x420C0A18) @@ -3450,7 +3450,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP1CLR_CLR0_CLR (0x1 << 0 ) /* CLR. Set by user code to drive the corresponding GPIO low. */ /* Reset Value for GP1TGL*/ -#define GP1TGL_RVAL 0x0 +#define GP1TGL_RVAL 0x0 /* GP1TGL[TGL6] - Toggle for corresponding port pin. */ #define GP1TGL_TGL6_BBA (*(volatile unsigned long *) 0x420C0A98) @@ -3507,7 +3507,7 @@ typedef struct { /*!< pADI_GP0 Structure #endif // (__NO_MMR_STRUCTS__==1) /* Reset Value for GP2CON*/ -#define GP2CON_RVAL 0x0 +#define GP2CON_RVAL 0x0 /* GP2CON[CON7] - Configuration bits for P2.7 */ #define GP2CON_CON7_MSK (0x3 << 14 ) @@ -3548,7 +3548,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2CON_CON0_GPIO (0x1 << 0 ) /* GPIO */ /* Reset Value for GP2OEN*/ -#define GP2OEN_RVAL 0x0 +#define GP2OEN_RVAL 0x0 /* GP2OEN[OEN7] - Port pin direction. */ #define GP2OEN_OEN7_BBA (*(volatile unsigned long *) 0x420C0C9C) @@ -3607,7 +3607,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2OEN_OEN0_OUT (0x1 << 0 ) /* OUT. Enables the output on corresponding port pin. */ /* Reset Value for GP2PUL*/ -#define GP2PUL_RVAL 0xFF +#define GP2PUL_RVAL 0xFF /* GP2PUL[PUL7] - Pull Up Enable for port pin. */ #define GP2PUL_PUL7_BBA (*(volatile unsigned long *) 0x420C0D1C) @@ -3666,7 +3666,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2PUL_PUL0_EN (0x1 << 0 ) /* EN. Enables the internal pull up on corresponding port pin. */ /* Reset Value for GP2OCE*/ -#define GP2OCE_RVAL 0x0 +#define GP2OCE_RVAL 0x0 /* GP2OCE[OCE7] - Output enable. Sets the GPIO pads on corresponding port to open circuit mode. */ #define GP2OCE_OCE7_BBA (*(volatile unsigned long *) 0x420C0D9C) @@ -3725,7 +3725,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2OCE_OCE0_EN (0x1 << 0 ) /* EN */ /* Reset Value for GP2IN*/ -#define GP2IN_RVAL 0xFF +#define GP2IN_RVAL 0xFF /* GP2IN[IN7] - Reflects the level on the corresponding GPIO pins except when in configured in open circuit. */ #define GP2IN_IN7_BBA (*(volatile unsigned long *) 0x420C0E9C) @@ -3784,7 +3784,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2IN_IN0_HIGH (0x1 << 0 ) /* HIGH */ /* Reset Value for GP2OUT*/ -#define GP2OUT_RVAL 0x0 +#define GP2OUT_RVAL 0x0 /* GP2OUT[OUT7] - Output for port pin. */ #define GP2OUT_OUT7_BBA (*(volatile unsigned long *) 0x420C0F1C) @@ -3843,7 +3843,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2OUT_OUT0_HIGH (0x1 << 0 ) /* HIGH. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP2SET*/ -#define GP2SET_RVAL 0x0 +#define GP2SET_RVAL 0x0 /* GP2SET[SET7] - Set output high for corresponding port pin. */ #define GP2SET_SET7_BBA (*(volatile unsigned long *) 0x420C0F9C) @@ -3894,7 +3894,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2SET_SET0_SET (0x1 << 0 ) /* SET. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP2CLR*/ -#define GP2CLR_RVAL 0x0 +#define GP2CLR_RVAL 0x0 /* GP2CLR[CLR7] - Set by user code to drive the corresponding GPIO low. */ #define GP2CLR_CLR7_BBA (*(volatile unsigned long *) 0x420C101C) @@ -3945,7 +3945,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP2CLR_CLR0_CLR (0x1 << 0 ) /* CLR. Set by user code to drive the corresponding GPIO low. */ /* Reset Value for GP2TGL*/ -#define GP2TGL_RVAL 0x0 +#define GP2TGL_RVAL 0x0 /* GP2TGL[TGL7] - Toggle for corresponding port pin. */ #define GP2TGL_TGL7_BBA (*(volatile unsigned long *) 0x420C109C) @@ -4008,7 +4008,7 @@ typedef struct { /*!< pADI_GP0 Structure #endif // (__NO_MMR_STRUCTS__==1) /* Reset Value for GP3CON*/ -#define GP3CON_RVAL 0x0 +#define GP3CON_RVAL 0x0 /* GP3CON[CON7] - Configuration bits for P3.7 */ #define GP3CON_CON7_MSK (0x3 << 14 ) @@ -4049,7 +4049,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3CON_CON0_PWMTRIP (0x3 << 0 ) /* PWMTRIP */ /* Reset Value for GP3OEN*/ -#define GP3OEN_RVAL 0x0 +#define GP3OEN_RVAL 0x0 /* GP3OEN[OEN7] - Port pin direction. */ #define GP3OEN_OEN7_BBA (*(volatile unsigned long *) 0x420C129C) @@ -4108,7 +4108,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3OEN_OEN0_OUT (0x1 << 0 ) /* OUT. Enables the output on corresponding port pin. */ /* Reset Value for GP3PUL*/ -#define GP3PUL_RVAL 0xFF +#define GP3PUL_RVAL 0xFF /* GP3PUL[PUL7] - Pull Up Enable for port pin. */ #define GP3PUL_PUL7_BBA (*(volatile unsigned long *) 0x420C131C) @@ -4167,7 +4167,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3PUL_PUL0_EN (0x1 << 0 ) /* EN. Enables the internal pull up on corresponding port pin. */ /* Reset Value for GP3OCE*/ -#define GP3OCE_RVAL 0x0 +#define GP3OCE_RVAL 0x0 /* GP3OCE[OCE7] - Output enable. Sets the GPIO pads on corresponding port to open circuit mode. */ #define GP3OCE_OCE7_BBA (*(volatile unsigned long *) 0x420C139C) @@ -4226,7 +4226,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3OCE_OCE0_EN (0x1 << 0 ) /* EN */ /* Reset Value for GP3IN*/ -#define GP3IN_RVAL 0xFF +#define GP3IN_RVAL 0xFF /* GP3IN[IN7] - Reflects the level on the corresponding GPIO pins except when in configured in open circuit. */ #define GP3IN_IN7_BBA (*(volatile unsigned long *) 0x420C149C) @@ -4285,7 +4285,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3IN_IN0_HIGH (0x1 << 0 ) /* HIGH */ /* Reset Value for GP3OUT*/ -#define GP3OUT_RVAL 0x0 +#define GP3OUT_RVAL 0x0 /* GP3OUT[OUT7] - Output for port pin. */ #define GP3OUT_OUT7_BBA (*(volatile unsigned long *) 0x420C151C) @@ -4344,7 +4344,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3OUT_OUT0_HIGH (0x1 << 0 ) /* HIGH. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP3SET*/ -#define GP3SET_RVAL 0x0 +#define GP3SET_RVAL 0x0 /* GP3SET[SET7] - Set output high for corresponding port pin. */ #define GP3SET_SET7_BBA (*(volatile unsigned long *) 0x420C159C) @@ -4395,7 +4395,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3SET_SET0_SET (0x1 << 0 ) /* SET. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP3CLR*/ -#define GP3CLR_RVAL 0x0 +#define GP3CLR_RVAL 0x0 /* GP3CLR[CLR7] - Set by user code to drive the corresponding GPIO low. */ #define GP3CLR_CLR7_BBA (*(volatile unsigned long *) 0x420C161C) @@ -4446,7 +4446,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP3CLR_CLR0_CLR (0x1 << 0 ) /* CLR. Set by user code to drive the corresponding GPIO low. */ /* Reset Value for GP3TGL*/ -#define GP3TGL_RVAL 0x0 +#define GP3TGL_RVAL 0x0 /* GP3TGL[TGL7] - Toggle for corresponding port pin. */ #define GP3TGL_TGL7_BBA (*(volatile unsigned long *) 0x420C169C) @@ -4509,7 +4509,7 @@ typedef struct { /*!< pADI_GP0 Structure #endif // (__NO_MMR_STRUCTS__==1) /* Reset Value for GP4CON*/ -#define GP4CON_RVAL 0x0 +#define GP4CON_RVAL 0x0 /* GP4CON[CON7] - Configuration bits for P4.7 */ #define GP4CON_CON7_MSK (0x3 << 14 ) @@ -4553,7 +4553,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4CON_CON0_PWM0 (0x2 << 0 ) /* PWM0 */ /* Reset Value for GP4OEN*/ -#define GP4OEN_RVAL 0x0 +#define GP4OEN_RVAL 0x0 /* GP4OEN[OEN7] - Port pin direction. */ #define GP4OEN_OEN7_BBA (*(volatile unsigned long *) 0x420C189C) @@ -4612,7 +4612,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4OEN_OEN0_OUT (0x1 << 0 ) /* OUT. Enables the output on corresponding port pin. */ /* Reset Value for GP4PUL*/ -#define GP4PUL_RVAL 0xFF +#define GP4PUL_RVAL 0xFF /* GP4PUL[PUL7] - Pull Up Enable for port pin. */ #define GP4PUL_PUL7_BBA (*(volatile unsigned long *) 0x420C191C) @@ -4671,7 +4671,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4PUL_PUL0_EN (0x1 << 0 ) /* EN. Enables the internal pull up on corresponding port pin. */ /* Reset Value for GP4OCE*/ -#define GP4OCE_RVAL 0x0 +#define GP4OCE_RVAL 0x0 /* GP4OCE[OCE7] - Output enable. Sets the GPIO pads on corresponding port to open circuit mode. */ #define GP4OCE_OCE7_BBA (*(volatile unsigned long *) 0x420C199C) @@ -4730,7 +4730,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4OCE_OCE0_EN (0x1 << 0 ) /* EN */ /* Reset Value for GP4IN*/ -#define GP4IN_RVAL 0xFF +#define GP4IN_RVAL 0xFF /* GP4IN[IN7] - Reflects the level on the corresponding GPIO pins except when in configured in open circuit. */ #define GP4IN_IN7_BBA (*(volatile unsigned long *) 0x420C1A9C) @@ -4789,7 +4789,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4IN_IN0_HIGH (0x1 << 0 ) /* HIGH */ /* Reset Value for GP4OUT*/ -#define GP4OUT_RVAL 0x0 +#define GP4OUT_RVAL 0x0 /* GP4OUT[OUT7] - Output for port pin. */ #define GP4OUT_OUT7_BBA (*(volatile unsigned long *) 0x420C1B1C) @@ -4848,7 +4848,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4OUT_OUT0_HIGH (0x1 << 0 ) /* HIGH. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP4SET*/ -#define GP4SET_RVAL 0x0 +#define GP4SET_RVAL 0x0 /* GP4SET[SET7] - Set output high for corresponding port pin. */ #define GP4SET_SET7_BBA (*(volatile unsigned long *) 0x420C1B9C) @@ -4899,7 +4899,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4SET_SET0_SET (0x1 << 0 ) /* SET. Set by user code to drive the corresponding GPIO high. */ /* Reset Value for GP4CLR*/ -#define GP4CLR_RVAL 0x0 +#define GP4CLR_RVAL 0x0 /* GP4CLR[CLR7] - Set by user code to drive the corresponding GPIO low. */ #define GP4CLR_CLR7_BBA (*(volatile unsigned long *) 0x420C1C1C) @@ -4950,7 +4950,7 @@ typedef struct { /*!< pADI_GP0 Structure #define GP4CLR_CLR0_CLR (0x1 << 0 ) /* CLR. Set by user code to drive the corresponding GPIO low. */ /* Reset Value for GP4TGL*/ -#define GP4TGL_RVAL 0x0 +#define GP4TGL_RVAL 0x0 /* GP4TGL[TGL7] - Toggle for corresponding port pin. */ #define GP4TGL_TGL7_BBA (*(volatile unsigned long *) 0x420C1C9C) @@ -5017,7 +5017,7 @@ typedef struct { /*!< pADI_GPIOCMN Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for GPDWN*/ -#define GPDWN_RVAL 0x1 +#define GPDWN_RVAL 0x1 /* GPDWN[DWN1] - Pull down resistor control bit */ #define GPDWN_DWN1_BBA (*(volatile unsigned long *) 0x420C1E04) @@ -5047,7 +5047,7 @@ typedef struct { /*!< pADI_MISC Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for RFTST*/ -#define RFTST_RVAL 0x0 +#define RFTST_RVAL 0x0 /* RFTST[DIR] - Controls the pin direction in RF test mode. */ #define RFTST_DIR_MSK (0x7FF << 5 ) @@ -5081,7 +5081,7 @@ typedef struct { /*!< pADI_MISC Structure #define RFTST_GPX_EN (0x1 << 0 ) /* EN */ /* Reset Value for SWACT*/ -#define SWACT_RVAL 0x0 +#define SWACT_RVAL 0x0 /* SWACT[ACT] - Serial Wire Activity */ #define SWACT_ACT_BBA (*(volatile unsigned long *) 0x42110600) @@ -5161,7 +5161,7 @@ typedef struct { /*!< pADI_I2C Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for I2CMCON*/ -#define I2CMCON_RVAL 0x0 +#define I2CMCON_RVAL 0x0 /* I2CMCON[TXDMA] - Enable master Tx DMA request. */ #define I2CMCON_TXDMA_BBA (*(volatile unsigned long *) 0x4206002C) @@ -5241,7 +5241,7 @@ typedef struct { /*!< pADI_I2C Structure #define I2CMCON_MAS_EN (0x1 << 0 ) /* EN. Enable master. */ /* Reset Value for I2CMSTA*/ -#define I2CMSTA_RVAL 0x0 +#define I2CMSTA_RVAL 0x0 /* I2CMSTA[TXUR] - Master transmit FIFO underrun. */ #define I2CMSTA_TXUR_BBA (*(volatile unsigned long *) 0x420600B0) @@ -5327,19 +5327,19 @@ typedef struct { /*!< pADI_I2C Structure #define I2CMSTA_TXFSTA_FULL (0x3 << 0 ) /* FULL. FIFO full. */ /* Reset Value for I2CMRX*/ -#define I2CMRX_RVAL 0x0 +#define I2CMRX_RVAL 0x0 /* I2CMRX[VALUE] - Receive register. This register allows access to the receive data FIFO. The FIFO can hold two bytes. */ #define I2CMRX_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CMTX*/ -#define I2CMTX_RVAL 0x0 +#define I2CMTX_RVAL 0x0 /* I2CMTX[VALUE] - Transmit register. This register allows access to the transmit data FIFO. The FIFO can hold two bytes. */ #define I2CMTX_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CMRXCNT*/ -#define I2CMRXCNT_RVAL 0x0 +#define I2CMRXCNT_RVAL 0x0 /* I2CMRXCNT[EXTEND] - Extended read: Use this bit if greater than 256 bytes are required on a read. For example: To receive 412 bytes, write 0x100 (EXTEND = 1) to this register (I2CMRXCNT). Wait for the first byte to be received, then check the I2CMCRXCNT register for every byte received thereafter. When I2CMCRXCNT returns to 0, 256 bytes have been received. Then, write 0x09C (412 - 256 = 156 decimal (equal to 0x9C) – with the EXTEND bit set to 0) to this register (I2CMRXCNT). */ #define I2CMRXCNT_EXTEND_BBA (*(volatile unsigned long *) 0x42060220) @@ -5352,25 +5352,25 @@ typedef struct { /*!< pADI_I2C Structure #define I2CMRXCNT_COUNT_MSK (0xFF << 0 ) /* Reset Value for I2CMCRXCNT*/ -#define I2CMCRXCNT_RVAL 0x0 +#define I2CMCRXCNT_RVAL 0x0 /* I2CMCRXCNT[VALUE] - Current receive count. This register gives the total number of bytes received so far. If 256 bytes are requested, then this register reads 0 when the transaction has completed. */ #define I2CMCRXCNT_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CADR0*/ -#define I2CADR0_RVAL 0x0 +#define I2CADR0_RVAL 0x0 /* I2CADR0[VALUE] - Address byte. If a 7-bit address is required, then I2CADR0[7:1] is programmed with the address and I2CADR0[0] is programmed with the direction (read or write). If a 10-bit address is required then I2CADR0[7:3] is programmed with '11110', I2CADR0[2:1] is programmed with the two MSBs of the address, and, again, I2CADR0[0] is programmed with the direction bit (read or write). */ #define I2CADR0_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CADR1*/ -#define I2CADR1_RVAL 0x0 +#define I2CADR1_RVAL 0x0 /* I2CADR1[VALUE] - Address byte. This register is only required when addressing a slave with 10-bit addressing. I2CADR1[7:0] is programmed with the lower eight bits of the address. */ #define I2CADR1_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CDIV*/ -#define I2CDIV_RVAL 0x1F1F +#define I2CDIV_RVAL 0x1F1F /* I2CDIV[HIGH] - Serial clock high time. This register controls the clock high time. See the serial clock generation section for more details. */ #define I2CDIV_HIGH_MSK (0xFF << 8 ) @@ -5379,7 +5379,7 @@ typedef struct { /*!< pADI_I2C Structure #define I2CDIV_LOW_MSK (0xFF << 0 ) /* Reset Value for I2CSCON*/ -#define I2CSCON_RVAL 0x0 +#define I2CSCON_RVAL 0x0 /* I2CSCON[TXDMA] - Enable slave Tx DMA request. */ #define I2CSCON_TXDMA_BBA (*(volatile unsigned long *) 0x42060538) @@ -5479,7 +5479,7 @@ typedef struct { /*!< pADI_I2C Structure #define I2CSCON_SLV_EN (0x1 << 0 ) /* EN. Enable slave. */ /* Reset Value for I2CSSTA*/ -#define I2CSSTA_RVAL 0x1 +#define I2CSSTA_RVAL 0x1 /* I2CSSTA[START] - Start and matching address. */ #define I2CSSTA_START_BBA (*(volatile unsigned long *) 0x420605B8) @@ -5565,49 +5565,49 @@ typedef struct { /*!< pADI_I2C Structure #define I2CSSTA_TXFSEREQ_SET (0x1 << 0 ) /* SET. Set whenever the slave Tx FIFO is empty. */ /* Reset Value for I2CSRX*/ -#define I2CSRX_RVAL 0x0 +#define I2CSRX_RVAL 0x0 /* I2CSRX[VALUE] - Receive register. */ #define I2CSRX_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CSTX*/ -#define I2CSTX_RVAL 0x0 +#define I2CSTX_RVAL 0x0 /* I2CSTX[VALUE] - Transmit register. */ #define I2CSTX_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CALT*/ -#define I2CALT_RVAL 0x0 +#define I2CALT_RVAL 0x0 /* I2CALT[VALUE] - ALT register.This register is used in conjunction with HGC (I2CSCON[3]) to match a master generating a hardware general call. It is used in the case where a master device cannot be programmed with a slave’s address and, instead, the slave must recognize the master’s address. */ #define I2CALT_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CID0*/ -#define I2CID0_RVAL 0x0 +#define I2CID0_RVAL 0x0 /* I2CID0[VALUE] - Slave ID. */ #define I2CID0_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CID1*/ -#define I2CID1_RVAL 0x0 +#define I2CID1_RVAL 0x0 /* I2CID1[VALUE] - Slave ID. */ #define I2CID1_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CID2*/ -#define I2CID2_RVAL 0x0 +#define I2CID2_RVAL 0x0 /* I2CID2[VALUE] - Slave ID. */ #define I2CID2_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CID3*/ -#define I2CID3_RVAL 0x0 +#define I2CID3_RVAL 0x0 /* I2CID3[VALUE] - Slave ID. */ #define I2CID3_VALUE_MSK (0xFF << 0 ) /* Reset Value for I2CFSTA*/ -#define I2CFSTA_RVAL 0x0 +#define I2CFSTA_RVAL 0x0 /* I2CFSTA[MFLUSH] - Master Transmit FIFO Flush. */ #define I2CFSTA_MFLUSH_BBA (*(volatile unsigned long *) 0x420609A4) @@ -5676,7 +5676,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for EI0CFG*/ -#define EI0CFG_RVAL 0x0 +#define EI0CFG_RVAL 0x0 /* EI0CFG[IRQ3EN] - External interrupt 3 enable bit. */ #define EI0CFG_IRQ3EN_BBA (*(volatile unsigned long *) 0x4204843C) @@ -5739,7 +5739,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define EI0CFG_IRQ0MDE_LOWLEVEL (0x4 << 0 ) /* LOWLEVEL. Low level. */ /* Reset Value for EI1CFG*/ -#define EI1CFG_RVAL 0x0 +#define EI1CFG_RVAL 0x0 /* EI1CFG[IRQ7EN] - External interrupt 7 enable bit. */ #define EI1CFG_IRQ7EN_BBA (*(volatile unsigned long *) 0x420484BC) @@ -5802,7 +5802,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define EI1CFG_IRQ4MDE_LOWLEVEL (0x4 << 0 ) /* LOWLEVEL. Low Level. */ /* Reset Value for EI2CFG*/ -#define EI2CFG_RVAL 0x0 +#define EI2CFG_RVAL 0x0 /* EI2CFG[IRQ8EN] - RF transceiver IRQ enable bit. */ #define EI2CFG_IRQ8EN_BBA (*(volatile unsigned long *) 0x4204850C) @@ -5820,7 +5820,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define EI2CFG_IRQ8MDE_LOWLEVEL (0x4 << 0 ) /* LOWLEVEL. Low level. */ /* Reset Value for EICLR*/ -#define EICLR_RVAL 0x0 +#define EICLR_RVAL 0x0 /* EICLR[IRQ8] - External interrupt 8 (RF transceiver) clear bit. */ #define EICLR_IRQ8_BBA (*(volatile unsigned long *) 0x42048620) @@ -5877,7 +5877,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define EICLR_IRQ0_CLR (0x1 << 0 ) /* CLR. Clear an internal interrupt flag. */ /* Reset Value for NMICLR*/ -#define NMICLR_RVAL 0x0 +#define NMICLR_RVAL 0x0 /* NMICLR[CLEAR] - NMI clear bit. */ #define NMICLR_CLEAR_BBA (*(volatile unsigned long *) 0x42048680) @@ -5939,13 +5939,13 @@ typedef struct { /*!< pADI_INTERRUPT Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for ICTR*/ -#define ICTR_RVAL 0x1 +#define ICTR_RVAL 0x1 /* ICTR[INTLINESNUM] - Total number of interrupt lines in groups of 32 */ #define ICTR_INTLINESNUM_MSK (0xF << 0 ) /* Reset Value for STCSR*/ -#define STCSR_RVAL 0x0 +#define STCSR_RVAL 0x0 /* STCSR[COUNTFLAG] - Returns 1 if timer counted to 0 since last time this register was read */ #define STCSR_COUNTFLAG_MSK (0x1 << 16 ) @@ -5972,19 +5972,19 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define STCSR_ENABLE_EN (0x1 << 0 ) /* EN */ /* Reset Value for STRVR*/ -#define STRVR_RVAL 0x0 +#define STRVR_RVAL 0x0 /* STRVR[RELOAD] - Value to load into the Current Value register when the counter reaches 0 */ #define STRVR_RELOAD_MSK (0xFFFFFF << 0 ) /* Reset Value for STCVR*/ -#define STCVR_RVAL 0x0 +#define STCVR_RVAL 0x0 /* STCVR[CURRENT] - Current counter value */ #define STCVR_CURRENT_MSK (0xFFFFFFFF << 0 ) /* Reset Value for STCR*/ -#define STCR_RVAL 0x0 +#define STCR_RVAL 0x0 /* STCR[NOREF] - If reads as 1, the Reference clock is not provided */ #define STCR_NOREF_MSK (0x1 << 31 ) @@ -6002,7 +6002,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define STCR_TENMS_MSK (0xFFFFFF << 0 ) /* Reset Value for ISER0*/ -#define ISER0_RVAL 0x0 +#define ISER0_RVAL 0x0 /* ISER0[DMAI2CMRX] - */ #define ISER0_DMAI2CMRX_MSK (0x1 << 30 ) @@ -6179,7 +6179,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ISER0_T2_EN (0x1 << 0 ) /* EN */ /* Reset Value for ISER1*/ -#define ISER1_RVAL 0x0 +#define ISER1_RVAL 0x0 /* ISER1[PWM3] - */ #define ISER1_PWM3_MSK (0x1 << 9 ) @@ -6230,7 +6230,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ISER1_DMAADC_EN (0x1 << 2 ) /* EN */ /* Reset Value for ICER0*/ -#define ICER0_RVAL 0x0 +#define ICER0_RVAL 0x0 /* ICER0[DMAI2CMRX] - */ #define ICER0_DMAI2CMRX_MSK (0x1 << 30 ) @@ -6407,7 +6407,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ICER0_T2_EN (0x1 << 0 ) /* EN */ /* Reset Value for ICER1*/ -#define ICER1_RVAL 0x0 +#define ICER1_RVAL 0x0 /* ICER1[PWM3] - */ #define ICER1_PWM3_MSK (0x1 << 9 ) @@ -6458,7 +6458,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ICER1_DMAADC_EN (0x1 << 2 ) /* EN */ /* Reset Value for ISPR0*/ -#define ISPR0_RVAL 0x0 +#define ISPR0_RVAL 0x0 /* ISPR0[DMAI2CMRX] - */ #define ISPR0_DMAI2CMRX_MSK (0x1 << 30 ) @@ -6635,7 +6635,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ISPR0_T2_EN (0x1 << 0 ) /* EN */ /* Reset Value for ISPR1*/ -#define ISPR1_RVAL 0x0 +#define ISPR1_RVAL 0x0 /* ISPR1[PWM3] - */ #define ISPR1_PWM3_MSK (0x1 << 9 ) @@ -6686,7 +6686,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ISPR1_DMAADC_EN (0x1 << 2 ) /* EN */ /* Reset Value for ICPR0*/ -#define ICPR0_RVAL 0x0 +#define ICPR0_RVAL 0x0 /* ICPR0[DMAI2CMRX] - */ #define ICPR0_DMAI2CMRX_MSK (0x1 << 30 ) @@ -6863,7 +6863,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ICPR0_T2_EN (0x1 << 0 ) /* EN */ /* Reset Value for ICPR1*/ -#define ICPR1_RVAL 0x0 +#define ICPR1_RVAL 0x0 /* ICPR1[PWM3] - */ #define ICPR1_PWM3_MSK (0x1 << 9 ) @@ -6914,7 +6914,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ICPR1_DMAADC_EN (0x1 << 2 ) /* EN */ /* Reset Value for IABR0*/ -#define IABR0_RVAL 0x0 +#define IABR0_RVAL 0x0 /* IABR0[DMAI2CMRX] - */ #define IABR0_DMAI2CMRX_MSK (0x1 << 30 ) @@ -7091,7 +7091,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IABR0_T2_EN (0x1 << 0 ) /* EN */ /* Reset Value for IABR1*/ -#define IABR1_RVAL 0x0 +#define IABR1_RVAL 0x0 /* IABR1[PWM3] - */ #define IABR1_PWM3_MSK (0x1 << 9 ) @@ -7142,7 +7142,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IABR1_DMAADC_EN (0x1 << 2 ) /* EN */ /* Reset Value for IPR0*/ -#define IPR0_RVAL 0x0 +#define IPR0_RVAL 0x0 /* IPR0[EXTINT2] - */ #define IPR0_EXTINT2_MSK (0xFF << 24 ) @@ -7157,7 +7157,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR0_T2_MSK (0xFF << 0 ) /* Reset Value for IPR1*/ -#define IPR1_RVAL 0x0 +#define IPR1_RVAL 0x0 /* IPR1[EXTINT6] - */ #define IPR1_EXTINT6_MSK (0xFF << 24 ) @@ -7172,7 +7172,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR1_EXTINT3_MSK (0xFF << 0 ) /* Reset Value for IPR2*/ -#define IPR2_RVAL 0x0 +#define IPR2_RVAL 0x0 /* IPR2[T3] - */ #define IPR2_T3_MSK (0xFF << 16 ) @@ -7184,7 +7184,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR2_EXTINT7_MSK (0xFF << 0 ) /* Reset Value for IPR3*/ -#define IPR3_RVAL 0x0 +#define IPR3_RVAL 0x0 /* IPR3[FEE] - */ #define IPR3_FEE_MSK (0xFF << 24 ) @@ -7199,7 +7199,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR3_T0_MSK (0xFF << 0 ) /* Reset Value for IPR4*/ -#define IPR4_RVAL 0x0 +#define IPR4_RVAL 0x0 /* IPR4[I2CS] - */ #define IPR4_I2CS_MSK (0xFF << 24 ) @@ -7214,7 +7214,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR4_UART_MSK (0xFF << 0 ) /* Reset Value for IPR5*/ -#define IPR5_RVAL 0x0 +#define IPR5_RVAL 0x0 /* IPR5[DMASPI1TX] - */ #define IPR5_DMASPI1TX_MSK (0xFF << 24 ) @@ -7226,7 +7226,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR5_I2CM_MSK (0xFF << 0 ) /* Reset Value for IPR6*/ -#define IPR6_RVAL 0x0 +#define IPR6_RVAL 0x0 /* IPR6[DMAI2CSTX] - */ #define IPR6_DMAI2CSTX_MSK (0xFF << 24 ) @@ -7241,7 +7241,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR6_DMASPI1RX_MSK (0xFF << 0 ) /* Reset Value for IPR7*/ -#define IPR7_RVAL 0x0 +#define IPR7_RVAL 0x0 /* IPR7[DMAI2CMRX] - */ #define IPR7_DMAI2CMRX_MSK (0xFF << 16 ) @@ -7253,7 +7253,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR7_DMAI2CSRX_MSK (0xFF << 0 ) /* Reset Value for IPR8*/ -#define IPR8_RVAL 0x0 +#define IPR8_RVAL 0x0 /* IPR8[DMASPI0TX] - */ #define IPR8_DMASPI0TX_MSK (0xFF << 24 ) @@ -7262,7 +7262,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR8_DMAADC_MSK (0xFF << 16 ) /* Reset Value for IPR9*/ -#define IPR9_RVAL 0x0 +#define IPR9_RVAL 0x0 /* IPR9[PWM1] - */ #define IPR9_PWM1_MSK (0xFF << 24 ) @@ -7277,7 +7277,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR9_DMASPI0RX_MSK (0xFF << 0 ) /* Reset Value for IPR10*/ -#define IPR10_RVAL 0x0 +#define IPR10_RVAL 0x0 /* IPR10[PWM3] - */ #define IPR10_PWM3_MSK (0xFF << 8 ) @@ -7286,7 +7286,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define IPR10_PWM2_MSK (0xFF << 0 ) /* Reset Value for CPUID*/ -#define CPUID_RVAL 0x412FC230 +#define CPUID_RVAL 0x412FC230 /* CPUID[IMPLEMENTER] - Indicates implementor */ #define CPUID_IMPLEMENTER_MSK (0xFF << 24 ) @@ -7301,7 +7301,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define CPUID_REVISION_MSK (0xF << 0 ) /* Reset Value for ICSR*/ -#define ICSR_RVAL 0x0 +#define ICSR_RVAL 0x0 /* ICSR[NMIPENDSET] - Setting this bit will activate an NMI */ #define ICSR_NMIPENDSET_MSK (0x1 << 31 ) @@ -7358,7 +7358,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define ICSR_VECTACTIVE_MSK (0x1FF << 0 ) /* Reset Value for VTOR*/ -#define VTOR_RVAL 0x0 +#define VTOR_RVAL 0x0 /* VTOR[TBLBASE] - */ #define VTOR_TBLBASE_MSK (0x1 << 29 ) @@ -7370,7 +7370,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define VTOR_TBLOFF_MSK (0x3FFFFF << 7 ) /* Reset Value for AIRCR*/ -#define AIRCR_RVAL 0xFA050000 +#define AIRCR_RVAL 0xFA050000 /* AIRCR[VECTKEYSTAT] - Reads as 0xFA05 */ #define AIRCR_VECTKEYSTAT_MSK (0xFFFF << 16 ) @@ -7403,7 +7403,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define AIRCR_VECTRESET_EN (0x1 << 0 ) /* EN */ /* Reset Value for SCR*/ -#define SCR_RVAL 0x0 +#define SCR_RVAL 0x0 /* SCR[SEVONPEND] - */ #define SCR_SEVONPEND_MSK (0x1 << 4 ) @@ -7424,7 +7424,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define SCR_SLEEPONEXIT_EN (0x1 << 1 ) /* EN */ /* Reset Value for CCR*/ -#define CCR_RVAL 0x200 +#define CCR_RVAL 0x200 /* CCR[STKALIGN] - */ #define CCR_STKALIGN_MSK (0x1 << 9 ) @@ -7463,7 +7463,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define CCR_NONBASETHRDENA_EN (0x1 << 0 ) /* EN */ /* Reset Value for SHPR1*/ -#define SHPR1_RVAL 0x0 +#define SHPR1_RVAL 0x0 /* SHPR1[PRI7] - Priority of system handler 7 - reserved */ #define SHPR1_PRI7_MSK (0xFF << 24 ) @@ -7478,7 +7478,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define SHPR1_PRI4_MSK (0xFF << 0 ) /* Reset Value for SHPR2*/ -#define SHPR2_RVAL 0x0 +#define SHPR2_RVAL 0x0 /* SHPR2[PRI11] - Priority of system handler 11 - SVCall */ #define SHPR2_PRI11_MSK (0xFF << 24 ) @@ -7493,7 +7493,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define SHPR2_PRI8_MSK (0xFF << 0 ) /* Reset Value for SHPR3*/ -#define SHPR3_RVAL 0x0 +#define SHPR3_RVAL 0x0 /* SHPR3[PRI15] - Priority of system handler 15 - SysTick */ #define SHPR3_PRI15_MSK (0xFF << 24 ) @@ -7508,7 +7508,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define SHPR3_PRI12_MSK (0xFF << 0 ) /* Reset Value for SHCSR*/ -#define SHCSR_RVAL 0x0 +#define SHCSR_RVAL 0x0 /* SHCSR[USGFAULTENA] - Enable for UsageFault */ #define SHCSR_USGFAULTENA_MSK (0x1 << 18 ) @@ -7595,7 +7595,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define SHCSR_MEMFAULTACT_EN (0x1 << 0 ) /* EN */ /* Reset Value for CFSR*/ -#define CFSR_RVAL 0x0 +#define CFSR_RVAL 0x0 /* CFSR[DIVBYZERO] - Divide by zero error */ #define CFSR_DIVBYZERO_MSK (0x1 << 25 ) @@ -7700,7 +7700,7 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define CFSR_IACCVIOL_EN (0x1 << 0 ) /* EN */ /* Reset Value for HFSR*/ -#define HFSR_RVAL 0x0 +#define HFSR_RVAL 0x0 /* HFSR[DEBUGEVT] - Debug event, and the Debug Fault Status Register has been updated. */ #define HFSR_DEBUGEVT_MSK (0x1 << 31 ) @@ -7721,19 +7721,19 @@ typedef struct { /*!< pADI_INTERRUPT Structure #define HFSR_VECTTBL_EN (0x1 << 1 ) /* EN */ /* Reset Value for MMFAR*/ -#define MMFAR_RVAL 0x0 +#define MMFAR_RVAL 0x0 /* MMFAR[ADDRESS] - Data address MPU faulted. */ #define MMFAR_ADDRESS_MSK (0xFFFFFFFF << 0 ) /* Reset Value for BFAR*/ -#define BFAR_RVAL 0x0 +#define BFAR_RVAL 0x0 /* BFAR[ADDRESS] - Updated on precise data access faults */ #define BFAR_ADDRESS_MSK (0xFFFFFFFF << 0 ) /* Reset Value for STIR*/ -#define STIR_RVAL 0x0 +#define STIR_RVAL 0x0 /* STIR[INTID] - The value written in this field is the interrupt to be triggered. */ #define STIR_INTID_MSK (0x3FF << 0 ) @@ -7767,7 +7767,7 @@ typedef struct { /*!< pADI_PWRCTL Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for PWRMOD*/ -#define PWRMOD_RVAL 0x100 +#define PWRMOD_RVAL 0x100 /* PWRMOD[WICENACK] - WIC Acknowledge, for cortex M3 deep sleep mode */ #define PWRMOD_WICENACK_BBA (*(volatile unsigned long *) 0x4204800C) @@ -7783,7 +7783,7 @@ typedef struct { /*!< pADI_PWRCTL Structure #define PWRMOD_MOD_SHUTDOWN (0x6 << 0 ) /* SHUTDOWN. */ /* Reset Value for PWRKEY*/ -#define PWRKEY_RVAL 0x0 +#define PWRKEY_RVAL 0x0 /* PWRKEY[VALUE] - */ #define PWRKEY_VALUE_MSK (0xFFFF << 0 ) @@ -7791,7 +7791,7 @@ typedef struct { /*!< pADI_PWRCTL Structure #define PWRKEY_VALUE_KEY2 (0xF27B << 0 ) /* KEY2 */ /* Reset Value for PSMCON*/ -#define PSMCON_RVAL 0x3 +#define PSMCON_RVAL 0x3 /* PSMCON[PD] - Power Supply Monitor power down bit. */ #define PSMCON_PD_BBA (*(volatile unsigned long *) 0x42048104) @@ -7801,7 +7801,7 @@ typedef struct { /*!< pADI_PWRCTL Structure #define PSMCON_PD_EN (0x1 << 1 ) /* EN. Power down the PSM. */ /* Reset Value for SRAMRET*/ -#define SRAMRET_RVAL 0x1 +#define SRAMRET_RVAL 0x1 /* SRAMRET[RETAIN] - SRAM retention enable bit */ #define SRAMRET_RETAIN_BBA (*(volatile unsigned long *) 0x42048F00) @@ -7811,7 +7811,7 @@ typedef struct { /*!< pADI_PWRCTL Structure #define SRAMRET_RETAIN_EN (0x1 << 0 ) /* EN. To retain contents of the entire 16 kB of SRAM */ /* Reset Value for SHUTDOWN*/ -#define SHUTDOWN_RVAL 0x0 +#define SHUTDOWN_RVAL 0x0 /* SHUTDOWN[EINT8] - External Interrupt 8 detected during SHUTDOWN mode */ #define SHUTDOWN_EINT8_BBA (*(volatile unsigned long *) 0x42048F88) @@ -7905,7 +7905,7 @@ typedef struct { /*!< pADI_PWM Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for PWMCON0*/ -#define PWMCON0_RVAL 0x12 +#define PWMCON0_RVAL 0x12 /* PWMCON0[SYNC] - PWM Synchronization. */ #define PWMCON0_SYNC_BBA (*(volatile unsigned long *) 0x4202003C) @@ -8010,7 +8010,7 @@ typedef struct { /*!< pADI_PWM Structure #define PWMCON0_PWMEN_EN (0x1 << 0 ) /* EN. Enables all PWM outputs. */ /* Reset Value for PWMCON1*/ -#define PWMCON1_RVAL 0x0 +#define PWMCON1_RVAL 0x0 /* PWMCON1[TRIPEN] - Enable PWM trip functionality. */ #define PWMCON1_TRIPEN_BBA (*(volatile unsigned long *) 0x42020098) @@ -8020,7 +8020,7 @@ typedef struct { /*!< pADI_PWM Structure #define PWMCON1_TRIPEN_EN (0x1 << 6 ) /* EN. Enable PWM trip functionality. */ /* Reset Value for PWMCLRI*/ -#define PWMCLRI_RVAL 0x0 +#define PWMCLRI_RVAL 0x0 /* PWMCLRI[TRIP] - Clear the latched trip interrupt. This bit always reads 0. */ #define PWMCLRI_TRIP_BBA (*(volatile unsigned long *) 0x42020110) @@ -8053,97 +8053,97 @@ typedef struct { /*!< pADI_PWM Structure #define PWMCLRI_IRQPWM0_EN (0x1 << 0 ) /* EN. Clear the latched IRQPWM0 interrupt. */ /* Reset Value for PWM0COM0*/ -#define PWM0COM0_RVAL 0x0 +#define PWM0COM0_RVAL 0x0 /* PWM0COM0[VALUE] - */ #define PWM0COM0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM0COM1*/ -#define PWM0COM1_RVAL 0x0 +#define PWM0COM1_RVAL 0x0 /* PWM0COM1[VALUE] - */ #define PWM0COM1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM0COM2*/ -#define PWM0COM2_RVAL 0x0 +#define PWM0COM2_RVAL 0x0 /* PWM0COM2[VALUE] - */ #define PWM0COM2_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM0LEN*/ -#define PWM0LEN_RVAL 0x0 +#define PWM0LEN_RVAL 0x0 /* PWM0LEN[VALUE] - */ #define PWM0LEN_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM1COM0*/ -#define PWM1COM0_RVAL 0x0 +#define PWM1COM0_RVAL 0x0 /* PWM1COM0[VALUE] - */ #define PWM1COM0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM1COM1*/ -#define PWM1COM1_RVAL 0x0 +#define PWM1COM1_RVAL 0x0 /* PWM1COM1[VALUE] - */ #define PWM1COM1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM1COM2*/ -#define PWM1COM2_RVAL 0x0 +#define PWM1COM2_RVAL 0x0 /* PWM1COM2[VALUE] - */ #define PWM1COM2_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM1LEN*/ -#define PWM1LEN_RVAL 0x0 +#define PWM1LEN_RVAL 0x0 /* PWM1LEN[VALUE] - */ #define PWM1LEN_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM2COM0*/ -#define PWM2COM0_RVAL 0x0 +#define PWM2COM0_RVAL 0x0 /* PWM2COM0[VALUE] - */ #define PWM2COM0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM2COM1*/ -#define PWM2COM1_RVAL 0x0 +#define PWM2COM1_RVAL 0x0 /* PWM2COM1[VALUE] - */ #define PWM2COM1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM2COM2*/ -#define PWM2COM2_RVAL 0x0 +#define PWM2COM2_RVAL 0x0 /* PWM2COM2[VALUE] - */ #define PWM2COM2_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM2LEN*/ -#define PWM2LEN_RVAL 0x0 +#define PWM2LEN_RVAL 0x0 /* PWM2LEN[VALUE] - */ #define PWM2LEN_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM3COM0*/ -#define PWM3COM0_RVAL 0x0 +#define PWM3COM0_RVAL 0x0 /* PWM3COM0[VALUE] - */ #define PWM3COM0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM3COM1*/ -#define PWM3COM1_RVAL 0x0 +#define PWM3COM1_RVAL 0x0 /* PWM3COM1[VALUE] - */ #define PWM3COM1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM3COM2*/ -#define PWM3COM2_RVAL 0x0 +#define PWM3COM2_RVAL 0x0 /* PWM3COM2[VALUE] - */ #define PWM3COM2_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for PWM3LEN*/ -#define PWM3LEN_RVAL 0x0 +#define PWM3LEN_RVAL 0x0 /* PWM3LEN[VALUE] - */ #define PWM3LEN_VALUE_MSK (0xFFFF << 0 ) @@ -8158,7 +8158,7 @@ typedef struct { /*!< pADI_PWM Structure #if (__NO_MMR_STRUCTS__==0) typedef struct { /*!< pADI_RESET Structure */ - + union { __IO uint8_t RSTSTA; /*!< Reset Status */ __IO uint8_t RSTCLR; /*!< Reset Status Clear */ @@ -8170,7 +8170,7 @@ typedef struct { /*!< pADI_RESET Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for RSTSTA*/ -#define RSTSTA_RVAL 0x3 +#define RSTSTA_RVAL 0x3 /* RSTSTA[SWRST] - Software reset status bit */ #define RSTSTA_SWRST_BBA (*(volatile unsigned long *) 0x42048810) @@ -8208,7 +8208,7 @@ typedef struct { /*!< pADI_RESET Structure #define RSTSTA_PORLV_SET (0x1 << 0 ) /* SET. This bit indicates that the AVDD supply has dropped below the POR trip point, causing a Power On Reset. It is also set when waking up from SHUTDOWN mode. */ /* Reset Value for RSTCLR*/ -#define RSTCLR_RVAL 0x3 +#define RSTCLR_RVAL 0x3 /* RSTCLR[SWRST] - Software reset clear status bit */ #define RSTCLR_SWRST_BBA (*(volatile unsigned long *) 0x42048810) @@ -8280,7 +8280,7 @@ typedef struct { /*!< pADI_SPI0 Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for SPI0STA*/ -#define SPI0STA_RVAL 0x0 +#define SPI0STA_RVAL 0x0 /* SPI0STA[CSERR] - CS error status bit. This bit generates an interrupt when detecting an abrupt CS desassertion before the full byte of data is transmitted completely. */ #define SPI0STA_CSERR_BBA (*(volatile unsigned long *) 0x42080030) @@ -8348,19 +8348,19 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI0STA_IRQ_SET (0x1 << 0 ) /* SET. Set to 1 when an SPI0 based interrupt occurs. */ /* Reset Value for SPI0RX*/ -#define SPI0RX_RVAL 0x0 +#define SPI0RX_RVAL 0x0 /* SPI0RX[VALUE] - 8-bit receive register. A read of the RX FIFO returns the next byte to be read from the FIFO. A read of the FIFO when it is empty returns zero. */ #define SPI0RX_VALUE_MSK (0xFF << 0 ) /* Reset Value for SPI0TX*/ -#define SPI0TX_RVAL 0x0 +#define SPI0TX_RVAL 0x0 /* SPI0TX[VALUE] - 8-bit transmit register. A write to the Tx FIFO address space writes data to the next available location in the Tx FIFO. If the FIFO is full, the oldest byte of data in the FIFO is overwritten. A read from this address location return zero. */ #define SPI0TX_VALUE_MSK (0xFF << 0 ) /* Reset Value for SPI0DIV*/ -#define SPI0DIV_RVAL 0x0 +#define SPI0DIV_RVAL 0x0 /* SPI0DIV[BCRST] - Configures the behavior of SPI communication after an abrupt deassertion of CS. This bit should be set in slave and master mode. */ #define SPI0DIV_BCRST_BBA (*(volatile unsigned long *) 0x4208019C) @@ -8373,7 +8373,7 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI0DIV_DIV_MSK (0x3F << 0 ) /* Reset Value for SPI0CON*/ -#define SPI0CON_RVAL 0x0 +#define SPI0CON_RVAL 0x0 /* SPI0CON[MOD] - IRQ mode bits. When TIM is set these bits configure when the Tx/Rx interrupts occur in a transfer. For a DMA Rx transfer, these bits should be 00. */ #define SPI0CON_MOD_MSK (0x3 << 14 ) @@ -8481,7 +8481,7 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI0CON_ENABLE_EN (0x1 << 0 ) /* EN. Enable the SPI. */ /* Reset Value for SPI0DMA*/ -#define SPI0DMA_RVAL 0x0 +#define SPI0DMA_RVAL 0x0 /* SPI0DMA[IENRXDMA] - Receive DMA request enable bit. */ #define SPI0DMA_IENRXDMA_BBA (*(volatile unsigned long *) 0x42080288) @@ -8505,7 +8505,7 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI0DMA_ENABLE_EN (0x1 << 0 ) /* EN. Enable a DMA transfer. Starts the transfer of a master configured to initiate transfer on transmit. */ /* Reset Value for SPI0CNT*/ -#define SPI0CNT_RVAL 0x0 +#define SPI0CNT_RVAL 0x0 /* SPI0CNT[VALUE] - Number of bytes requested by the SPI master during DMA transfer, when configured to initiate a transfer on a read of SPI0RX. This register is only used in DMA, master, Rx mode. */ #define SPI0CNT_VALUE_MSK (0xFF << 0 ) @@ -8521,7 +8521,7 @@ typedef struct { /*!< pADI_SPI0 Structure #endif // (__NO_MMR_STRUCTS__==1) /* Reset Value for SPI1STA*/ -#define SPI1STA_RVAL 0x0 +#define SPI1STA_RVAL 0x0 /* SPI1STA[CSERR] - CS error status bit. This bit generates an interrupt when detecting an abrupt CS desassertion before the full byte of data is transmitted completely. */ #define SPI1STA_CSERR_BBA (*(volatile unsigned long *) 0x42088030) @@ -8589,19 +8589,19 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI1STA_IRQ_SET (0x1 << 0 ) /* SET. Set to 1 when an SPI1 based interrupt occurs. */ /* Reset Value for SPI1RX*/ -#define SPI1RX_RVAL 0x0 +#define SPI1RX_RVAL 0x0 /* SPI1RX[VALUE] - 8-bit receive register. A read of the RX FIFO returns the next byte to be read from the FIFO. A read of the FIFO when it is empty returns zero. */ #define SPI1RX_VALUE_MSK (0xFF << 0 ) /* Reset Value for SPI1TX*/ -#define SPI1TX_RVAL 0x0 +#define SPI1TX_RVAL 0x0 /* SPI1TX[VALUE] - 8-bit transmit register. A write to the Tx FIFO address space writes data to the next available location in the Tx FIFO. If the FIFO is full, the oldest byte of data in the FIFO is overwritten. A read from this address location return zero. */ #define SPI1TX_VALUE_MSK (0xFF << 0 ) /* Reset Value for SPI1DIV*/ -#define SPI1DIV_RVAL 0x0 +#define SPI1DIV_RVAL 0x0 /* SPI1DIV[BCRST] - Configures the behavior of SPI communication after an abrupt deassertion of CS. This bit should be set in slave and master mode. */ #define SPI1DIV_BCRST_BBA (*(volatile unsigned long *) 0x4208819C) @@ -8614,7 +8614,7 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI1DIV_DIV_MSK (0x3F << 0 ) /* Reset Value for SPI1CON*/ -#define SPI1CON_RVAL 0x0 +#define SPI1CON_RVAL 0x0 /* SPI1CON[MOD] - IRQ mode bits. When TIM is set these bits configure when the Tx/Rx interrupts occur in a transfer. For a DMA Rx transfer, these bits should be 00. */ #define SPI1CON_MOD_MSK (0x3 << 14 ) @@ -8722,7 +8722,7 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI1CON_ENABLE_EN (0x1 << 0 ) /* EN. Enable the SPI. */ /* Reset Value for SPI1DMA*/ -#define SPI1DMA_RVAL 0x0 +#define SPI1DMA_RVAL 0x0 /* SPI1DMA[IENRXDMA] - Receive DMA request enable bit. */ #define SPI1DMA_IENRXDMA_BBA (*(volatile unsigned long *) 0x42088288) @@ -8746,7 +8746,7 @@ typedef struct { /*!< pADI_SPI0 Structure #define SPI1DMA_ENABLE_EN (0x1 << 0 ) /* EN. Enable a DMA transfer. Starts the transfer of a master configured to initiate transfer on transmit. */ /* Reset Value for SPI1CNT*/ -#define SPI1CNT_RVAL 0x0 +#define SPI1CNT_RVAL 0x0 /* SPI1CNT[VALUE] - Number of bytes requested by the SPI master during DMA transfer, when configured to initiate a transfer on a read of SPI0RX. This register is only used in DMA, master, Rx mode.. */ #define SPI1CNT_VALUE_MSK (0xFF << 0 ) @@ -8783,19 +8783,19 @@ typedef struct { /*!< pADI_TM0 Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for T0LD*/ -#define T0LD_RVAL 0x0 +#define T0LD_RVAL 0x0 /* T0LD[VALUE] - Load value. */ #define T0LD_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T0VAL*/ -#define T0VAL_RVAL 0x0 +#define T0VAL_RVAL 0x0 /* T0VAL[VALUE] - Current counter value. */ #define T0VAL_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T0CON*/ -#define T0CON_RVAL 0xA +#define T0CON_RVAL 0xA /* T0CON[EVENTEN] - Enable event bit. */ #define T0CON_EVENTEN_BBA (*(volatile unsigned long *) 0x42000130) @@ -8865,7 +8865,7 @@ typedef struct { /*!< pADI_TM0 Structure #define T0CON_PRE_DIV32768 (0x3 << 0 ) /* DIV32768. Source clock/32768. */ /* Reset Value for T0CLRI*/ -#define T0CLRI_RVAL 0x0 +#define T0CLRI_RVAL 0x0 /* T0CLRI[CAP] - Clear captured event interrupt. */ #define T0CLRI_CAP_BBA (*(volatile unsigned long *) 0x42000184) @@ -8880,13 +8880,13 @@ typedef struct { /*!< pADI_TM0 Structure #define T0CLRI_TMOUT_CLR (0x1 << 0 ) /* CLR. Clear a timeout interrupt. This bit always reads 0. */ /* Reset Value for T0CAP*/ -#define T0CAP_RVAL 0x0 +#define T0CAP_RVAL 0x0 /* T0CAP[VALUE] - Capture value. */ #define T0CAP_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T0STA*/ -#define T0STA_RVAL 0x0 +#define T0STA_RVAL 0x0 /* T0STA[CLRI] - T0CLRI write sync in progress.. */ #define T0STA_CLRI_BBA (*(volatile unsigned long *) 0x4200039C) @@ -8926,19 +8926,19 @@ typedef struct { /*!< pADI_TM0 Structure #endif // (__NO_MMR_STRUCTS__==1) /* Reset Value for T1LD*/ -#define T1LD_RVAL 0x0 +#define T1LD_RVAL 0x0 /* T1LD[VALUE] - Load value. */ #define T1LD_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T1VAL*/ -#define T1VAL_RVAL 0x0 +#define T1VAL_RVAL 0x0 /* T1VAL[VALUE] - Current counter value. */ #define T1VAL_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T1CON*/ -#define T1CON_RVAL 0xA +#define T1CON_RVAL 0xA /* T1CON[EVENTEN] - Enable event bit. */ #define T1CON_EVENTEN_BBA (*(volatile unsigned long *) 0x42008130) @@ -9008,7 +9008,7 @@ typedef struct { /*!< pADI_TM0 Structure #define T1CON_PRE_DIV32768 (0x3 << 0 ) /* DIV32768. Source clock/32768. */ /* Reset Value for T1CLRI*/ -#define T1CLRI_RVAL 0x0 +#define T1CLRI_RVAL 0x0 /* T1CLRI[CAP] - Clear captured event interrupt. */ #define T1CLRI_CAP_BBA (*(volatile unsigned long *) 0x42008184) @@ -9023,13 +9023,13 @@ typedef struct { /*!< pADI_TM0 Structure #define T1CLRI_TMOUT_CLR (0x1 << 0 ) /* CLR. Clear a timeout interrupt. This bit always reads 0. */ /* Reset Value for T1CAP*/ -#define T1CAP_RVAL 0x0 +#define T1CAP_RVAL 0x0 /* T1CAP[VALUE] - Capture value. */ #define T1CAP_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T1STA*/ -#define T1STA_RVAL 0x0 +#define T1STA_RVAL 0x0 /* T1STA[CLRI] - T1CLRI write sync in progress. */ #define T1STA_CLRI_BBA (*(volatile unsigned long *) 0x4200839C) @@ -9069,7 +9069,7 @@ typedef struct { /*!< pADI_TM0 Structure #if (__NO_MMR_STRUCTS__==0) typedef struct { /*!< pADI_UART Structure */ - + union { __IO uint8_t COMTX; /*!< Transmit Holding Register */ __IO uint8_t COMRX; /*!< Receive Buffer Register */ @@ -9105,19 +9105,19 @@ typedef struct { /*!< pADI_UART Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for COMTX*/ -#define COMTX_RVAL 0x0 +#define COMTX_RVAL 0x0 /* COMTX[VALUE] - Transmit Holding Register */ #define COMTX_VALUE_MSK (0xFF << 0 ) /* Reset Value for COMRX*/ -#define COMRX_RVAL 0x0 +#define COMRX_RVAL 0x0 /* COMRX[VALUE] - Receive Buffer Register */ #define COMRX_VALUE_MSK (0xFF << 0 ) /* Reset Value for COMIEN*/ -#define COMIEN_RVAL 0x0 +#define COMIEN_RVAL 0x0 /* COMIEN[EDMAR] - DMA requests in transmit mode */ #define COMIEN_EDMAR_BBA (*(volatile unsigned long *) 0x420A0094) @@ -9162,7 +9162,7 @@ typedef struct { /*!< pADI_UART Structure #define COMIEN_ERBFI_EN (0x1 << 0 ) /* EN. Enable the receive interrupt. An interrupt is generated when the COMRX register is loaded with the received data. Note that if the COMRX is already full when enabling this bit, an interrupt is generated immediately. */ /* Reset Value for COMIIR*/ -#define COMIIR_RVAL 0x1 +#define COMIIR_RVAL 0x1 /* COMIIR[STA] - Status bits. */ #define COMIIR_STA_MSK (0x3 << 1 ) @@ -9179,7 +9179,7 @@ typedef struct { /*!< pADI_UART Structure #define COMIIR_NINT_SET (0x1 << 0 ) /* SET. There is no interrupt (default). */ /* Reset Value for COMLCR*/ -#define COMLCR_RVAL 0x0 +#define COMLCR_RVAL 0x0 /* COMLCR[BRK] - Set Break. */ #define COMLCR_BRK_BBA (*(volatile unsigned long *) 0x420A0198) @@ -9224,7 +9224,7 @@ typedef struct { /*!< pADI_UART Structure #define COMLCR_WLS_8BITS (0x3 << 0 ) /* 8BITS. 8 bits. */ /* Reset Value for COMMCR*/ -#define COMMCR_RVAL 0x0 +#define COMMCR_RVAL 0x0 /* COMMCR[LOOPBACK] - Loop Back. */ #define COMMCR_LOOPBACK_BBA (*(volatile unsigned long *) 0x420A0210) @@ -9241,7 +9241,7 @@ typedef struct { /*!< pADI_UART Structure #define COMMCR_RTS_EN (0x1 << 1 ) /* EN. Force the RTS output to 0. */ /* Reset Value for COMLSR*/ -#define COMLSR_RVAL 0x60 +#define COMLSR_RVAL 0x60 /* COMLSR[TEMT] - COMTX and Shift Register Empty Status Bit. */ #define COMLSR_TEMT_BBA (*(volatile unsigned long *) 0x420A0298) @@ -9293,7 +9293,7 @@ typedef struct { /*!< pADI_UART Structure #define COMLSR_DR_SET (0x1 << 0 ) /* SET. Set automatically when COMRX is full. */ /* Reset Value for COMMSR*/ -#define COMMSR_RVAL 0x0 +#define COMMSR_RVAL 0x0 /* COMMSR[CTS] - Clear To Send signal status bit. */ #define COMMSR_CTS_BBA (*(volatile unsigned long *) 0x420A0310) @@ -9310,7 +9310,7 @@ typedef struct { /*!< pADI_UART Structure #define COMMSR_DCTS_EN (0x1 << 0 ) /* EN. Set automatically if CTS changed state since COMMSR last read. */ /* Reset Value for COMFBR*/ -#define COMFBR_RVAL 0x0 +#define COMFBR_RVAL 0x0 /* COMFBR[ENABLE] - Fractional baud rate generator enable bit. Used for more accurate baud rate generation. */ #define COMFBR_ENABLE_BBA (*(volatile unsigned long *) 0x420A04BC) @@ -9326,7 +9326,7 @@ typedef struct { /*!< pADI_UART Structure #define COMFBR_DIVN_MSK (0x7FF << 0 ) /* Reset Value for COMDIV*/ -#define COMDIV_RVAL 0x1 +#define COMDIV_RVAL 0x1 /* COMDIV[VALUE] - Sets the baud rate. The COMDIV register should not be 0. */ #define COMDIV_VALUE_MSK (0xFFFF << 0 ) @@ -9390,19 +9390,19 @@ typedef struct { /*!< pADI_WUT Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for T2VAL0*/ -#define T2VAL0_RVAL 0x0 +#define T2VAL0_RVAL 0x0 /* T2VAL0[VALUE] - Current Wake-Up timer value (bits 15 to 0). */ #define T2VAL0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2VAL1*/ -#define T2VAL1_RVAL 0x0 +#define T2VAL1_RVAL 0x0 /* T2VAL1[VALUE] - Current Wake-Up timer value (bits 31 to 16). */ #define T2VAL1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2CON*/ -#define T2CON_RVAL 0x40 +#define T2CON_RVAL 0x40 /* T2CON[STOPINC] - Allows the user to update the interval register safely. */ #define T2CON_STOPINC_BBA (*(volatile unsigned long *) 0x4204A12C) @@ -9454,49 +9454,49 @@ typedef struct { /*!< pADI_WUT Structure #define T2CON_PRE_DIV32768 (0x3 << 0 ) /* DIV32768. Source clock/32768. */ /* Reset Value for T2INC*/ -#define T2INC_RVAL 0xC8 +#define T2INC_RVAL 0xC8 /* T2INC[VALUE] - Wake-up interval */ #define T2INC_VALUE_MSK (0xFFF << 0 ) /* Reset Value for T2WUFB0*/ -#define T2WUFB0_RVAL 0x1FFF +#define T2WUFB0_RVAL 0x1FFF /* T2WUFB0[VALUE] - Lower 16 bits of Wake-Up Field B */ #define T2WUFB0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2WUFB1*/ -#define T2WUFB1_RVAL 0x0 +#define T2WUFB1_RVAL 0x0 /* T2WUFB1[VALUE] - Upper 16 bits of Wake-Up Field B */ #define T2WUFB1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2WUFC0*/ -#define T2WUFC0_RVAL 0x2FFF +#define T2WUFC0_RVAL 0x2FFF /* T2WUFC0[VALUE] - Lower 16 bits of Wake-Up Field C */ #define T2WUFC0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2WUFC1*/ -#define T2WUFC1_RVAL 0x0 +#define T2WUFC1_RVAL 0x0 /* T2WUFC1[VALUE] - Upper 16 bits of Wake-Up Field C */ #define T2WUFC1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2WUFD0*/ -#define T2WUFD0_RVAL 0x3FFF +#define T2WUFD0_RVAL 0x3FFF /* T2WUFD0[VALUE] - Lower 16 bits of Wake-Up Field D */ #define T2WUFD0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2WUFD1*/ -#define T2WUFD1_RVAL 0x0 +#define T2WUFD1_RVAL 0x0 /* T2WUFD1[VALUE] - Upper 16 bits of Wake-Up Field D */ #define T2WUFD1_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2IEN*/ -#define T2IEN_RVAL 0x0 +#define T2IEN_RVAL 0x0 /* T2IEN[ROLL] - Interrupt enable bit when the counter rolls over. Only occurs in free running mode. */ #define T2IEN_ROLL_BBA (*(volatile unsigned long *) 0x4204A510) @@ -9534,7 +9534,7 @@ typedef struct { /*!< pADI_WUT Structure #define T2IEN_WUFA_EN (0x1 << 0 ) /* EN. Generate an interrupt when T2VAL reaches T2WUFA. */ /* Reset Value for T2STA*/ -#define T2STA_RVAL 0x0 +#define T2STA_RVAL 0x0 /* T2STA[CON] - Indicates when a change in the enable bit is synchronized to the 32 kHz clock domain (Done automatically) */ #define T2STA_CON_BBA (*(volatile unsigned long *) 0x4204A5A0) @@ -9586,7 +9586,7 @@ typedef struct { /*!< pADI_WUT Structure #define T2STA_WUFA_SET (0x1 << 0 ) /* SET. Indicates that a comparator interrupt has occurred. */ /* Reset Value for T2CLRI*/ -#define T2CLRI_RVAL 0x0 +#define T2CLRI_RVAL 0x0 /* T2CLRI[ROLL] - Clear interrupt on Rollover. Only occurs in free running mode. */ #define T2CLRI_ROLL_BBA (*(volatile unsigned long *) 0x4204A610) @@ -9619,13 +9619,13 @@ typedef struct { /*!< pADI_WUT Structure #define T2CLRI_WUFA_CLR (0x1 << 0 ) /* CLR. Clear the T2WUFA interrupt flag. */ /* Reset Value for T2WUFA0*/ -#define T2WUFA0_RVAL 0x1900 +#define T2WUFA0_RVAL 0x1900 /* T2WUFA0[VALUE] - Lower 16 bits of Compare Register A */ #define T2WUFA0_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T2WUFA1*/ -#define T2WUFA1_RVAL 0x0 +#define T2WUFA1_RVAL 0x0 /* T2WUFA1[VALUE] - Upper 16 bits of Compare Register A */ #define T2WUFA1_VALUE_MSK (0xFFFF << 0 ) @@ -9659,19 +9659,19 @@ typedef struct { /*!< pADI_WDT Structure #endif // (__NO_MMR_STRUCTS__==0) /* Reset Value for T3LD*/ -#define T3LD_RVAL 0x1000 +#define T3LD_RVAL 0x1000 /* T3LD[VALUE] - Load value. */ #define T3LD_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T3VAL*/ -#define T3VAL_RVAL 0x1000 +#define T3VAL_RVAL 0x1000 /* T3VAL[VALUE] - Current counter value. */ #define T3VAL_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T3CON*/ -#define T3CON_RVAL 0xE9 +#define T3CON_RVAL 0xE9 /* T3CON[MOD] - Timer Mode */ #define T3CON_MOD_BBA (*(volatile unsigned long *) 0x4204B118) @@ -9709,13 +9709,13 @@ typedef struct { /*!< pADI_WDT Structure #define T3CON_PD_EN (0x1 << 0 ) /* EN. The timer stops counting when in hibernate mode. */ /* Reset Value for T3CLRI*/ -#define T3CLRI_RVAL 0x0 +#define T3CLRI_RVAL 0x0 /* T3CLRI[VALUE] - Clear watchdog. */ #define T3CLRI_VALUE_MSK (0xFFFF << 0 ) /* Reset Value for T3STA*/ -#define T3STA_RVAL 0x20 +#define T3STA_RVAL 0x20 /* T3STA[LOCK] - Lock status bit. */ #define T3STA_LOCK_BBA (*(volatile unsigned long *) 0x4204B310) @@ -9772,36 +9772,36 @@ typedef struct { /*!< pADI_WDT Structure *********************************************/ //iEiNr in EiCfg() -#define EXTINT0 0x0 -#define EXTINT1 0x1 -#define EXTINT2 0x2 -#define EXTINT3 0x3 -#define EXTINT4 0x4 -#define EXTINT5 0x5 -#define EXTINT6 0x6 -#define EXTINT7 0x7 -#define EXTINT8 0x8 +#define EXTINT0 0x0 +#define EXTINT1 0x1 +#define EXTINT2 0x2 +#define EXTINT3 0x3 +#define EXTINT4 0x4 +#define EXTINT5 0x5 +#define EXTINT6 0x6 +#define EXTINT7 0x7 +#define EXTINT8 0x8 -//iEnable in EiCfg() -#define INT_DIS 0x0 -#define INT_EN 0x1 +//iEnable in EiCfg() +#define INT_DIS 0x0 +#define INT_EN 0x1 -//iMode in EiCfg() -#define INT_RISE 0x0 -#define INT_FALL 0x1 +//iMode in EiCfg() +#define INT_RISE 0x0 +#define INT_FALL 0x1 #define INT_EDGES 0x2 -#define INT_HIGH 0x3 -#define INT_LOW 0x4 +#define INT_HIGH 0x3 +#define INT_LOW 0x4 //Bit values. -#define BIT0 1 -#define BIT1 2 -#define BIT2 4 -#define BIT3 8 -#define BIT4 0x10 -#define BIT5 0x20 -#define BIT6 0x40 -#define BIT7 0x80 +#define BIT0 1 +#define BIT1 2 +#define BIT2 4 +#define BIT3 8 +#define BIT4 0x10 +#define BIT5 0x20 +#define BIT6 0x40 +#define BIT7 0x80 /* ================================================================================ */ @@ -9868,7 +9868,7 @@ typedef struct { /*!< pADI_WDT Structure #ifdef __cplusplus } -#endif +#endif #endif // __ADUCRF101_H__ diff --git a/cpu/arm/aducrf101/Common/radioeng.c b/cpu/arm/aducrf101/Common/radioeng.c index c4431c832..067013728 100644 --- a/cpu/arm/aducrf101/Common/radioeng.c +++ b/cpu/arm/aducrf101/Common/radioeng.c @@ -49,7 +49,7 @@ #define RADIO_SPI_CLK_FREQ 4000000 // 4 MHz SPI CLK for radio interface #define SYSTEM_UCLK 16000000 // 16 MHz UCLK // Default Radio Parameters -#define DEFAULT_CHNL_FREQ 915000000 +#define DEFAULT_CHNL_FREQ 915000000 #define FREQ_CNVRT_VAL 0.00252061538 // Defines for radio memory mapped areas #define PACKETRAM_START 0x10 @@ -68,14 +68,14 @@ #define MCR_rssi_readback_Adr 0x312 #define MCR_gpio_configure_Adr 0x3fa #define MCR_ext_uc_clk_divide_Adr 0x32e -#define MCR_interrupt_source_0_Adr 0x336 +#define MCR_interrupt_source_0_Adr 0x336 #define MCR_interrupt_source_1_Adr 0x337 // Macros for manual GPIO checking of Radio MISO pin P2.0 (SPI0) -#define RADIO_MISO_IN GP2IN_IN0_BBA +#define RADIO_MISO_IN GP2IN_IN0_BBA // Macros for manual GPIO control of P2.3 (Radio SPI CS) (SPI0) -#define RADIO_CSN_DEASSERT (pADI_GP2->GPSET = GP2SET_SET3) -#define RADIO_CSN_ASSERT (pADI_GP2->GPCLR = GP2CLR_CLR3) +#define RADIO_CSN_DEASSERT (pADI_GP2->GPSET = GP2SET_SET3) +#define RADIO_CSN_ASSERT (pADI_GP2->GPCLR = GP2CLR_CLR3) // Macros for Sending\Receiving single bytes via SPI #define SEND_SPI(x) pADI_SPI0->SPITX = x #define WAIT_SPI_RX while((pADI_SPI0->SPISTA & SPISTA_RXFSTA_MSK) == 0x0); @@ -92,7 +92,7 @@ /*************************************************************************/ /* Radio Command Codes */ /*************************************************************************/ -typedef enum +typedef enum { CMD_SYNC = 0xA2, // Synchronizatio CMD_PHY_OFF = 0xB0, // Transition to state PHY_OFF @@ -137,54 +137,54 @@ typedef enum /*************************************************************************/ /* Radio Configuration Structure */ /*************************************************************************/ -/** +/** \internal Hide from Doxegen \var TyRadioConfiguration **/ typedef struct { - RIE_U8 interrupt_mask_0_r; // 0x100 - RIE_U8 cfg_101_r; // 0x101 - RIE_U8 cfg_102_r; // 0x102 - RIE_U8 cfg_103_r; // 0x103 - RIE_U8 cfg_104_r; // 0x104 - RIE_U8 cfg_105_r; // 0x105 - RIE_U8 cfg_106_r; // 0x106 - RIE_U8 cfg_107_r; // 0x107 - RIE_U8 cfg_108_r; // 0x108 - RIE_U8 channel_freq_0_r; // 0x109 - RIE_U8 channel_freq_1_r; // 0x10A - RIE_U8 channel_freq_2_r; // 0x10B - RIE_U8 cfg_10C_r; // 0x10C - RIE_U8 cfg_10D_r; // 0x10D - RIE_U8 cfg_10E_r; // 0x10E - RIE_U8 cfg_10F_r; // 0x10F - RIE_U8 cfg_110_r; // 0x110 - RIE_U8 cfg_111_r; // 0x111 - RIE_U8 cfg_112_r; // 0x112 - RIE_U8 cfg_113_r; // 0x113 - RIE_U8 radio_cfg_8_r; // 0x114 - RIE_U8 radio_cfg_9_r; // 0x115 - RIE_U8 cfg_116_r; // 0x116 - RIE_U8 cfg_117_r; // 0x117 - RIE_U8 image_reject_cal_phase_r; // 0x118 - RIE_U8 image_reject_cal_amplitude_r; // 0x119 - RIE_U8 cfg_11A_r; // 0x11A - RIE_U8 cfg_11B_r; // 0x11B - RIE_U8 symbol_mode_r; // 0x11C - RIE_U8 cfg_11D_r; // 0x11D - RIE_U8 cfg_11E_r; // 0x11E - RIE_U8 cfg_11F_r; // 0x11F - RIE_U8 cfg_120_r; // 0x120 - RIE_U8 cfg_121_r; // 0x121 - RIE_U8 cfg_122_r; // 0x122 - RIE_U8 cfg_123_r; // 0x123 - RIE_U8 tx_base_adr_r; // 0x124 - RIE_U8 rx_base_adr_r; // 0x125 - RIE_U8 packet_length_control_r; // 0x126 - RIE_U8 packet_length_max_r; // 0x127 - RIE_U8 cfg_128_r; // 0x128 - RIE_U8 cfg_129_r; // 0x129 + RIE_U8 interrupt_mask_0_r; // 0x100 + RIE_U8 cfg_101_r; // 0x101 + RIE_U8 cfg_102_r; // 0x102 + RIE_U8 cfg_103_r; // 0x103 + RIE_U8 cfg_104_r; // 0x104 + RIE_U8 cfg_105_r; // 0x105 + RIE_U8 cfg_106_r; // 0x106 + RIE_U8 cfg_107_r; // 0x107 + RIE_U8 cfg_108_r; // 0x108 + RIE_U8 channel_freq_0_r; // 0x109 + RIE_U8 channel_freq_1_r; // 0x10A + RIE_U8 channel_freq_2_r; // 0x10B + RIE_U8 cfg_10C_r; // 0x10C + RIE_U8 cfg_10D_r; // 0x10D + RIE_U8 cfg_10E_r; // 0x10E + RIE_U8 cfg_10F_r; // 0x10F + RIE_U8 cfg_110_r; // 0x110 + RIE_U8 cfg_111_r; // 0x111 + RIE_U8 cfg_112_r; // 0x112 + RIE_U8 cfg_113_r; // 0x113 + RIE_U8 radio_cfg_8_r; // 0x114 + RIE_U8 radio_cfg_9_r; // 0x115 + RIE_U8 cfg_116_r; // 0x116 + RIE_U8 cfg_117_r; // 0x117 + RIE_U8 image_reject_cal_phase_r; // 0x118 + RIE_U8 image_reject_cal_amplitude_r; // 0x119 + RIE_U8 cfg_11A_r; // 0x11A + RIE_U8 cfg_11B_r; // 0x11B + RIE_U8 symbol_mode_r; // 0x11C + RIE_U8 cfg_11D_r; // 0x11D + RIE_U8 cfg_11E_r; // 0x11E + RIE_U8 cfg_11F_r; // 0x11F + RIE_U8 cfg_120_r; // 0x120 + RIE_U8 cfg_121_r; // 0x121 + RIE_U8 cfg_122_r; // 0x122 + RIE_U8 cfg_123_r; // 0x123 + RIE_U8 tx_base_adr_r; // 0x124 + RIE_U8 rx_base_adr_r; // 0x125 + RIE_U8 packet_length_control_r; // 0x126 + RIE_U8 packet_length_max_r; // 0x127 + RIE_U8 cfg_128_r; // 0x128 + RIE_U8 cfg_129_r; // 0x129 RIE_U8 cfg_12A_r; // 0x12A RIE_U8 cfg_12B_r; // 0x12B RIE_U8 cfg_12C_r; // 0x12C @@ -205,14 +205,14 @@ typedef struct RIE_U8 cfg_13B_r; // 0x13B RIE_U8 cfg_13C_r; // 0x13C RIE_U8 cfg_13D_r; // 0x13D - RIE_U8 cfg_13E_r; // 0x13E - RIE_U8 cfg_13F_r; // 0x13F + RIE_U8 cfg_13E_r; // 0x13E + RIE_U8 cfg_13F_r; // 0x13F } TyRadioConfiguration; /*************************************************************************/ /* Radio Configuration Constants */ /*************************************************************************/ -#define interrupt_mask_0_interrupt_tx_eof (0x1 << 4) -#define interrupt_mask_0_interrupt_crc_correct (0x1 << 2) +#define interrupt_mask_0_interrupt_tx_eof (0x1 << 4) +#define interrupt_mask_0_interrupt_crc_correct (0x1 << 2) #define packet_length_control_length_offset_offset (0) #define packet_length_control_length_offset_minus0 (0x4 << packet_length_control_length_offset_offset) @@ -237,7 +237,7 @@ typedef struct #define radio_cfg_8_pa_power_setting_63 (0xF << radio_cfg_8_pa_power_offset) #define radio_cfg_8_pa_ramp_numbits (3) #define radio_cfg_8_pa_ramp_offset (0) -#define radio_cfg_8_pa_ramp_16 (0x5 << radio_cfg_8_pa_ramp_offset) +#define radio_cfg_8_pa_ramp_16 (0x5 << radio_cfg_8_pa_ramp_offset) #define radio_cfg_9_demod_scheme_offset (0) #define radio_cfg_9_demod_scheme_FSK (0x0 << radio_cfg_9_demod_scheme_offset) @@ -256,13 +256,13 @@ typedef struct /* Local Variables */ /*************************************************************************/ static TyRadioConfiguration RadioConfiguration; -static RIE_BOOL bRadioConfigurationChanged = RIE_FALSE; -static RIE_BOOL bTestModeEnabled = RIE_FALSE; -static RIE_U32 DataRate = 38400; +static RIE_BOOL bRadioConfigurationChanged = RIE_FALSE; +static RIE_BOOL bTestModeEnabled = RIE_FALSE; +static RIE_U32 DataRate = 38400; static volatile RIE_BOOL bPacketTx = RIE_FALSE; static volatile RIE_BOOL bPacketRx = RIE_FALSE; -const RIE_U8 DR_38_4kbps_Dev20kHz_Configuration[] = +const RIE_U8 DR_38_4kbps_Dev20kHz_Configuration[] = { 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x76,0x62,0x21, @@ -272,11 +272,11 @@ const RIE_U8 DR_38_4kbps_Dev20kHz_Configuration[] = 0x40,0x0C,0x00,0x0C,0x00,0x00, 0x10,0x00,0xC3,0x36,0x10,0x10,0x24,0xF0,0x2A,0x00,0x2F,0x19,0x5E,0x46,0x5F,0x78, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; -const RIE_U8 DR_300_0kbps_Dev75_0kHz_Configuration[] = +const RIE_U8 DR_300_0kbps_Dev75_0kHz_Configuration[] = { 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x76,0x62,0x21, @@ -291,7 +291,7 @@ const RIE_U8 DR_300_0kbps_Dev75_0kHz_Configuration[] = -const RIE_U8 DR_1_0kbps_Dev10_0kHz_Configuration[] = +const RIE_U8 DR_1_0kbps_Dev10_0kHz_Configuration[] = { 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x76,0x62,0x21, // 0 1 2 3 4 5 6 7 8 9 A B @@ -312,8 +312,8 @@ static RIE_Responses RadioSendCommandBytes (RIE_U8 * pCmdBytes, RIE_U8 NumBytes); static RIE_Responses RadioSendCommandNoWait (Radio_CmdCodes CmdCode); static RIE_Responses RadioSendCommandWait (Radio_CmdCodes CmdCode); -static RIE_Responses RadioMMapRead (RIE_U32 ulAdr, - RIE_U32 ulLen, +static RIE_Responses RadioMMapRead (RIE_U32 ulAdr, + RIE_U32 ulLen, RIE_U8 * pData); static RIE_Responses RadioMMapWrite (RIE_U32 ulAdr, RIE_U32 ulLen, @@ -337,7 +337,7 @@ static RIE_Responses RadioWaitOnCmdLdr (void); @brief Return the Radio Interface Engine API Version @param pVersion :{} pVersion Storage for Radio Interface Engine API version. - @code + @code RIE_U32 Version; Response = RadioGetAPIVersion(&Version); @endcode @@ -361,8 +361,8 @@ RIE_Responses RadioGetAPIVersion(RIE_U32 *pVersion) - DR_1_0kbps_Dev10_0kHz Base configuration of 1 kbps datarate, 10.0 kHz frequency deviation. - DR_38_4kbps_Dev20kHz Base configuration of 38.4 kbps datarate, 20 kHz frequency deviation. - DR_300_0kbps_Dev75_0kHz Base configuration of 300 kbps datarate, 75 kHz frequency deviation. - @pre - RadioInit() must be called before this function is called. + @pre + RadioInit() must be called before this function is called. @return RIE_Responses Error code. **/ @@ -388,7 +388,7 @@ RIE_Responses RadioSwitchConfig(RIE_BaseConfigs BaseConfig) - DR_1_0kbps_Dev10_0kHz Base configuration of 1 kbps datarate, 10.0 kHz frequency deviation. - DR_38_4kbps_Dev20kHz Base configuration of 38.4 kbps datarate, 20 kHz frequency deviation. - DR_300_0kbps_Dev75_0kHz Base configuration of 300 kbps datarate, 75 kHz frequency deviation. - @note + @note This must be called before any other function is called. @return RIE_Responses Error code. **/ @@ -401,13 +401,13 @@ RIE_Responses RadioInit(RIE_BaseConfigs BaseConfig) NVIC_DisableIRQ(UHFTRX_IRQn); // Initialise GPIO Port 2 for Radio Use - pADI_GP2->GPCON = GP2CON_CON0_SPI0MISO | GP2CON_CON1_SPI0SCLK | - GP2CON_CON2_SPI0MOSI | GP2CON_CON3_GPIO | + pADI_GP2->GPCON = GP2CON_CON0_SPI0MISO | GP2CON_CON1_SPI0SCLK | + GP2CON_CON2_SPI0MOSI | GP2CON_CON3_GPIO | GP2CON_CON4_IRQ8 | GP2CON_CON5_GPIO | GP2CON_CON6_GPIO | GP2CON_CON7_GPIOIRQ7; - pADI_GP2->GPOEN = GP2OEN_OEN0_IN | GP2OEN_OEN1_IN | - GP2OEN_OEN2_IN | GP2OEN_OEN3_OUT | + pADI_GP2->GPOEN = GP2OEN_OEN0_IN | GP2OEN_OEN1_IN | + GP2OEN_OEN2_IN | GP2OEN_OEN3_OUT | GP2OEN_OEN4_IN | GP2OEN_OEN5_IN | GP2OEN_OEN6_IN | GP2OEN_OEN7_IN; @@ -435,8 +435,8 @@ RIE_Responses RadioInit(RIE_BaseConfigs BaseConfig) // we enable the Cortex interrupt handling of it if(Response == RIE_Success) Response = RadioPowerOff(); - // Configure a "high level" radio interrupt ... - pADI_INTERRUPT->EI2CFG = EI2CFG_IRQ8MDE_HIGHLEVEL | EI2CFG_IRQ8EN; + // Configure a "high level" radio interrupt ... + pADI_INTERRUPT->EI2CFG = EI2CFG_IRQ8MDE_HIGHLEVEL | EI2CFG_IRQ8EN; // ... and set it up in the NVIC so that our interrupt handler is called // when the radio wants our attention. Clear any pre-existing condition // before enabling the interrupt. @@ -463,7 +463,7 @@ RIE_Responses RadioInit(RIE_BaseConfigs BaseConfig) /** @fn RIE_U32 RadioDeInit(void) @brief Deinitialise the Radio, and power it down. - @note + @note This can be called independently of all other functions to power down the radio @return RIE_Responses Error code. @@ -477,13 +477,13 @@ RIE_Responses RadioDeInit(void) NVIC_DisableIRQ(UHFTRX_IRQn); // Initialise GPIO Port 2 for Radio Use - pADI_GP2->GPCON = GP2CON_CON0_SPI0MISO | GP2CON_CON1_SPI0SCLK | - GP2CON_CON2_SPI0MOSI | GP2CON_CON3_GPIO | + pADI_GP2->GPCON = GP2CON_CON0_SPI0MISO | GP2CON_CON1_SPI0SCLK | + GP2CON_CON2_SPI0MOSI | GP2CON_CON3_GPIO | GP2CON_CON4_IRQ8 | GP2CON_CON5_GPIO | GP2CON_CON6_GPIO | GP2CON_CON7_GPIOIRQ7; - pADI_GP2->GPOEN = GP2OEN_OEN0_IN | GP2OEN_OEN1_IN | - GP2OEN_OEN2_IN | GP2OEN_OEN3_OUT | + pADI_GP2->GPOEN = GP2OEN_OEN0_IN | GP2OEN_OEN1_IN | + GP2OEN_OEN2_IN | GP2OEN_OEN3_OUT | GP2OEN_OEN4_IN | GP2OEN_OEN5_IN | GP2OEN_OEN6_IN | GP2OEN_OEN7_IN; @@ -512,8 +512,8 @@ RIE_Responses RadioDeInit(void) /** @fn RIE_Responses RadioPowerOff(void) - @brief Shutdown the radio and place it in its lowest power sleep mode. - @pre + @brief Shutdown the radio and place it in its lowest power sleep mode. + @pre RadioInit() must be called before this function is called. @return RIE_Response Error code. **/ @@ -532,14 +532,14 @@ RIE_Responses RadioPowerOff(void) return Response; } -/** +/** @fn RIE_Responses RadioTerminateRadioOp(void) @brief Terminate a currently running radio RX or TX operation. @pre RadioInit() must be called before this function is called. - @code + @code if (RIE_Response == RIE_Success) RIE_Response = RadioRxPacketFixedLen(12); - // Delay for a while waiting for a packet + // Delay for a while waiting for a packet if (RIE_Response == RIE_Success) { // Abort the waiting @@ -557,15 +557,15 @@ RIE_Responses RadioTerminateRadioOp (void) return Response; } -/** +/** @fn RIE_Responses RadioSetFrequency(RIE_U32 Frequency) @brief Set frequency for radio communications - @param Frequency :{431000000-928000000} - - This must be within the available bands of the radio: - - 431000000Hz to 464000000Hz and + @param Frequency :{431000000-928000000} + - This must be within the available bands of the radio: + - 431000000Hz to 464000000Hz and - 862000000Hz to 928000000Hz. @pre RadioInit() must be called before this function is called. - @code + @code if (RIE_Response == RIE_Success) RIE_Response = RadioSetFrequency(915000000); @endcode @@ -584,18 +584,18 @@ RIE_Responses RadioSetFrequency(RIE_U32 Frequency) RadioConfiguration.channel_freq_2_r = (EncodedFrequency >> 16)& 0xFF; if (Frequency >= 862000000) { - RadioConfiguration.image_reject_cal_amplitude_r = 0x07; + RadioConfiguration.image_reject_cal_amplitude_r = 0x07; RadioConfiguration.image_reject_cal_phase_r = 0x16; } else { - RadioConfiguration.image_reject_cal_amplitude_r = 0x03; + RadioConfiguration.image_reject_cal_amplitude_r = 0x03; RadioConfiguration.image_reject_cal_phase_r = 0x08; } return Response; } -/** +/** @fn RIE_Responses RadioSetModulationType(RIE_ModulationTypes ModulationType) @brief Set the Radio Transmitter Modulation Type. Can be FSK_Modulation or GFSK_Modulation. @param ModulationType :{DR_1_0kbps_Dev10_0kHz , DR_38_4kbps_Dev20kHz ,DR_300_0kbps_Dev75_0kHz } @@ -603,7 +603,7 @@ RIE_Responses RadioSetFrequency(RIE_U32 Frequency) - DR_38_4kbps_Dev20kHz Base configuration of 38.4 kbps datarate, 20 kHz frequency deviation. - DR_300_0kbps_Dev75_0kHz Base configuration of 300 kbps datarate, 75 kHz frequency deviation. @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioSetModulationType(GFSK_Modulation); @endcode @note FSK_Modulation is used by default. @@ -636,31 +636,31 @@ RIE_Responses RadioSetModulationType(RIE_ModulationTypes ModulationType) if (ucNewRegVal != RadioConfiguration.radio_cfg_9_r ) { bRadioConfigurationChanged = RIE_TRUE; - RadioConfiguration.radio_cfg_9_r = ucNewRegVal; + RadioConfiguration.radio_cfg_9_r = ucNewRegVal; } } return Response; } -/** - @fn RIE_Responses RadioPayldManchesterEncode(RIE_BOOL bEnable) +/** + @fn RIE_Responses RadioPayldManchesterEncode(RIE_BOOL bEnable) @brief Enable or Disable Manchester Encoding of payload data. - Manchester encoding can be used to ensure a dc-free (zero mean) - transmission. + Manchester encoding can be used to ensure a dc-free (zero mean) + transmission. - A Binary 0 is mapped to 10, and a Binary 1 is mapped to 01. + A Binary 0 is mapped to 10, and a Binary 1 is mapped to 01. + + Manchester encoding and decoding are applied to the payload data + and the CRC. - Manchester encoding and decoding are applied to the payload data - and the CRC. - @param bEnable :{RIE_FALSE,RIE_TRUE} - - RIE_TRUE if Manchester Encoding is to be enabled. + - RIE_TRUE if Manchester Encoding is to be enabled. - RIE_FALSE if disabled. @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioPayldManchesterEncode(RIE_TRUE); @endcode @@ -689,37 +689,37 @@ RIE_Responses RadioPayldManchesterEncode(RIE_BOOL bEnable) if (ucNewRegVal != RadioConfiguration.symbol_mode_r ) { bRadioConfigurationChanged = RIE_TRUE; - RadioConfiguration.symbol_mode_r = ucNewRegVal; + RadioConfiguration.symbol_mode_r = ucNewRegVal; } } return Response; } -/** +/** @fn RIE_Responses RadioPayldDataWhitening(RIE_BOOL bEnable) - @brief Enable or Disable Data Whitening of payload data. + @brief Enable or Disable Data Whitening of payload data. Data whitening can be employed to avoid long runs of 1s or 0s - in the transmitted data stream. + in the transmitted data stream. - This ensures sufficient bit transitions in the packet, which - aids in receiver clock and data recovery because the encoding - breaks up long runs of 1s or 0s in the transmit packet. + This ensures sufficient bit transitions in the packet, which + aids in receiver clock and data recovery because the encoding + breaks up long runs of 1s or 0s in the transmit packet. The data, excluding the preamble and sync word, is automatically - whitened before transmission by XORing the data with an 8-bit - pseudorandom sequence. + whitened before transmission by XORing the data with an 8-bit + pseudorandom sequence. - At the receiver, the data is XORed with the same pseudorandom - sequence, thereby reversing the whitening. + At the receiver, the data is XORed with the same pseudorandom + sequence, thereby reversing the whitening. The linear feedback shift register polynomial used is x7 + x1 + 1. @param bEnable :{RIE_FALSE, RIE_TRUE} - - RIE_TRUE if Manchester Encoding is to be enabled. + - RIE_TRUE if Manchester Encoding is to be enabled. - RIE_FALSE if disabled. @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioPayldDataWhitening(RIE_TRUE); @endcode @@ -748,19 +748,19 @@ RIE_Responses RadioPayldDataWhitening(RIE_BOOL bEnable) if (ucNewRegVal != RadioConfiguration.symbol_mode_r ) { bRadioConfigurationChanged = RIE_TRUE; - RadioConfiguration.symbol_mode_r = ucNewRegVal; + RadioConfiguration.symbol_mode_r = ucNewRegVal; } } return Response; } -/** - @fn RIE_Responses RadioTxPacketFixedLen(RIE_U8 Len, RIE_U8 *pData) - @brief Transmit a fixed length packet. +/** + @fn RIE_Responses RadioTxPacketFixedLen(RIE_U8 Len, RIE_U8 *pData) + @brief Transmit a fixed length packet. @param Len :{1-240} Length of packet to be transmitted. @param pData :{} Data bytes to be transmitted. @pre RadioInit() must be called before this function is called. - @code + @code if (RIE_Response == RIE_Success) RIE_Response = RadioTxSetPA(DifferentialPA,PowerLevel15); if (RIE_Response == RIE_Success) @@ -795,13 +795,13 @@ RIE_Responses RadioTxPacketFixedLen(RIE_U8 Len, RIE_U8 *pData) return Response; } -/** - @fn RIE_Responses RadioTxPacketVariableLen(RIE_U8 Len, RIE_U8 *pData) - @brief Transmit a Variable length packet. +/** + @fn RIE_Responses RadioTxPacketVariableLen(RIE_U8 Len, RIE_U8 *pData) + @brief Transmit a Variable length packet. @param Len :{1-240} Length of packet to be transmitted. @param pData :{} Data bytes to be transmitted. @pre RadioInit() must be called before this function is called. - @code + @code if (RIE_Response == RIE_Success) RIE_Response = RadioTxSetPA(DifferentialPA,PowerLevel15); if (RIE_Response == RIE_Success) @@ -841,12 +841,12 @@ RIE_Responses RadioTxPacketVariableLen(RIE_U8 Len, RIE_U8 *pData) } -/** - @fn RIE_BOOL RadioTxPacketComplete(void) +/** + @fn RIE_BOOL RadioTxPacketComplete(void) @brief Checks if a packet has finished transmitting @pre RadioInit() must be called before this function is called. @pre RadioRxPacketFixedLen() or equivalent should be called first. - @code + @code if (RIE_Response == RIE_Success) RIE_Response = RadioTxSetPA(DifferentialPA,PowerLevel15); if (RIE_Response == RIE_Success) @@ -860,16 +860,16 @@ RIE_BOOL RadioTxPacketComplete (void) return bPacketTx; } -/** - @fn RIE_Responses RadioTxSetPA(RIE_PATypes PAType,RIE_PAPowerLevel Power) - @brief Set PA Type and the Transmit Power Level for Radio Transmission. +/** + @fn RIE_Responses RadioTxSetPA(RIE_PATypes PAType,RIE_PAPowerLevel Power) + @brief Set PA Type and the Transmit Power Level for Radio Transmission. @param PAType :{DifferentialPA, SingleEndedPA} Select Single Ended or Differential PA Type @param Power :{PowerLevel0 ,PowerLevel1 ,PowerLevel2 ,PowerLevel3, PowerLevel4 ,PowerLevel5 ,PowerLevel6 ,PowerLevel7, PowerLevel8 ,PowerLevel9 ,PowerLevel10,PowerLevel11, - PowerLevel12,PowerLevel13,PowerLevel14,PowerLevel15} + PowerLevel12,PowerLevel13,PowerLevel14,PowerLevel15} @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioTxSetPA(SingleEndedPA,PowerLevel8); @endcode @note Differential PA is enabled by default. @@ -940,17 +940,17 @@ RIE_Responses RadioTxSetPA(RIE_PATypes PAType,RIE_PAPowerLevel Power) if (ucNewRegVal != RadioConfiguration.radio_cfg_8_r ) { bRadioConfigurationChanged = RIE_TRUE; - RadioConfiguration.radio_cfg_8_r = ucNewRegVal; + RadioConfiguration.radio_cfg_8_r = ucNewRegVal; } } return Response; } -/** +/** @fn RIE_Responses RadioTxCarrier(void) @brief Transmit a carrier tone using the current radio configuration. @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioTxCarrier(); @endcode @note Terminate this mode by calling RadioTerminateRadioOp(); @@ -973,12 +973,12 @@ RIE_Responses RadioTxCarrier (void) Response = RadioSendCommandWait(CMD_PHY_TX); return Response; } -/** +/** @fn RIE_Responses RadioTxPreamble(void) @brief Transmit a pre-amble (alternating ones and zeros) using the current radio configuration. @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioTxPreamble(); @endcode @note Terminate this mode by calling RadioTerminateRadioOp(); @@ -1002,14 +1002,14 @@ RIE_Responses RadioTxPreamble (void) return Response; } -/** +/** @fn RIE_Responses RadioRxPacketFixedLen(RIE_U8 Len) @brief Enter receive mode and wait for a packet to be received. - Radio will stay in Receive Mode until - 1) A packet is received. + Radio will stay in Receive Mode until + 1) A packet is received. 2) User manually exits Receive Mode with a call to RadioTerminateRadioOp() - + @param Len :{1-240} Fixed Length of packet to be received. @pre RadioInit() must be called before this function is called. @return RIE_Responses Error code @@ -1036,14 +1036,14 @@ RIE_Responses RadioRxPacketFixedLen(RIE_U8 Len) return Response; } -/** +/** @fn RIE_Responses RadioRxPacketVariableLen(void) @brief Enter receive mode and wait for a packet to be received. - Radio will stay in Receive Mode until - 1) A packet is received. + Radio will stay in Receive Mode until + 1) A packet is received. 2) User manually exits Receive Mode with a call to RadioTerminateRadioOp() - + @pre RadioInit() must be called before this function is called. @return RIE_Responses Error code **/ @@ -1067,12 +1067,12 @@ RIE_Responses RadioRxPacketVariableLen(void) return Response; } -/** - @fn RIE_BOOL RadioRxPacketAvailable(void) - @brief Checks if a packet has been received. +/** + @fn RIE_BOOL RadioRxPacketAvailable(void) + @brief Checks if a packet has been received. @pre RadioInit() must be called before this function is called. @pre RadioRxPacketFixedLen() or equivalent should be called first. - @code + @code if (RIE_Response == RIE_Success) RIE_Response = RadioRxPacketFixedLen(12); if (RIE_Response == RIE_Success) @@ -1095,7 +1095,7 @@ RIE_BOOL RadioRxPacketAvailable(void) } -/** +/** @fn RIE_Responses RadioRxPacketRead(RIE_U8 BufferLen,RIE_U8 *pPktLen,RIE_U8 *pData,RIE_S8 *pRSSIdBm) @brief Read the packet that was received by the radio. @param BufferLen :{1-240} Size of passed in buffer @@ -1104,7 +1104,7 @@ RIE_BOOL RadioRxPacketAvailable(void) @param pRSSIdBm :{} RSSI of received packet in dBm. @pre RadioInit() must be called before this function is called. @pre RadioRxPacketFixedLen() or equivalent should be called first. - @code + @code if (RIE_Response == RIE_Success) RIE_Response = RadioRxPacketFixedLen(12); if (RIE_Response == RIE_Success) @@ -1170,13 +1170,13 @@ RIE_Responses RadioRxPacketRead(RIE_U8 BufferLen,RIE_U8 *pPktLen,RIE_U8 *pData,R return Response; } -/** +/** @fn RIE_Responses RadioRxBERTestMode(void) @brief Enter receiver Bit Error Rate (BER) test mode where the clock and data appear on GPIO pins. Clock on P0.6 and Data on P2.6 @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioRxBERTestMode(); @endcode @note Terminate this mode by calling RadioTerminateRadioOp(); @@ -1187,7 +1187,7 @@ RIE_Responses RadioRxBERTestMode(void) RIE_Responses Response = RIE_Success; RIE_U8 Data; // Enables internal radio signals on external pins - // but overrides some of the standard GPIO muxed + // but overrides some of the standard GPIO muxed // functionality (UART?) pADI_MISC->RFTST = 0x7E1; @@ -1211,7 +1211,7 @@ RIE_Responses RadioRxBERTestMode(void) return Response; } -/** +/** @internal Hide from Doxegen @fn RIE_Responses RadioCommitRadioConfig(void) @brief Configures the radio if any changes were made @@ -1247,7 +1247,7 @@ static RIE_Responses RadioCommitRadioConfig(void) } return Response; } -/** +/** @fn RIE_Responses RadioReadState(RadioState *pState) @brief Read the current state @param pState Pointer to return storage of state @@ -1271,7 +1271,7 @@ static RIE_Responses RadioReadState(RadioState *pState) return Response; } -/** +/** @fn RIE_Responses RadioWaitOnState(RadioState FinalState) @brief Wait for Final State to be reached @param FinalState State to wait on @@ -1289,7 +1289,7 @@ static RIE_Responses RadioWaitOnState(RadioState FinalState) return Response; } -/** +/** @fn RIE_Responses RadioWaitOnCmdLdr(void) @brief Wait for Final State to be reached @param FinalState State to wait on @@ -1307,7 +1307,7 @@ static RIE_Responses RadioWaitOnCmdLdr(void) Response = RadioSPIXferByte(SPI_NOP,NULL); if (Response == RIE_Success) Response = RadioSPIXferByte(SPI_NOP,&StatusByte); - RADIO_CSN_DEASSERT; + RADIO_CSN_DEASSERT; NVIC_EnableIRQ (UHFTRX_IRQn); if ((Response == RIE_Success)) if(StatusByte & STATUS_BYTE_CMD_READY) @@ -1317,13 +1317,13 @@ static RIE_Responses RadioWaitOnCmdLdr(void) return Response; } -/** +/** @internal Hide from Doxegen @fn RIE_Responses RadioToOnMode(void) @brief Transition to On Mode - Handle all possible states that the radio could be in - and brings it back to PHY_ON state + Handle all possible states that the radio could be in + and brings it back to PHY_ON state @param None @return RIE_Responses Error code **/ @@ -1365,12 +1365,12 @@ static RIE_Responses RadioToOnMode(void) } return Response; } -/** +/** @internal Hide from Doxegen @fn RIE_Responses RadioToOffMode(void) @brief Transition to Off Mode - Handle all possible states that the radio could be in + Handle all possible states that the radio could be in and bring it back to PHY_OFF state. @param None @@ -1414,7 +1414,7 @@ static RIE_Responses RadioToOffMode(void) } return Response; } -/** +/** @internal Hide from Doxegen @fn RIE_Responses RadioSyncComms (void) @brief Sync comms with the radio @@ -1430,7 +1430,7 @@ static RIE_Responses RadioSyncComms (void) Response = RadioWaitOnCmdLdr(); return Response; } -/** +/** @fn RIE_Responses RadioWaitForPowerUp(void) @brief Wake Up the Part @@ -1444,7 +1444,7 @@ static RIE_Responses RadioWaitForPowerUp(void) RIE_Responses Response = RIE_Success; int i = 0x0; RADIO_CSN_ASSERT; - while (!RADIO_MISO_IN && (i < 1000)) + while (!RADIO_MISO_IN && (i < 1000)) i++; if (1000 == i)// Timed out waiting for MISO high? Response = RIE_RadioSPICommsFail; @@ -1452,7 +1452,7 @@ static RIE_Responses RadioWaitForPowerUp(void) return Response; } -/** +/** \internal Hide from Doxegen \fn void Ext_Int8_Handler(void) \brief Radio Interrupt Handler @@ -1482,7 +1482,7 @@ void Ext_Int8_Handler (void) // Clear the interrupt pADI_INTERRUPT->EICLR = EICLR_IRQ8; } -/** +/** \internal Hide from Doxegen \fn void RadioSPIXferByte(RIE_U8 ucByte,RIE_U8 *pData) \brief Transfer a byte via SPI to the radio and optionally return @@ -1504,13 +1504,13 @@ static RIE_Responses RadioSPIXferByte(RIE_U8 ucByte,RIE_U8 *pData) (void)READ_SPI; return Response; } -/** +/** \internal Hide from Doxegen \fn RIE_Responses RadioSendCommandBytes(RIE_U8 *pCmdBytes,RIE_U8 NumBytes) \brief Send a complete command to the radio. It is neccessary to disable the radio interrupt when doing this - as a command in progress must finish before a radio interrupt + as a command in progress must finish before a radio interrupt can be handled. \param pCmdBytes Pointer to a number of bytes to be transferred. @@ -1531,7 +1531,7 @@ static RIE_Responses RadioSendCommandBytes(RIE_U8 *pCmdBytes,RIE_U8 NumBytes) return Response; } -/** +/** \internal Hide from Doxegen \fn RIE_Responses RadioSendCommandNoWait (Radio_CmdCodes CmdCode ) \brief Send a single byte command to the radio. @@ -1543,7 +1543,7 @@ static RIE_Responses RadioSendCommandNoWait (Radio_CmdCodes CmdCode ) RIE_U8 Command = (RIE_U8)CmdCode; return RadioSendCommandBytes(&Command,0x1); } -/** +/** \internal Hide from Doxegen \fn RIE_Responses RadioSendCommandWait (Radio_CmdCodes CmdCode ) \brief Send a single byte command to the radio. @@ -1561,7 +1561,7 @@ static RIE_Responses RadioSendCommandWait (Radio_CmdCodes CmdCode ) Response = RadioSendCommandBytes(&Command,0x1); return Response; } -/** +/** \fn RIE_Responses RadioMMapRead(RIE_U32 ulAdr, RIE_U32 ulLen, RIE_U8 *pData) \brief Read bytes from specified memory map address \param ulAdr Address to read at. @@ -1575,7 +1575,7 @@ static RIE_Responses RadioMMapRead(RIE_U32 ulAdr, RIE_U32 ulLen, RIE_U8 *pData) NVIC_DisableIRQ(UHFTRX_IRQn); RADIO_CSN_ASSERT; - + if(Response == RIE_Success) // Send first byte (SPI_MEMR_RD + Bytes) Response = RadioSPIXferByte(SPI_MEM_RD | ((ulAdr & 0x700) >> 8),NULL); if(Response == RIE_Success)// Send Second byte remainder of address @@ -1589,7 +1589,7 @@ static RIE_Responses RadioMMapRead(RIE_U32 ulAdr, RIE_U32 ulLen, RIE_U8 *pData) return Response; } -/** +/** \fn RIE_Responses RadioMMapWrite(RIE_U32 ulAdr, RIE_U32 ulLen, RIE_U8 *pData) \brief Read bytes from specified memory map address \param ulAdr Address to read at. @@ -1615,7 +1615,7 @@ static RIE_Responses RadioMMapWrite(RIE_U32 ulAdr,RIE_U32 ulLen,RIE_U8 * pDat return Response; } -/** +/** \internal Hide from Doxegen \fn void SetRadioConfiguration(void) \brief Create a default radio configuration that all base configurations @@ -1654,7 +1654,7 @@ static RIE_Responses SetRadioConfiguration(RIE_BaseConfigs BaseConfig) } return Response; } -/** +/** @internal Hide from Doxegen @fn RIE_Responses RadioConfigure (void) @brief Configure the Radio as per the current configuration @@ -1666,8 +1666,8 @@ RIE_Responses RadioConfigure (void) if(Response == RIE_Success) Response = RadioToOffMode(); if(Response == RIE_Success) // Write the configuration to the radio memory - Response = RadioMMapWrite(BBRAM_START, - sizeof(TyRadioConfiguration), + Response = RadioMMapWrite(BBRAM_START, + sizeof(TyRadioConfiguration), (RIE_U8 *)&RadioConfiguration); if(Response == RIE_Success) // Apply that configuration to the radio Response = RadioSendCommandWait(CMD_CONFIG_DEV); @@ -1677,12 +1677,12 @@ RIE_Responses RadioConfigure (void) } -/** +/** @fn RIE_Responses RadioRadioGetRSSI (RIE_S8 *pRSSIdBm) @brief Return a Received Signal Strength Indicator value @param pRSSIdBm :{} detected RSSI in dBm. @pre RadioInit() must be called before this function is called. - @code + @code RIE_S8 RSSIdBm; if (RIE_Response == RIE_Success) RIE_Response = RadioRadioGetRSSI(&RSSIdBm); @@ -1700,7 +1700,7 @@ RIE_Responses RadioRadioGetRSSI (RIE_S8 *pRSSIdBm) if (Response == RIE_Success) Response = RadioSendCommandWait(CMD_GET_RSSI); if (Response == RIE_Success) - Response = RadioSyncComms(); // + Response = RadioSyncComms(); // if (pRSSIdBm) { if (Response == RIE_Success) @@ -1710,15 +1710,15 @@ RIE_Responses RadioRadioGetRSSI (RIE_S8 *pRSSIdBm) return Response; } -/** - @fn RIE_Responses RadioTxSetPower(RIE_PAPowerLevel Power) - @brief Set the Transmit Power Level for Radio Transmission. +/** + @fn RIE_Responses RadioTxSetPower(RIE_PAPowerLevel Power) + @brief Set the Transmit Power Level for Radio Transmission. @param Power :{PowerLevel0 ,PowerLevel1 ,PowerLevel2 ,PowerLevel3, PowerLevel4 ,PowerLevel5 ,PowerLevel6 ,PowerLevel7, PowerLevel8 ,PowerLevel9 ,PowerLevel10,PowerLevel11, - PowerLevel12,PowerLevel13,PowerLevel14,PowerLevel15} + PowerLevel12,PowerLevel13,PowerLevel14,PowerLevel15} @pre RadioInit() must be called before this function is called. - @code + @code Response = RadioTxSetPower(PowerLevel8); @endcode @note Max TX Power is used by default. @@ -1783,7 +1783,7 @@ RIE_Responses RadioTxSetPower (RIE_PAPowerLevel Power) // Write directly to the MCR in this case and avoid a reconfigure if (Response == RIE_Success) Response = RadioMMapWrite(MCR_pa_level_mcr_Adr, 0x1, (RIE_U8 *)&ucNewRegVal); - RadioConfiguration.radio_cfg_8_r = ucNewRegVal; + RadioConfiguration.radio_cfg_8_r = ucNewRegVal; } } return Response; diff --git a/cpu/arm/at91sam7s/loader/elfloader-arch-otf.h b/cpu/arm/at91sam7s/loader/elfloader-arch-otf.h index 9fe8a77ae..7ddf64c9a 100644 --- a/cpu/arm/at91sam7s/loader/elfloader-arch-otf.h +++ b/cpu/arm/at91sam7s/loader/elfloader-arch-otf.h @@ -89,10 +89,10 @@ * processor. */ int elfloader_arch_relocate(int input_fd, - struct elfloader_output *output, - unsigned int sectionoffset, - char *sectionaddr, - struct elf32_rela *rela, char *addr); + struct elfloader_output *output, + unsigned int sectionoffset, + char *sectionaddr, + struct elf32_rela *rela, char *addr); #endif /* ELFLOADER_ARCH_H_ */ diff --git a/cpu/arm/at91sam7s/loader/elfloader-otf.h b/cpu/arm/at91sam7s/loader/elfloader-otf.h index d3c06c091..dd69383b0 100644 --- a/cpu/arm/at91sam7s/loader/elfloader-otf.h +++ b/cpu/arm/at91sam7s/loader/elfloader-otf.h @@ -37,7 +37,7 @@ * Header file for the Contiki ELF loader. * \author * Adam Dunkels - * Simon Berg + * Simon Berg * */ @@ -132,7 +132,7 @@ * Return value from elfloader_load() indicating that the offset for * a relative addressing mode was too big. */ -#define ELFLOADER_OUTOF_RANGE 9 +#define ELFLOADER_OUTOF_RANGE 9 /** * Return value from elfloader_load() indicating that the relocations @@ -144,13 +144,13 @@ * Return value from elfloader_load() indicating that reading from the * ELF file failed in some way. */ -#define ELFLOADER_INPUT_ERROR 11 +#define ELFLOADER_INPUT_ERROR 11 /** * Return value from elfloader_load() indicating that writing to a segment * failed. */ -#define ELFLOADER_OUTPUT_ERROR 12 +#define ELFLOADER_OUTPUT_ERROR 12 #define ELFLOADER_SEG_TEXT 1 @@ -164,10 +164,10 @@ * This object defines methods (callbacks) for writing the segments to memory. * It can be extended by the user to include any necessary state. */ - struct elfloader_output { const struct elfloader_output_ops *ops; }; + /** * \brief Allocate a new segment * \param input The output object @@ -178,9 +178,8 @@ struct elfloader_output { * The returned address doesn't need to correspond to any real memory, * since it's only used for calculating the relocations. */ - void *elfloader_allocate_segment(struct elfloader_output *output, - unsigned int type, int size); + unsigned int type, int size); /** * \brief Start writing to a new segment @@ -191,15 +190,14 @@ void *elfloader_allocate_segment(struct elfloader_output *output, * \return Returns ELFLOADER_OK if successful, otherwise an error code * */ - int elfloader_start_segment(struct elfloader_output *output, - unsigned int type, void *addr, int size); + unsigned int type, void *addr, int size); + /** * \brief Mark end of segment * \param input The output object * \return Zero if successful */ - int elfloader_end_segment(struct elfloader_output *output); /** @@ -209,9 +207,8 @@ int elfloader_end_segment(struct elfloader_output *output); * \param len Length of data * \return The number of bytes actually written, or negative if failed. */ - int elfloader_write_segment(struct elfloader_output *output, const char *buf, - unsigned int len); + unsigned int len); /** * \brief Get the current offset in the file where the next data will @@ -219,7 +216,6 @@ int elfloader_write_segment(struct elfloader_output *output, const char *buf, * \param input The output object * \return The current offset. */ - unsigned int elfloader_segment_offset(struct elfloader_output *output); #define elfloader_output_alloc_segment(output, type, size) \ @@ -240,12 +236,12 @@ unsigned int elfloader_segment_offset(struct elfloader_output *output); struct elfloader_output_ops { void * (*allocate_segment)(struct elfloader_output *output, - unsigned int type, int size); + unsigned int type, int size); int (*start_segment)(struct elfloader_output *output, - unsigned int type, void *addr, int size); + unsigned int type, void *addr, int size); int (*end_segment)(struct elfloader_output *output); int (*write_segment)(struct elfloader_output *output, const char *buf, - unsigned int len); + unsigned int len); unsigned int (*segment_offset)(struct elfloader_output *output); }; @@ -269,8 +265,7 @@ void elfloader_init(void); * elfloader_loaded_process variable. * */ -int elfloader_load(int input_fd, - struct elfloader_output *output); +int elfloader_load(int input_fd, struct elfloader_output *output); /** * A pointer to the processes loaded with elfloader_load(). diff --git a/cpu/avr/dev/lanc111.c b/cpu/avr/dev/lanc111.c index 60cde63af..72d6d441d 100644 --- a/cpu/avr/dev/lanc111.c +++ b/cpu/avr/dev/lanc111.c @@ -1001,11 +1001,11 @@ static NETBUF *NicGetPacket(void) * Hack alert: Rev A chips never set the odd frame indicator. */ fbc -= 3; - /* nb = NutNetBufAlloc(0, NBAF_DATALINK, fbc);*/ + /* nb = NutNetBufAlloc(0, NBAF_DATALINK, fbc);*/ /* Perform the read. */ -/* if (nb) - NicRead(nb->nb_dl.vp, fbc);*/ + /* if (nb) + NicRead(nb->nb_dl.vp, fbc);*/ } /* Release the packet. */ @@ -1191,12 +1191,12 @@ PROCESS_THREAD(lanc111_process, ev, data) */ imsk = nic_inlb(NIC_MSK); nic_outlb(NIC_MSK, 0); - /* while ((nb = NicGetPacket()) != 0) { - if (nb != (NETBUF *) 0xFFFF) { - ni->ni_rx_packets++; - (*ifn->if_recv) (dev, nb); - } - }*/ + /* while ((nb = NicGetPacket()) != 0) { + if (nb != (NETBUF *) 0xFFFF) { + ni->ni_rx_packets++; + (*ifn->if_recv) (dev, nb); + } + }*/ nic_outlb(NIC_MSK, imsk | INT_RCV | INT_ERCV); } @@ -1351,7 +1351,7 @@ lanc111_init(void) /* Register interrupt handler and enable interrupts. */ /* if (NutRegisterIrqHandler(&LANC111_SIGNAL, NicInterrupt, dev)) - return -1;*/ + return -1;*/ /* * Start the receiver thread. diff --git a/cpu/avr/minileds.c b/cpu/avr/minileds.c index 70694c5dc..f6fffb92d 100644 --- a/cpu/avr/minileds.c +++ b/cpu/avr/minileds.c @@ -1,31 +1,30 @@ /* * Copyright (c) 2006, Swedish Institute of Computer Science - * All rights reserved. + * 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. + * 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. * /** * \file diff --git a/cpu/mc1322x/lib/printf.c b/cpu/mc1322x/lib/printf.c index c716b5893..53eea5bcf 100644 --- a/cpu/mc1322x/lib/printf.c +++ b/cpu/mc1322x/lib/printf.c @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * This file is part of libmc1322x: see http://mc1322x.devl.org - * for details. + * for details. * * */ diff --git a/cpu/msp430/f1xxx/clock.c b/cpu/msp430/f1xxx/clock.c index b81bb7498..9b2a7562b 100644 --- a/cpu/msp430/f1xxx/clock.c +++ b/cpu/msp430/f1xxx/clock.c @@ -80,15 +80,15 @@ ISR(TIMERA1, timera1) ++count; /* Make sure the CLOCK_CONF_SECOND is a power of two, to ensure - that the modulo operation below becomes a logical and and not - an expensive divide. Algorithm from Wikipedia: - http://en.wikipedia.org/wiki/Power_of_two */ + that the modulo operation below becomes a logical and and not + an expensive divide. Algorithm from Wikipedia: + http://en.wikipedia.org/wiki/Power_of_two */ #if (CLOCK_CONF_SECOND & (CLOCK_CONF_SECOND - 1)) != 0 #error CLOCK_CONF_SECOND must be a power of two (i.e., 1, 2, 4, 8, 16, 32, 64, ...). #error Change CLOCK_CONF_SECOND in contiki-conf.h. #endif if(count % CLOCK_CONF_SECOND == 0) { - ++seconds; + ++seconds; energest_flush(); } last_tar = read_tar(); diff --git a/cpu/stm32w108/hal/error.h b/cpu/stm32w108/hal/error.h index e719fee0c..e3282b029 100644 --- a/cpu/stm32w108/hal/error.h +++ b/cpu/stm32w108/hal/error.h @@ -52,5 +52,3 @@ enum { /**@} // End of addtogroup */ - - diff --git a/cpu/stm32w108/hal/micro/cortexm3/nvm.h b/cpu/stm32w108/hal/micro/cortexm3/nvm.h index d8accaed1..3d0872902 100644 --- a/cpu/stm32w108/hal/micro/cortexm3/nvm.h +++ b/cpu/stm32w108/hal/micro/cortexm3/nvm.h @@ -2,7 +2,7 @@ * @brief Cortex-M3 Non-Volatile Memory data storage system. * See @ref nvm for documentation. * - * The functions in this file return an ::StStatus value. + * The functions in this file return an ::StStatus value. * See error-def.h for definitions of all ::StStatus return values. * * See hal/micro/cortexm3/nvm.h for source code. @@ -27,7 +27,7 @@ * that is a multiple of physical flash pages. There are two pages: LEFT * and RIGHT. The term "flash page" is used to refer to a page of * physical flash. - * + * * NVM data storage works by alternating between two pages: LEFT and RIGHT. * The basic algorithm is driven by a call to halCommonSaveToNvm(). It will: * - erase the inactive page @@ -58,35 +58,35 @@ * is LEFT then the state machine will advance until state 7 and then exit. * If "Read from" is RIGHT, then the state machine will advance until * state 3 and then exit. - * + * * @code * Starting from erased or invalid mgmt, write to LEFT - * State # 0 0 1 2 3 - * Reads from: x x e w L L L + * State # 0 0 1 2 3 + * Reads from: x x e w L L L * Valid xx|xx FF|FF r r 00|FF 00|FF 00|00 * Active xx|xx FF|FF a i 00|FF 00|FF 00|00 * Dead xx|xx FF|FF s t FF|FF FF|00 FF|00 * Spare xx|xx FF|FF e e FF|FF FF|FF FF|FF - * - * + * + * * Starting from LEFT page, transition to RIGHT page: - * State # 3 4 5 6 7 - * Reads from: L e L w R R R + * State # 3 4 5 6 7 + * Reads from: L e L w R R R * Valid 00|00 r 00|FF r 00|00 00|00 00|00 * Active 00|00 a 00|FF i 00|FF 00|FF 00|00 * Dead FF|00 s FF|FF t FF|FF 00|FF 00|FF * Spare FF|FF e FF|FF e FF|FF FF|FF FF|FF - * - * + * + * * Starting from RIGHT page, transition to LEFT page: - * State # 7 8 9 10 3 - * Reads from: R e R w L L L + * State # 7 8 9 10 3 + * Reads from: R e R w L L L * Valid 00|00 r FF|00 r 00|00 00|00 00|00 * Active 00|00 a FF|00 i FF|00 FF|00 00|00 * Dead 00|FF s FF|FF t FF|FF FF|00 FF|00 * Spare FF|FF e FF|FF e FF|FF FF|FF FF|FF * @endcode - * + * * Based on the 10 possible states, there are 5 valid 32bit mgmt words: * - 0xFFFFFFFF * - 0xFFFFFF00 @@ -95,7 +95,7 @@ * - 0xFF00FFFF * The algorithm determines the current state by using these 5 mgmt words * with the 10 possible combinations of LEFT mgmt and RIGHT mgmt. - * + * * Detailed State Description: * - State 0: * In this state the mgmt bytes do not conform to any of the other states @@ -135,8 +135,8 @@ * Once at these states, the current page is marked Valid and Active and * the old page is marked as Dead. The algorithm knows which page to * read from and which page needs to be erased on the next write to the NVM. - * - * + * + * * Notes on algorithm behavior: * - Refer to nvm-def.h for a list of offset/length that define the data * stored in NVM storage space. @@ -189,14 +189,14 @@ /** * @brief Copy the NVM data from flash into the provided RAM location. * It is illegal for the offset to be greater than NVM_DATA_SIZE_B. - * + * * @param data A (RAM) pointer to where the data should be copied. - * + * * @param offset The location from which the data should be copied. Must be * 16bit aligned. - * + * * @param length The length of the data in bytes. Must be 16bit aligned. - * + * * @return An StStatus value indicating the success of the function. * - ST_SUCCESS if the read completed cleanly. * - ST_ERR_FATAL if the NVM storage management indicated an invalid @@ -206,10 +206,10 @@ StStatus halCommonReadFromNvm(void *data, uint32_t offset, uint16_t length); /** * @brief Return the address of the token in NVM - * + * * @param offset The location offset from which the address should be returned - * - * + * + * * @return The address requested */ uint16_t *halCommonGetAddressFromNvm(uint32_t offset); @@ -217,14 +217,14 @@ uint16_t *halCommonGetAddressFromNvm(uint32_t offset); /** * @brief Write the NVM data from the provided location RAM into flash. * It is illegal for the offset to be greater than NVM_DATA_SIZE_B. - * + * * @param data A (RAM) pointer from where the data should be taken. - * + * * @param offset The location to which the data should be written. Must be * 16bit aligned. - * + * * @param length The length of the data in bytes. Must be 16bit aligned. - * + * * @return An StStatus value indicating the success of the function. * - ST_SUCCESS if the write completed cleanly. * - Any other status value is an error code generated by the low level diff --git a/cpu/stm32w108/hal/micro/cortexm3/uart.h b/cpu/stm32w108/hal/micro/cortexm3/uart.h index c15bf051d..48edceea9 100644 --- a/cpu/stm32w108/hal/micro/cortexm3/uart.h +++ b/cpu/stm32w108/hal/micro/cortexm3/uart.h @@ -23,14 +23,14 @@ typedef enum /** * @brief Initialize the UART - * + * * @param baudrate The baudrate which will be used for communication. * Ex: 115200 - * + * * @param databits The number of data bits used for communication. * Valid values are 7 or 8 - * - * @param parity The type of parity used for communication. + * + * @param parity The type of parity used for communication. * See the SerialParity enum for possible values * * @return stopbits The number of stop bits used for communication. @@ -45,9 +45,9 @@ void uartInit(uint32_t baudrate, uint8_t databits, SerialParity parity, uint8_t * instead which does not define fflush(). Therefore, we manually define * fflush() in the low level UART driver. This function simply redirects * to the __write() function with a NULL buffer, triggering a flush. - * + * * @param handle The output stream. Should be set to 'stdout' like normal. - * + * * @return Zero, indicating success. */ size_t fflush(int handle); @@ -61,7 +61,7 @@ size_t fflush(int handle); #define stdout _LLIO_STDOUT #endif /** - * @brief Read the input byte if any. + * @brief Read the input byte if any. */ boolean __io_getcharNonBlocking(uint8_t *data); void __io_putchar( char c ); diff --git a/cpu/stm32w108/hal/micro/generic/compiler/platform-common.h b/cpu/stm32w108/hal/micro/generic/compiler/platform-common.h index 24bbfceaf..db49f35d0 100644 --- a/cpu/stm32w108/hal/micro/generic/compiler/platform-common.h +++ b/cpu/stm32w108/hal/micro/generic/compiler/platform-common.h @@ -1,6 +1,6 @@ -/** +/** * \brief Compiler and Platform specific definitions and typedefs common to - * all platforms. + * all platforms. * * platform-common.h provides PLATFORM_HEADER defaults and common definitions. * This head should never be included directly, it should only be included @@ -20,7 +20,7 @@ * */ - + #ifndef PLATCOMMONOKTOINCLUDE // This header should only be included by a PLATFORM_HEADER #error platform-common.h should not be included directly @@ -29,7 +29,7 @@ #ifndef PLATFORMCOMMON_H_ #define PLATFORMCOMMON_H_ //////////////////////////////////////////////////////////////////////////////// -// Many of the common definitions must be explicitly enabled by the +// Many of the common definitions must be explicitly enabled by the // particular PLATFORM_HEADER being used //////////////////////////////////////////////////////////////////////////////// @@ -69,16 +69,16 @@ //////////////////////////////////////////////////////////////////////////////// #ifdef _HAL_USE_COMMON_DIVMOD_ /** \name Divide and Modulus Operations - * Some platforms can perform divide and modulus operations on 32 bit + * Some platforms can perform divide and modulus operations on 32 bit * quantities more efficiently when the divisor is only a 16 bit quantity. * C compilers will always promote the divisor to 32 bits before performing the - * operation, so the following utility functions are instead required to take + * operation, so the following utility functions are instead required to take * advantage of this optimisation. */ //@{ /** * \brief Provide a portable name for the uint32_t by uint16_t division - * library function (which can perform the division with only a single + * library function (which can perform the division with only a single * assembly instruction on some platforms) */ #define halCommonUDiv32By16(x, y) ((uint16_t) (((uint32_t) (x)) / ((uint16_t) (y)))) @@ -111,12 +111,12 @@ #ifdef _HAL_USE_COMMON_MEMUTILS_ /** \name C Standard Library Memory Utilities * These should be used in place of the standard library functions. - * + * * These functions have the same parameters and expected results as their C * Standard Library equivalents but may take advantage of certain implementation * optimizations. - * - * Unless otherwise noted, these functions are utilized by the StStack and are + * + * Unless otherwise noted, these functions are utilized by the StStack and are * therefore required to be implemented in the HAL. Additionally, unless otherwise * noted, applications that find these functions useful may utilze them. */ @@ -212,22 +212,22 @@ #define SETBIT(reg, bit) reg |= BIT(bit) /** - * \brief Sets the bits in the \c reg register or the byte - * as specified in the bitmask \c bits. + * \brief Sets the bits in the \c reg register or the byte + * as specified in the bitmask \c bits. * @note This is never a single atomic operation. */ #define SETBITS(reg, bits) reg |= (bits) /** - * \brief Clears a bit in the \c reg register or byte. - * @note Assuming \c reg is an IO register, some platforms (such as the AVR) + * \brief Clears a bit in the \c reg register or byte. + * @note Assuming \c reg is an IO register, some platforms (such as the AVR) * can implement this in a single atomic operation. */ #define CLEARBIT(reg, bit) reg &= ~(BIT(bit)) /** - * \brief Clears the bits in the \c reg register or byte - * as specified in the bitmask \c bits. + * \brief Clears the bits in the \c reg register or byte + * as specified in the bitmask \c bits. * @note This is never a single atomic operation. */ #define CLEARBITS(reg, bits) reg &= ~(bits) @@ -238,7 +238,7 @@ #define READBIT(reg, bit) (reg & (BIT(bit))) /** - * \brief Returns the value of the bitmask \c bits within + * \brief Returns the value of the bitmask \c bits within * the register or byte \c reg. */ #define READBITS(reg, bits) (reg & (bits)) @@ -263,13 +263,13 @@ #define HIGH_BYTE(n) ((uint8_t)(LOW_BYTE((n) >> 8))) /** - * \brief Returns the value built from the two \c uint8_t + * \brief Returns the value built from the two \c uint8_t * values \c high and \c low. */ #define HIGH_LOW_TO_INT(high, low) ( \ (( (uint16_t) (high) ) << 8) + \ ( (uint16_t) ( (low) & 0xFF)) \ - ) + ) /** * \brief Returns the low byte of the 32-bit value \c n as an \c uint8_t. @@ -301,21 +301,21 @@ //@{ /** - * \brief Returns the elapsed time between two 8 bit values. + * \brief Returns the elapsed time between two 8 bit values. * Result may not be valid if the time samples differ by more than 127 */ #define elapsedTimeInt8u(oldTime, newTime) \ ((uint8_t) ((uint8_t)(newTime) - (uint8_t)(oldTime))) /** - * \brief Returns the elapsed time between two 16 bit values. + * \brief Returns the elapsed time between two 16 bit values. * Result may not be valid if the time samples differ by more than 32767 */ #define elapsedTimeInt16u(oldTime, newTime) \ ((uint16_t) ((uint16_t)(newTime) - (uint16_t)(oldTime))) /** - * \brief Returns the elapsed time between two 32 bit values. + * \brief Returns the elapsed time between two 32 bit values. * Result may not be valid if the time samples differ by more than 2147483647 */ #define elapsedTimeInt32u(oldTime, newTime) \ diff --git a/cpu/stm32w108/hal/micro/micro-common.h b/cpu/stm32w108/hal/micro/micro-common.h index 9cba68903..03c5ab720 100644 --- a/cpu/stm32w108/hal/micro/micro-common.h +++ b/cpu/stm32w108/hal/micro/micro-common.h @@ -149,4 +149,3 @@ StStatus halBootloaderStart(uint8_t mode, uint8_t channel, uint16_t panId); /** @} END micro group */ /** @} */ - diff --git a/doc/sicslowpan-doc.txt b/doc/sicslowpan-doc.txt index 43f3ea71a..38f9acd4d 100644 --- a/doc/sicslowpan-doc.txt +++ b/doc/sicslowpan-doc.txt @@ -7,11 +7,11 @@ * \defgroup sicslowpan 6LoWPAN implementation * @{ -6lowpan is a Working Group in IETF which defines the use of IPv6 on +6lowpan is a Working Group in IETF which defines the use of IPv6 on IEEE 802.15.4 links. Our implementation is based on RFC4944 Transmission of IPv6 -Packets over IEEE 802.15.4 Networks, draft-hui-6lowpan-interop-00 +Packets over IEEE 802.15.4 Networks, draft-hui-6lowpan-interop-00 Interoperability Test for 6LoWPAN, and draft-hui-6lowpan-hc-01 Compression format for IPv6 datagrams in 6lowpan Networks. @@ -24,7 +24,7 @@ Packets over IEEE 802.15.4 Networks, draft-hui-6lowpan-interop-00 \subsection rfc4944 RFC 4944 RFC4944 defines address configuration mechanisms based on 802.15.4 -16-bit and 64-bit addresses, fragmentation of IPv6 packets below IP +16-bit and 64-bit addresses, fragmentation of IPv6 packets below IP layer, IPv6 and UDP header compression, a mesh header to enable link-layer forwarding in a mesh under topology, and a broadcast header to enable broadcast in a mesh under topology. @@ -32,7 +32,7 @@ broadcast in a mesh under topology. We implement addressing, fragmentation, and header compression. We support the header compression scenarios defined in draft-hui-6lowpan-interop-00. -This draft defines an interoperability scenario which was used between +This draft defines an interoperability scenario which was used between ArchRock and Sensinode implementations. We do not implement mesh under related features, as we target route over @@ -40,8 +40,8 @@ techniques. \subsection hc01 draft-hui-6lowpan-hc-01 -draft-hui-6lowpan-hc-01 defines a stateful header compression mechanism -which should soon deprecate the stateless header compression mechanism +draft-hui-6lowpan-hc-01 defines a stateful header compression mechanism +which should soon deprecate the stateless header compression mechanism defined in RFC4944. It is much more powerfull and flexible, in particular it allows compression of some multicast addresses and of all global unicast addresses. @@ -59,7 +59,7 @@ It is initialized from the MAC %process, which calls sicslowpan_init The main 6lowpan functions are implemented in the sicslowpan.h and sicslowpan.c files. They are used to format packets between the -802.15.4 and the IPv6 layers. +802.15.4 and the IPv6 layers. 6lowpan also creates a few IPv6 and link-layer dependencies which are detailed in the next section. @@ -89,13 +89,13 @@ typedef struct uip_802154_longaddr uip_lladdr_t; \endcode Neighbor Discovery Link Layer Address options
-The format of ND link-layer address options depends on the length of -the link-layer addresses. +The format of ND link-layer address options depends on the length of +the link-layer addresses. 802.15.4 specificities regarding link-layer address options are implemented in uip-nd6.h. \code #define UIP_ND6_OPT_SHORT_LLAO_LEN 8 #define UIP_ND6_OPT_LONG_LLAO_LEN 16 -#define UIP_ND6_OPT_LLAO_LEN UIP_ND6_OPT_LONG_LLAO_LEN +#define UIP_ND6_OPT_LLAO_LEN UIP_ND6_OPT_LONG_LLAO_LEN \endcode Address Autoconfiguration
@@ -105,7 +105,7 @@ the link-layer address. The dependency is reflected in the \code #if (UIP_LLADDR_LEN == 8) memcpy(ipaddr->u8 + 8, lladdr, UIP_LLADDR_LEN); - ipaddr->u8[8] ^= 0x02; + ipaddr->u8[8] ^= 0x02; \endcode \subsection io Packet Input/Output @@ -119,24 +119,24 @@ destination link-layer addresses as two rime addresses. \code packetbuf_copyfrom(&rx_frame.payload, rx_frame.payload_length); packetbuf_set_datalen(rx_frame.payload_length); -packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (const rimeaddr_t *)&rx_frame.dest_addr); +packetbuf_set_addr(PACKETBUF_ADDR_RECEIVER, (const rimeaddr_t *)&rx_frame.dest_addr); packetbuf_set_addr(PACKETBUF_ADDR_SENDER, (const rimeaddr_t *)&rx_frame.src_addr); \endcode -It then calls the sicslowpan #input function. Similarly, when the IPv6 layer +It then calls the sicslowpan #input function. Similarly, when the IPv6 layer has a packet to send over the radio, it puts the packet in uip_buf, sets uip_len and calls the sicslowpan #output function. \subsection frag Fragmentation \li #output function: When an IP packet, after header compression, is -too big to fit in a 802.15.4 frame, it is fragmented in several packets -which are sent successively over the radio. The packets are formatted +too big to fit in a 802.15.4 frame, it is fragmented in several packets +which are sent successively over the radio. The packets are formatted as defined in RFC 4944. Only the first fragment contains the IP/UDP compressed or uncompressed header fields. \li #input function: This function takes care of fragment -reassembly. We do not assume that the fragments are received in order. -When reassembly of a packet is ongoing, we discard any non fragmented +reassembly. We do not assume that the fragments are received in order. +When reassembly of a packet is ongoing, we discard any non fragmented packet or fragment from another packet. Reassembly times out after #SICSLOWPAN_REASS_MAXAGE = 20s. @@ -145,7 +145,7 @@ compilation option. \note As we do not support complex buffer allocation mechanism, for now we define a new 1280 bytes buffer (#sicslowpan_buf) to reassemble packets. -At reception, once all the fragments are received, we copy the packet +At reception, once all the fragments are received, we copy the packet to #uip_buf, set #uip_len, and call #tcpip_input. \note #MAC_MAX_PAYLOAD defines the maximum payload @@ -161,7 +161,7 @@ The #SICSLOWPAN_CONF_COMPRESSION compilation option defines the HC1 and IPv6 compression are defined in RFC4944, HC01 in draft-hui-6lowpan-hc. What we call IPv6 compression means sending packets with no compression, and adding the IPv6 dispatch before the IPv6 header.
-If at compile time IPv6 "compression" is chosen, packets sent will never +If at compile time IPv6 "compression" is chosen, packets sent will never be compressed, and compressed packets will not be processed at reception.
If at compile time either HC1 or HC01 are chosen, we will try to compress all fields at sending, and will accept packets compressed with the @@ -170,7 +170,7 @@ Note that HC1 and HC01 supports are mutually exclusive. HC01 should soon deprecate HC1. Compression related functions
-When a packet is received, the #input function is called. Fragmentation +When a packet is received, the #input function is called. Fragmentation issues are handled, then we check the dispatch byte: if it is IPv6, we treat the packet inline. If it is HC1 or HC01, the corresponding decompression function (#uncompress_hdr_hc1 or #uncompress_hdr_hc01) @@ -184,21 +184,21 @@ to compress the packet as much as possible. HC1 comments
In HC1, if the IPv6 flow label is not compressed, we would need to copy the fields after the flow label starting in the middle of a byte (the -flow label is 20 bits long). To avoid this, we compress the packets only +flow label is 20 bits long). To avoid this, we compress the packets only if all fields can be compressed. If we cannot, we use the IPv6 dispatch and send all headers fields inline. This behavior is the one defined in draft-hui-6lowpan-interop-00.
-In the same way, if the packet is an UDP packet, we compress the UDP +In the same way, if the packet is an UDP packet, we compress the UDP header only if all fields can be compressed.
-Note that HC1 can only compress unicast link local addresses. For this +Note that HC1 can only compress unicast link local addresses. For this reason, we recommend using HC01. HC01 comments
-HC01 uses address contexts to enable compression of global unicast +HC01 uses address contexts to enable compression of global unicast addresses. All nodes must share context (namely the global prefixes in use) to compress and uncompress such addresses successfully. The context -number is defined by 2 bits. Context 00 is reserved for the link local -context. Other contexts have to be distributed within the LoWPAN +number is defined by 2 bits. Context 00 is reserved for the link local +context. Other contexts have to be distributed within the LoWPAN dynamically, by means of ND extensions yet to be defined.
Until then, if you want to test global address compression, you need to configure the global contexts manually. diff --git a/doc/uip6-doc.txt b/doc/uip6-doc.txt index 1aec7b493..7c063a1c8 100644 --- a/doc/uip6-doc.txt +++ b/doc/uip6-doc.txt @@ -6,7 +6,7 @@ /** * \defgroup uip6 uIP IPv6 specific features * -The uIP IPv6 stack provides new Internet communication abilities to Contiki. +The uIP IPv6 stack provides new Internet communication abilities to Contiki. This document describes Ipv6 specific features. For features that are common to the IPv4 and IPv6 code please refer to \ref uip "uIP". @@ -21,7 +21,7 @@ for extensions and options, and its new QoS and security capabilities. The uip IPv6 stack implementation targets constrained devices such as sensors. The code size is around 11.5Kbyte and the RAM usage around -1.7Kbyte (see \ref size "below" for more detailed information). +1.7Kbyte (see \ref size "below" for more detailed information). Our implementation follows closely RFC 4294 IPv6 Node Requirements whose goal is to allow "IPv6 to function well and interoperate in a large number of situations and deployments". @@ -38,12 +38,12 @@ http://www.ietf.org/rfc.html. \note The #NETSTACK_CONF_WITH_IPV6 compilation flag is used to enable IPv6. It is also recommended to set #UIP_CONF_IPV6_CHECKS to 1 -if one cannot guarantee that the incoming packets are correctly formed. +if one cannot guarantee that the incoming packets are correctly formed. \subsection ipv6 IPv6 (RFC 2460) The IP packets are processed in the #uip_process function. After a few validity checks on the IPv6 header, the extension headers -are processed until an upper layer (ICMPv6, UDP or TCP) header is found. +are processed until an upper layer (ICMPv6, UDP or TCP) header is found. We support 4 extension headers: \li Hop-by-Hop Options: this header is used to carry optional information that need to be examined only by a packet's destination node. @@ -81,18 +81,18 @@ typedef union uip_ip6addr_t { \endcode We assume that each node has a single interface of type -#uip_ds6_netif_t. +#uip_ds6_netif_t. Each interface can have a configurable number of unicast IPv6 addresses including its link-local address. It also has a solicited-node multicast address. We assume that the unicast -addresses are obtained via \ref autoconf "stateless address autoconfiguration" +addresses are obtained via \ref autoconf "stateless address autoconfiguration" so that the solicited-node address is the same for all the unicast addresses. Indeed, the solicited-node multicast address is formed by combining the prefix FF02::1:FF00:0/104 and the last 24-bits of the corresponding IPv6 address. When using stateless address autoconfiguration these bits are always equal to the last 24-bits of -the link-layer address. +the link-layer address. \subsection multicast Multicast support We do not support applications using multicast. Nevertheless, our node @@ -108,7 +108,7 @@ safely skipped and we do so. other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors" (citation from the abstract of RFC -4861). +4861). \note In IPv6 terminology, a \em link is a communication medium over which nodes can communicate at the link layer, i.e., the layer @@ -157,7 +157,7 @@ different entry fields. Neighbor discovery processes
\li Address resolution\n Determine the link-layer address of a %neighbor given its IPv6 address.\n --> send a NS (done in #tcpip_ipv6_output). +-> send a NS (done in #tcpip_ipv6_output). \li Neighbor unreachability detection\n Verify that a neighbor is still reachable via a cached link-layer address.\n @@ -183,7 +183,7 @@ Configure an address for an interface by combining a received prefix and the interface ID (see #uip_netif_addr_add). The interface ID is obtained from the link-layer address using #uip_netif_get_interface_id.\n -> Receive a RA with a prefix information option that has the -autonomous flag set. +autonomous flag set. When an interface becomes active, its link-local address is created by combining the FE80::0/64 prefix and the interface ID. DAD is then @@ -196,14 +196,14 @@ performed in #uip_netif_init. \subsection icmpv6 ICMPv6 (RFC 4443) We support ICMPv6 Error messages as well as Echo Reply and Echo Request messages. The application used for sending Echo Requests (see ping6.c) -is not part of the IP stack. +is not part of the IP stack. \note RFC 4443 stipulates that 'Every ICMPv6 error message MUST include as much of the IPv6 offending (invoking) packet as possible'. In a constrained environment this is not very resource friendly. -The ICMPv6 message headers and constants are defined in uip-icmp6.h. +The ICMPv6 message headers and constants are defined in uip-icmp6.h.
@@ -232,16 +232,16 @@ This could be avoided by using callback timers to handle ND and Netif structures
\section compileflags Compile time flags and variables -This section just lists all IPv6 related compile time flags. Each flag +This section just lists all IPv6 related compile time flags. Each flag function is documented in this page in the appropriate section. \code /*Boolean flags*/ -NETSTACK_CONF_WITH_IPV6 +NETSTACK_CONF_WITH_IPV6 UIP_CONF_IPV6_CHECKS -UIP_CONF_IPV6_QUEUE_PKT -UIP_CONF_IPV6_REASSEMBLY +UIP_CONF_IPV6_QUEUE_PKT +UIP_CONF_IPV6_REASSEMBLY /*Integer flags*/ -UIP_CONF_NETIF_MAX_ADDRESSES +UIP_CONF_NETIF_MAX_ADDRESSES NBR_TABLE_CONF_MAX_NEIGHBORS \endcode @@ -252,7 +252,7 @@ The IPv6 code uses the same \ref memory "single global buffer" as the IPv4 code. This buffer should be large enough to contain one packet of maximum size, i.e., #UIP_LINK_MTU = 1280 bytes. When \ref reass "fragment reassembly" is enabled an additional buffer of the -same size is used. +same size is used. The only difference with the IPv4 code is the per %neighbor buffering that is available when #UIP_CONF_IPV6_QUEUE_PKT is set to 1. This @@ -272,20 +272,20 @@ our code. These numbers are obtained using 'avr-gcc 4.2.2 (WinAVR \note The following compilation flags were used: \code -UIP_CONF_IPV6 1 -UIP_CONF_IPV6_CHECKS 1 -UIP_CONF_IPV6_QUEUE_PKT 0 -UIP_CONF_IPV6_REASSEMBLY 0 +UIP_CONF_IPV6 1 +UIP_CONF_IPV6_CHECKS 1 +UIP_CONF_IPV6_QUEUE_PKT 0 +UIP_CONF_IPV6_REASSEMBLY 0 -UIP_NETIF_MAX_ADDRESSES 3 -UIP_ND6_MAX_PREFIXES 3 -UIP_ND6_MAX_NEIGHBORS 4 -UIP_ND6_MAX_DEFROUTER 2 +UIP_NETIF_MAX_ADDRESSES 3 +UIP_ND6_MAX_PREFIXES 3 +UIP_ND6_MAX_NEIGHBORS 4 +UIP_ND6_MAX_DEFROUTER 2 \endcode The total IPv6 code size is approximately 11.5Kbyte and the RAM usage around 1.8Kbyte. For an additional NEIGHBOR count 35bytes, 25 for an additional -PREFIX, 7 for an additional DEFROUTER, and 25 for an additional ADDRESS. +PREFIX, 7 for an additional DEFROUTER, and 25 for an additional ADDRESS.
@@ -345,7 +345,7 @@ We will soon support RFC4944 transmission of IPv6 packets over 802.15.4\n \li ICMPv6 RFC 4443 (MUST): full support \li IPv6 addressing architecture RFC 3513 (MUST): full support \li Privacy extensions for address autoconfiguration RFC 3041 (SHOULD): no support. -\li Default Address Selection RFC 3484 (MUST): full support. +\li Default Address Selection RFC 3484 (MUST): full support. \li MLDv1 (RFC 2710) and MLDv2 (RFC 3810) (conditional MUST applying here): no support. As we run IPv6 over Multicast or broadcast capable links (Ethernet or 802.15.4), the conditional MUST applies. We should be able to send an MLD report when joining a solicited node multicast group at address configuration time. This will be available in a later release. DNS (RFC 1034, 1035, 3152, 3363, 3596) and DHCPv6 (RFC 3315) (conditional MUST)
diff --git a/platform/avr-ravenusb/cdc_task.c b/platform/avr-ravenusb/cdc_task.c index 64af3741e..83798f7ce 100644 --- a/platform/avr-ravenusb/cdc_task.c +++ b/platform/avr-ravenusb/cdc_task.c @@ -103,7 +103,7 @@ void menu_process(char c); extern char usb_busy; //! Counter for USB Serial port -extern U8 tx_counter; +extern U8 tx_counter; //! Timers for LEDs uint8_t led3_timer; diff --git a/platform/avr-ravenusb/rng.c b/platform/avr-ravenusb/rng.c index 83ce3e5b8..ed385d960 100644 --- a/platform/avr-ravenusb/rng.c +++ b/platform/avr-ravenusb/rng.c @@ -66,7 +66,7 @@ extract_random_bit_() { cli(); #ifdef PRR - // Enable ADC module + // Enable ADC module PRR &= ~(1 << PRADC); #endif @@ -100,7 +100,7 @@ extract_random_bit_() { // Toggling the reference voltage // seems to help introduce noise. ADMUX^=(1<ipaddr.u8[i * 2], - lladdr->ipaddr.u8[i * 2 + 1]); + printf("%02x%02x:", lladdr->ipaddr.u8[i * 2], + lladdr->ipaddr.u8[i * 2 + 1]); } printf("%02x%02x\n", lladdr->ipaddr.u8[14], - lladdr->ipaddr.u8[15]); + lladdr->ipaddr.u8[15]); } if(1) { @@ -320,7 +320,7 @@ contiki_init() /* Initialize eeprom */ eeprom_init(); - + /* Start serial process */ serial_line_init(); @@ -417,10 +417,9 @@ JNIEXPORT void JNICALL Java_org_contikios_cooja_corecomm_CLASSNAME_setMemory(JNIEnv *env, jobject obj, jint rel_addr, jint length, jbyteArray mem_arr) { jbyte *mem = (*env)->GetByteArrayElements(env, mem_arr, 0); - memcpy( - (char*) (((long)rel_addr) + referenceVar), - mem, - length); + memcpy((char*) (((long)rel_addr) + referenceVar), + mem, + length); (*env)->ReleaseByteArrayElements(env, mem_arr, mem, 0); } /*---------------------------------------------------------------------------*/ @@ -453,7 +452,7 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_tick(JNIEnv *env, jobject obj) doActionsBeforeTick(); /* Poll etimer process */ - if (etimer_pending()) { + if(etimer_pending()) { etimer_request_poll(); } @@ -481,9 +480,9 @@ Java_org_contikios_cooja_corecomm_CLASSNAME_tick(JNIEnv *env, jobject obj) nextRtimer = rtimer_arch_next() - (rtimer_clock_t) simCurrentTime; if(etimer_pending() && rtimer_arch_pending()) { simNextExpirationTime = MIN(nextEtimer, nextRtimer); - } else if (etimer_pending()) { + } else if(etimer_pending()) { simNextExpirationTime = nextEtimer; - } else if (rtimer_arch_pending()) { + } else if(rtimer_arch_pending()) { simNextExpirationTime = nextRtimer; } } diff --git a/platform/wismote/dev/acc-sensor.c b/platform/wismote/dev/acc-sensor.c index 15ea5fd82..5203526e3 100644 --- a/platform/wismote/dev/acc-sensor.c +++ b/platform/wismote/dev/acc-sensor.c @@ -122,5 +122,4 @@ status(int type) } } /*---------------------------------------------------------------------------*/ -SENSORS_SENSOR(acc_sensor, ACC_SENSOR, - value, configure, status); +SENSORS_SENSOR(acc_sensor, ACC_SENSOR, value, configure, status); diff --git a/platform/wismote/dev/ext-sensor.c b/platform/wismote/dev/ext-sensor.c index a957e5232..b348624e5 100644 --- a/platform/wismote/dev/ext-sensor.c +++ b/platform/wismote/dev/ext-sensor.c @@ -100,5 +100,4 @@ configure(int type, int c) } } /*---------------------------------------------------------------------------*/ -SENSORS_SENSOR(ext_sensor, "Ext", - value, configure, status); +SENSORS_SENSOR(ext_sensor, "Ext", value, configure, status); From 33f8db0dd3c5d642a67a3eacba721f73a5f334a1 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Wed, 18 Nov 2015 14:06:18 +0100 Subject: [PATCH 12/46] RPL: clearer naming and documentation of DAO delay constants --- core/net/rpl/rpl-icmp6.c | 2 +- core/net/rpl/rpl-private.h | 22 +++++++++++++--------- core/net/rpl/rpl-timers.c | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/core/net/rpl/rpl-icmp6.c b/core/net/rpl/rpl-icmp6.c index 80e93ffcf..3732dec92 100644 --- a/core/net/rpl/rpl-icmp6.c +++ b/core/net/rpl/rpl-icmp6.c @@ -729,7 +729,7 @@ dao_input(void) PRINT6ADDR(&prefix); PRINTF("\n"); rep->state.nopath_received = 1; - rep->state.lifetime = DAO_EXPIRATION_TIMEOUT; + rep->state.lifetime = RPL_NOPATH_REMOVAL_DELAY; /* We forward the incoming no-path DAO to our parent, if we have one. */ diff --git a/core/net/rpl/rpl-private.h b/core/net/rpl/rpl-private.h index 6b043d49d..d5ed5513f 100644 --- a/core/net/rpl/rpl-private.h +++ b/core/net/rpl/rpl-private.h @@ -103,12 +103,19 @@ /*---------------------------------------------------------------------------*/ /* Default values for RPL constants and variables. */ -/* The default value for the DAO timer. */ -#ifdef RPL_CONF_DAO_LATENCY -#define RPL_DAO_LATENCY RPL_CONF_DAO_LATENCY -#else /* RPL_CONF_DAO_LATENCY */ -#define RPL_DAO_LATENCY (CLOCK_SECOND * 4) -#endif /* RPL_DAO_LATENCY */ +/* DAO transmissions are always delayed by RPL_DAO_DELAY +/- RPL_DAO_DELAY/2 */ +#ifdef RPL_CONF_DAO_DELAY +#define RPL_DAO_DELAY RPL_CONF_DAO_DELAY +#else /* RPL_CONF_DAO_DELAY */ +#define RPL_DAO_DELAY (CLOCK_SECOND * 4) +#endif /* RPL_CONF_DAO_DELAY */ + +/* Delay between reception of a no-path DAO and actual route removal */ +#ifdef RPL_CONF_NOPATH_REMOVAL_DELAY +#define RPL_NOPATH_REMOVAL_DELAY RPL_CONF_NOPATH_REMOVAL_DELAY +#else /* RPL_CONF_NOPATH_REMOVAL_DELAY */ +#define RPL_NOPATH_REMOVAL_DELAY 60 +#endif /* RPL_CONF_NOPATH_REMOVAL_DELAY */ /* Special value indicating immediate removal. */ #define RPL_ZERO_LIFETIME 0 @@ -134,9 +141,6 @@ #define INFINITE_RANK 0xffff - -/* Expire DAOs from neighbors that do not respond in this time. (seconds) */ -#define DAO_EXPIRATION_TIMEOUT 60 /*---------------------------------------------------------------------------*/ #define RPL_INSTANCE_LOCAL_FLAG 0x80 #define RPL_INSTANCE_D_FLAG 0x40 diff --git a/core/net/rpl/rpl-timers.c b/core/net/rpl/rpl-timers.c index c0d6c2850..8530a0f56 100644 --- a/core/net/rpl/rpl-timers.c +++ b/core/net/rpl/rpl-timers.c @@ -312,7 +312,7 @@ schedule_dao(rpl_instance_t *instance, clock_time_t latency) void rpl_schedule_dao(rpl_instance_t *instance) { - schedule_dao(instance, RPL_DAO_LATENCY); + schedule_dao(instance, RPL_DAO_DELAY); } /*---------------------------------------------------------------------------*/ void From b9281e2faa97155d4299d32c9eb7d1677e8cd796 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Wed, 18 Nov 2015 17:37:02 +0100 Subject: [PATCH 13/46] Compile-test: show make variables in log output --- regression-tests/Makefile.compile-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regression-tests/Makefile.compile-test b/regression-tests/Makefile.compile-test index 2f596aa27..fa0f1cf79 100644 --- a/regression-tests/Makefile.compile-test +++ b/regression-tests/Makefile.compile-test @@ -40,7 +40,7 @@ get_target = $(firstword $(subst :, ,$1)) get_target_vars = $(wordlist 2,15,$(subst :, ,$1)) define dooneexample -@echo Building example $(3): $(1) for target $(2) +@echo Building example $(3): $(1) $(4) for target $(2) @((cd $(EXAMPLESDIR)/$(1); \ make $(4) TARGET=$(2) clean && make $(4) TARGET=$(2) WERROR=1) > \ $(3)-$(subst /,-,$(1))$(2).report 2>&1 && \ From 790c253d6d3866ce0481691ae19bf12cede1e14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= Date: Thu, 18 Jun 2015 22:31:53 +0200 Subject: [PATCH 14/46] cc2538: Define and use device features MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Define the available CC2538 devices and their features, and use them to define the linker script memory regions. The .nrdata output section is now always defined in order to trigger an error if it is used but no memory is available for it. The CC2538 device used by Contiki is made a configuration option, the CC2538SF53 device being the default. This makes more sense than defining the flash memory address and size as configuration options like previously, all the more not all values are possible and all the features are linked by each device. This change also makes it possible to: - use the correct SRAM parameters for the CC2538NF11, - know at build time if the AES, SHA, ECC and RSA hardware features are available on the selected CC2538 device. Signed-off-by: Benoît Thébaudeau --- cpu/cc2538/Makefile.cc2538 | 3 +- cpu/cc2538/cc2538.lds | 66 +++++++--------- cpu/cc2538/dev/cc2538-dev.h | 126 +++++++++++++++++++++++++++++++ cpu/cc2538/dev/flash-cca.h | 10 +++ platform/cc2538dk/contiki-conf.h | 15 ---- platform/remote/contiki-conf.h | 15 ---- 6 files changed, 165 insertions(+), 70 deletions(-) create mode 100644 cpu/cc2538/dev/cc2538-dev.h diff --git a/cpu/cc2538/Makefile.cc2538 b/cpu/cc2538/Makefile.cc2538 index 0d4d3c73f..b555d7e8f 100644 --- a/cpu/cc2538/Makefile.cc2538 +++ b/cpu/cc2538/Makefile.cc2538 @@ -110,7 +110,8 @@ CUSTOM_RULE_LINK=1 ### This rule is used to generate the correct linker script LDGENFLAGS += $(addprefix -D,$(subst $(COMMA), ,$(DEFINES))) LDGENFLAGS += $(addprefix -I,$(SOURCEDIRS)) -LDGENFLAGS += -imacros "contiki-conf.h" +LDGENFLAGS += -imacros "contiki-conf.h" -imacros "dev/cc2538-dev.h" +LDGENFLAGS += -imacros "dev/flash-cca.h" LDGENFLAGS += -x c -P -E # NB: Assumes LDSCRIPT was not overridden and is in $(OBJECTDIR) diff --git a/cpu/cc2538/cc2538.lds b/cpu/cc2538/cc2538.lds index cfd4cb48c..a2dd0d209 100644 --- a/cpu/cc2538/cc2538.lds +++ b/cpu/cc2538/cc2538.lds @@ -33,40 +33,30 @@ * stage. Rather, it is used as input for the auto-generation of the actual * ld script, which is called cc2538.ld and will be in the project directory */ -#if (LPM_CONF_MAX_PM==2) && (LPM_CONF_ENABLE != 0) -#define NRSRAM_START 0x20000000 -#define NRSRAM_LEN 0x00004000 -#define SRAM_START 0x20004000 -#define SRAM_LEN 0x00004000 -#else -#define SRAM_START 0x20000000 -#define SRAM_LEN 0x00008000 -#endif - -#ifdef FLASH_CONF_ORIGIN -#define FLASH_ORIGIN FLASH_CONF_ORIGIN -#else -#error FLASH_CONF_ORIGIN is not specified. Please define FLASH_CONF_ORIGIN in contiki-conf.h. -#endif - -#ifdef FLASH_CONF_SIZE -#define FLASH_SIZE FLASH_CONF_SIZE -#else -#error FLASH_CONF_SIZE is not specified. Please define FLASH_CONF_SIZE in contiki-conf.h. -#endif - -#define FLASH_CCA_LENGTH 44 -#define FLASH_LENGTH (FLASH_SIZE - FLASH_CCA_LENGTH) -#define FLASH_CCA_ORIGIN (FLASH_ORIGIN + FLASH_LENGTH) - MEMORY { - FLASH (rx) : ORIGIN = FLASH_ORIGIN, LENGTH = FLASH_LENGTH - FLASH_CCA (RX) : ORIGIN = FLASH_CCA_ORIGIN, LENGTH = FLASH_CCA_LENGTH -#if (LPM_CONF_MAX_PM==2) && (LPM_CONF_ENABLE != 0) - NRSRAM (RWX) : ORIGIN = NRSRAM_START, LENGTH = NRSRAM_LEN + FLASH_FW (rx) : ORIGIN = CC2538_DEV_FLASH_ADDR, + LENGTH = CC2538_DEV_FLASH_SIZE - FLASH_CCA_SIZE + FLASH_CCA (RX) : ORIGIN = FLASH_CCA_ADDR, LENGTH = FLASH_CCA_SIZE + + /* + * If PM2 is enabled, then the PM2 SRAM limitations apply, i.e. the + * regular-leakage SRAM is a non-retention SRAM and the low-leakage SRAM is + * a full-retention SRAM. + * Else, the data in the regular-leakage SRAM is always retained, so there + * are virtually a non-retention SRAM with a size of 0 bytes and a + * full-retention SRAM spanning the whole SRAM, which is more convenient to + * use. + */ +#if LPM_CONF_ENABLE && LPM_CONF_MAX_PM >= 2 + NRSRAM (RWX) : ORIGIN = CC2538_DEV_RLSRAM_ADDR, + LENGTH = CC2538_DEV_RLSRAM_SIZE + FRSRAM (RWX) : ORIGIN = CC2538_DEV_LLSRAM_ADDR, + LENGTH = CC2538_DEV_LLSRAM_SIZE +#else + NRSRAM (RWX) : ORIGIN = CC2538_DEV_RLSRAM_ADDR, LENGTH = 0 + FRSRAM (RWX) : ORIGIN = CC2538_DEV_SRAM_ADDR, LENGTH = CC2538_DEV_SRAM_SIZE #endif - SRAM (RWX) : ORIGIN = SRAM_START, LENGTH = SRAM_LEN } SECTIONS @@ -78,25 +68,25 @@ SECTIONS *(.text*) *(.rodata*) _etext = .; - } > FLASH= 0 + } > FLASH_FW= 0 .socdata (NOLOAD) : { *(.udma_channel_control_table) - } > SRAM + } > FRSRAM .data : ALIGN(4) { _data = .; *(.data*) _edata = .; - } > SRAM AT > FLASH + } > FRSRAM AT > FLASH_FW _ldata = LOADADDR(.data); .ARM.exidx : { *(.ARM.exidx*) - } > FLASH + } > FLASH_FW .bss : { @@ -104,21 +94,19 @@ SECTIONS *(.bss*) *(COMMON) _ebss = .; - } > SRAM + } > FRSRAM .stack (NOLOAD) : { *(.stack) - } > SRAM + } > FRSRAM -#if (LPM_CONF_MAX_PM==2) && (LPM_CONF_ENABLE != 0) .nrdata (NOLOAD) : { _nrdata = .; *(.nrdata*) _enrdata = .; } > NRSRAM -#endif .flashcca : { diff --git a/cpu/cc2538/dev/cc2538-dev.h b/cpu/cc2538/dev/cc2538-dev.h new file mode 100644 index 000000000..7bb81f662 --- /dev/null +++ b/cpu/cc2538/dev/cc2538-dev.h @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2015, Benoît Thébaudeau + * 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 copyright holder 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 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. + */ +/** + * \addtogroup cc2538 + * @{ + * + * \defgroup cc2538-devices cc2538 family of devices + * + * Definitions for the cc2538 family of devices + * @{ + * + * \file + * Header file for the cc2538 devices definitions + */ +#ifndef CC2538_DEV_H_ +#define CC2538_DEV_H_ + +#include "contiki-conf.h" +#include "sys/cc.h" +/*----------------------------------------------------------------------------*/ +/** \name Bit-fields for the CC2538 devices features + * @{ + */ +#define CC2538_DEV_ID_M 0x0000000F /**< ID mask */ +#define CC2538_DEV_ID_S 0 /**< ID shift */ +#define CC2538_DEV_FLASH_SIZE_KB_M 0x0000FFF0 /**< kiB flash size mask */ +#define CC2538_DEV_FLASH_SIZE_KB_S 4 /**< kiB flash size shift */ +#define CC2538_DEV_SRAM_SIZE_KB_M 0x00FF0000 /**< kiB SRAM size mask */ +#define CC2538_DEV_SRAM_SIZE_KB_S 16 /**< kiB SRAM size shift */ +#define CC2538_DEV_AES_SHA_M 0x01000000 /**< Security HW AES/SHA */ +#define CC2538_DEV_ECC_RSA_M 0x02000000 /**< Security HW ECC/RSA */ +/** @} */ +/*----------------------------------------------------------------------------*/ +/** \name Macro defining a CC2538 device from its features + * @{ + */ +#define CC2538_DEV_DEF(id, flash_size_kb, sram_size_kb, aes_sha, ecc_rsa) \ + ((id) << CC2538_DEV_ID_S | (flash_size_kb) << CC2538_DEV_FLASH_SIZE_KB_S | \ + (sram_size_kb) << CC2538_DEV_SRAM_SIZE_KB_S | \ + ((aes_sha) ? CC2538_DEV_AES_SHA_M : 0) | \ + ((ecc_rsa) ? CC2538_DEV_ECC_RSA_M : 0)) +/** @} */ +/*----------------------------------------------------------------------------*/ +/** \name Available CC2538 devices + * @{ + */ +#define CC2538_DEV_CC2538SF53 CC2538_DEV_DEF(0, 512, 32, 1, 1) +#define CC2538_DEV_CC2538SF23 CC2538_DEV_DEF(1, 256, 32, 1, 1) +#define CC2538_DEV_CC2538NF53 CC2538_DEV_DEF(2, 512, 32, 1, 0) +#define CC2538_DEV_CC2538NF23 CC2538_DEV_DEF(3, 256, 32, 1, 0) +#define CC2538_DEV_CC2538NF11 CC2538_DEV_DEF(4, 128, 16, 1, 0) +/** @} */ +/*----------------------------------------------------------------------------*/ +/** \name CC2538 device used by Contiki + * @{ + */ +#ifdef CC2538_DEV_CONF +#define CC2538_DEV CC2538_DEV_CONF +#else +#define CC2538_DEV CC2538_DEV_CC2538SF53 +#endif +/** @} */ +/*----------------------------------------------------------------------------*/ +/** \name Features of the CC2538 device used by Contiki + * @{ + */ +/** Flash address */ +#define CC2538_DEV_FLASH_ADDR 0x00200000 +/** Flash size in bytes */ +#define CC2538_DEV_FLASH_SIZE (((CC2538_DEV & CC2538_DEV_FLASH_SIZE_KB_M) >> \ + CC2538_DEV_FLASH_SIZE_KB_S) << 10) +/** SRAM (non-retention + low-leakage) address */ +#define CC2538_DEV_SRAM_ADDR (CC2538_DEV_RLSRAM_SIZE ? \ + CC2538_DEV_RLSRAM_ADDR : \ + CC2538_DEV_LLSRAM_ADDR) +/** SRAM (non-retention + low-leakage) size in bytes */ +#define CC2538_DEV_SRAM_SIZE (((CC2538_DEV & CC2538_DEV_SRAM_SIZE_KB_M) >> \ + CC2538_DEV_SRAM_SIZE_KB_S) << 10) +/** Regular-leakage SRAM address */ +#define CC2538_DEV_RLSRAM_ADDR 0x20000000 +/** Regular-leakage SRAM size in bytes */ +#define CC2538_DEV_RLSRAM_SIZE (CC2538_DEV_SRAM_SIZE - CC2538_DEV_LLSRAM_SIZE) +/** Low-leakage SRAM address */ +#define CC2538_DEV_LLSRAM_ADDR 0x20004000 +/** Low-leakage SRAM size in bytes */ +#define CC2538_DEV_LLSRAM_SIZE MIN(CC2538_DEV_SRAM_SIZE, 16384) +/** Security HW AES/SHA */ +#define CC2538_DEV_AES_SHA (!!(CC2538_DEV & CC2538_DEV_AES_SHA_M)) +/** Security HW ECC/RSA */ +#define CC2538_DEV_ECC_RSA (!!(CC2538_DEV & CC2538_DEV_ECC_RSA_M)) +/** @} */ + +#endif /* CC2538_DEV_H_ */ + +/** + * @} + * @} + */ diff --git a/cpu/cc2538/dev/flash-cca.h b/cpu/cc2538/dev/flash-cca.h index 2dff2978b..bbd5074be 100644 --- a/cpu/cc2538/dev/flash-cca.h +++ b/cpu/cc2538/dev/flash-cca.h @@ -48,8 +48,18 @@ #ifndef FLASH_CCA_H_ #define FLASH_CCA_H_ +#include "dev/cc2538-dev.h" + #include /*---------------------------------------------------------------------------*/ +/** \name Flash lock bit page and CCA location + * @{ + */ +#define FLASH_CCA_ADDR (CC2538_DEV_FLASH_ADDR + CC2538_DEV_FLASH_SIZE - \ + FLASH_CCA_SIZE) /**< Address */ +#define FLASH_CCA_SIZE 0x0000002C /**< Size in bytes */ +/** @} */ +/*---------------------------------------------------------------------------*/ /** \name Bootloader backdoor configuration bit fields * @{ */ diff --git a/platform/cc2538dk/contiki-conf.h b/platform/cc2538dk/contiki-conf.h index 7d5924de4..ddc3e3746 100644 --- a/platform/cc2538dk/contiki-conf.h +++ b/platform/cc2538dk/contiki-conf.h @@ -57,21 +57,6 @@ typedef uint32_t rtimer_clock_t; #define FLASH_CCA_CONF_BOOTLDR_BACKDOOR_ACTIVE_HIGH 0 /**< A logic low level activates the boot loader */ #endif /** @} */ - -/*---------------------------------------------------------------------------*/ -/** - * \name Flash Memory configuration - * - * @{ - */ -#ifndef FLASH_CONF_ORIGIN -#define FLASH_CONF_ORIGIN 0x00200000 -#endif - -#ifndef FLASH_CONF_SIZE -#define FLASH_CONF_SIZE 0x00080000 /* 512 KiB */ -#endif -/** @} */ /*---------------------------------------------------------------------------*/ /** * \name Watchdog Timer configuration diff --git a/platform/remote/contiki-conf.h b/platform/remote/contiki-conf.h index 10e689cdf..e5acdcb5d 100644 --- a/platform/remote/contiki-conf.h +++ b/platform/remote/contiki-conf.h @@ -57,21 +57,6 @@ typedef uint32_t rtimer_clock_t; #define FLASH_CCA_CONF_BOOTLDR_BACKDOOR_ACTIVE_HIGH 0 /**< A logic low level activates the boot loader */ #endif /** @} */ - -/*---------------------------------------------------------------------------*/ -/** - * \name Flash Memory configuration - * - * @{ - */ -#ifndef FLASH_CONF_ORIGIN -#define FLASH_CONF_ORIGIN 0x00200000 -#endif - -#ifndef FLASH_CONF_SIZE -#define FLASH_CONF_SIZE 0x00080000 /* 512 KiB */ -#endif -/** @} */ /*---------------------------------------------------------------------------*/ /** * \name Watchdog Timer configuration From efb4b858e24de48823be8c7ef1dbdebb140bfbe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= Date: Thu, 25 Jun 2015 22:37:22 +0200 Subject: [PATCH 15/46] cc2538: Define the flash memory organization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Define the flash memory page and word sizes. These definitions are grouped with the flash lock bit page and CCA definitions, so flash-cca.h is renamed to flash.h. Signed-off-by: Benoît Thébaudeau --- cpu/cc2538/Makefile.cc2538 | 2 +- cpu/cc2538/dev/{flash-cca.h => flash.h} | 20 +++++++++++++------- cpu/cc2538/startup-gcc.c | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) rename cpu/cc2538/dev/{flash-cca.h => flash.h} (91%) diff --git a/cpu/cc2538/Makefile.cc2538 b/cpu/cc2538/Makefile.cc2538 index b555d7e8f..bb70be6b5 100644 --- a/cpu/cc2538/Makefile.cc2538 +++ b/cpu/cc2538/Makefile.cc2538 @@ -111,7 +111,7 @@ CUSTOM_RULE_LINK=1 LDGENFLAGS += $(addprefix -D,$(subst $(COMMA), ,$(DEFINES))) LDGENFLAGS += $(addprefix -I,$(SOURCEDIRS)) LDGENFLAGS += -imacros "contiki-conf.h" -imacros "dev/cc2538-dev.h" -LDGENFLAGS += -imacros "dev/flash-cca.h" +LDGENFLAGS += -imacros "dev/flash.h" LDGENFLAGS += -x c -P -E # NB: Assumes LDSCRIPT was not overridden and is in $(OBJECTDIR) diff --git a/cpu/cc2538/dev/flash-cca.h b/cpu/cc2538/dev/flash.h similarity index 91% rename from cpu/cc2538/dev/flash-cca.h rename to cpu/cc2538/dev/flash.h index bbd5074be..6af19723e 100644 --- a/cpu/cc2538/dev/flash-cca.h +++ b/cpu/cc2538/dev/flash.h @@ -36,22 +36,28 @@ * \addtogroup cc2538 * @{ * - * \defgroup cc2538-flash-cca cc2538 flash CCA + * \defgroup cc2538-flash cc2538 flash memory * - * Definitions for the cc2538 flash lock bit page and customer configuration - * area + * Definitions for the cc2538 flash memory * @{ * * \file - * Header file for the flash lock bit page and CCA definitions + * Header file for the flash memory definitions */ -#ifndef FLASH_CCA_H_ -#define FLASH_CCA_H_ +#ifndef FLASH_H_ +#define FLASH_H_ #include "dev/cc2538-dev.h" #include /*---------------------------------------------------------------------------*/ +/** \name Flash memory organization + * @{ + */ +#define FLASH_PAGE_SIZE 2048 +#define FLASH_WORD_SIZE 4 +/** @} */ +/*---------------------------------------------------------------------------*/ /** \name Flash lock bit page and CCA location * @{ */ @@ -95,7 +101,7 @@ typedef struct { } flash_cca_lock_page_t; /** @} */ -#endif /* FLASH_CCA_H_ */ +#endif /* FLASH_H_ */ /** * @} diff --git a/cpu/cc2538/startup-gcc.c b/cpu/cc2538/startup-gcc.c index 0c0da7104..35c2329d2 100644 --- a/cpu/cc2538/startup-gcc.c +++ b/cpu/cc2538/startup-gcc.c @@ -38,7 +38,7 @@ */ #include "contiki.h" #include "reg.h" -#include "flash-cca.h" +#include "flash.h" #include "sys-ctrl.h" #include "rom-util.h" From a191fcdb84bb49e84933eed7c925330f5a051624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= Date: Fri, 26 Jun 2015 00:31:15 +0200 Subject: [PATCH 16/46] cc2538: nvic: Simplify VTABLE configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The only thing needed for VTABLE is the absolute address of the vector table. Splitting it between code/SRAM base and offset complicates things and brings nothing. Consequently, this commit merges the NVIC VTABLE configurations into a single one giving the vector table absolute address. Signed-off-by: Benoît Thébaudeau --- cpu/cc2538/dev/nvic.c | 2 +- cpu/cc2538/dev/nvic.h | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/cpu/cc2538/dev/nvic.c b/cpu/cc2538/dev/nvic.c index 86e97c093..71e2414f8 100644 --- a/cpu/cc2538/dev/nvic.c +++ b/cpu/cc2538/dev/nvic.c @@ -57,7 +57,7 @@ nvic_init() interrupt_unpend = (uint32_t *)NVIC_UNPEND0; /* Provide our interrupt table to the NVIC */ - REG(SCB_VTABLE) = (NVIC_CONF_VTABLE_BASE + NVIC_CONF_VTABLE_OFFSET); + REG(SCB_VTABLE) = NVIC_VTABLE_ADDRESS; } /*---------------------------------------------------------------------------*/ void diff --git a/cpu/cc2538/dev/nvic.h b/cpu/cc2538/dev/nvic.h index b8c70b4a2..6c7563680 100644 --- a/cpu/cc2538/dev/nvic.h +++ b/cpu/cc2538/dev/nvic.h @@ -48,18 +48,13 @@ /** \name NVIC Constants and Configuration * @{ */ -#define NVIC_VTABLE_IN_SRAM 0x20000000 -#define NVIC_VTABLE_IN_CODE 0x00000000 - #define NVIC_INTERRUPT_ENABLED 0x00000001 #define NVIC_INTERRUPT_DISABLED 0x00000000 -#ifndef NVIC_CONF_VTABLE_BASE -#define NVIC_CONF_VTABLE_BASE NVIC_VTABLE_IN_CODE -#endif - -#ifndef NVIC_CONF_VTABLE_OFFSET -#define NVIC_CONF_VTABLE_OFFSET 0x200000 +#ifdef NVIC_CONF_VTABLE_ADDRESS +#define NVIC_VTABLE_ADDRESS NVIC_CONF_VTABLE_ADDRESS +#else +#define NVIC_VTABLE_ADDRESS 0x200000 #endif /** @} */ /*---------------------------------------------------------------------------*/ From 96dd24836c1057264a20f88c6b1de6b9db7304e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= Date: Wed, 1 Jul 2015 22:15:53 +0200 Subject: [PATCH 17/46] cc2538: Use &vectors instead of flash/.text start address MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current CC2538 linker script in Contiki places the vector table at the beginning of the flash memory / .text output section. However, this location is arbitrary (the only requirement is that the vector table is 512-byte aligned), and custom linker scripts may be used with Contiki, which means that Contiki may be used with a vector table placed elsewhere. Thus, using the flash/.text start address in the CCA and as the default NVIC VTABLE value was wrong. This commit rather uses the address of the vectors[] array from startup-gcc.c, which makes it possible to freely move around the vector table without breaking anything or having to use a custom startup-gcc.c and to configure the NVIC driver for that. Moreover, referencing the vectors[] array naturally prevents it and its input section from being garbage-collected by the linker, so this commit also removes the now-unneeded "used" and "KEEP" keywords from the vector table. Signed-off-by: Benoît Thébaudeau --- cpu/cc2538/cc2538.lds | 2 +- cpu/cc2538/dev/nvic.h | 3 ++- cpu/cc2538/startup-gcc.c | 29 +++++++++++++---------------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/cpu/cc2538/cc2538.lds b/cpu/cc2538/cc2538.lds index a2dd0d209..60a37c796 100644 --- a/cpu/cc2538/cc2538.lds +++ b/cpu/cc2538/cc2538.lds @@ -64,7 +64,7 @@ SECTIONS .text : { _text = .; - KEEP(*(.vectors)) + *(.vectors) *(.text*) *(.rodata*) _etext = .; diff --git a/cpu/cc2538/dev/nvic.h b/cpu/cc2538/dev/nvic.h index 6c7563680..8f2f68259 100644 --- a/cpu/cc2538/dev/nvic.h +++ b/cpu/cc2538/dev/nvic.h @@ -54,7 +54,8 @@ #ifdef NVIC_CONF_VTABLE_ADDRESS #define NVIC_VTABLE_ADDRESS NVIC_CONF_VTABLE_ADDRESS #else -#define NVIC_VTABLE_ADDRESS 0x200000 +extern void(*const vectors[])(void); +#define NVIC_VTABLE_ADDRESS ((uint32_t)&vectors) #endif /** @} */ /*---------------------------------------------------------------------------*/ diff --git a/cpu/cc2538/startup-gcc.c b/cpu/cc2538/startup-gcc.c index 35c2329d2..d3d6ec401 100644 --- a/cpu/cc2538/startup-gcc.c +++ b/cpu/cc2538/startup-gcc.c @@ -94,22 +94,7 @@ void pka_isr(void); /* Allocate stack space */ static unsigned long stack[512] __attribute__ ((section(".stack"))); /*---------------------------------------------------------------------------*/ -/* Linker construct indicating .text section location */ -extern uint8_t _text[0]; -/*---------------------------------------------------------------------------*/ -__attribute__ ((section(".flashcca"), used)) -const flash_cca_lock_page_t __cca = { - FLASH_CCA_BOOTLDR_CFG, /* Boot loader backdoor configuration */ - FLASH_CCA_IMAGE_VALID, /* Image valid */ - &_text, /* Vector table located at the start of .text */ - /* Unlock all pages and debug */ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } -}; -/*---------------------------------------------------------------------------*/ -__attribute__ ((section(".vectors"), used)) +__attribute__((__section__(".vectors"))) void(*const vectors[])(void) = { (void (*)(void))((unsigned long)stack + sizeof(stack)), /* Stack pointer */ @@ -277,6 +262,18 @@ void(*const vectors[])(void) = default_handler, /* 162 MACTimer */ }; /*---------------------------------------------------------------------------*/ +__attribute__((__section__(".flashcca"), __used__)) +const flash_cca_lock_page_t flash_cca_lock_page = { + FLASH_CCA_BOOTLDR_CFG, /* Boot loader backdoor configuration */ + FLASH_CCA_IMAGE_VALID, /* Image valid */ + &vectors, /* Vector table */ + /* Unlock all pages and debug */ + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +}; +/*---------------------------------------------------------------------------*/ /* Linker constructs indicating .data and .bss segment locations */ extern uint8_t _ldata; extern uint8_t _data; From ee3ee049e44320d61f3d74f638cd572b2a55c16f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= Date: Wed, 1 Jul 2015 22:20:13 +0200 Subject: [PATCH 18/46] cc2538: Set the entry point to the CCA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No entry point was defined, so it defaulted to the beginning of the .text output section where the vector table is located by default in Contiki. Actually, the vector table may be located elsewhere, and the ROM-based boot loader first reads the CCA to find the vector table. Consequently, this commit sets the entry point to the CCA, which fixes both the entry point and the initial symbol reference, so this commit also removes the now-unneeded "__used__" and "KEEP" keywords from the CCA. Signed-off-by: Benoît Thébaudeau --- cpu/cc2538/cc2538.lds | 3 ++- cpu/cc2538/startup-gcc.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cpu/cc2538/cc2538.lds b/cpu/cc2538/cc2538.lds index 60a37c796..adb7f6ccd 100644 --- a/cpu/cc2538/cc2538.lds +++ b/cpu/cc2538/cc2538.lds @@ -59,6 +59,7 @@ MEMORY #endif } +ENTRY(flash_cca_lock_page) SECTIONS { .text : @@ -110,6 +111,6 @@ SECTIONS .flashcca : { - KEEP(*(.flashcca)) + *(.flashcca) } > FLASH_CCA } diff --git a/cpu/cc2538/startup-gcc.c b/cpu/cc2538/startup-gcc.c index d3d6ec401..d01aefa50 100644 --- a/cpu/cc2538/startup-gcc.c +++ b/cpu/cc2538/startup-gcc.c @@ -262,7 +262,7 @@ void(*const vectors[])(void) = default_handler, /* 162 MACTimer */ }; /*---------------------------------------------------------------------------*/ -__attribute__((__section__(".flashcca"), __used__)) +__attribute__((__section__(".flashcca"))) const flash_cca_lock_page_t flash_cca_lock_page = { FLASH_CCA_BOOTLDR_CFG, /* Boot loader backdoor configuration */ FLASH_CCA_IMAGE_VALID, /* Image valid */ From cbcf1262d6e4d410255c668263f6f978e7122a5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= Date: Tue, 17 Nov 2015 23:28:38 +0100 Subject: [PATCH 19/46] cc2538: upload: Support .bin not starting at beginning of flash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Depending on the linker script, the generated .bin file may start beyond the beginning of the flash memory. However, no target address was passed to cc2538-bsl.py by the upload make target, so it used the beginning of the flash memory in all cases. The load address of the lowest loadable output section is now passed to cc2538-bsl.py. The start address of the .text output section or the address of the _text symbol could have been used too, but this would not have been compatible with all the possible custom linker scripts. Signed-off-by: Benoît Thébaudeau --- platform/cc2538dk/Makefile.cc2538dk | 4 ++-- platform/remote/Makefile.remote | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/cc2538dk/Makefile.cc2538dk b/platform/cc2538dk/Makefile.cc2538dk index 5c3fd77ec..f962a0fa7 100644 --- a/platform/cc2538dk/Makefile.cc2538dk +++ b/platform/cc2538dk/Makefile.cc2538dk @@ -30,9 +30,9 @@ MODULES += core/net core/net/mac \ BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py -%.upload: %.bin +%.upload: %.bin %.elf ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - python $(BSL) -e -w -v $< + python $(BSL) -e -w -v -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) $< endif diff --git a/platform/remote/Makefile.remote b/platform/remote/Makefile.remote index a9acc1dbc..3d351bfdd 100644 --- a/platform/remote/Makefile.remote +++ b/platform/remote/Makefile.remote @@ -38,9 +38,9 @@ MODULES += core/net core/net/mac \ BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py -%.upload: %.bin +%.upload: %.bin %.elf ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - $(PYTHON) $(BSL) $(BSL_FLAGS) $< + $(PYTHON) $(BSL) $(BSL_FLAGS) -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) $< endif From 5d98cb71e2468be25738a4696e358ce55cd2017b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= Date: Sun, 12 Jul 2015 21:48:18 +0200 Subject: [PATCH 20/46] cc2538: Add support for Coffee MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Coffee is placed by default at the beginning of the flash memory, right before the firmware. This avoids the memory gaps that there could be before and after Coffee if it were placed after the firmware, because it is unlikely that the end of the firmware is aligned with a flash page boundary, and the CCA is not flash-page-aligned. Thanks to that, Coffee is also always in the same flash area if its size remains unchanged, even if the firmware changes, which makes it possible to keep the Coffee files when reprogramming the firmware after a partial flash erase command. The default configuration of Coffee is set to use sensible values for a typical usage on this SoC, i.e. for sensor data logging. The default size of Coffee is set to 0 in order not to waste flash if Coffee is unused. COFFEE_CONF_CUSTOM_PORT can be defined to a header file to be used with "#include" in order to override the default CC2538 port of Coffee. This makes it possible to use Coffee with an external memory device rather than with the internal flash memory, without having to alter the Contiki files. Signed-off-by: Benoît Thébaudeau --- cpu/cc2538/Makefile.cc2538 | 3 +- cpu/cc2538/cc2538.lds | 4 +- cpu/cc2538/cfs-coffee-arch.c | 144 +++++++++++++++++++++++++++ cpu/cc2538/cfs-coffee-arch.h | 182 +++++++++++++++++++++++++++++++++++ platform/cc2538dk/README.md | 1 + platform/remote/README.md | 1 + 6 files changed, 332 insertions(+), 3 deletions(-) create mode 100644 cpu/cc2538/cfs-coffee-arch.c create mode 100644 cpu/cc2538/cfs-coffee-arch.h diff --git a/cpu/cc2538/Makefile.cc2538 b/cpu/cc2538/Makefile.cc2538 index bb70be6b5..873bf9779 100644 --- a/cpu/cc2538/Makefile.cc2538 +++ b/cpu/cc2538/Makefile.cc2538 @@ -60,6 +60,7 @@ CONTIKI_CPU_SOURCEFILES += ecc-curve.c CONTIKI_CPU_SOURCEFILES += dbg.c ieee-addr.c CONTIKI_CPU_SOURCEFILES += slip-arch.c slip.c CONTIKI_CPU_SOURCEFILES += i2c.c cc2538-temp-sensor.c vdd3-sensor.c +CONTIKI_CPU_SOURCEFILES += cfs-coffee.c cfs-coffee-arch.c DEBUG_IO_SOURCEFILES += dbg-printf.c dbg-snprintf.c dbg-sprintf.c strformat.c @@ -111,7 +112,7 @@ CUSTOM_RULE_LINK=1 LDGENFLAGS += $(addprefix -D,$(subst $(COMMA), ,$(DEFINES))) LDGENFLAGS += $(addprefix -I,$(SOURCEDIRS)) LDGENFLAGS += -imacros "contiki-conf.h" -imacros "dev/cc2538-dev.h" -LDGENFLAGS += -imacros "dev/flash.h" +LDGENFLAGS += -imacros "dev/flash.h" -imacros "cfs-coffee-arch.h" LDGENFLAGS += -x c -P -E # NB: Assumes LDSCRIPT was not overridden and is in $(OBJECTDIR) diff --git a/cpu/cc2538/cc2538.lds b/cpu/cc2538/cc2538.lds index adb7f6ccd..ce90ebfa6 100644 --- a/cpu/cc2538/cc2538.lds +++ b/cpu/cc2538/cc2538.lds @@ -35,8 +35,8 @@ */ MEMORY { - FLASH_FW (rx) : ORIGIN = CC2538_DEV_FLASH_ADDR, - LENGTH = CC2538_DEV_FLASH_SIZE - FLASH_CCA_SIZE + FLASH_FW (rx) : ORIGIN = COFFEE_START + COFFEE_SIZE, + LENGTH = FLASH_CCA_ADDR - (COFFEE_START + COFFEE_SIZE) FLASH_CCA (RX) : ORIGIN = FLASH_CCA_ADDR, LENGTH = FLASH_CCA_SIZE /* diff --git a/cpu/cc2538/cfs-coffee-arch.c b/cpu/cc2538/cfs-coffee-arch.c new file mode 100644 index 000000000..6d3664f5b --- /dev/null +++ b/cpu/cc2538/cfs-coffee-arch.c @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2013, ADVANSEE - http://www.advansee.com/ + * 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 copyright holder 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 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. + */ +/** + * \addtogroup cc2538-cfs-coffee-arch + * @{ + * + * \file + * Module for the cc2538 Coffee port + */ +#include "contiki-conf.h" +#include "sys/cc.h" +#include "cfs/cfs-coffee.h" +#include "dev/cc2538-dev.h" +#include "dev/rom-util.h" +#include "dev/flash.h" +#include "dev/watchdog.h" +#include "cpu.h" +#include "cfs-coffee-arch.h" + +#include + +#ifndef COFFEE_CONF_CUSTOM_PORT +/*---------------------------------------------------------------------------*/ +#if !COFFEE_SECTOR_SIZE || COFFEE_SECTOR_SIZE % FLASH_PAGE_SIZE +#error COFFEE_SECTOR_SIZE must be a non-zero multiple of the flash page size +#endif +#if !COFFEE_PAGE_SIZE || COFFEE_SECTOR_SIZE % COFFEE_PAGE_SIZE +#error COFFEE_PAGE_SIZE must be a divisor of COFFEE_SECTOR_SIZE +#endif +#if COFFEE_PAGE_SIZE % FLASH_WORD_SIZE +#error COFFEE_PAGE_SIZE must be a multiple of the flash word size +#endif +#if COFFEE_START % FLASH_PAGE_SIZE +#error COFFEE_START must be aligned with a flash page boundary +#endif +#if COFFEE_SIZE % COFFEE_SECTOR_SIZE +#error COFFEE_SIZE must be a multiple of COFFEE_SECTOR_SIZE +#endif +#if COFFEE_SIZE / COFFEE_PAGE_SIZE > INT16_MAX +#error Too many Coffee pages for coffee_page_t +#endif +#if COFFEE_START < CC2538_DEV_FLASH_ADDR || \ + COFFEE_START + COFFEE_SIZE > FLASH_CCA_ADDR +#error Coffee does not fit in flash +#endif +/*---------------------------------------------------------------------------*/ +void +cfs_coffee_arch_erase(uint16_t sector) +{ + watchdog_periodic(); + INTERRUPTS_DISABLE(); + rom_util_page_erase(COFFEE_START + sector * COFFEE_SECTOR_SIZE, + COFFEE_SECTOR_SIZE); + INTERRUPTS_ENABLE(); +} +/*---------------------------------------------------------------------------*/ +void +cfs_coffee_arch_write(const void *buf, unsigned int size, cfs_offset_t offset) +{ + const uint32_t *src = buf; + uint32_t flash_addr = COFFEE_START + offset; + unsigned int align; + uint32_t word, len; + uint32_t page_buf[COFFEE_PAGE_SIZE / FLASH_WORD_SIZE]; + unsigned int i; + + if(size && (align = flash_addr & (FLASH_WORD_SIZE - 1))) { + len = MIN(FLASH_WORD_SIZE - align, size); + word = ~((*src & ((1 << (len << 3)) - 1)) << (align << 3)); + watchdog_periodic(); + INTERRUPTS_DISABLE(); + rom_util_program_flash(&word, flash_addr & ~(FLASH_WORD_SIZE - 1), + FLASH_WORD_SIZE); + INTERRUPTS_ENABLE(); + *(const uint8_t **)&src += len; + size -= len; + flash_addr += len; + } + + while(size >= FLASH_WORD_SIZE) { + len = MIN(size & ~(FLASH_WORD_SIZE - 1), COFFEE_PAGE_SIZE); + for(i = 0; i < len / FLASH_WORD_SIZE; i++) { + page_buf[i] = ~*src++; + } + watchdog_periodic(); + INTERRUPTS_DISABLE(); + rom_util_program_flash(page_buf, flash_addr, len); + INTERRUPTS_ENABLE(); + size -= len; + flash_addr += len; + } + + if(size) { + word = ~(*src & ((1 << (size << 3)) - 1)); + watchdog_periodic(); + INTERRUPTS_DISABLE(); + rom_util_program_flash(&word, flash_addr, FLASH_WORD_SIZE); + INTERRUPTS_ENABLE(); + } +} +/*---------------------------------------------------------------------------*/ +void +cfs_coffee_arch_read(void *buf, unsigned int size, cfs_offset_t offset) +{ + const uint8_t *src; + uint8_t *dst; + + watchdog_periodic(); + for(src = (const void *)(COFFEE_START + offset), dst = buf; size; size--) { + *dst++ = ~*src++; + } +} + +#endif /* COFFEE_CONF_CUSTOM_PORT */ + +/** @} */ diff --git a/cpu/cc2538/cfs-coffee-arch.h b/cpu/cc2538/cfs-coffee-arch.h new file mode 100644 index 000000000..9d53994e5 --- /dev/null +++ b/cpu/cc2538/cfs-coffee-arch.h @@ -0,0 +1,182 @@ +/* + * Copyright (c) 2013, ADVANSEE - http://www.advansee.com/ + * 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 copyright holder 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 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. + */ +/** + * \addtogroup cc2538 + * @{ + * + * \defgroup cc2538-cfs-coffee-arch cc2538 Coffee port module + * + * Module for the cc2538 Coffee port + * @{ + * + * \file + * Header file for the cc2538 Coffee port module + */ +#ifndef CFS_COFFEE_ARCH_H_ +#define CFS_COFFEE_ARCH_H_ + +#include "contiki-conf.h" +#include "cfs/cfs-coffee.h" +#include "dev/cc2538-dev.h" +#include "dev/flash.h" + +#include + +#ifdef COFFEE_CONF_CUSTOM_PORT +#include COFFEE_CONF_CUSTOM_PORT +#else +/*---------------------------------------------------------------------------*/ +/** \name Coffee port constants + * @{ + */ +/** Logical sector size */ +#ifdef COFFEE_CONF_SECTOR_SIZE +#define COFFEE_SECTOR_SIZE COFFEE_CONF_SECTOR_SIZE +#else +#define COFFEE_SECTOR_SIZE FLASH_PAGE_SIZE +#endif +/** Logical page size */ +#ifdef COFFEE_CONF_PAGE_SIZE +#define COFFEE_PAGE_SIZE COFFEE_CONF_PAGE_SIZE +#else +#define COFFEE_PAGE_SIZE (COFFEE_SECTOR_SIZE / 8) +#endif +/** Start offset of the file system */ +#ifdef COFFEE_CONF_START +#define COFFEE_START COFFEE_CONF_START +#else +#define COFFEE_START CC2538_DEV_FLASH_ADDR +#endif +/** Total size in bytes of the file system */ +#ifdef COFFEE_CONF_SIZE +#define COFFEE_SIZE COFFEE_CONF_SIZE +#else +#define COFFEE_SIZE 0 +#endif +/** Maximal filename length */ +#ifdef COFFEE_CONF_NAME_LENGTH +#define COFFEE_NAME_LENGTH COFFEE_CONF_NAME_LENGTH +#else +#define COFFEE_NAME_LENGTH 40 +#endif +/** Number of file cache entries */ +#ifdef COFFEE_CONF_MAX_OPEN_FILES +#define COFFEE_MAX_OPEN_FILES COFFEE_CONF_MAX_OPEN_FILES +#else +#define COFFEE_MAX_OPEN_FILES 5 +#endif +/** Number of file descriptor entries */ +#ifdef COFFEE_CONF_FD_SET_SIZE +#define COFFEE_FD_SET_SIZE COFFEE_CONF_FD_SET_SIZE +#else +#define COFFEE_FD_SET_SIZE 5 +#endif +/** Maximal amount of log table entries read in one batch */ +#ifdef COFFEE_CONF_LOG_TABLE_LIMIT +#define COFFEE_LOG_TABLE_LIMIT COFFEE_CONF_LOG_TABLE_LIMIT +#endif +/** Default reserved file size */ +#ifdef COFFEE_CONF_DYN_SIZE +#define COFFEE_DYN_SIZE COFFEE_CONF_DYN_SIZE +#else +#define COFFEE_DYN_SIZE (COFFEE_SECTOR_SIZE - 50) +#endif +/** Default micro-log size */ +#ifdef COFFEE_CONF_LOG_SIZE +#define COFFEE_LOG_SIZE COFFEE_CONF_LOG_SIZE +#endif +/** Whether Coffee will use micro logs */ +#ifdef COFFEE_CONF_MICRO_LOGS +#define COFFEE_MICRO_LOGS COFFEE_CONF_MICRO_LOGS +#else +#define COFFEE_MICRO_LOGS 0 +#endif +/** Whether files are expected to be appended to only */ +#ifdef COFFEE_CONF_APPEND_ONLY +#define COFFEE_APPEND_ONLY COFFEE_CONF_APPEND_ONLY +#else +#define COFFEE_APPEND_ONLY 1 +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name Coffee port macros + * @{ + */ +/** Erase */ +#define COFFEE_ERASE(sector) \ + cfs_coffee_arch_erase(sector) +/** Write */ +#define COFFEE_WRITE(buf, size, offset) \ + cfs_coffee_arch_write((buf), (size), (offset)) +/** Read */ +#define COFFEE_READ(buf, size, offset) \ + cfs_coffee_arch_read((buf), (size), (offset)) +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name Coffee port types + * @{ + */ +typedef int16_t coffee_page_t; /**< Page */ +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name Coffee port functions + * @{ + */ + +/** \brief Erases a device sector + * \param sector Sector to erase + */ +void cfs_coffee_arch_erase(uint16_t sector); + +/** \brief Writes a buffer to the device + * \param buf Pointer to the buffer + * \param size Byte size of the buffer + * \param offset Device offset to write to + */ +void cfs_coffee_arch_write(const void *buf, unsigned int size, + cfs_offset_t offset); + +/** \brief Reads from the device to a buffer + * \param buf Pointer to the buffer + * \param size Byte size of the buffer + * \param offset Device offset to read from + */ +void cfs_coffee_arch_read(void *buf, unsigned int size, cfs_offset_t offset); + +/** @} */ + +#endif /* COFFEE_CONF_CUSTOM_PORT */ +#endif /* CFS_COFFEE_ARCH_H_ */ + +/** + * @} + * @} + */ diff --git a/platform/cc2538dk/README.md b/platform/cc2538dk/README.md index 295777c8e..904ba7d7f 100644 --- a/platform/cc2538dk/README.md +++ b/platform/cc2538dk/README.md @@ -31,6 +31,7 @@ In terms of hardware support, the following drivers have been implemented: * ADC * Cryptoprocessor (AES-CCM-256, SHA-256) * Public Key Accelerator (ECDH, ECDSA) + * Flash-based port of Coffee * SmartRF06 EB and BB peripherals * LEDs * Buttons diff --git a/platform/remote/README.md b/platform/remote/README.md index 387591caa..19594be56 100644 --- a/platform/remote/README.md +++ b/platform/remote/README.md @@ -46,6 +46,7 @@ In terms of hardware support, the following drivers have been implemented: * ADC * Cryptoprocessor (AES-CCM-256, SHA-256) * Public Key Accelerator (ECDH, ECDSA) + * Flash-based port of Coffee * LEDs * Buttons * Internal/external 2.4GHz antenna switch controllable by SW. From 339559288a81188ad70ab9f822afd73802ba6e39 Mon Sep 17 00:00:00 2001 From: Billy Kozak Date: Wed, 23 Sep 2015 15:33:30 -0600 Subject: [PATCH 21/46] Ignore various build and temporary files Ignore: - .cooja - .swp (vim editor temporary files) - doc/latex/ - various build & temporary files generated in regression-tests --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index ca86d3acd..1421da289 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ obj_* symbols.* Makefile.target doc/html +doc/latex patches-* tools/tunslip tools/tunslip6 @@ -86,8 +87,14 @@ contiki-cc2530dk.lib *.d71 *.d81 +# Cooja Build Artifacts +*.cooja + #regression tests artifacts *.testlog +*.log.prog +regression-tests/[0-9][0-9]-*/report +regression-tests/[0-9][0-9]-*/org/ # rl78 build artifacts *.eval-adf7xxxmb4z From 673d1d103b8f5f9b17ce7fb716403015b60a16af Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 21 Nov 2015 10:23:15 +0100 Subject: [PATCH 22/46] JN516x: minor fixes --- examples/jn516x/rpl/border-router/slip-bridge.c | 1 - platform/jn516x/dev/micromac-radio.c | 17 +++++++++++------ platform/jn516x/dev/rtimer-arch.h | 5 +++-- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/examples/jn516x/rpl/border-router/slip-bridge.c b/examples/jn516x/rpl/border-router/slip-bridge.c index e79f80990..a2721facd 100644 --- a/examples/jn516x/rpl/border-router/slip-bridge.c +++ b/examples/jn516x/rpl/border-router/slip-bridge.c @@ -121,7 +121,6 @@ output(void) } else { PRINTF("SUT: %u\n", uip_len); slip_send(); - printf("\n"); } return 0; } diff --git a/platform/jn516x/dev/micromac-radio.c b/platform/jn516x/dev/micromac-radio.c index 97e481eab..7c4f6132b 100644 --- a/platform/jn516x/dev/micromac-radio.c +++ b/platform/jn516x/dev/micromac-radio.c @@ -327,7 +327,8 @@ init(void) return 0; } else { rx_frame_buffer = &input_array[put_index]; - } input_frame_buffer = rx_frame_buffer; + } + input_frame_buffer = rx_frame_buffer; process_start(µmac_radio_process, NULL); @@ -361,7 +362,8 @@ on(void) ); } else { missed_radio_on_request = 1; - } ENERGEST_ON(ENERGEST_TYPE_LISTEN); + } + ENERGEST_ON(ENERGEST_TYPE_LISTEN); listen_on = 1; return 1; } @@ -436,7 +438,8 @@ transmit(unsigned short payload_len) RIMESTATS_ADD(noacktx); } else { ret = RADIO_TX_ERR; - } return ret; + } + return ret; } /*---------------------------------------------------------------------------*/ static int @@ -452,8 +455,8 @@ prepare(const void *payload, unsigned short payload_len) } if(payload_len > 127 || payload == NULL) { return 1; - /* Copy payload to (soft) Ttx buffer */ } + /* Copy payload to (soft) Ttx buffer */ memcpy(tx_frame_buffer.uPayload.au8Byte, payload, payload_len); i = payload_len; #if CRC_SW @@ -563,6 +566,7 @@ read(void *buf, unsigned short bufsize) len = input_frame_buffer->u8PayloadLength; if(len <= CHECKSUM_LEN) { + input_frame_buffer->u8PayloadLength = 0; return 0; } else { len -= CHECKSUM_LEN; @@ -599,8 +603,9 @@ read(void *buf, unsigned short bufsize) } } else { len = 0; - /* Disable further read attempts */ - } input_frame_buffer->u8PayloadLength = 0; + } + /* Disable further read attempts */ + input_frame_buffer->u8PayloadLength = 0; } return len; diff --git a/platform/jn516x/dev/rtimer-arch.h b/platform/jn516x/dev/rtimer-arch.h index ec7211262..7e7ad5138 100644 --- a/platform/jn516x/dev/rtimer-arch.h +++ b/platform/jn516x/dev/rtimer-arch.h @@ -49,8 +49,9 @@ #define RTIMER_ARCH_SECOND (F_CPU / 2) #endif -#define US_TO_RTIMERTICKS(D) ((int64_t)(D) << 4) -#define RTIMERTICKS_TO_US(T) ((int64_t)(T) >> 4) +#define US_TO_RTIMERTICKS(D) ((int64_t)(D) << 4) +#define RTIMERTICKS_TO_US(T) ((int64_t)(T) >> 4) +#define RTIMERTICKS_TO_US_64(T) RTIMERTICKS_TO_US(T) rtimer_clock_t rtimer_arch_now(void); From e2cf8f9868ad0f822c2905482743eaed27be2b36 Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Mon, 23 Nov 2015 13:57:11 +0100 Subject: [PATCH 23/46] Made ContikiMAC more configurable (on uknoblic behalf) --- core/net/mac/contikimac/contikimac.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/core/net/mac/contikimac/contikimac.c b/core/net/mac/contikimac/contikimac.c index 549d690bc..cd022d899 100644 --- a/core/net/mac/contikimac/contikimac.c +++ b/core/net/mac/contikimac/contikimac.c @@ -106,7 +106,11 @@ static int we_are_receiving_burst = 0; /* INTER_PACKET_DEADLINE is the maximum time a receiver waits for the next packet of a burst when FRAME_PENDING is set. */ +#ifdef CONTIKIMAC_CONF_INTER_PACKET_DEADLINE +#define INTER_PACKET_DEADLINE CONTIKIMAC_CONF_INTER_PACKET_DEADLINE +#else #define INTER_PACKET_DEADLINE CLOCK_SECOND / 32 +#endif /* ContikiMAC performs periodic channel checks. Each channel check consists of two or more CCA checks. CCA_COUNT_MAX is the number of @@ -166,12 +170,21 @@ static int we_are_receiving_burst = 0; /* MAX_SILENCE_PERIODS is the maximum amount of periods (a period is CCA_CHECK_TIME + CCA_SLEEP_TIME) that we allow to be silent before we turn of the radio. */ +#ifdef CONTIKIMAC_CONF_MAX_SILENCE_PERIODS +#define MAX_SILENCE_PERIODS CONTIKIMAC_CONF_MAX_SILENCE_PERIODS +#else #define MAX_SILENCE_PERIODS 5 +#endif /* MAX_NONACTIVITY_PERIODS is the maximum number of periods we allow the radio to be turned on without any packet being received, when WITH_FAST_SLEEP is enabled. */ +#ifdef CONTIKIMAC_CONF_MAX_NONACTIVITY_PERIODS +#define MAX_NONACTIVITY_PERIODS CONTIKIMAC_CONF_MAX_NONACTIVITY_PERIODS +#else #define MAX_NONACTIVITY_PERIODS 10 +#endif + @@ -181,7 +194,11 @@ static int we_are_receiving_burst = 0; /* GUARD_TIME is the time before the expected phase of a neighbor that a transmitted should begin transmitting packets. */ +#ifdef CONTIKIMAC_CONF_GUARD_TIME +#define GUARD_TIME CONTIKIMAC_CONF_GUARD_TIME +#else #define GUARD_TIME 10 * CHECK_TIME + CHECK_TIME_TX +#endif /* INTER_PACKET_INTERVAL is the interval between two successive packet transmissions */ #ifdef CONTIKIMAC_CONF_INTER_PACKET_INTERVAL @@ -201,7 +218,11 @@ static int we_are_receiving_burst = 0; /* MAX_PHASE_STROBE_TIME is the time that we transmit repeated packets to a neighbor for which we have a phase lock. */ +#ifdef CONTIKIMAC_CONF_MAX_PHASE_STROBE_TIME +#define MAX_PHASE_STROBE_TIME CONTIKIMAC_CONF_MAX_PHASE_STROBE_TIME +#else #define MAX_PHASE_STROBE_TIME RTIMER_ARCH_SECOND / 60 +#endif #ifdef CONTIKIMAC_CONF_SEND_SW_ACK #define CONTIKIMAC_SEND_SW_ACK CONTIKIMAC_CONF_SEND_SW_ACK From 80e29ad6a058677c5f12259b6b2e72a999e387d7 Mon Sep 17 00:00:00 2001 From: Jelmer Tiete Date: Sun, 8 Nov 2015 23:51:13 -0800 Subject: [PATCH 24/46] Pulled in cc2538-bsl submodule v2.0 (f1f070d) --- tools/cc2538-bsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cc2538-bsl b/tools/cc2538-bsl index 1223bfe03..f1f070df5 160000 --- a/tools/cc2538-bsl +++ b/tools/cc2538-bsl @@ -1 +1 @@ -Subproject commit 1223bfe03cdb31c439f1a51593808cdabc1939d2 +Subproject commit f1f070df5ef47cefcc172593f0be450f85d2245f From 97095c8bb58e70197d182ab5d2c1b0336e77e629 Mon Sep 17 00:00:00 2001 From: Jelmer Tiete Date: Mon, 9 Nov 2015 00:29:49 -0800 Subject: [PATCH 25/46] Updated makefiles of srf06 platform to support uploading via cc2538-bsl script --- platform/srf06-cc26xx/srf06/Makefile.srf06 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/platform/srf06-cc26xx/srf06/Makefile.srf06 b/platform/srf06-cc26xx/srf06/Makefile.srf06 index d94181927..3459cbadc 100644 --- a/platform/srf06-cc26xx/srf06/Makefile.srf06 +++ b/platform/srf06-cc26xx/srf06/Makefile.srf06 @@ -3,3 +3,19 @@ CFLAGS += -DBOARD_SMARTRF06EB=1 CONTIKI_TARGET_DIRS += srf06 BOARD_SOURCEFILES += leds-arch.c srf06-sensors.c button-sensor.c board.c + +PYTHON = python +BSL_FLAGS += -e -w -v + +ifdef PORT + BSL_FLAGS += -p $(PORT) +endif + +BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py + +%.upload: %.bin +ifeq ($(wildcard $(BSL)), ) + @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" +else + $(PYTHON) $(BSL) $(BSL_FLAGS) $< +endif From d01d53978c73ae8c0229db13002e041cfe3c57bb Mon Sep 17 00:00:00 2001 From: Jelmer Tiete Date: Mon, 9 Nov 2015 01:34:42 -0800 Subject: [PATCH 26/46] Removed forced upload speed for the RE-MOTE platform --- platform/remote/Makefile.remote | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/remote/Makefile.remote b/platform/remote/Makefile.remote index 3d351bfdd..fc530967c 100644 --- a/platform/remote/Makefile.remote +++ b/platform/remote/Makefile.remote @@ -5,7 +5,7 @@ ifndef CONTIKI endif PYTHON = python -BSL_FLAGS += -e -w -v -b 115200 +BSL_FLAGS += -e -w -v ifdef PORT BSL_FLAGS += -p $(PORT) From 9a8e749f6f4173540f577527965de9f8d83f28cf Mon Sep 17 00:00:00 2001 From: Jelmer Tiete Date: Mon, 9 Nov 2015 02:10:33 -0800 Subject: [PATCH 27/46] Updated cc26xx Readme to mention serial upload script --- platform/srf06-cc26xx/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/srf06-cc26xx/README.md b/platform/srf06-cc26xx/README.md index 1e7226997..77bfe73cb 100644 --- a/platform/srf06-cc26xx/README.md +++ b/platform/srf06-cc26xx/README.md @@ -102,7 +102,10 @@ To use the port you need: as a submodule when you clone Contiki. * TI's CC13xxware sources. The correct version will be installed automatically as a submodule when you clone Contiki. -* Software to program the nodes. Use TI's SmartRF Flash Programmer +* Contiki can automatically upload firmware to the nodes over serial with the + included [cc2538-bsl script](https://github.com/JelmerT/cc2538-bsl). + Note that uploading over serial doesn't work for the Sensortag, you can use + TI's SmartRF Flash Programmer in this case. * A toolchain to build firmware: The port has been developed and tested with GNU Tools for ARM Embedded Processors . The port was developed and tested using this version: From 6a40a4b7491abd3854b7f94959f6b38d1d0378ec Mon Sep 17 00:00:00 2001 From: Jelmer Tiete Date: Mon, 9 Nov 2015 14:36:13 -0800 Subject: [PATCH 28/46] Updated cc2538-bsl submodule to 6185d8b, small bugfix --- tools/cc2538-bsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cc2538-bsl b/tools/cc2538-bsl index f1f070df5..6185d8b16 160000 --- a/tools/cc2538-bsl +++ b/tools/cc2538-bsl @@ -1 +1 @@ -Subproject commit f1f070df5ef47cefcc172593f0be450f85d2245f +Subproject commit 6185d8b16f10047053fd57000a552340273d7d85 From 715946ece30a1b3aeafb30484cd7c2f72ea0db3f Mon Sep 17 00:00:00 2001 From: Jelmer Tiete Date: Mon, 9 Nov 2015 15:36:17 -0800 Subject: [PATCH 29/46] Restructured cc26xx readme, included use of .upload and PORT variable. Added sleepy demo example to examples section. --- platform/srf06-cc26xx/README.md | 106 +++++++++++++++++--------------- 1 file changed, 55 insertions(+), 51 deletions(-) diff --git a/platform/srf06-cc26xx/README.md b/platform/srf06-cc26xx/README.md index 77bfe73cb..f17d50a61 100644 --- a/platform/srf06-cc26xx/README.md +++ b/platform/srf06-cc26xx/README.md @@ -45,16 +45,64 @@ In terms of hardware support, the following drivers have been implemented: * Buzzer * External SPI flash +Requirements +============ +To use the port you need: + +* TI's CC26xxware sources. The correct version will be installed automatically + as a submodule when you clone Contiki. +* TI's CC13xxware sources. The correct version will be installed automatically + as a submodule when you clone Contiki. +* Contiki can automatically upload firmware to the nodes over serial with the + included [cc2538-bsl script](https://github.com/JelmerT/cc2538-bsl). + Note that uploading over serial doesn't work for the Sensortag, you can use + TI's SmartRF Flash Programmer in this case. +* A toolchain to build firmware: The port has been developed and tested with + GNU Tools for ARM Embedded Processors . + The port was developed and tested using this version: + + $ arm-none-eabi-gcc -v + [...] + gcc version 4.9.3 20141119 (release) [ARM/embedded-4_9-branch revision 218278] (GNU Tools for ARM Embedded Processors) + +* srecord (http://srecord.sourceforge.net/) +* You may also need other drivers so that the SmartRF can communicate with your +operating system and so that you can use the chip's UART for I/O. Please read +the section ["Drivers" in the CC2538DK readme](https://github.com/contiki-os/contiki/tree/master/platform/cc2538dk#drivers). + Examples ======== -The port comes with two examples: A very basic example and a mode advanced one -(web demo). The former demonstrates how to read sensors and how to use board -peripherals. It also demonstrates how to send out BLE advertisements. -The latter includes a CoAP server, an MQTT client which connects and publishes -to the IBM quickstart service, a net-based UART and lastly a web server that -can be used to configure the rest of the example. +The port comes with three examples: +- A very basic example which demonstrates how to read sensors and how to use board peripherals. It also demonstrates how to send out BLE advertisements. +- A more advanced one (web demo) which includes a CoAP server, an MQTT client which connects and publishes to the IBM quickstart service, a net-based UART and lastly a web server that can be used to configure the rest of the example. +- An example demonstrating a very sleepy node. -More details about those two examples can be found in their respective READMEs. +More details about those three examples can be found in their respective READMEs. + +Build your First Example +------------------------ +It is recommended to start with the `cc26xx-demo` example under `examples/cc26xx/`. This is a very simple example which will help you get familiar with the hardware and the environment. This example can be used for the Sensortag and SmartRF06 EB. + +Strictly speaking, to build it you need to run `make TARGET=srf06-cc26xx BOARD=srf06/cc26xx`. However, the example directories contain a `Makefile.target` which is automatically included and specifies the correct `TARGET=` argument. The `BOARD=` environment variable defaults to `srf06/cc26xx` (which is the SmartRF06 EB + CC26XXEM). Thus, for examples under the `cc26xx` directory, and when using the SmartRF06 EB, you can simply run `make`. + +Other options for the `BOARD` make variable are: + +* Srf06+CC26xxEM: Set `BOARD=srf06/cc26xx` +* Srf06+CC13xxEM: Set `BOARD=srf06/cc13xx` +* CC2650 tag: Set `BOARD=sensortag/cc2650` + +If the `BOARD` variable is unspecified, an image for the Srf06 CC26XXEM will be built. + +If you want to switch between building for one platform to the other, make certain to `make clean` before building for the new one, or you will get linker +errors. + +If you want to upload the compiled firmware to a node via the serial boot loader you need to manually enable the boot loader and then use `make cc26xx-demo.upload`. On the SmartRF06 board you enable the boot loader by resetting the board (EM RESET button) while holding the `select` button. (The boot loader backdoor needs to be enabled on the chip, and the chip needs to be configured correctly, for this to work. See README in the `tools/cc2538-bsl` directory for more info). The serial uploader script will automatically pick the first available serial port. If this is not the port where your node is connected, you can force the script to use a specific port by defining the `PORT` argument eg. `make cc26xx-demo.upload PORT=/dev/tty.usbserial` + +Note that uploading over serial doesn't work for the Sensortag, you can use TI's SmartRF Flash Programmer in this case. + +For the `cc26xx-demo`, the included readme describes in detail what the example does. + +To generate an assembly listing of the compiled firmware, run `make cc26xx-demo.lst`. This may be useful for debugging or optimizing your application code. To intersperse the C source code within the assembly listing, you must instruct the compiler to include debugging information by adding `CFLAGS += -g` to the project Makefile and rebuild by running `make clean cc26xx-demo.lst`. CC13xx/CC26xx Border Router over UART ===================================== @@ -94,31 +142,6 @@ that limit the size of the uIP buffer. Removing the two lines below from Do not forget to set the correct channel by defining `RF_CORE_CONF_CHANNEL` as required. -Requirements -============ -To use the port you need: - -* TI's CC26xxware sources. The correct version will be installed automatically - as a submodule when you clone Contiki. -* TI's CC13xxware sources. The correct version will be installed automatically - as a submodule when you clone Contiki. -* Contiki can automatically upload firmware to the nodes over serial with the - included [cc2538-bsl script](https://github.com/JelmerT/cc2538-bsl). - Note that uploading over serial doesn't work for the Sensortag, you can use - TI's SmartRF Flash Programmer in this case. -* A toolchain to build firmware: The port has been developed and tested with - GNU Tools for ARM Embedded Processors . - The port was developed and tested using this version: - - $ arm-none-eabi-gcc -v - [...] - gcc version 4.9.3 20141119 (release) [ARM/embedded-4_9-branch revision 218278] (GNU Tools for ARM Embedded Processors) - -* srecord (http://srecord.sourceforge.net/) -* You may also need other drivers so that the SmartRF can communicate with your -operating system and so that you can use the chip's UART for I/O. Please read -the section ["Drivers" in the CC2538DK readme](https://github.com/contiki-os/contiki/tree/master/platform/cc2538dk#drivers). - Filename conflicts between Contiki and CC26xxware ================================================= There is a file called `timer.c` both in Contiki as well as in CC26xxware. The @@ -127,25 +150,6 @@ start using it at some point, you will need to rename it: From `cpu/cc26xx/lib/cc26xxware/driverlib/timer.c` to `driverlib-timer.c` -Sensortag vs Srf06 -================== -To build for the sensortag, you will need to set the `BOARD` make variable as -follows: - -* Srf06+CC26xxEM: Set `BOARD=srf06/cc26xx` -* Srf06+CC13xxEM: Set `BOARD=srf06/cc13xx` -* CC2650 tag: Set `BOARD=sensortag/cc2650` - -You can do that by exporting `BOARD` as an environment variable, by adding it -to your Makefile or by adding it to your make command as an argument. - -If the `BOARD` variable is unspecified, an image for the Srf06 CC26XXEM will be -built. - -If you want to switch between building for one platform to the other, make -certain to `make clean` before building for the new one, or you will get linker -errors. - Sensortag UART usage (with or without the Debugger Devpack) =========================================================== There are two ways to get debugging (printf etc) output from the Sensortag. From 1efeda4283e9ee68fa18479b2f2e1fd8f97e5d4b Mon Sep 17 00:00:00 2001 From: Jelmer Tiete Date: Mon, 23 Nov 2015 11:28:34 -0800 Subject: [PATCH 30/46] Added the PORT make variable to the cc2538dk and Remote makefile. Fixed bug in these makefiles on OSX introduced in #1162 --- platform/cc2538dk/Makefile.cc2538dk | 9 ++++++++- platform/remote/Makefile.remote | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/platform/cc2538dk/Makefile.cc2538dk b/platform/cc2538dk/Makefile.cc2538dk index f962a0fa7..dfce1f375 100644 --- a/platform/cc2538dk/Makefile.cc2538dk +++ b/platform/cc2538dk/Makefile.cc2538dk @@ -28,11 +28,18 @@ MODULES += core/net core/net/mac \ core/net/mac/contikimac \ core/net/llsec +PYTHON = python +BSL_FLAGS += -e -w -v -a $$($(OBJDUMP) -h $*.elf | grep -B1 LOAD | grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | sort -g | head -1) + +ifdef PORT + BSL_FLAGS += -p $(PORT) +endif + BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py %.upload: %.bin %.elf ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - python $(BSL) -e -w -v -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) $< + $(PYTHON) $(BSL) $(BSL_FLAGS) $< endif diff --git a/platform/remote/Makefile.remote b/platform/remote/Makefile.remote index fc530967c..b91183b1e 100644 --- a/platform/remote/Makefile.remote +++ b/platform/remote/Makefile.remote @@ -36,11 +36,18 @@ MODULES += core/net core/net/mac \ core/net/mac/contikimac \ core/net/llsec +PYTHON = python +BSL_FLAGS += -e -w -v -a $$($(OBJDUMP) -h $*.elf | grep -B1 LOAD | grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | sort -g | head -1) + +ifdef PORT + BSL_FLAGS += -p $(PORT) +endif + BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py %.upload: %.bin %.elf ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - $(PYTHON) $(BSL) $(BSL_FLAGS) -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) $< + $(PYTHON) $(BSL) $(BSL_FLAGS) $< endif From d31ba8dfdc8e3560d72e98e47e110cc0c22fb7d4 Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Tue, 24 Nov 2015 10:21:23 +0100 Subject: [PATCH 31/46] Replaced tabs leftover in previous commit --- core/net/mac/contikimac/contikimac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/net/mac/contikimac/contikimac.c b/core/net/mac/contikimac/contikimac.c index cd022d899..b8fc35c02 100644 --- a/core/net/mac/contikimac/contikimac.c +++ b/core/net/mac/contikimac/contikimac.c @@ -107,7 +107,7 @@ static int we_are_receiving_burst = 0; /* INTER_PACKET_DEADLINE is the maximum time a receiver waits for the next packet of a burst when FRAME_PENDING is set. */ #ifdef CONTIKIMAC_CONF_INTER_PACKET_DEADLINE -#define INTER_PACKET_DEADLINE CONTIKIMAC_CONF_INTER_PACKET_DEADLINE +#define INTER_PACKET_DEADLINE CONTIKIMAC_CONF_INTER_PACKET_DEADLINE #else #define INTER_PACKET_DEADLINE CLOCK_SECOND / 32 #endif From e75bdd00e71c08b0ceef3ea8a6c4703b55723cc9 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Tue, 24 Nov 2015 13:08:12 +0000 Subject: [PATCH 32/46] Remove duplicate block and define the argument of -a using $(shell) --- platform/cc2538dk/Makefile.cc2538dk | 7 +++++-- platform/remote/Makefile.remote | 12 ++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/platform/cc2538dk/Makefile.cc2538dk b/platform/cc2538dk/Makefile.cc2538dk index dfce1f375..4dbeb6d03 100644 --- a/platform/cc2538dk/Makefile.cc2538dk +++ b/platform/cc2538dk/Makefile.cc2538dk @@ -29,7 +29,7 @@ MODULES += core/net core/net/mac \ core/net/llsec PYTHON = python -BSL_FLAGS += -e -w -v -a $$($(OBJDUMP) -h $*.elf | grep -B1 LOAD | grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | sort -g | head -1) +BSL_FLAGS += -e -w -v ifdef PORT BSL_FLAGS += -p $(PORT) @@ -41,5 +41,8 @@ BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - $(PYTHON) $(BSL) $(BSL_FLAGS) $< + $(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h $*.elf | grep -B1 LOAD | \ + grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \ + sort -g | head -1)) + $(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $< endif diff --git a/platform/remote/Makefile.remote b/platform/remote/Makefile.remote index b91183b1e..a261cb686 100644 --- a/platform/remote/Makefile.remote +++ b/platform/remote/Makefile.remote @@ -36,18 +36,14 @@ MODULES += core/net core/net/mac \ core/net/mac/contikimac \ core/net/llsec -PYTHON = python -BSL_FLAGS += -e -w -v -a $$($(OBJDUMP) -h $*.elf | grep -B1 LOAD | grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | sort -g | head -1) - -ifdef PORT - BSL_FLAGS += -p $(PORT) -endif - BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py %.upload: %.bin %.elf ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - $(PYTHON) $(BSL) $(BSL_FLAGS) $< + $(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h $*.elf | grep -B1 LOAD | \ + grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \ + sort -g | head -1)) + $(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $< endif From 27fd1a5eb8d748fa0f1e1f566758aeb96a0b912a Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Thu, 12 Nov 2015 16:29:41 +0100 Subject: [PATCH 33/46] Updated RE-Mote revision A support and cleaning up Zolertia platforms --- .gitignore | 2 +- examples/remote/Makefile.target | 1 - examples/z1/ipv6/z1-websense/Makefile.target | 1 - examples/z1/tutorials/Makefile | 15 - examples/{ => zolertia}/z1/Makefile | 2 +- .../z1/ipv6/z1-websense/Makefile | 2 +- .../z1/ipv6/z1-websense/README.md | 0 .../ipv6/z1-websense/example-sky-websense.csc | 0 .../z1/ipv6/z1-websense/project-conf.h | 0 .../z1/ipv6/z1-websense/websense-remote.c | 0 .../{ => zolertia}/z1/ipv6/z1-websense/wget.c | 0 .../{ => zolertia}/z1/ipv6/z1-websense/wget.h | 0 .../z1/ipv6/z1-websense/z1-websense.c | 0 examples/{ => zolertia}/z1/test-adxl345.c | 0 examples/{ => zolertia}/z1/test-battery.c | 0 .../{ => zolertia}/z1/test-light-ziglet.c | 0 examples/{ => zolertia}/z1/test-phidgets.c | 0 examples/{ => zolertia}/z1/test-potent.c | 0 examples/{ => zolertia}/z1/test-reed-sensor.c | 0 .../{ => zolertia}/z1/test-relay-phidget.c | 0 examples/{ => zolertia}/z1/test-sht11.c | 0 examples/{ => zolertia}/z1/test-sht25.c | 0 examples/{ => zolertia}/z1/test-tlc59116.c | 0 examples/{ => zolertia}/z1/test-tmp102.c | 0 examples/{remote => zolertia/zoul}/Makefile | 4 +- examples/zolertia/zoul/Makefile.target | 1 + examples/zolertia/zoul/cc1200-demo/Makefile | 8 + .../zolertia/zoul/cc1200-demo/Makefile.target | 1 + .../zoul/cc1200-demo/cc1200-demo.c} | 130 +++--- .../zoul/cc1200-demo/project-conf.h} | 80 ++-- .../zoul}/node-red/README.md | 6 +- .../zoul}/node-red/mqtt-remote-demo.json | 0 .../{remote => zolertia/zoul}/project-conf.h | 2 +- .../{remote => zolertia/zoul}/test-sht25.c | 27 +- .../{remote => zolertia/zoul}/test-tsl2563.c | 20 +- .../zoul/zoul-demo.c} | 50 +- platform/remote/Makefile.remote | 49 -- platform/remote/dev/board.h | 278 ----------- platform/z1/Makefile.common | 21 +- platform/zoul/Makefile.zoul | 98 ++++ platform/{remote => zoul}/README.md | 147 +++--- platform/{remote => zoul}/contiki-conf.h | 74 ++- platform/{remote => zoul}/contiki-main.c | 40 +- .../dev/adc-sensors.c} | 89 ++-- platform/zoul/dev/adc-sensors.h | 133 ++++++ platform/{remote => zoul}/dev/button-sensor.c | 4 +- platform/{remote => zoul}/dev/button-sensor.h | 14 +- platform/zoul/dev/cc1200-zoul-arch.c | 289 ++++++++++++ platform/{remote => zoul}/dev/led-strip.c | 6 +- platform/{remote => zoul}/dev/led-strip.h | 6 +- platform/{remote => zoul}/dev/leds-arch.c | 54 +-- platform/{remote => zoul}/dev/mp3-wtv020sd.c | 2 +- platform/{remote => zoul}/dev/mp3-wtv020sd.h | 5 +- platform/{remote => zoul}/dev/sht25.c | 6 +- platform/{remote => zoul}/dev/sht25.h | 4 +- platform/{remote => zoul}/dev/tmp102.c | 4 +- platform/{remote => zoul}/dev/tmp102.h | 8 +- platform/{remote => zoul}/dev/tsl2563.c | 8 +- platform/{remote => zoul}/dev/tsl2563.h | 8 +- .../dev/zoul-sensors.c} | 12 +- .../dev/zoul-sensors.h} | 25 +- platform/zoul/firefly/Makefile.firefly | 2 + platform/zoul/firefly/README.md | 28 ++ .../phidget-sensor.h => zoul/firefly/board.c} | 63 +-- platform/zoul/firefly/board.h | 305 +++++++++++++ platform/zoul/images/firefly.png | Bin 0 -> 231381 bytes platform/zoul/images/remote-back.png | Bin 0 -> 142352 bytes platform/zoul/images/remote-front.png | Bin 0 -> 122895 bytes platform/zoul/images/remote-pinout-back.png | Bin 0 -> 127223 bytes platform/zoul/images/remote-pinout-front.png | Bin 0 -> 119524 bytes platform/zoul/images/zoul-front.png | Bin 0 -> 133666 bytes platform/zoul/images/zoul-pinout-back.png | Bin 0 -> 134055 bytes platform/zoul/images/zoul-pinout-front.png | Bin 0 -> 98473 bytes platform/zoul/remote/Makefile.remote | 2 + platform/zoul/remote/README.md | 47 ++ .../{remote/dev => zoul/remote}/antenna-sw.c | 49 +- .../{remote/dev => zoul/remote}/antenna-sw.h | 34 +- platform/zoul/remote/board.c | 61 +++ platform/zoul/remote/board.h | 431 ++++++++++++++++++ platform/zoul/zolertia-zoul-cdc-acm.inf | 64 +++ .../18-compile-arm-ports/Makefile | 7 + tools/{z1 => zolertia}/license-bsl.txt | 0 .../motelist-zolertia} | 49 +- .../motelist-zolertia-macos} | 0 tools/{z1 => zolertia}/z1-bsl | 0 tools/{z1 => zolertia}/z1-bsl-nopic | 0 86 files changed, 2013 insertions(+), 865 deletions(-) delete mode 100644 examples/remote/Makefile.target delete mode 100644 examples/z1/ipv6/z1-websense/Makefile.target delete mode 100644 examples/z1/tutorials/Makefile rename examples/{ => zolertia}/z1/Makefile (96%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/Makefile (97%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/README.md (100%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/example-sky-websense.csc (100%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/project-conf.h (100%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/websense-remote.c (100%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/wget.c (100%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/wget.h (100%) rename examples/{ => zolertia}/z1/ipv6/z1-websense/z1-websense.c (100%) rename examples/{ => zolertia}/z1/test-adxl345.c (100%) rename examples/{ => zolertia}/z1/test-battery.c (100%) rename examples/{ => zolertia}/z1/test-light-ziglet.c (100%) rename examples/{ => zolertia}/z1/test-phidgets.c (100%) rename examples/{ => zolertia}/z1/test-potent.c (100%) rename examples/{ => zolertia}/z1/test-reed-sensor.c (100%) rename examples/{ => zolertia}/z1/test-relay-phidget.c (100%) rename examples/{ => zolertia}/z1/test-sht11.c (100%) rename examples/{ => zolertia}/z1/test-sht25.c (100%) rename examples/{ => zolertia}/z1/test-tlc59116.c (100%) rename examples/{ => zolertia}/z1/test-tmp102.c (100%) rename examples/{remote => zolertia/zoul}/Makefile (71%) create mode 100644 examples/zolertia/zoul/Makefile.target create mode 100644 examples/zolertia/zoul/cc1200-demo/Makefile create mode 100644 examples/zolertia/zoul/cc1200-demo/Makefile.target rename examples/{z1/tutorials/example-unicast-temp.c => zolertia/zoul/cc1200-demo/cc1200-demo.c} (50%) rename examples/{z1/tutorials/example-unicast2.c => zolertia/zoul/cc1200-demo/project-conf.h} (52%) rename examples/{remote => zolertia/zoul}/node-red/README.md (90%) rename examples/{remote => zolertia/zoul}/node-red/mqtt-remote-demo.json (100%) rename examples/{remote => zolertia/zoul}/project-conf.h (96%) rename examples/{remote => zolertia/zoul}/test-sht25.c (75%) rename examples/{remote => zolertia/zoul}/test-tsl2563.c (81%) rename examples/{remote/remote-demo.c => zolertia/zoul/zoul-demo.c} (84%) delete mode 100644 platform/remote/Makefile.remote delete mode 100644 platform/remote/dev/board.h create mode 100644 platform/zoul/Makefile.zoul rename platform/{remote => zoul}/README.md (66%) rename platform/{remote => zoul}/contiki-conf.h (81%) rename platform/{remote => zoul}/contiki-main.c (91%) rename platform/{remote/dev/phidget-sensor.c => zoul/dev/adc-sensors.c} (62%) create mode 100644 platform/zoul/dev/adc-sensors.h rename platform/{remote => zoul}/dev/button-sensor.c (98%) rename platform/{remote => zoul}/dev/button-sensor.h (89%) create mode 100644 platform/zoul/dev/cc1200-zoul-arch.c rename platform/{remote => zoul}/dev/led-strip.c (96%) rename platform/{remote => zoul}/dev/led-strip.h (95%) rename platform/{remote => zoul}/dev/leds-arch.c (62%) rename platform/{remote => zoul}/dev/mp3-wtv020sd.c (99%) rename platform/{remote => zoul}/dev/mp3-wtv020sd.h (97%) rename platform/{remote => zoul}/dev/sht25.c (94%) rename platform/{remote => zoul}/dev/sht25.h (97%) rename platform/{remote => zoul}/dev/tmp102.c (96%) rename platform/{remote => zoul}/dev/tmp102.h (94%) rename platform/{remote => zoul}/dev/tsl2563.c (94%) rename platform/{remote => zoul}/dev/tsl2563.h (95%) rename platform/{remote/dev/remote-sensors.c => zoul/dev/zoul-sensors.c} (84%) rename platform/{remote/dev/remote-sensors.h => zoul/dev/zoul-sensors.h} (79%) create mode 100644 platform/zoul/firefly/Makefile.firefly create mode 100644 platform/zoul/firefly/README.md rename platform/{remote/dev/phidget-sensor.h => zoul/firefly/board.c} (55%) create mode 100644 platform/zoul/firefly/board.h create mode 100755 platform/zoul/images/firefly.png create mode 100755 platform/zoul/images/remote-back.png create mode 100755 platform/zoul/images/remote-front.png create mode 100755 platform/zoul/images/remote-pinout-back.png create mode 100755 platform/zoul/images/remote-pinout-front.png create mode 100755 platform/zoul/images/zoul-front.png create mode 100755 platform/zoul/images/zoul-pinout-back.png create mode 100755 platform/zoul/images/zoul-pinout-front.png create mode 100644 platform/zoul/remote/Makefile.remote create mode 100644 platform/zoul/remote/README.md rename platform/{remote/dev => zoul/remote}/antenna-sw.c (62%) rename platform/{remote/dev => zoul/remote}/antenna-sw.h (75%) create mode 100644 platform/zoul/remote/board.c create mode 100644 platform/zoul/remote/board.h create mode 100755 platform/zoul/zolertia-zoul-cdc-acm.inf rename tools/{z1 => zolertia}/license-bsl.txt (100%) rename tools/{z1/motelist-z1 => zolertia/motelist-zolertia} (84%) rename tools/{z1/motelist-z1-macos => zolertia/motelist-zolertia-macos} (100%) rename tools/{z1 => zolertia}/z1-bsl (100%) rename tools/{z1 => zolertia}/z1-bsl-nopic (100%) diff --git a/.gitignore b/.gitignore index a4f765bc8..7261948c0 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,7 @@ *.c128 *.c64 *.cc2538dk -*.remote +*.zoul *.jn516x *.srf06-cc26xx *.ev-aducrf101mkxz diff --git a/examples/remote/Makefile.target b/examples/remote/Makefile.target deleted file mode 100644 index fe36b5539..000000000 --- a/examples/remote/Makefile.target +++ /dev/null @@ -1 +0,0 @@ -TARGET = remote diff --git a/examples/z1/ipv6/z1-websense/Makefile.target b/examples/z1/ipv6/z1-websense/Makefile.target deleted file mode 100644 index ff66066d4..000000000 --- a/examples/z1/ipv6/z1-websense/Makefile.target +++ /dev/null @@ -1 +0,0 @@ -TARGET = z1 diff --git a/examples/z1/tutorials/Makefile b/examples/z1/tutorials/Makefile deleted file mode 100644 index ad2fb57a8..000000000 --- a/examples/z1/tutorials/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -CONTIKI = ../../.. - -ifndef TARGET -TARGET=z1 -endif - -CONTIKI_PROJECT = test-phidgets blink test-adxl345 tmp102-test test-battery test-sht11 #test-potent -CONTIKI_SOURCEFILES += cc2420-arch.c sensors.c sht11.c -PROJECT_SOURCEFILES = i2cmaster.c tmp102.c adxl345.c battery-sensor.c sky-sensors.c #potentiometer-sensor.c -all: example-unicast2 - -CONTIKI_WITH_RIME = 1 -include $(CONTIKI)/Makefile.include - - diff --git a/examples/z1/Makefile b/examples/zolertia/z1/Makefile similarity index 96% rename from examples/z1/Makefile rename to examples/zolertia/z1/Makefile index 220f1f274..78b18d9dc 100644 --- a/examples/z1/Makefile +++ b/examples/zolertia/z1/Makefile @@ -15,6 +15,6 @@ CONTIKI_PROJECT += test-potent endif all: $(CONTIKI_PROJECT) -CONTIKI = ../.. +CONTIKI = ../../.. CONTIKI_WITH_RIME = 1 include $(CONTIKI)/Makefile.include diff --git a/examples/z1/ipv6/z1-websense/Makefile b/examples/zolertia/z1/ipv6/z1-websense/Makefile similarity index 97% rename from examples/z1/ipv6/z1-websense/Makefile rename to examples/zolertia/z1/ipv6/z1-websense/Makefile index bc6bd979c..45cd84bea 100644 --- a/examples/z1/ipv6/z1-websense/Makefile +++ b/examples/zolertia/z1/ipv6/z1-websense/Makefile @@ -1,6 +1,6 @@ all: z1-websense -CONTIKI=../../../.. +CONTIKI=../../../../.. SMALL=1 diff --git a/examples/z1/ipv6/z1-websense/README.md b/examples/zolertia/z1/ipv6/z1-websense/README.md similarity index 100% rename from examples/z1/ipv6/z1-websense/README.md rename to examples/zolertia/z1/ipv6/z1-websense/README.md diff --git a/examples/z1/ipv6/z1-websense/example-sky-websense.csc b/examples/zolertia/z1/ipv6/z1-websense/example-sky-websense.csc similarity index 100% rename from examples/z1/ipv6/z1-websense/example-sky-websense.csc rename to examples/zolertia/z1/ipv6/z1-websense/example-sky-websense.csc diff --git a/examples/z1/ipv6/z1-websense/project-conf.h b/examples/zolertia/z1/ipv6/z1-websense/project-conf.h similarity index 100% rename from examples/z1/ipv6/z1-websense/project-conf.h rename to examples/zolertia/z1/ipv6/z1-websense/project-conf.h diff --git a/examples/z1/ipv6/z1-websense/websense-remote.c b/examples/zolertia/z1/ipv6/z1-websense/websense-remote.c similarity index 100% rename from examples/z1/ipv6/z1-websense/websense-remote.c rename to examples/zolertia/z1/ipv6/z1-websense/websense-remote.c diff --git a/examples/z1/ipv6/z1-websense/wget.c b/examples/zolertia/z1/ipv6/z1-websense/wget.c similarity index 100% rename from examples/z1/ipv6/z1-websense/wget.c rename to examples/zolertia/z1/ipv6/z1-websense/wget.c diff --git a/examples/z1/ipv6/z1-websense/wget.h b/examples/zolertia/z1/ipv6/z1-websense/wget.h similarity index 100% rename from examples/z1/ipv6/z1-websense/wget.h rename to examples/zolertia/z1/ipv6/z1-websense/wget.h diff --git a/examples/z1/ipv6/z1-websense/z1-websense.c b/examples/zolertia/z1/ipv6/z1-websense/z1-websense.c similarity index 100% rename from examples/z1/ipv6/z1-websense/z1-websense.c rename to examples/zolertia/z1/ipv6/z1-websense/z1-websense.c diff --git a/examples/z1/test-adxl345.c b/examples/zolertia/z1/test-adxl345.c similarity index 100% rename from examples/z1/test-adxl345.c rename to examples/zolertia/z1/test-adxl345.c diff --git a/examples/z1/test-battery.c b/examples/zolertia/z1/test-battery.c similarity index 100% rename from examples/z1/test-battery.c rename to examples/zolertia/z1/test-battery.c diff --git a/examples/z1/test-light-ziglet.c b/examples/zolertia/z1/test-light-ziglet.c similarity index 100% rename from examples/z1/test-light-ziglet.c rename to examples/zolertia/z1/test-light-ziglet.c diff --git a/examples/z1/test-phidgets.c b/examples/zolertia/z1/test-phidgets.c similarity index 100% rename from examples/z1/test-phidgets.c rename to examples/zolertia/z1/test-phidgets.c diff --git a/examples/z1/test-potent.c b/examples/zolertia/z1/test-potent.c similarity index 100% rename from examples/z1/test-potent.c rename to examples/zolertia/z1/test-potent.c diff --git a/examples/z1/test-reed-sensor.c b/examples/zolertia/z1/test-reed-sensor.c similarity index 100% rename from examples/z1/test-reed-sensor.c rename to examples/zolertia/z1/test-reed-sensor.c diff --git a/examples/z1/test-relay-phidget.c b/examples/zolertia/z1/test-relay-phidget.c similarity index 100% rename from examples/z1/test-relay-phidget.c rename to examples/zolertia/z1/test-relay-phidget.c diff --git a/examples/z1/test-sht11.c b/examples/zolertia/z1/test-sht11.c similarity index 100% rename from examples/z1/test-sht11.c rename to examples/zolertia/z1/test-sht11.c diff --git a/examples/z1/test-sht25.c b/examples/zolertia/z1/test-sht25.c similarity index 100% rename from examples/z1/test-sht25.c rename to examples/zolertia/z1/test-sht25.c diff --git a/examples/z1/test-tlc59116.c b/examples/zolertia/z1/test-tlc59116.c similarity index 100% rename from examples/z1/test-tlc59116.c rename to examples/zolertia/z1/test-tlc59116.c diff --git a/examples/z1/test-tmp102.c b/examples/zolertia/z1/test-tmp102.c similarity index 100% rename from examples/z1/test-tmp102.c rename to examples/zolertia/z1/test-tmp102.c diff --git a/examples/remote/Makefile b/examples/zolertia/zoul/Makefile similarity index 71% rename from examples/remote/Makefile rename to examples/zolertia/zoul/Makefile index 289f7e330..d5e469498 100644 --- a/examples/remote/Makefile +++ b/examples/zolertia/zoul/Makefile @@ -1,9 +1,9 @@ DEFINES+=PROJECT_CONF_H=\"project-conf.h\" -CONTIKI_PROJECT = remote-demo test-tsl2563 test-sht25 +CONTIKI_PROJECT = zoul-demo test-tsl2563 test-sht25 CONTIKI_TARGET_SOURCEFILES += tsl2563.c sht25.c all: $(CONTIKI_PROJECT) -CONTIKI = ../.. +CONTIKI = ../../.. CONTIKI_WITH_RIME = 1 include $(CONTIKI)/Makefile.include diff --git a/examples/zolertia/zoul/Makefile.target b/examples/zolertia/zoul/Makefile.target new file mode 100644 index 000000000..75430a6e4 --- /dev/null +++ b/examples/zolertia/zoul/Makefile.target @@ -0,0 +1 @@ +TARGET = zoul diff --git a/examples/zolertia/zoul/cc1200-demo/Makefile b/examples/zolertia/zoul/cc1200-demo/Makefile new file mode 100644 index 000000000..4a1a9e4ac --- /dev/null +++ b/examples/zolertia/zoul/cc1200-demo/Makefile @@ -0,0 +1,8 @@ +DEFINES+=PROJECT_CONF_H=\"project-conf.h\" +CONTIKI_PROJECT = cc1200-demo + +all: $(CONTIKI_PROJECT) + +CONTIKI = ../../../.. +CONTIKI_WITH_RIME = 1 +include $(CONTIKI)/Makefile.include diff --git a/examples/zolertia/zoul/cc1200-demo/Makefile.target b/examples/zolertia/zoul/cc1200-demo/Makefile.target new file mode 100644 index 000000000..75430a6e4 --- /dev/null +++ b/examples/zolertia/zoul/cc1200-demo/Makefile.target @@ -0,0 +1 @@ +TARGET = zoul diff --git a/examples/z1/tutorials/example-unicast-temp.c b/examples/zolertia/zoul/cc1200-demo/cc1200-demo.c similarity index 50% rename from examples/z1/tutorials/example-unicast-temp.c rename to examples/zolertia/zoul/cc1200-demo/cc1200-demo.c index 4dcc45904..1262af1d1 100644 --- a/examples/z1/tutorials/example-unicast-temp.c +++ b/examples/zolertia/zoul/cc1200-demo/cc1200-demo.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Swedish Institute of Computer Science. + * Copyright (c) 2015, Zolertia - http://www.zolertia.com * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,106 +26,80 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * This file is part of the Contiki operating system. - * */ - +/*---------------------------------------------------------------------------*/ /** + * \addtogroup zoul-cc1200-demo Zoul on-board CC1200 RF transceiver test + * + * Demonstrates the use of the TI CC1200 RF transceiver on Sub-1GHz + * @{ + * * \file - * Best-effort single-hop unicast example + * Test file for the CC1200 demo + * * \author - * Adam Dunkels + * Antonio Lignan */ - #include "contiki.h" -#include "net/rime/rime.h" - -#include "dev/button-sensor.h" - +#include "cpu.h" +#include "sys/etimer.h" #include "dev/leds.h" +#include "dev/watchdog.h" +#include "dev/serial-line.h" +#include "dev/sys-ctrl.h" +#include "net/rime/broadcast.h" #include -#include "dev/i2cmaster.h" -#include "dev/tmp102.h" - -#if 1 -#define PRINTF(...) printf(__VA_ARGS__) -#else -#define PRINTF(...) -#endif - - -#define SENDER 205 -#define RECEIVER 200 - - -#define PRINTFDEBUG(...) - - -#define TMP102_READ_INTERVAL (CLOCK_SECOND/2) - - int16_t tempint; - uint16_t tempfrac; - int16_t raw; - uint16_t absraw; - int16_t sign; - char minus = ' '; - +#include /*---------------------------------------------------------------------------*/ -PROCESS(example_unicast_process, "Example unicast"); -AUTOSTART_PROCESSES(&example_unicast_process); +#define LOOP_PERIOD 2 +#define LOOP_INTERVAL (CLOCK_SECOND * LOOP_PERIOD) +#define BROADCAST_CHANNEL 129 +/*---------------------------------------------------------------------------*/ +static struct etimer et; +static uint16_t counter; /*---------------------------------------------------------------------------*/ static void -recv_uc(struct unicast_conn *c, const linkaddr_t *from) +broadcast_recv(struct broadcast_conn *c, const linkaddr_t *from) { - printf("unicast message received from %d.%d\n", - from->u8[0], from->u8[1]); + printf("*** Received %u bytes from %u:%u: '0x%04u' ", packetbuf_datalen(), + from->u8[0], from->u8[1], *(uint16_t *)packetbuf_dataptr()); + printf("%d - %u\n", (int8_t) packetbuf_attr(PACKETBUF_ATTR_RSSI), + packetbuf_attr(PACKETBUF_ATTR_LINK_QUALITY)); + leds_toggle(LEDS_GREEN); } -static const struct unicast_callbacks unicast_callbacks = {recv_uc}; -static struct unicast_conn uc; /*---------------------------------------------------------------------------*/ -PROCESS_THREAD(example_unicast_process, ev, data) +static const struct broadcast_callbacks bc_rx = { broadcast_recv }; +static struct broadcast_conn bc; +/*---------------------------------------------------------------------------*/ +PROCESS(cc1200_demo_process, "cc1200 demo process"); +AUTOSTART_PROCESSES(&cc1200_demo_process); +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(cc1200_demo_process, ev, data) { - PROCESS_EXITHANDLER(unicast_close(&uc);) - + PROCESS_EXITHANDLER(broadcast_close(&bc)) PROCESS_BEGIN(); + broadcast_open(&bc, BROADCAST_CHANNEL, &bc_rx); + + etimer_set(&et, LOOP_INTERVAL); - tmp102_init(); - linkaddr_t addr; - unicast_open(&uc, 133, &unicast_callbacks); - SENSORS_ACTIVATE(button_sensor); while(1) { - -PROCESS_WAIT_EVENT_UNTIL(ev==sensors_event && data == &button_sensor); - sign = 1; - - //PRINTFDEBUG ("Reading Temp...\n"); - raw = tmp102_read_temp_raw(); - - absraw = raw; - if (raw < 0) { // Perform 2C's if sensor returned negative data - absraw = (raw ^ 0xFFFF) + 1; - sign = -1; - } - tempint = (absraw >> 8) * sign; - tempfrac = ((absraw>>4) % 16) * 625; // Info in 1/10000 of degree - minus = ((tempint == 0) & (sign == -1)) ? '-' : ' ' ; - PRINTF ("Current Temp = %c%d.%04d\n", minus, tempint, tempfrac); - - - - char s[30]; - sprintf(s,"Temp is %c%d.%04d\n", minus, tempint, tempfrac); - printf("sending %s\n",s); - packetbuf_copyfrom(s, 30); - addr.u8[0] = RECEIVER; - addr.u8[1] = 0; - - unicast_send(&uc, &addr); + PROCESS_YIELD(); + if(ev == PROCESS_EVENT_TIMER) { + printf("Broadcast --> %u\n", counter); + leds_toggle(LEDS_RED); + packetbuf_copyfrom(&counter, sizeof(counter)); + broadcast_send(&bc); + counter++; + etimer_set(&et, LOOP_INTERVAL); + } } PROCESS_END(); } /*---------------------------------------------------------------------------*/ +/** + * @} + */ diff --git a/examples/z1/tutorials/example-unicast2.c b/examples/zolertia/zoul/cc1200-demo/project-conf.h similarity index 52% rename from examples/z1/tutorials/example-unicast2.c rename to examples/zolertia/zoul/cc1200-demo/project-conf.h index a58650722..66797e7d6 100644 --- a/examples/z1/tutorials/example-unicast2.c +++ b/examples/zolertia/zoul/cc1200-demo/project-conf.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Swedish Institute of Computer Science. + * Copyright (c) 2015, Zolertia - http://www.zolertia.com * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,64 +26,36 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * This file is part of the Contiki operating system. - * */ - +/*---------------------------------------------------------------------------*/ /** + * \addtogroup zoul-examples + * @{ + * + * \defgroup remote-cc1200-demo RE-Mote CC1200 RF transceiver test + * + * Demonstrates the use of the TI CC1200 RF transceiver on Sub-1GHz + * @{ + * * \file - * Best-effort single-hop unicast example + * Configuration file for the cc1200 demo + * * \author - * Adam Dunkels + * Antonio Lignan */ +#ifndef PROJECT_CONF_H_ +#define PROJECT_CONF_H_ -#include "contiki.h" -#include "net/rime/rime.h" +#undef NETSTACK_CONF_RADIO +#define NETSTACK_CONF_RADIO cc1200_driver +#define NETSTACK_CONF_RDC nullrdc_driver +#define CC1200_CONF_USE_GPIO2 0 +#define CC1200_CONF_USE_RX_WATCHDOG 0 +#define ANTENNA_SW_SELECT_DEF_CONF ANTENNA_SW_SELECT_SUBGHZ -#include "dev/button-sensor.h" +#endif /* PROJECT_CONF_H_ */ -#include "dev/leds.h" - -#include - -/*---------------------------------------------------------------------------*/ -PROCESS(example_unicast_process, "Example unicast"); -AUTOSTART_PROCESSES(&example_unicast_process); -/*---------------------------------------------------------------------------*/ -static void -recv_uc(struct unicast_conn *c, const linkaddr_t *from) -{ - printf("unicast message received from %d.%d\n", - from->u8[0], from->u8[1]); -} -static const struct unicast_callbacks unicast_callbacks = {recv_uc}; -static struct unicast_conn uc; -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(example_unicast_process, ev, data) -{ - PROCESS_EXITHANDLER(unicast_close(&uc);) - - PROCESS_BEGIN(); - - unicast_open(&uc, 199, &unicast_callbacks); - - while(1) { - static struct etimer et; - linkaddr_t addr; - - etimer_set(&et, CLOCK_SECOND); - - PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); - - //packetbuf_copyfrom("Enric Here!", 12); - //addr.u8[0] = 200; - //addr.u8[1] = 0; - //if(!linkaddr_cmp(&addr, &linkaddr_node_addr)) { - //unicast_send(&uc, &addr); - //} - - } - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/ +/** + * @} + * @} + */ diff --git a/examples/remote/node-red/README.md b/examples/zolertia/zoul/node-red/README.md similarity index 90% rename from examples/remote/node-red/README.md rename to examples/zolertia/zoul/node-red/README.md index 0e8fc7b74..f99458ac7 100644 --- a/examples/remote/node-red/README.md +++ b/examples/zolertia/zoul/node-red/README.md @@ -1,4 +1,4 @@ -Re-Mote + Node Red README +RE-Mote + Node Red README ======================== A very basic example of how to use MQTT-Demo + Mosquitto + Node Red @@ -10,9 +10,9 @@ Install Mosquitto Fire up a Re-Mote ----------------- -* Compile the MQTT demo example from `../../cc2538dk/mqtt-demo.c` following +* Compile the MQTT demo example from `../../../cc2538dk/mqtt-demo.c` following the instructions of the README.md therein. -* Program your Re-Mote. +* Program your RE-Mote. * If you are running mosquitto with `-v`, a few seconds later you should see the Re-Mote connect, subscribe and start publishing. diff --git a/examples/remote/node-red/mqtt-remote-demo.json b/examples/zolertia/zoul/node-red/mqtt-remote-demo.json similarity index 100% rename from examples/remote/node-red/mqtt-remote-demo.json rename to examples/zolertia/zoul/node-red/mqtt-remote-demo.json diff --git a/examples/remote/project-conf.h b/examples/zolertia/zoul/project-conf.h similarity index 96% rename from examples/remote/project-conf.h rename to examples/zolertia/zoul/project-conf.h index 1f2f9adf4..9ff57c953 100644 --- a/examples/remote/project-conf.h +++ b/examples/zolertia/zoul/project-conf.h @@ -33,7 +33,7 @@ * @{ * * \file - * Project specific configuration defines for the basic Re-Mote examples + * Project specific configuration defines for the basic RE-Mote examples */ #ifndef PROJECT_CONF_H_ #define PROJECT_CONF_H_ diff --git a/examples/remote/test-sht25.c b/examples/zolertia/zoul/test-sht25.c similarity index 75% rename from examples/remote/test-sht25.c rename to examples/zolertia/zoul/test-sht25.c index 3ff4316bd..bb403f61c 100644 --- a/examples/remote/test-sht25.c +++ b/examples/zolertia/zoul/test-sht25.c @@ -30,21 +30,30 @@ * */ /** + * \addtogroup zoul-examples + * @{ + * + * \defgroup zoul-sht25-test SHT25 temperature and humidity sensor test + * + * Demonstrates the use of the SHT25 digital temperature and humidity sensor + * @{ + * * \file * A quick program for testing the SHT25 temperature and humidity sensor * \author * Antonio Lignan */ +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/sht25.h" - -PROCESS(test_sht25_process, "SHT25 test"); -AUTOSTART_PROCESSES(&test_sht25_process); - +/*---------------------------------------------------------------------------*/ +PROCESS(remote_sht25_process, "SHT25 test"); +AUTOSTART_PROCESSES(&remote_sht25_process); +/*---------------------------------------------------------------------------*/ static struct etimer et; - -PROCESS_THREAD(test_sht25_process, ev, data) +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(remote_sht25_process, ev, data) { int16_t temperature, humidity; @@ -61,3 +70,9 @@ PROCESS_THREAD(test_sht25_process, ev, data) } PROCESS_END(); } +/*---------------------------------------------------------------------------*/ +/** + * @} + * @} + */ + diff --git a/examples/remote/test-tsl2563.c b/examples/zolertia/zoul/test-tsl2563.c similarity index 81% rename from examples/remote/test-tsl2563.c rename to examples/zolertia/zoul/test-tsl2563.c index 88f3cbe2d..11fa8933e 100644 --- a/examples/remote/test-tsl2563.c +++ b/examples/zolertia/zoul/test-tsl2563.c @@ -29,41 +29,41 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-examples + * \addtogroup zoul-examples * @{ * - * \defgroup remote-tsl2563-test Re-Mote TSL2563 light sensor test + * \defgroup zoul-tsl2563-test TSL2563 light sensor test * * Demonstrates the use of the TSL2563 digital ambient light sensor * @{ * * \file - * Driver for the Re-Mote external TSL2563 light sensor (Ziglet) + * Driver for the external TSL2563 light sensor * * \author * Antonio Lignan * Toni Lozano */ - +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/i2c.h" #include "dev/tsl2563.h" - +/*---------------------------------------------------------------------------*/ #if 1 #define PRINTF(...) printf(__VA_ARGS__) #else #define PRINTF(...) #endif - +/*---------------------------------------------------------------------------*/ #define SENSOR_READ_INTERVAL (CLOCK_SECOND / 2) - -PROCESS(test_process, "Test TSL2563 light ziglet process"); -AUTOSTART_PROCESSES(&test_process); +/*---------------------------------------------------------------------------*/ +PROCESS(remote_tsl2563_process, "TSL2563 test process"); +AUTOSTART_PROCESSES(&remote_tsl2563_process); /*---------------------------------------------------------------------------*/ static struct etimer et; /*---------------------------------------------------------------------------*/ -PROCESS_THREAD(test_process, ev, data) +PROCESS_THREAD(remote_tsl2563_process, ev, data) { PROCESS_BEGIN(); int light; diff --git a/examples/remote/remote-demo.c b/examples/zolertia/zoul/zoul-demo.c similarity index 84% rename from examples/remote/remote-demo.c rename to examples/zolertia/zoul/zoul-demo.c index 929726871..aabe38313 100644 --- a/examples/remote/remote-demo.c +++ b/examples/zolertia/zoul/zoul-demo.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/ + * Copyright (c) 2015, Zolertia - http://www.zolertia.com * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,15 +30,16 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ /** - * \addtogroup remote + * \addtogroup zoul * @{ * - * \defgroup remote-examples Re-Mote Example Projects + * \defgroup zoul-examples Zoul examples * @{ * - * \defgroup remote-demo Re-Mote Demo Project + * \defgroup zoul-demo Zoul demo application * - * Example project demonstrating the Re-Mote functionality + * Example project demonstrating the Zoul module on the RE-Mote and Firefly + * platforms. * * - Boot sequence: LEDs flashing (Red, then yellow, finally green) * @@ -54,13 +56,11 @@ * packet will toggle LEDs defined as LEDS_RF_RX * - Button : Keeping the button pressed will print a counter that * increments every BUTTON_PRESS_EVENT_INTERVAL ticks - * - TMP102 : Built-in digital temperature sensor, every LOOP_INTERVAL - * clock ticks a sensor reading will be taken * * @{ * * \file - * Example demonstrating the Re-Mote platform + * Example demonstrating the Zoul module on the RE-Mote & Firefly platforms */ #include "contiki.h" #include "cpu.h" @@ -69,13 +69,11 @@ #include "dev/leds.h" #include "dev/uart.h" #include "dev/button-sensor.h" -#include "dev/remote-sensors.h" +#include "dev/zoul-sensors.h" #include "dev/watchdog.h" #include "dev/serial-line.h" #include "dev/sys-ctrl.h" #include "net/rime/broadcast.h" -#include "dev/antenna-sw.h" -#include "dev/tmp102.h" #include #include @@ -94,10 +92,10 @@ /*---------------------------------------------------------------------------*/ static struct etimer et; static struct rtimer rt; -static uint16_t counter, temperature; +static uint16_t counter; /*---------------------------------------------------------------------------*/ -PROCESS(cc2538_demo_process, "cc2538 demo process"); -AUTOSTART_PROCESSES(&cc2538_demo_process); +PROCESS(zoul_demo_process, "Zoul demo process"); +AUTOSTART_PROCESSES(&zoul_demo_process); /*---------------------------------------------------------------------------*/ static void broadcast_recv(struct broadcast_conn *c, const linkaddr_t *from) @@ -116,7 +114,7 @@ rt_callback(struct rtimer *t, void *ptr) leds_off(LEDS_PERIODIC); } /*---------------------------------------------------------------------------*/ -PROCESS_THREAD(cc2538_demo_process, ev, data) +PROCESS_THREAD(zoul_demo_process, ev, data) { PROCESS_EXITHANDLER(broadcast_close(&bc)) @@ -125,15 +123,14 @@ PROCESS_THREAD(cc2538_demo_process, ev, data) counter = 0; broadcast_open(&bc, BROADCAST_CHANNEL, &bc_rx); - /* Enable antenna */ - antenna_sw_select(ANTENNA_SW_SELECT_INTERNAL); - + /* Configure the user button */ button_sensor.configure(BUTTON_SENSOR_CONFIG_TYPE_INTERVAL, BUTTON_PRESS_EVENT_INTERVAL); - tmp102_init(); + /* Configure the ADC ports */ + adc_sensors.configure(SENSORS_HW_INIT, ZOUL_SENSORS_ADC_ALL); - printf("Re-Mote test application, initial values:\n"); + printf("Zoul test application\n"); etimer_set(&et, LOOP_INTERVAL); @@ -153,14 +150,11 @@ PROCESS_THREAD(cc2538_demo_process, ev, data) printf("Temperature = %d mC\n", cc2538_temp_sensor.value(CC2538_SENSORS_VALUE_TYPE_CONVERTED)); - printf("Phidget ADC2 = %d raw\n", - phidget_sensor.value(PHIDGET_SENSORS_ADC2)); + printf("ADC1 = %d raw\n", + adc_sensors.value(ZOUL_SENSORS_ADC1)); - printf("Phidget ADC3 = %d raw\n", - phidget_sensor.value(PHIDGET_SENSORS_ADC3)); - - tmp102_read(&temperature); - printf("TMP102 sensor = %u mC\n", temperature); + printf("ADC3 = %d raw\n", + adc_sensors.value(ZOUL_SENSORS_ADC3)); etimer_set(&et, LOOP_INTERVAL); rtimer_set(&rt, RTIMER_NOW() + LEDS_OFF_HYSTERISIS, 1, @@ -170,11 +164,11 @@ PROCESS_THREAD(cc2538_demo_process, ev, data) if(data == &button_sensor) { if(button_sensor.value(BUTTON_SENSOR_VALUE_TYPE_LEVEL) == BUTTON_SENSOR_PRESSED_LEVEL) { - printf("Press\n"); + printf("Button pressed\n"); packetbuf_copyfrom(&counter, sizeof(counter)); broadcast_send(&bc); } else { - printf("Release\n"); + printf("...and released!\n"); } } } else if(ev == serial_line_event_message) { diff --git a/platform/remote/Makefile.remote b/platform/remote/Makefile.remote deleted file mode 100644 index a261cb686..000000000 --- a/platform/remote/Makefile.remote +++ /dev/null @@ -1,49 +0,0 @@ -# Remote platform makefile - -ifndef CONTIKI - $(error CONTIKI not defined! You must specify where CONTIKI resides!) -endif - -PYTHON = python -BSL_FLAGS += -e -w -v - -ifdef PORT - BSL_FLAGS += -p $(PORT) -endif - -CONTIKI_TARGET_DIRS = . dev - -CONTIKI_TARGET_SOURCEFILES += leds.c leds-arch.c -CONTIKI_TARGET_SOURCEFILES += contiki-main.c -CONTIKI_TARGET_SOURCEFILES += sensors.c remote-sensors.c -CONTIKI_TARGET_SOURCEFILES += button-sensor.c antenna-sw.c -CONTIKI_TARGET_SOURCEFILES += phidget-sensor.c tmp102.c - -CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES) - -CLEAN += *.remote - -### Unless the example dictates otherwise, build with code size optimisations -ifndef SMALL - SMALL = 1 -endif - -### Define the CPU directory -CONTIKI_CPU=$(CONTIKI)/cpu/cc2538 -include $(CONTIKI_CPU)/Makefile.cc2538 - -MODULES += core/net core/net/mac \ - core/net/mac/contikimac \ - core/net/llsec - -BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py - -%.upload: %.bin %.elf -ifeq ($(wildcard $(BSL)), ) - @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" -else - $(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h $*.elf | grep -B1 LOAD | \ - grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \ - sort -g | head -1)) - $(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $< -endif diff --git a/platform/remote/dev/board.h b/platform/remote/dev/board.h deleted file mode 100644 index 71c9b28c3..000000000 --- a/platform/remote/dev/board.h +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/ - * 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 copyright holder 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 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. - */ -/** \addtogroup remote - * @{ - * - * \defgroup remote-peripherals Re-Mote Peripherals - * - * Defines related to the Re-Mote - * - * This file provides connectivity information on LEDs, Buttons, UART and - * other Re-Mote peripherals - * - * This file can be used as the basis to configure other platforms using the - * cc2538 SoC. - * @{ - * - * \file - * Header file with definitions related to the I/O connections on the Zolertia's - * Re-Mote platform, cc2538-based - * - * \note Do not include this file directly. It gets included by contiki-conf - * after all relevant directives have been set. - */ -#ifndef BOARD_H_ -#define BOARD_H_ - -#include "dev/gpio.h" -#include "dev/nvic.h" -/*---------------------------------------------------------------------------*/ -/** \name Re-Mote LED configuration - * - * LEDs on the Re-mote are connected as follows: - * - LED1 (Red) -> PD2 - * - LED2 (Blue) -> PC3 - * - LED3 (Green) -> PD5 - * - * LED1 routed also to JP5 connector - * LED2 shares the same pin with Watchdog WDI pulse and routed to JP8 connector - * LED3 routed also to JP5 connector - * @{ - */ -/*---------------------------------------------------------------------------*/ -/* Some files include leds.h before us, so we need to get rid of defaults in - * leds.h before we provide correct definitions */ -#undef LEDS_GREEN -#undef LEDS_YELLOW -#undef LEDS_BLUE -#undef LEDS_RED -#undef LEDS_CONF_ALL - -/* In leds.h the LEDS_BLUE is defined by LED_YELLOW definition */ -#define LEDS_GREEN 1 /**< LED1 (Green) -> PD5 */ -#define LEDS_BLUE 2 /**< LED2 (Blue) -> PC3 */ -#define LEDS_RED 4 /**< LED3 (Red) -> PD2 */ - -#define LEDS_CONF_ALL 7 - -#define LEDS_LIGHT_BLUE (LEDS_GREEN | LEDS_BLUE) /**< Green + Blue (3) */ -#define LEDS_YELLOW (LEDS_GREEN | LEDS_RED) /**< Green + Red (5) */ -#define LEDS_PURPLE (LEDS_BLUE | LEDS_RED) /**< Blue + Red (6) */ -#define LEDS_WHITE LEDS_ALL /**< Green + Blue + Red (7) */ - -/* Notify various examples that we have LEDs */ -#define PLATFORM_HAS_LEDS 1 -/** @} */ -/*---------------------------------------------------------------------------*/ -/** \name USB configuration - * - * The USB pullup is enabled by an external resistor, not mapped to a GPIO - */ -#ifdef USB_PULLUP_PORT -#undef USB_PULLUP_PORT -#endif -#ifdef USB_PULLUP_PIN -#undef USB_PULLUP_PIN -#endif -/** @} */ -/*---------------------------------------------------------------------------*/ -/** \name UART configuration - * - * On the Re-Mote, the UART is connected to the following ports/pins - * - UART0: - * - RX: PA0 - * - TX: PA1 - * - UART1: - * - RX: PC6 - * - TX: PC5 - * - CTS: - * - RTS: - * We configure the port to use UART0 and UART1, CTS/RTS only for UART1, - * both without a HW pull-up resistor - * @{ - */ -#define UART0_RX_PORT GPIO_A_NUM -#define UART0_RX_PIN 0 -#define UART0_TX_PORT GPIO_A_NUM -#define UART0_TX_PIN 1 - -#define UART1_RX_PORT GPIO_C_NUM -#define UART1_RX_PIN 6 -#define UART1_TX_PORT GPIO_C_NUM -#define UART1_TX_PIN 5 -#define UART1_CTS_PORT GPIO_C_NUM -#define UART1_CTS_PIN 1 -#define UART1_RTS_PORT GPIO_C_NUM -#define UART1_RTS_PIN 2 -/** @} */ -/*---------------------------------------------------------------------------*/ -/** \name Re-Mote Button configuration - * - * Buttons on the Re-Mote are connected as follows: - * - BUTTON_USER -> PA3, S1 user button, shared with bootloader - * - BUTTON_RESET -> RESET_N line, S2 reset both CC2538 and CoP - * - BUTTON_VBAT -> Power switch, not mounted by default - * @{ - */ -/** BUTTON_USER -> PA3 */ -#define BUTTON_USER_PORT GPIO_A_NUM -#define BUTTON_USER_PIN 3 -#define BUTTON_USER_VECTOR NVIC_INT_GPIO_PORT_A - -/* Notify various examples that we have Buttons */ -#define PLATFORM_HAS_BUTTON 1 -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name ADC configuration - * - * These values configure which CC2538 pins and ADC channels to use for the ADC - * inputs. By default the Re-Mote allows two out-of-the-box ADC ports with a - * phidget-like 3-pin connector (GND/3V3/ADC) - * - * ADC inputs can only be on port A. - * @{ - */ -#define ADC_PHIDGET_PORT GPIO_A_NUM /**< Phidget GPIO control port */ -#define ADC_PHIDGET_ADC2_PIN 6 /**< ADC2 to PA6, 3V3 */ -#define ADC_PHIDGET_ADC3_PIN 7 /**< ADC3 to PA7, 3V3 */ -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name SPI (SSI0) configuration - * - * These values configure which CC2538 pins to use for the SPI (SSI0) lines, - * shared with the CC1120 RF transceiver - * TX -> MOSI, RX -> MISO - * @{ - */ -#define SPI0_CLK_PORT GPIO_D_NUM -#define SPI0_CLK_PIN 1 -#define SPI0_TX_PORT GPIO_D_NUM -#define SPI0_TX_PIN 0 -#define SPI0_RX_PORT GPIO_C_NUM -#define SPI0_RX_PIN 4 -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name SPI (SSI1) configuration - * - * These values configure which CC2538 pins to use for the SPI (SSI1) lines, - * shared with the microSD, not routed anywhere. - * TX -> MOSI, RX -> MISO - * @{ - */ -#define SPI1_CLK_PORT GPIO_B_NUM -#define SPI1_CLK_PIN 5 -#define SPI1_TX_PORT GPIO_C_NUM -#define SPI1_TX_PIN 7 -#define SPI1_RX_PORT GPIO_A_NUM -#define SPI1_RX_PIN 4 -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name I2C configuration - * - * These values configure which CC2538 pins to use for the I2C lines, shared - * with the TMP102 built-in temperature sensor - * @{ - */ -#define I2C_SCL_PORT GPIO_B_NUM -#define I2C_SCL_PIN 1 -#define I2C_SDA_PORT GPIO_B_NUM -#define I2C_SDA_PIN 0 -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name Antenna switch configuration - * - * These values configure the required pin to drive the antenna switch, to - * use either the built-in ceramic antenna or an external one over the uFL - * connector - * - Internal antenna: LOW - * - External antenna: HIGH - * @{ - */ -#define ANTENNA_2_4GHZ_SW_PORT GPIO_D_NUM -#define ANTENNA_2_4GHZ_SW_PIN 4 -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name CC1120/CC1200 configuration - * - * These values configure the required pins to drive the CC1120/CC1200 - * @{ - */ -#define CC1120_SPI_SCLK_PORT SPI0_CLK_PORT -#define CC1120_SPI_SCLK_PIN SPI0_CLK_PIN -#define CC1120_SPI_MOSI_PORT SPIO0_TX_PORT -#define CC1120_SPI_MOSI_PIN SPIO0_TX_PIN -#define CC1120_SPI_MISO_PORT SPIO0_RX_PORT -#define CC1120_SPI_MISO_PIN SPIO0_RX_PIN -#define CC1120_SPI_CSN_PORT GPIO_D_NUM -#define CC1120_SPI_CSN_PIN 3 -#define CC1120_GDO0_PORT GPIO_B_NUM -#define CC1120_GDO0_PIN 4 -#define CC1120_GDO2_PORT GPIO_B_NUM -#define CC1120_GDO2_PIN 3 -#define CC1120_RESET_PORT GPIO_B_NUM -#define CC1120_RESET_PIN 2 -#define CC1120_GPIO0_VECTOR NVIC_INT_GPIO_PORT_B -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name microSD configuration - * - * These values configure the required pins to drive the built-in microSD - * external module, to be used with SSI1 - * @{ - */ -#define USD_CLK_PORT SPI1_CLK_PORT -#define USD_CLK_PIN SPI1_CLK_PIN -#define USD_MOSI_PORT SPI1_TX_PORT -#define USD_MOSI_PIN SPI1_TX_PIN -#define USD_MISO_PORT SPI1_RX_PORT -#define USD_MISO_PIN SPI1_RX_PIN -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name Device string used on startup - * @{ - */ -#define BOARD_STRING "Zolertia Re-Mote platform" -/** @} */ - -#endif /* BOARD_H_ */ - -/** - * @} - * @} - */ diff --git a/platform/z1/Makefile.common b/platform/z1/Makefile.common index cd78ebc04..642071bdc 100644 --- a/platform/z1/Makefile.common +++ b/platform/z1/Makefile.common @@ -57,12 +57,11 @@ ifeq ($(HOST_OS),Darwin) ifndef MOTELIST USBDEVPREFIX= SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-linux - MOTELIST = $(CONTIKI)/tools/z1/motelist-z1-macos - BSL = $(CONTIKI)/tools/z1/z1-bsl-nopic --z1 + MOTELIST = $(CONTIKI)/tools/zolertia/motelist-zolertia-macos + BSL = $(CONTIKI)/tools/zolertia/z1-bsl-nopic --z1 BSL_FILETYPE = -I - MOTES = $(shell $(MOTELIST) -c 2>&- | \ + MOTES = $(shell $(MOTELIST) -b z1 -c 2>&- | \ cut -f 2 -d ,) - CMOTES=$(MOTES) REFNUM = $(shell $(MOTELIST) -c 2>&- | \ cut -f 1 -d , | tail -c5 | sed 's/^0*//') ifneq (,$(REFNUM)) @@ -77,10 +76,10 @@ else ifndef MOTELIST USBDEVPREFIX= SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-linux - MOTELIST = $(CONTIKI)/tools/z1/motelist-z1 - BSL = $(CONTIKI)/tools/z1/z1-bsl-nopic --z1 + MOTELIST = $(CONTIKI)/tools/zolertia/motelist-zolertia + BSL = $(CONTIKI)/tools/zolertia/z1-bsl-nopic --z1 BSL_FILETYPE = -I - MOTES = $(shell $(MOTELIST) -c 2>&- | \ + MOTES = $(shell $(MOTELIST) -b z1 -c 2>&- | \ cut -f 2 -d , | \ perl -ne 'print $$1 . " " if(m-(/dev/\w+)-);') CMOTES=$(MOTES) @@ -95,12 +94,10 @@ else endif endif - - -motelist: z1-motelist - -z1-motelist: +motelist: $(MOTELIST) +z1-motelist: + $(MOTELIST) -b z1 z1-motes: @echo $(MOTES) diff --git a/platform/zoul/Makefile.zoul b/platform/zoul/Makefile.zoul new file mode 100644 index 000000000..992e41f10 --- /dev/null +++ b/platform/zoul/Makefile.zoul @@ -0,0 +1,98 @@ +### Zoul Makefile + +ifndef CONTIKI + $(error CONTIKI not defined! You must specify where CONTIKI resides!) +endif + +### If no board is specified the default option is the RE-Mote +ifeq ($(BOARD),) + BOARD=remote +endif + +PYTHON = python +BSL_FLAGS += -e -w -v + +ifdef PORT + BSL_FLAGS += -p $(PORT) +endif + +### Configure the build for the board and pull in board-specific sources +CONTIKI_TARGET_DIRS += . dev +CONTIKI_TARGET_DIRS += . $(BOARD) +PLATFORM_ROOT_DIR = $(CONTIKI)/platform/$(TARGET) + +### Include the board dir if one exists +-include $(PLATFORM_ROOT_DIR)/$(BOARD)/Makefile.$(BOARD) + +### Include +CONTIKI_TARGET_SOURCEFILES += contiki-main.c +CONTIKI_TARGET_SOURCEFILES += leds.c leds-arch.c cc1200-zoul-arch.c +CONTIKI_TARGET_SOURCEFILES += adc-sensors.c button-sensor.c zoul-sensors.c +CONTIKI_TARGET_SOURCEFILES += $(BOARD_SOURCEFILES) + +CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES) + +CLEAN += *.zoul + +### Unless the example dictates otherwise, build with code size optimisations +ifndef SMALL + SMALL = 1 +endif + +### Define the CPU directory +CONTIKI_CPU=$(CONTIKI)/cpu/cc2538 +include $(CONTIKI_CPU)/Makefile.cc2538 + +MODULES += core/net core/net/mac \ + core/net/mac/contikimac \ + core/net/llsec dev/cc1200 + +BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py + +### USe the specific Zoul subplatform to query for connected devices +ifdef MOTELIST_ZOLERTIA + MOTELIST_FLAGS += -b $(MOTELIST_ZOLERTIA) +endif + +### Detect if a mote is connected over serial port +ifeq ($(HOST_OS),Darwin) + USBDEVPREFIX= + MOTELIST = $(CONTIKI)/tools/zolertia/motelist-zolertia-macos + MOTES = $(shell $(MOTELIST) -c 2>&- | cut -f 2 -d ,) +else +### If we are not running under Mac, we assume Linux + USBDEVPREFIX= + SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-linux + MOTELIST = $(CONTIKI)/tools/zolertia/motelist-zolertia + MOTES = $(shell $(MOTELIST) -b $(MOTELIST_ZOLERTIA) -c 2>&- | cut -f 2 -d , | \ + perl -ne 'print $$1 . " " if(m-(/dev/\w+)-);') +endif + + ++%.upload: %.bin %.elf +ifeq ($(wildcard $(BSL)), ) + @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" +else + $(PYTHON) $(BSL) $(BSL_FLAGS) -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) +endif + +motelist: + $(MOTELIST) +zoul-motelist: + $(MOTELIST) $(MOTELIST_FLAGS) +zoul-motes: + @echo $(MOTES) + +ifdef PORT +serialview: + $(SERIALDUMP) -b115200 $(USBDEVPREFIX) $(PORT) | $(CONTIKI)/tools/timestamp + +login: + $(SERIALDUMP) -b115200 $(USBDEVPREFIX) $(PORT) +else +serialview: + $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(MOTES)) | $(CONTIKI)/tools/timestamp + +login: + $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(MOTES)) +endif diff --git a/platform/remote/README.md b/platform/zoul/README.md similarity index 66% rename from platform/remote/README.md rename to platform/zoul/README.md index 19594be56..2e671ef53 100644 --- a/platform/remote/README.md +++ b/platform/zoul/README.md @@ -1,41 +1,48 @@ -Zolertia Re-Mote platform +Zolertia Zoul core module ============================================ - +![Zolertia Zoul Module][zoul] -The Re-Mote platform is a IoT Hardware development platform based on TI's CC2538 -system on chip (SoC), featuring an ARM Cortex-M3 with 512KB flash, 32Kb RAM, -double RF interface, and the following goodies: +The Zoul is a core module developed by Zolertia to target most IoT applications, +providing a flexible and affordable module solution to integrate to most +existing products and solutions, or ease the prototyping and production of new +products in a short time. + +The Zoul is based on TI's CC2538 system on chip (SoC), featuring an ARM +Cortex-M3 with 512KB flash, 32Kb RAM, double RF interface, and the following +goodies: * ISM 2.4-GHz IEEE 802.15.4 & Zigbee compliant. * ISM 868-, 915-, 920-, 950-MHz ISM/SRD Band. * AES-128/256, SHA2 Hardware Encryption Engine. * ECC-128/256, RSA Hardware Acceleration Engine for Secure Key Exchange. -* Power consumption down to 3uA using our shutdown mode. -* Co-Processor to allow peripheral management, programming over BSL without requiring to press any button to enter bootloader mode. -* Built-in battery charger (500mA), Energy Harvesting and Solar Panels to be connected to standards LiPo batteries. -* Power input with wide range 2-26VDC. -* Built-in TMP102 temperature sensor -* Small form-factor (as the Z1 mote, half the size of an Arduino) 57x35 mm. +* Small form-factor of 16.78 x 30.89 mm. +* Prototype friendly, to fit on most prototyping boards (breadboard, etc.). +* Self-contained and EMI-protected module under a shield. +The Zoul will be CE/FCC certified (2016) to allow a fast integration and short time to market for new products and solutions. + +Zoul pin-out +============= + +![Zoul pin-out (front)][zoul-pinout-front] +![Zoul pin-out (back)][zoul-pinout-back] Port Features ============= -The platform has the following key features: +The Zoul has the following key features: * Deep Sleep support with RAM retention for ultra-low energy consumption. * Native USB support (CDC-ACM). SLIP over UART for border routers is no longer a bottleneck. * DMA transfers for increased performance (RAM to/from RF, RAM to/from USB). - * Shutdown mode controlled externally by the Co-processor, completely power the - platform OFF, further reducing current consumption. -In terms of hardware support, the following drivers have been implemented: +In terms of hardware support, the following drivers have been implemented for the Zoul-based platforms: * CC2538 System-on-Chip: * Standard Cortex M3 peripherals (NVIC, SCB, SysTick) * Sleep Timer (underpins rtimers) * SysTick (underpins the platform clock and Contiki's timers infrastructure) - * RF + * RF (2.4GHz) * UART * Watchdog (in watchdog mode) * USB (in CDC-ACM) @@ -49,26 +56,22 @@ In terms of hardware support, the following drivers have been implemented: * Flash-based port of Coffee * LEDs * Buttons - * Internal/external 2.4GHz antenna switch controllable by SW. * Built-in core temperature and battery sensor. - * TMP102 temperature sensor driver. - * CC1120 sub-1GHz radio interface: - * Ported in Contiki, SPI based. - * Micro-SD external storage: - * Pending to port, SPI based. + * CC1200 sub-1GHz radio interface. + +There is a Zoul powering the RE-Mote and Firefly platforms, check out its specific README files for more information about on-board features. Requirements ============ To start using Contiki, the following is required: + * A zoul-based board (RE-Mote, firefly) * A toolchain to compile Contiki for the CC2538. * Drivers so that your OS can communicate with your hardware. * Software to upload images to the CC2538. - Install a Toolchain ------------------- -Forked from `platform/cc2538dk/README.md`. The toolchain used to build contiki is arm-gcc, also used by other arm-based Contiki ports. If you are using Instant Contiki, you will have a version pre-installed in your system. To find out if this is the case, try this: $ arm-none-eabi-gcc -v @@ -88,47 +91,25 @@ The platform is currently being used/tested with the following toolchains: Drivers ------- -The Re-Mote features a FTDI serial-to-USB module, the driver is commonly found in most OS, but if required it can be downloaded -from - +Depending on your Zoul flavour, there are different options. As today the RE-Mote and Firefly platforms host a Zoul with a CP2104 USB-to-serial converter, governed by a low-power PIC to handle resetting and flashing the Zoul over USB, without having to press any button or use external tools. -### For the CC2538EM (USB CDC-ACM) -The Re-Mote has built-in support for USB 2.0 USB, Vendor and Product IDs are the following: +The driver is available at - * VID 0x0451 - * PID 0x16C8 +Check the board's specific README files for more information. -The implementation in Contiki is pure CDC-ACM: The Linux and OS X kernels know exactly what to do and drivers are not required. +For windows users, if using the USB 2.0 interface (via CDC-ACM driver), there is an available driver in this folder: -On windows, you will need to provide a driver: - - * Download this LUFA CDC-ACM driver: - - * Adjust the VID and PID near the end with the values at the start of this section. - * Next time you get prompted for the driver, include the directory containing the .inf file in the search path and the driver will be installed. - -### Device Enumerations -For the UART, serial line settings are 115200 8N1, no flow control. - -Once all drivers have been installed correctly: - -On windows, devices will appear as a virtual COM port. - -On Linux and OS X, devices will appear under `/dev/`. - -On OS X: - -* XDS backchannel: `tty.usbserial-` -* EM in CDC-ACM: `tty.usbmodemf` (X a letter, ABC a number e.g. `tty.usbmodemfd121`) - -On Linux: - -* Re-Mote over FTDI: `ttyUSB1` -* Re-Mote over USB driver (in CDC-ACM): `ttyACMn` (n=0, 1, ....) +`zolertia-zoul-cdc-acm` Software to Program the Nodes ----------------------------- -The Re-Mote can be programmed via the jtag interface or via the serial boot loader on the chip. +The Zoul can be programmed via the jtag interface or via the serial boot loader on the chip. + +Both the RE-Mote and Firefly has a mini JTAG 10-pin male header, compatible with the `SmartRF06` development board, which can be used to flash and debug the platforms. Alternatively one could use the `JLink` programmer with a 20-to-10 pin converter like the following: . + +The serial boot loader on the chip is exposed to the user via an USB interface. In the not so distant past we used to press a button sequence to unlock the boot loader, but now an on-board PIC in both RE-Motes and Fireflies handles this on its own, so it will detect the BSL sequence and flash the CC2538 without user intervention. + +Instructions to flash for different OS are given below. * On Windows: * Nodes can be programmed with TI's ArmProgConsole or the [SmartRF Flash Programmer 2][smart-rf-flashprog]. The README should be self-explanatory. With ArmProgConsole, upload the file with a `.bin` extension. (jtag + serial) @@ -141,7 +122,7 @@ The Re-Mote can be programmed via the jtag interface or via the serial boot load * On OSX: * The `cc2538-bsl.py` script in `tools/cc2538-bsl/` is the only option. No extra software needs to be installed. (serial) -The file with a `.remote` extension is a copy of the `.elf` file. +The file with a `.zoul` extension is a copy of the `.elf` file. Use the Port ============ @@ -155,24 +136,29 @@ The following examples are intended to work off-the-shelf: Build your First Examples ------------------------- -It is recommended to start with the `remote-demo`, it is a simple example that walkthroughs the platform features, such as -the built-in sensors, LEDs, user button operation modes (press, release, hold-press), radio (Rime broadcast). +It is recommended to start with the `zoul-demo`, it is a simple example that walkthroughs the zoul features (can be compiled for both the RE-Mote and the Firefly), such as the built-in sensors, LEDs, user button operation modes (press, release, hold-press), radio (Rime broadcast). -The `Makefile.target` includes the `TARGET=` argument, predefining which is the target platform to compile for, it is automatically included at compilation. To generate or override an existing one, you can run: +The `Makefile.target` includes the `TARGET=` argument, predefining which is the target platform to compile for, it is automatically included at compilation. The `BOARD=` argument is using as a glue switch to pull in specific platform files, for example the specific RE-Mote core drivers. If no `BOARD` argument is given, it will default to `remote` and compile for the RE-Mote platform. -`make TARGET=remote savetarget` +To generate or override an existing one, you can run: -Then you can just run `make` to compile an application, otherwise you will need to do `make TARGET=remote`. +`make TARGET=zoul savetarget` + +Then you can just run `make` to compile an application, otherwise you will need to do `make TARGET=zoul`. + +Alternatively you can export the following to your work environment: + +`export BOARD=remote` or `export BOARD=firefly` + +This will avoid having to type this argument at each compilation. If you want to upload the compiled firmware to a node via the serial boot loader you need first to either manually enable the boot loader, or just let the Co-Processor detect the flash sequence and do it on your behalf, as simple as not pressing anything at all! -Then use `make remote-demo.upload PORT=/dev/ttyUSB1`. +Then use `make zoul-demo.upload`. -The `PORT` argument is used to specify in which port the device is connected, as we are currently using a dual-channel FTDI chip, at the moment the programming channel is always assigned to the second FTDI channel, so the FTDI will enumerate as `/dev/ttyUSB0`, `/dev/ttyUSB1`, and we would need to use the later one and specify when flashing using the `cc2538-bsl` script, as it will use the first port found by default. This will be improved in the next release. +The `PORT` argument could be used to specify in which port the device is connected, in case we have multiple devices connected at the same time. -To manually enable the boot loader, press the `reset` button on the board while holding the `user` button. (The boot loader backdoor needs to be enabled on the chip for this to work, see README in the `tools/cc2538-bsl` directory for more info) - -To generate an assembly listing of the compiled firmware, run `make remote-demo.lst`. This may be useful for debugging or optimizing your application code. To intersperse the C source code within the assembly listing, you must instruct the compiler to include debugging information by adding `CFLAGS += -g` to the project Makefile and rebuild by running `make clean remote-demo.lst`. +To generate an assembly listing of the compiled firmware, run `make zoul-demo.lst`. This may be useful for debugging or optimizing your application code. To intersperse the C source code within the assembly listing, you must instruct the compiler to include debugging information by adding `CFLAGS += -g` to the project Makefile and rebuild by running `make clean zoul-demo.lst`. Node IEEE/RIME/IPv6 Addresses ----------------------------- @@ -194,16 +180,12 @@ This will result in the 2 last bytes of the IEEE address getting set to 0x79 0xA Note: Some early production devices do not have am IEEE address written on the Info Page. For those devices, using value 0 above will result in a Rime address of all 0xFFs. If your device is in this category, define `IEEE_ADDR_CONF_HARDCODED` to 1 and specify `NODEID` to differentiate between devices. - - Low-Power Modes --------------- The CC2538 port supports power modes for low energy consumption. The SoC will enter a low power mode as part of the main loop when there are no more events to service. LPM support can be disabled in its entirety by setting `LPM_CONF_ENABLE` to 0 in `contiki-conf.h` or `project-conf.h`. -NOTE: If you are using PG2 version of the Evaluation Module, the SoC will refuse to enter Power Modes 1+ if the debugger is connected and will always enter PM0 regardless of configuration. In order to get real low power mode functionality, make sure the debugger is disconnected. The Battery Board is ideal to test this. - The Low-Power module uses a simple heuristic to determine the best power mode, depending on anticipated Deep Sleep duration and the state of various peripherals. In a nutshell, the algorithm first answers the following questions: @@ -233,7 +215,7 @@ LPM is highly related to the operations of the Radio Duty Cycling (RDC) driver o * When NullRDC is in use, the radio will be always on. As a result, the algorithm discussed above will always choose PM0 and will never attempt to drop to PM1/2. ### Shutdown Mode -The Re-Mote allows to further reduce power consumption by shutting down entirely all the components but the Co-Processor, powering completely of the CC2538 and CC1120 even preventing quiescent current from being drawn, allowing the platform to awake after a given period governed by the Co-Processor and the built-in battery management IC. This effectively reduces the power consumption down to 3-4uA. +The RE-Mote has a built-in shutdown mode which effectively reduces the power consumption down to 300nA. Check its specific README file for more information. Build headless nodes -------------------- @@ -259,7 +241,7 @@ This port's code has been documented with doxygen. To build the documentation, n If you want to build this platform's documentation only and skip the remaining platforms, run this: - make basedirs="platform/remote core cpu/cc2538 examples/remote examples/cc2538dk" + make basedirs="platform/zoul core cpu/cc2538 examples/remote examples/cc2538dk" Once you've built the docs, open `$(CONTIKI)/doc/html/index.html` and enjoy. @@ -272,14 +254,19 @@ If you prefer this guide in other formats, use the excellent [pandoc] to convert More Reading ============ -1. [Zolertia Re-Mote website][remote-site] -2. [CC2538 System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 and ZigBee®/ZigBee IP® Applications, (SWRU319B)][cc2538] -3. [CC1120 sub-1GHz RF transceiver][cc1120] +1. [Zolertia website][zolertia-site] +2. [CC2538 System-on-Chip Solution][cc2538] +3. [CC1200 sub-1GHz RF transceiver][cc1200] +4. [Zolertia Hackster channel][hackster] -[remote-site]: http://www.zolertia.io/products "Zolertia Re-Mote" -[cc1120]: http://www.ti.com/cc1120 "CC1120" +[zolertia-site]: http://www.zolertia.io/products "Zolertia" +[cc1200]: http://www.ti.com/product/cc1200 "CC1200" [smart-rf-studio]: http://www.ti.com/tool/smartrftm-studio "SmartRF Studio" [smart-rf-flashprog]: http://www.ti.com/tool/flash-programmer "SmartRF Flash Programmer" [cc2538]: http://www.ti.com/product/cc2538 "CC2538" [uniflash]: http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash "UniFlash" [pandoc]: http://johnmacfarlane.net/pandoc/ "Pandoc - a universal document converter" +[hackster]: https://www.hackster.io/zolertia "Zolertia Hackster Channel" +[zoul]: images/zoul-front.png "Zolertia Zoul Module" +[zoul-pinout-front]: images/zoul-pinout-front.png "Zoul pin-out (front)" +[zoul-pinout-back]: images/zoul-pinout-back.png "Zoul pin-out (back)" diff --git a/platform/remote/contiki-conf.h b/platform/zoul/contiki-conf.h similarity index 81% rename from platform/remote/contiki-conf.h rename to platform/zoul/contiki-conf.h index e5acdcb5d..e99057a51 100644 --- a/platform/remote/contiki-conf.h +++ b/platform/zoul/contiki-conf.h @@ -1,9 +1,46 @@ +/* + * Copyright (c) 2015, Zolertia - http://www.zolertia.com + * 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 copyright holder 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 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. + */ /** - * \addtogroup remote + * \addtogroup zoul * @{ * + * \defgroup zoul-platforms Zolertia platforms based on the Zoul core module + * + * The Zoul allows a fast reuse and easy integration to most applications and + * products. Its small size and module format eases to place in different PCB + * designs and to integrate in existing products. The Zoul-based platforms + * share most of the Zoul core implementation. + * * \file - * Configuration for the Re-Mote platform + * Configuration for the Zoul-based platforms */ #ifndef CONTIKI_CONF_H_ #define CONTIKI_CONF_H_ @@ -57,6 +94,15 @@ typedef uint32_t rtimer_clock_t; #define FLASH_CCA_CONF_BOOTLDR_BACKDOOR_ACTIVE_HIGH 0 /**< A logic low level activates the boot loader */ #endif /** @} */ + +/*---------------------------------------------------------------------------*/ +/** + * \name CFS configuration + * + * @{ + */ +#define COFFEE_CONF_SIZE 0x78000 +/** @} */ /*---------------------------------------------------------------------------*/ /** * \name Watchdog Timer configuration @@ -308,11 +354,29 @@ typedef uint32_t rtimer_clock_t; #endif /* NETSTACK_CONF_WITH_IPV6 */ #endif /* NETSTACK_CONF_FRAMER */ -/* This can be overriden to use the cc1120_driver instead */ +/* This can be overriden to use the cc1200_driver instead */ #ifndef NETSTACK_CONF_RADIO -#define NETSTACK_CONF_RADIO cc2538_rf_driver +#define NETSTACK_CONF_RADIO cc2538_rf_driver #endif +/* + * RE-Mote specific: + * If dual RF enabled, we set the RF switch to enable the CC1200 and use 2.4GHz + * on the available uFl/chip antenna (not mounted as default). In contiki main + * platform routine we set the right antenna depending on NETSTACK_CONF_RADIO, + * but as changing the RF antenna also implies enabling/disabling the CC1200, + * is better to start off with the right configuration + */ +#if REMOTE_DUAL_RF_ENABLED +#define ANTENNA_SW_SELECT_DEFAULT ANTENNA_SW_SELECT_SUBGHZ +#else /* REMOTE_DUAL_RF_ENABLED */ +#ifndef ANTENNA_SW_SELECT_DEF_CONF +#define ANTENNA_SW_SELECT_DEFAULT ANTENNA_SW_SELECT_2_4GHZ +#else /* ANTENNA_SW_SELECT_DEF_CONF */ +#define ANTENNA_SW_SELECT_DEFAULT ANTENNA_SW_SELECT_DEF_CONF +#endif /* ANTENNA_SW_SELECT_DEF_CONF */ +#endif /* REMOTE_DUAL_RF_ENABLED */ + /** @} */ /*---------------------------------------------------------------------------*/ /** @@ -383,7 +447,7 @@ typedef uint32_t rtimer_clock_t; #endif #ifndef CC2538_RF_CONF_CHANNEL -#define CC2538_RF_CONF_CHANNEL 25 +#define CC2538_RF_CONF_CHANNEL 26 #endif /* CC2538_RF_CONF_CHANNEL */ #ifndef CC2538_RF_CONF_AUTOACK diff --git a/platform/remote/contiki-main.c b/platform/zoul/contiki-main.c similarity index 91% rename from platform/remote/contiki-main.c rename to platform/zoul/contiki-main.c index 562af4e66..7e22de4da 100644 --- a/platform/remote/contiki-main.c +++ b/platform/zoul/contiki-main.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/ + * Copyright (c) 2015, Zolertia - http://www.zolertia.com * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,14 +33,15 @@ * \addtogroup platform * @{ * - * \defgroup remote Zolertia Re-Mote platform + * \defgroup zoul Zolertia Zoul core module * - * The Re-Mote is the new platform by Zolertia based on the cc2538, featuring a - * cc2538 SoC with an ARM Cortex-M3 core plus the CC1120 Sub-1Ghz transceiver + * The Zoul comprises the CC2538SF53 and CC1200 in a single module + * format, which allows a fast reuse of its core components in different + * formats and form-factors. * @{ * * \file - * Main module for the Re-Mote platform + * Main module for the Zolertia Zoul core and based platforms */ /*---------------------------------------------------------------------------*/ #include "contiki.h" @@ -66,7 +68,6 @@ #include "reg.h" #include "ieee-addr.h" #include "lpm.h" -#include "dev/antenna-sw.h" #include #include @@ -84,6 +85,9 @@ #define PUTS(s) #endif /*---------------------------------------------------------------------------*/ +/** \brief Board specific iniatialisation */ +void board_init(void); +/*---------------------------------------------------------------------------*/ static void fade(unsigned char l) { @@ -135,7 +139,7 @@ set_rf_params(void) } /*---------------------------------------------------------------------------*/ /** - * \brief Main routine for the Re-Mote platform + * \brief Main routine for the Zoul-based platforms */ int main(void) @@ -147,14 +151,10 @@ main(void) lpm_init(); rtimer_init(); gpio_init(); - leds_init(); fade(LEDS_RED); - process_init(); - watchdog_init(); - SENSORS_ACTIVATE(button_sensor); /* * Character I/O Initialisation. @@ -185,13 +185,6 @@ main(void) PUTS(CONTIKI_VERSION_STRING); PUTS(BOARD_STRING); - PRINTF(" Net: "); - PRINTF("%s\n", NETSTACK_NETWORK.name); - PRINTF(" MAC: "); - PRINTF("%s\n", NETSTACK_MAC.name); - PRINTF(" RDC: "); - PRINTF("%s\n", NETSTACK_RDC.name); - /* Initialise the H/W RNG engine. */ random_init(0); @@ -200,8 +193,17 @@ main(void) process_start(&etimer_process, NULL); ctimer_init(); - set_rf_params(); + board_init(); + netstack_init(); + set_rf_params(); + + PRINTF(" Net: "); + PRINTF("%s\n", NETSTACK_NETWORK.name); + PRINTF(" MAC: "); + PRINTF("%s\n", NETSTACK_MAC.name); + PRINTF(" RDC: "); + PRINTF("%s\n", NETSTACK_RDC.name); #if NETSTACK_CONF_WITH_IPV6 memcpy(&uip_lladdr.addr, &linkaddr_node_addr, sizeof(uip_lladdr.addr)); @@ -209,8 +211,6 @@ main(void) process_start(&tcpip_process, NULL); #endif /* NETSTACK_CONF_WITH_IPV6 */ - antenna_sw_config(); - process_start(&sensors_process, NULL); SENSORS_ACTIVATE(button_sensor); diff --git a/platform/remote/dev/phidget-sensor.c b/platform/zoul/dev/adc-sensors.c similarity index 62% rename from platform/remote/dev/phidget-sensor.c rename to platform/zoul/dev/adc-sensors.c index c400b8ad1..8fc590f2a 100644 --- a/platform/remote/dev/phidget-sensor.c +++ b/platform/zoul/dev/adc-sensors.c @@ -31,11 +31,11 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-phidget-sensor + * \addtogroup zoul-adc-sensors * @{ * * \file - * Generic driver for the Re-Mote Phidget/ADC sensors + * Generic driver for the Zoul ADC sensors */ /*---------------------------------------------------------------------------*/ #include "contiki.h" @@ -43,16 +43,13 @@ #include "dev/ioc.h" #include "dev/gpio.h" #include "dev/adc.h" -#include "dev/phidget-sensor.h" -#include "dev/remote-sensors.h" +#include "adc-sensors.h" +#include "zoul-sensors.h" #include /*---------------------------------------------------------------------------*/ -#define ADC_PHIDGET_PORT_BASE GPIO_PORT_TO_BASE(ADC_PHIDGET_PORT) -#define ADC_PHIDGET_ADC2_PIN_MASK GPIO_PIN_MASK(ADC_PHIDGET_ADC2_PIN) -#define ADC_PHIDGET_ADC3_PIN_MASK GPIO_PIN_MASK(ADC_PHIDGET_ADC3_PIN) -/*---------------------------------------------------------------------------*/ static uint8_t decimation_rate; +static uint8_t enabled_channels; /*---------------------------------------------------------------------------*/ static int set_decimation_rate(uint8_t rate) @@ -65,31 +62,44 @@ set_decimation_rate(uint8_t rate) decimation_rate = rate; break; default: - return REMOTE_SENSORS_ERROR; + return ZOUL_SENSORS_ERROR; } return decimation_rate; } /*---------------------------------------------------------------------------*/ static int +get_channel_pin(int type) +{ + if((ZOUL_SENSORS_ADC1) && (type == ZOUL_SENSORS_ADC1)) { + return SOC_ADC_ADCCON_CH_AIN0 + ADC_SENSORS_ADC1_PIN; + } + if((ZOUL_SENSORS_ADC2) && (type == ZOUL_SENSORS_ADC2)) { + return SOC_ADC_ADCCON_CH_AIN0 + ADC_SENSORS_ADC2_PIN; + } + if((ZOUL_SENSORS_ADC3) && (type == ZOUL_SENSORS_ADC3)) { + return SOC_ADC_ADCCON_CH_AIN0 + ADC_SENSORS_ADC3_PIN; + } + return ZOUL_SENSORS_ERROR; +} +/*---------------------------------------------------------------------------*/ +static int value(int type) { - uint8_t channel; + int channel; int16_t res; - switch(type) { - case PHIDGET_SENSORS_ADC2: - channel = SOC_ADC_ADCCON_CH_AIN0 + ADC_PHIDGET_ADC2_PIN; - break; - case PHIDGET_SENSORS_ADC3: - channel = SOC_ADC_ADCCON_CH_AIN0 + ADC_PHIDGET_ADC3_PIN; - break; - default: - return REMOTE_SENSORS_ERROR; + if(!(type & enabled_channels)) { + return ZOUL_SENSORS_ERROR; } - res = adc_get(channel, SOC_ADC_ADCCON_REF_INT, decimation_rate); + channel = get_channel_pin(type); + if(channel == ZOUL_SENSORS_ERROR) { + return ZOUL_SENSORS_ERROR; + } + + res = adc_get(channel, SOC_ADC_ADCCON_REF_AVDD5, decimation_rate); return res; } /*---------------------------------------------------------------------------*/ @@ -98,18 +108,40 @@ configure(int type, int value) { switch(type) { case SENSORS_HW_INIT: - GPIO_SOFTWARE_CONTROL(GPIO_A_BASE, ADC_PHIDGET_ADC2_PIN_MASK); - GPIO_SET_INPUT(GPIO_A_BASE, ADC_PHIDGET_ADC2_PIN_MASK); - ioc_set_over(GPIO_A_NUM, ADC_PHIDGET_ADC2_PIN, IOC_OVERRIDE_ANA); - GPIO_SOFTWARE_CONTROL(GPIO_A_BASE, ADC_PHIDGET_ADC3_PIN_MASK); - GPIO_SET_INPUT(GPIO_A_BASE, ADC_PHIDGET_ADC3_PIN_MASK); - ioc_set_over(GPIO_A_NUM, ADC_PHIDGET_ADC3_PIN, IOC_OVERRIDE_ANA); + /* This should filter out disabled sensors as its value should be zero */ + if((value < ZOUL_SENSORS_ADC_MIN) || (value > ZOUL_SENSORS_ADC_ALL)) { + return ZOUL_SENSORS_ERROR; + } + + if((value != ZOUL_SENSORS_ADC1) && (value != ZOUL_SENSORS_ADC2) && + (value != ZOUL_SENSORS_ADC3) && (value != ZOUL_SENSORS_ADC12) && + (value != ZOUL_SENSORS_ADC13) && (value != ZOUL_SENSORS_ADC23)) { + return ZOUL_SENSORS_ERROR; + } + + GPIO_SOFTWARE_CONTROL(GPIO_A_BASE, value); + GPIO_SET_INPUT(GPIO_A_BASE, value); + + if(value & ZOUL_SENSORS_ADC1) { + ioc_set_over(GPIO_A_NUM, ADC_SENSORS_ADC1_PIN, IOC_OVERRIDE_ANA); + } + if(value & ZOUL_SENSORS_ADC2) { + ioc_set_over(GPIO_A_NUM, ADC_SENSORS_ADC2_PIN, IOC_OVERRIDE_ANA); + } + if(value & ZOUL_SENSORS_ADC3) { + ioc_set_over(GPIO_A_NUM, ADC_SENSORS_ADC3_PIN, IOC_OVERRIDE_ANA); + } adc_init(); set_decimation_rate(SOC_ADC_ADCCON_DIV_512); + enabled_channels = value; break; - case REMOTE_SENSORS_CONFIGURE_TYPE_DECIMATION_RATE: + + case ZOUL_SENSORS_CONFIGURE_TYPE_DECIMATION_RATE: return set_decimation_rate((uint8_t)value); + + default: + return ZOUL_SENSORS_ERROR; } return 0; } @@ -120,6 +152,7 @@ status(int type) return 1; } /*---------------------------------------------------------------------------*/ -SENSORS_SENSOR(phidget_sensor, PHIDGET_SENSOR, value, configure, status); +SENSORS_SENSOR(adc_sensors, ADC_SENSORS, value, configure, status); /*---------------------------------------------------------------------------*/ /** @} */ + diff --git a/platform/zoul/dev/adc-sensors.h b/platform/zoul/dev/adc-sensors.h new file mode 100644 index 000000000..18b820688 --- /dev/null +++ b/platform/zoul/dev/adc-sensors.h @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2015, Zolertia - http://www.zolertia.com + * Copyright (c) 2015, University of Bristol - http://www.bristol.ac.uk + * 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 copyright holder 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 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. + */ +/*---------------------------------------------------------------------------*/ +/** + * \addtogroup zoul-sensors + * @{ + * + * \defgroup zoul-adc-sensors Zoul Generic ADC sensor + * + * Driver for the Zoul ADC sensors + * + * This driver supports analogue sensors connected to ADC1, ADC2 and AND3 inputs + * This is controlled by the type argument of the value() function. Possible + * choices are: + * - ZOUL_SENSORS_ADC1 + * - ZOUL_SENSORS_ADC2 + * - ZOUL_SENSORS_ADC3 + * + * To initialize the ADC sensors use the configure() function, using as first + * argument SENSORS_HW_INIT, and choose which ADC channels to enable passing as + * second argument any single or combined (sum) values as below: + * - ZOUL_SENSORS_ADC1 + * - ZOUL_SENSORS_ADC2 + * - ZOUL_SENSORS_ADC3 + * - ZOUL_SENSORS_ADC_ALL (all channels above) + * + * Using an invalid combination will return ZOUL_SENSORS_ERROR. + * + * The decimation rate can be set by passing + * ZOUL_SENSORS_CONFIGURE_TYPE_DECIMATION_RATE as the type argument to the + * configure() function and then specifying the rate through the value + * argument. Valid values are: + * - SOC_ADC_ADCCON_DIV_64 (64 bit rate) + * - SOC_ADC_ADCCON_DIV_128 (128 bit rate) + * - SOC_ADC_ADCCON_DIV_256 (256 bit rate) + * - SOC_ADC_ADCCON_DIV_512 (512 bit rate) + * @{ + * + * \file + * Header file for the Zoul Generic Driver for ADC sensors + */ +/*---------------------------------------------------------------------------*/ +#ifndef ADC_SENSORS_H_ +#define ADC_SENSORS_H_ +/*---------------------------------------------------------------------------*/ +#include "lib/sensors.h" +#include "dev/soc-adc.h" +/*---------------------------------------------------------------------------*/ +/** + * \name Generic ADC sensors + * @{ + */ +#define ADC_SENSORS "ADC sensors" +#define ADC_SENSORS_PORT_BASE GPIO_PORT_TO_BASE(ADC_SENSORS_PORT) + +/* + * PA0-PA3 are hardcoded to UART0 and the user button for most Zolertia + * platforms, the following assumes PA0 shall not be used as ADC input, else + * re-write the below definitions + */ +#define ZOUL_SENSORS_ADC_MIN 4 +/* ADC phidget-like connector ADC1 */ +#if ADC_SENSORS_ADC1_PIN >= ZOUL_SENSORS_ADC_MIN +#define ZOUL_SENSORS_ADC1 GPIO_PIN_MASK(ADC_SENSORS_ADC1_PIN) +#else +#define ZOUL_SENSORS_ADC1 0 +#endif +/* ADC phidget-like connector ADC2 */ +#if ADC_SENSORS_ADC2_PIN >= ZOUL_SENSORS_ADC_MIN +#define ZOUL_SENSORS_ADC2 GPIO_PIN_MASK(ADC_SENSORS_ADC2_PIN) +#else +#define ZOUL_SENSORS_ADC2 0 +#endif +/* ADC phidget-like connector ADC3 */ +#if ADC_SENSORS_ADC3_PIN >= ZOUL_SENSORS_ADC_MIN +#define ZOUL_SENSORS_ADC3 GPIO_PIN_MASK(ADC_SENSORS_ADC3_PIN) +#else +#define ZOUL_SENSORS_ADC3 0 +#endif + +/* + * This is safe as the disabled sensors should have a zero value thus not + * affecting the mask operations + */ + +/* Enable all channels */ +#define ZOUL_SENSORS_ADC_ALL (ZOUL_SENSORS_ADC1 + ZOUL_SENSORS_ADC2 + \ + ZOUL_SENSORS_ADC3) +/* Other allowed combinations */ +#define ZOUL_SENSORS_ADC12 (ZOUL_SENSORS_ADC1 + ZOUL_SENSORS_ADC2) +#define ZOUL_SENSORS_ADC13 (ZOUL_SENSORS_ADC1 + ZOUL_SENSORS_ADC3) +#define ZOUL_SENSORS_ADC23 (ZOUL_SENSORS_ADC2 + ZOUL_SENSORS_ADC3) + +/** @} */ +/*---------------------------------------------------------------------------*/ +extern const struct sensors_sensor adc_sensors; +/*---------------------------------------------------------------------------*/ +#endif /* ADC_SENSORS_H_ */ +/*---------------------------------------------------------------------------*/ +/** + * @} + * @} + */ + diff --git a/platform/remote/dev/button-sensor.c b/platform/zoul/dev/button-sensor.c similarity index 98% rename from platform/remote/dev/button-sensor.c rename to platform/zoul/dev/button-sensor.c index 4433f3e06..e9560904f 100644 --- a/platform/remote/dev/button-sensor.c +++ b/platform/zoul/dev/button-sensor.c @@ -32,11 +32,11 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-button-sensor + * \addtogroup zoul-button-sensor * @{ * * \file - * Driver for the Re-Mote user button + * Driver for the Zoul user button */ /*---------------------------------------------------------------------------*/ #include "contiki.h" diff --git a/platform/remote/dev/button-sensor.h b/platform/zoul/dev/button-sensor.h similarity index 89% rename from platform/remote/dev/button-sensor.h rename to platform/zoul/dev/button-sensor.h index 817769591..d3db2c0e9 100644 --- a/platform/remote/dev/button-sensor.h +++ b/platform/zoul/dev/button-sensor.h @@ -32,17 +32,17 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-sensors + * \addtogroup zoul-sensors * @{ * - * \defgroup remote-button-sensor Re-Mote User Button Driver + * \defgroup zoul-button-sensor Zoul User Button Driver * - * Driver for the Re-Mote user button + * Driver for the Zoul user button * - * The Re-Mote button will generate a sensors_changed event on press as well - * as on release. + * The user button (on Zoul-based platforms like the RE-Mote and the Firefly) + * will generate a sensors_changed event on press as well as on release. * - * Unlike many other platforms, the Re-Mote user button has the ability to + * Unlike many other platforms, the user button has the ability to * generate events when the user keeps the button pressed. The user can * configure the button driver with a timer interval in clock ticks. When the * button is kept pressed, the driver will then generate a broadcast event @@ -53,7 +53,7 @@ * @{ * * \file - * Header file for the Re-Mote User Button Driver + * Header file for the Zoul User Button Driver */ /*---------------------------------------------------------------------------*/ #ifndef BUTTON_SENSOR_H_ diff --git a/platform/zoul/dev/cc1200-zoul-arch.c b/platform/zoul/dev/cc1200-zoul-arch.c new file mode 100644 index 000000000..9afaa54a7 --- /dev/null +++ b/platform/zoul/dev/cc1200-zoul-arch.c @@ -0,0 +1,289 @@ +/* + * Copyright (c) 2015, Zolertia + * 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 copyright holder 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 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. + */ +/*---------------------------------------------------------------------------*/ +/** + * \addtogroup zoul + * @{ + * + * \defgroup zoul-cc1200 Zoul CC1200 arch + * + * CC1200 Zoul arch specifics + * @{ + * + * \file + * CC1200 Zoul arch specifics + */ +/*---------------------------------------------------------------------------*/ +#include "contiki.h" +#include "contiki-net.h" +#include "dev/leds.h" +#include "reg.h" +#include "spi-arch.h" +#include "dev/ioc.h" +#include "dev/sys-ctrl.h" +#include "dev/spi.h" +#include "dev/ssi.h" +#include "dev/gpio.h" +#include +/*---------------------------------------------------------------------------*/ +#define CC1200_SPI_CLK_PORT_BASE GPIO_PORT_TO_BASE(SPI0_CLK_PORT) +#define CC1200_SPI_CLK_PIN_MASK GPIO_PIN_MASK(SPI0_CLK_PIN) +#define CC1200_SPI_MOSI_PORT_BASE GPIO_PORT_TO_BASE(SPI0_TX_PORT) +#define CC1200_SPI_MOSI_PIN_MASK GPIO_PIN_MASK(SPI0_TX_PIN) +#define CC1200_SPI_MISO_PORT_BASE GPIO_PORT_TO_BASE(SPI0_RX_PORT) +#define CC1200_SPI_MISO_PIN_MASK GPIO_PIN_MASK(SPI0_RX_PIN) +#define CC1200_SPI_CSN_PORT_BASE GPIO_PORT_TO_BASE(CC1200_SPI_CSN_PORT) +#define CC1200_SPI_CSN_PIN_MASK GPIO_PIN_MASK(CC1200_SPI_CSN_PIN) +#define CC1200_GDO0_PORT_BASE GPIO_PORT_TO_BASE(CC1200_GDO0_PORT) +#define CC1200_GDO0_PIN_MASK GPIO_PIN_MASK(CC1200_GDO0_PIN) +#define CC1200_GDO2_PORT_BASE GPIO_PORT_TO_BASE(CC1200_GDO2_PORT) +#define CC1200_GDO2_PIN_MASK GPIO_PIN_MASK(CC1200_GDO2_PIN) +#define CC1200_RESET_PORT_BASE GPIO_PORT_TO_BASE(CC1200_RESET_PORT) +#define CC1200_RESET_PIN_MASK GPIO_PIN_MASK(CC1200_RESET_PIN) +/*---------------------------------------------------------------------------*/ +#ifndef DEBUG_CC1200_ARCH +#define DEBUG_CC1200_ARCH 0 +#endif +/*---------------------------------------------------------------------------*/ +#if DEBUG_CC1200_ARCH > 0 +#define PRINTF(...) printf(__VA_ARGS__) +#define BUSYWAIT_UNTIL(cond, max_time) \ + do { \ + rtimer_clock_t t0; \ + t0 = RTIMER_NOW(); \ + while(!(cond) && RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + (max_time))) {} \ + if(!(RTIMER_CLOCK_LT(RTIMER_NOW(), t0 + (max_time)))) { \ + printf("ARCH: Timeout exceeded in line %d!\n", __LINE__); \ + } \ + } while(0) +#else +#define PRINTF(...) +#define BUSYWAIT_UNTIL(cond, max_time) while(!cond) +#endif +/*---------------------------------------------------------------------------*/ +extern int cc1200_rx_interrupt(void); +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_spi_select(void) +{ + /* Set CSn to low (0) */ + GPIO_CLR_PIN(CC1200_SPI_CSN_PORT_BASE, CC1200_SPI_CSN_PIN_MASK); + /* The MISO pin should go low before chip is fully enabled. */ + BUSYWAIT_UNTIL( + GPIO_READ_PIN(CC1200_SPI_MISO_PORT_BASE, CC1200_SPI_MISO_PIN_MASK) == 0, + RTIMER_SECOND/100); +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_spi_deselect(void) +{ + /* Set CSn to high (1) */ + GPIO_SET_PIN(CC1200_SPI_CSN_PORT_BASE, CC1200_SPI_CSN_PIN_MASK); +} +/*---------------------------------------------------------------------------*/ +int +cc1200_arch_spi_rw_byte(uint8_t c) +{ + SPI_WAITFORTx_BEFORE(); + SPIX_BUF(CC1200_SPI_INSTANCE) = c; + SPIX_WAITFOREOTx(CC1200_SPI_INSTANCE); + SPIX_WAITFOREORx(CC1200_SPI_INSTANCE); + c = SPIX_BUF(CC1200_SPI_INSTANCE); + + return c; +} +/*---------------------------------------------------------------------------*/ +int +cc1200_arch_spi_rw(uint8_t *inbuf, const uint8_t *write_buf, uint16_t len) +{ + int i; + uint8_t c; + + if((inbuf == NULL && write_buf == NULL) || len <= 0) { + return 1; + + } else if(inbuf == NULL) { + for(i = 0; i < len; i++) { + SPI_WAITFORTx_BEFORE(); + SPIX_BUF(CC1200_SPI_INSTANCE) = write_buf[i]; + SPIX_WAITFOREOTx(CC1200_SPI_INSTANCE); + SPIX_WAITFOREORx(CC1200_SPI_INSTANCE); + c = SPIX_BUF(CC1200_SPI_INSTANCE); + /* read and discard to avoid "variable set but not used" warning */ + (void)c; + } + + } else if(write_buf == NULL) { + for(i = 0; i < len; i++) { + SPI_WAITFORTx_BEFORE(); + SPIX_BUF(CC1200_SPI_INSTANCE) = 0; + SPIX_WAITFOREOTx(CC1200_SPI_INSTANCE); + SPIX_WAITFOREORx(CC1200_SPI_INSTANCE); + inbuf[i] = SPIX_BUF(CC1200_SPI_INSTANCE); + } + + } else { + for(i = 0; i < len; i++) { + SPI_WAITFORTx_BEFORE(); + SPIX_BUF(CC1200_SPI_INSTANCE) = write_buf[i]; + SPIX_WAITFOREOTx(CC1200_SPI_INSTANCE); + SPIX_WAITFOREORx(CC1200_SPI_INSTANCE); + inbuf[i] = SPIX_BUF(CC1200_SPI_INSTANCE); + } + } + return 0; +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_gpio0_setup_irq(int rising) +{ + + GPIO_SOFTWARE_CONTROL(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + GPIO_SET_INPUT(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + GPIO_DETECT_EDGE(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + GPIO_TRIGGER_SINGLE_EDGE(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + + if (rising){ + GPIO_DETECT_RISING(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + } else { + GPIO_DETECT_FALLING(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + } + + GPIO_ENABLE_INTERRUPT(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + ioc_set_over(CC1200_GDO0_PORT, CC1200_GDO0_PIN, IOC_OVERRIDE_PUE); + nvic_interrupt_enable(CC1200_GPIOx_VECTOR); + gpio_register_callback(cc1200_rx_interrupt, CC1200_GDO0_PORT, + CC1200_GDO0_PIN); +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_gpio2_setup_irq(int rising) +{ + + GPIO_SOFTWARE_CONTROL(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + GPIO_SET_INPUT(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + GPIO_DETECT_EDGE(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + GPIO_TRIGGER_SINGLE_EDGE(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + + if (rising){ + GPIO_DETECT_RISING(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + } else { + GPIO_DETECT_FALLING(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + } + + GPIO_ENABLE_INTERRUPT(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + ioc_set_over(CC1200_GDO2_PORT, CC1200_GDO2_PIN, IOC_OVERRIDE_PUE); + nvic_interrupt_enable(CC1200_GPIOx_VECTOR); + gpio_register_callback(cc1200_rx_interrupt, CC1200_GDO2_PORT, + CC1200_GDO2_PIN); +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_gpio0_enable_irq(void) +{ + GPIO_ENABLE_INTERRUPT(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + ioc_set_over(CC1200_GDO0_PORT, CC1200_GDO0_PIN, IOC_OVERRIDE_PUE); + nvic_interrupt_enable(CC1200_GPIOx_VECTOR); +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_gpio0_disable_irq(void) +{ + GPIO_DISABLE_INTERRUPT(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_gpio2_enable_irq(void) +{ + GPIO_ENABLE_INTERRUPT(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + ioc_set_over(CC1200_GDO2_PORT, CC1200_GDO2_PIN, IOC_OVERRIDE_PUE); + nvic_interrupt_enable(CC1200_GPIOx_VECTOR); +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_gpio2_disable_irq(void) +{ + GPIO_DISABLE_INTERRUPT(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); +} +/*---------------------------------------------------------------------------*/ +int +cc1200_arch_gpio0_read_pin(void) +{ + return GPIO_READ_PIN(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); +} +/*---------------------------------------------------------------------------*/ +int +cc1200_arch_gpio2_read_pin(void) +{ + return GPIO_READ_PIN(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); +} +/*---------------------------------------------------------------------------*/ +int +cc1200_arch_gpio3_read_pin(void) +{ + return 0x00; +} +/*---------------------------------------------------------------------------*/ +void +cc1200_arch_init(void) +{ + /* First leave RESET high */ + GPIO_SOFTWARE_CONTROL(CC1200_RESET_PORT_BASE, CC1200_RESET_PIN_MASK); + GPIO_SET_OUTPUT(CC1200_RESET_PORT_BASE, CC1200_RESET_PIN_MASK); + ioc_set_over(CC1200_RESET_PORT, CC1200_RESET_PIN, IOC_OVERRIDE_OE); + GPIO_SET_PIN(CC1200_RESET_PORT_BASE, CC1200_RESET_PIN_MASK); + + /* Initialize CSn, enable CSn and then wait for MISO to go low*/ + spix_cs_init(CC1200_SPI_CSN_PORT, CC1200_SPI_CSN_PIN); + + /* Initialize SPI */ + spix_init(CC1200_SPI_INSTANCE); + + /* Configure GPIOx */ + GPIO_SOFTWARE_CONTROL(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + GPIO_SET_INPUT(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); + GPIO_SOFTWARE_CONTROL(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + GPIO_SET_INPUT(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); + + /* Leave CSn as default */ + cc1200_arch_spi_deselect(); + + /* Ensure MISO is high */ + BUSYWAIT_UNTIL( + GPIO_READ_PIN(CC1200_SPI_MISO_PORT_BASE, CC1200_SPI_MISO_PIN_MASK), + RTIMER_SECOND/10); +} +/*---------------------------------------------------------------------------*/ +/** + * @} + * @} + */ + diff --git a/platform/remote/dev/led-strip.c b/platform/zoul/dev/led-strip.c similarity index 96% rename from platform/remote/dev/led-strip.c rename to platform/zoul/dev/led-strip.c index a13ad23a8..fa64aa91c 100644 --- a/platform/remote/dev/led-strip.c +++ b/platform/zoul/dev/led-strip.c @@ -29,7 +29,7 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-led-strip + * \addtogroup zoul-led-strip * @{ * * Driver to control a bright LED strip powered at 3VDC, drawing power directly @@ -38,7 +38,7 @@ * @{ * * \file - * Driver for the Re-Mote bright LED strip Driver + * Driver for a bright LED strip */ /*---------------------------------------------------------------------------*/ #include "contiki.h" @@ -65,7 +65,7 @@ led_strip_config(void) GPIO_SOFTWARE_CONTROL(LED_STRIP_PORT_BASE, LED_STRIP_PIN_MASK); /* Set pin to output */ GPIO_SET_OUTPUT(LED_STRIP_PORT_BASE, LED_STRIP_PIN_MASK); - /* Set the antenna selector to a default position */ + /* Set the pin to a default position */ GPIO_SET_PIN(LED_STRIP_PORT_BASE, LED_STRIP_PIN_MASK); initialized = 1; diff --git a/platform/remote/dev/led-strip.h b/platform/zoul/dev/led-strip.h similarity index 95% rename from platform/remote/dev/led-strip.h rename to platform/zoul/dev/led-strip.h index 27880668a..623180789 100644 --- a/platform/remote/dev/led-strip.h +++ b/platform/zoul/dev/led-strip.h @@ -28,10 +28,10 @@ */ /* -------------------------------------------------------------------------- */ /** - * \addtogroup remote-sensors + * \addtogroup zoul-sensors * @{ * - * \defgroup remote-led-strip Re-Mote LED strip driver + * \defgroup zoul-led-strip LED strip compatible with Zoul-based platforms * * Driver to control a bright LED strip powered at 3VDC, drawing power directly * from the battery power supply. An example on how to adapt 12VDC LED strips @@ -39,7 +39,7 @@ * @{ * * \file - * Header file for the Re-Mote bright LED strip Driver + * Header file for a bright LED strip driver */ /* -------------------------------------------------------------------------- */ #ifndef LED_STRIP_H_ diff --git a/platform/remote/dev/leds-arch.c b/platform/zoul/dev/leds-arch.c similarity index 62% rename from platform/remote/dev/leds-arch.c rename to platform/zoul/dev/leds-arch.c index a120e4144..f09ed645c 100644 --- a/platform/remote/dev/leds-arch.c +++ b/platform/zoul/dev/leds-arch.c @@ -30,78 +30,40 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ /** - * \addtogroup remote + * \addtogroup zoul * @{ * - * \defgroup remote-leds Re-Mote LED driver + * \defgroup zoul-leds Zoul LED driver * - * LED driver implementation for the Re-Mote platform + * LED driver implementation for the Zoul-based platforms * @{ * * \file - * LED driver implementation for the Re-Mote platform + * LED driver implementation for the Zoul-based platforms */ #include "contiki.h" #include "reg.h" #include "dev/leds.h" #include "dev/gpio.h" /*---------------------------------------------------------------------------*/ -#define LED_GREEN_PORT GPIO_D_BASE -#define LED_GREEN_PIN (1 << 5) - -#define LED_BLUE_PORT GPIO_C_BASE -#define LED_BLUE_PIN (1 << 3) - -#define LED_RED_PORT GPIO_D_BASE -#define LED_RED_PIN (1 << 2) - -#define PORT_D_LEDS (LED_RED_PIN | LED_GREEN_PIN) -#define PORT_C_LEDS LED_BLUE_PIN +#define LEDS_GPIO_PIN_MASK LEDS_ALL /*---------------------------------------------------------------------------*/ void leds_arch_init(void) { - /* Initialize LED1 (Red) and LED3 (Green) */ - GPIO_SET_OUTPUT(GPIO_D_BASE, PORT_D_LEDS); - GPIO_SET_PIN(GPIO_D_BASE, PORT_D_LEDS); - - /* Initialize LED2 - Blue */ - GPIO_SET_OUTPUT(GPIO_C_BASE, PORT_C_LEDS); - GPIO_SET_PIN(GPIO_C_BASE, PORT_C_LEDS); + GPIO_SET_OUTPUT(GPIO_D_BASE, LEDS_GPIO_PIN_MASK); } /*---------------------------------------------------------------------------*/ unsigned char leds_arch_get(void) { - uint8_t mask_leds; - - mask_leds = GPIO_READ_PIN(LED_GREEN_PORT, LED_GREEN_PIN) == 0? LEDS_GREEN : 0; - mask_leds |= GPIO_READ_PIN(LED_BLUE_PORT, LED_BLUE_PIN) == 0? LEDS_BLUE : 0; - mask_leds |= GPIO_READ_PIN(LED_RED_PORT, LED_RED_PIN) == 0? LEDS_RED : 0; - - return mask_leds; + return GPIO_READ_PIN(GPIO_D_BASE, LEDS_GPIO_PIN_MASK); } /*---------------------------------------------------------------------------*/ void leds_arch_set(unsigned char leds) { - if(leds & LEDS_GREEN) { - GPIO_CLR_PIN(LED_GREEN_PORT, LED_GREEN_PIN); - } else { - GPIO_SET_PIN(LED_GREEN_PORT, LED_GREEN_PIN); - } - - if(leds & LEDS_BLUE) { - GPIO_CLR_PIN(LED_BLUE_PORT, LED_BLUE_PIN); - } else { - GPIO_SET_PIN(LED_BLUE_PORT, LED_BLUE_PIN); - } - - if(leds & LEDS_RED) { - GPIO_CLR_PIN(LED_RED_PORT, LED_RED_PIN); - } else { - GPIO_SET_PIN(LED_RED_PORT, LED_RED_PIN); - } + GPIO_WRITE_PIN(GPIO_D_BASE, LEDS_GPIO_PIN_MASK, leds); } /*---------------------------------------------------------------------------*/ diff --git a/platform/remote/dev/mp3-wtv020sd.c b/platform/zoul/dev/mp3-wtv020sd.c similarity index 99% rename from platform/remote/dev/mp3-wtv020sd.c rename to platform/zoul/dev/mp3-wtv020sd.c index 7897c3d33..7633d05e3 100644 --- a/platform/remote/dev/mp3-wtv020sd.c +++ b/platform/zoul/dev/mp3-wtv020sd.c @@ -29,7 +29,7 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-mp3-wtv020sd + * \addtogroup zoul-mp3-wtv020sd * @{ * * Driver to control the MP3 WTV020SD board in MP3 mode (GPIO based) and the diff --git a/platform/remote/dev/mp3-wtv020sd.h b/platform/zoul/dev/mp3-wtv020sd.h similarity index 97% rename from platform/remote/dev/mp3-wtv020sd.h rename to platform/zoul/dev/mp3-wtv020sd.h index 15ec2c526..294157ca8 100644 --- a/platform/remote/dev/mp3-wtv020sd.h +++ b/platform/zoul/dev/mp3-wtv020sd.h @@ -28,10 +28,11 @@ */ /* -------------------------------------------------------------------------- */ /** - * \addtogroup remote-sensors + * \addtogroup zoul-sensors * @{ * - * \defgroup remote-mp3-wtv020sd Re-Mote MP3 WTV020SD driver + * \defgroup zoul-mp3-wtv020sd MP3 WTV020SD driver compatible with Zoul-based + * platforms * * Driver to control the MP3 WTV020SD board in MP3 mode (GPIO based) and the * 2-line serial mode (CLK/DI). Loop Mode and Key Modes not implemented. diff --git a/platform/remote/dev/sht25.c b/platform/zoul/dev/sht25.c similarity index 94% rename from platform/remote/dev/sht25.c rename to platform/zoul/dev/sht25.c index 0bc34f7c5..daa8cb2dd 100644 --- a/platform/remote/dev/sht25.c +++ b/platform/zoul/dev/sht25.c @@ -31,7 +31,7 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-sht25-sensor + * \addtogroup zoul-sht25-sensor * @{ * * \file @@ -46,8 +46,6 @@ #include "dev/sht25.h" #include "lib/sensors.h" /*---------------------------------------------------------------------------*/ -#warning I2C SDA AND SCL are inverted in JP8 connector, inverted in init() call -/*---------------------------------------------------------------------------*/ static uint8_t enabled; /*---------------------------------------------------------------------------*/ static int @@ -57,7 +55,7 @@ configure(int type, int value) return SHT25_ERROR; } if(value) { - i2c_init(I2C_SCL_PORT, I2C_SCL_PIN, I2C_SDA_PORT, I2C_SDA_PIN, + i2c_init(I2C_SDA_PORT, I2C_SDA_PIN, I2C_SCL_PORT, I2C_SCL_PIN, I2C_SCL_NORMAL_BUS_SPEED); } enabled = value; diff --git a/platform/remote/dev/sht25.h b/platform/zoul/dev/sht25.h similarity index 97% rename from platform/remote/dev/sht25.h rename to platform/zoul/dev/sht25.h index c1ee19391..df7dbcc77 100644 --- a/platform/remote/dev/sht25.h +++ b/platform/zoul/dev/sht25.h @@ -31,10 +31,10 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-sensors + * \addtogroup zoul-sensors * @{ * - * \defgroup remote-sht25-sensor Re-Mote SHT25 digital temperature sensor + * \defgroup zoul-sht25-sensor SHT25 digital temperature sensor * @{ * * \file diff --git a/platform/remote/dev/tmp102.c b/platform/zoul/dev/tmp102.c similarity index 96% rename from platform/remote/dev/tmp102.c rename to platform/zoul/dev/tmp102.c index bdea73e87..2d3e897e2 100644 --- a/platform/remote/dev/tmp102.c +++ b/platform/zoul/dev/tmp102.c @@ -29,11 +29,11 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-tmp102-sensor + * \addtogroup zoul-tmp102-sensor * @{ * * \file - * Driver for the Re-Mote TMP102 temperature sensor + * Driver for the TMP102 temperature sensor */ /*---------------------------------------------------------------------------*/ #include diff --git a/platform/remote/dev/tmp102.h b/platform/zoul/dev/tmp102.h similarity index 94% rename from platform/remote/dev/tmp102.h rename to platform/zoul/dev/tmp102.h index 39da4408b..030e59fe5 100644 --- a/platform/remote/dev/tmp102.h +++ b/platform/zoul/dev/tmp102.h @@ -31,19 +31,19 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-sensors + * \addtogroup zoul-sensors * @{ * - * \defgroup remote-tmp102-sensor Re-Mote TMP102 Sensor + * \defgroup zoul-tmp102-sensor TMP102 Sensor * - * Driver for the Re-Mote TMP102 sensor + * Driver for the TMP102 sensor * * The TMP102 driver returns the converted temperature value in centiCelsius * with 2 digits precision, to get Celsius just divide by 100. * @{ * * \file - * Header file for the Re-Mote TMP102 Sensor Driver + * Header file for the TMP102 Sensor Driver */ /*---------------------------------------------------------------------------*/ #ifndef TMP102_H_ diff --git a/platform/remote/dev/tsl2563.c b/platform/zoul/dev/tsl2563.c similarity index 94% rename from platform/remote/dev/tsl2563.c rename to platform/zoul/dev/tsl2563.c index c7e57f7ee..a5a2ef77c 100644 --- a/platform/remote/dev/tsl2563.c +++ b/platform/zoul/dev/tsl2563.c @@ -29,11 +29,11 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-tsl2563-sensor + * \addtogroup zoul-tsl2563-sensor * @{ * * \file - * Driver for the Re-Mote external TSL2563 light sensor (Ziglet) + * Driver for the external TSL2563 light sensor * * \author * Antonio Lignan @@ -46,8 +46,6 @@ #include "lib/sensors.h" #include "tsl2563.h" /*---------------------------------------------------------------------------*/ -#warning I2C SDA AND SCL are inverted in JP8 connector, inverted in init() call -/*---------------------------------------------------------------------------*/ static uint8_t enabled; /*---------------------------------------------------------------------------*/ static uint16_t @@ -142,7 +140,7 @@ configure(int type, int value) } enabled = value; if(value) { - i2c_init(I2C_SCL_PORT, I2C_SCL_PIN, I2C_SDA_PORT, I2C_SDA_PIN, + i2c_init(I2C_SDA_PORT, I2C_SDA_PIN, I2C_SCL_PORT, I2C_SCL_PIN, I2C_SCL_NORMAL_BUS_SPEED); } else { light_ziglet_off(); diff --git a/platform/remote/dev/tsl2563.h b/platform/zoul/dev/tsl2563.h similarity index 95% rename from platform/remote/dev/tsl2563.h rename to platform/zoul/dev/tsl2563.h index 6cd2d14dc..08c538050 100644 --- a/platform/remote/dev/tsl2563.h +++ b/platform/zoul/dev/tsl2563.h @@ -31,18 +31,18 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-sensors + * \addtogroup zoul-sensors * @{ * - * \defgroup remote-tsl2563-sensor Re-Mote TSL2563 Sensor + * \defgroup zoul-tsl2563-sensor TSL2563 Sensor * - * Driver for the Re-Mote TSL2563 sensor + * Driver for the TSL2563 sensor * * The TSL2563 driver returns the converted light value value in lux * @{ * * \file - * Header file for the Re-Mote external TSL2563 Sensor Driver + * Header file for the external TSL2563 Sensor Driver * * \author * Antonio Lignan diff --git a/platform/remote/dev/remote-sensors.c b/platform/zoul/dev/zoul-sensors.c similarity index 84% rename from platform/remote/dev/remote-sensors.c rename to platform/zoul/dev/zoul-sensors.c index 88daaa0cf..52dac52c3 100644 --- a/platform/remote/dev/remote-sensors.c +++ b/platform/zoul/dev/zoul-sensors.c @@ -31,26 +31,24 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-sensors + * \addtogroup zoul-sensors * @{ * - * Generic module controlling sensors on the Re-Mote platform + * Generic module controlling sensors on the Zoul platform * @{ * * \file - * Implementation of a generic module controlling Re-Mote sensors + * Implementation of a generic module controlling Zoul sensors */ #include "contiki.h" #include "dev/cc2538-sensors.h" #include "dev/button-sensor.h" -#include "dev/phidget-sensor.h" +#include "adc-sensors.h" #include /*---------------------------------------------------------------------------*/ -/* TODO: include the tmp102 sensor as well */ -/*---------------------------------------------------------------------------*/ /** \brief Exports global symbols for the sensor API */ -SENSORS(&button_sensor, &vdd3_sensor, &cc2538_temp_sensor, &phidget_sensor); +SENSORS(&button_sensor, &vdd3_sensor, &cc2538_temp_sensor, &adc_sensors); /*---------------------------------------------------------------------------*/ /** * @} diff --git a/platform/remote/dev/remote-sensors.h b/platform/zoul/dev/zoul-sensors.h similarity index 79% rename from platform/remote/dev/remote-sensors.h rename to platform/zoul/dev/zoul-sensors.h index aa0ee03d8..6a7bc1a86 100644 --- a/platform/remote/dev/remote-sensors.h +++ b/platform/zoul/dev/zoul-sensors.h @@ -31,39 +31,38 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote + * \addtogroup zoul * @{ * - * \defgroup remote-sensors Re-Mote Sensors + * \defgroup zoul-sensors Zoul Sensors * - * Generic module controlling sensors on the Re-Mote platform + * Generic module controlling sensors on the Zoul platform * @{ * * \file - * Implementation of a generic module controlling Re-Mote sensors + * Implementation of a generic module controlling Zoul sensors */ /*---------------------------------------------------------------------------*/ -#ifndef REMOTE_SENSORS_H_ -#define REMOTE_SENSORS_H_ +#ifndef ZOUL_SENSORS_H_ +#define ZOUL_SENSORS_H_ /*---------------------------------------------------------------------------*/ #include "lib/sensors.h" #include "dev/cc2538-sensors.h" #include "dev/button-sensor.h" -#include "dev/phidget-sensor.h" +#include "adc-sensors.h" /*---------------------------------------------------------------------------*/ /** - * \name ReMote sensor constants + * \name Zoul sensor constants * - * These constants are used by various sensors on the ReMote. They can be used + * These constants are used by various sensors on the Zoul. They can be used * to configure ADC decimation rate (where applicable). * @{ */ -#define REMOTE_SENSORS_CONFIGURE_TYPE_DECIMATION_RATE 0x0100 /**< Change decimation rate (used with configure()) */ - -#define REMOTE_SENSORS_ERROR CC2538_SENSORS_ERROR /**< Error */ +#define ZOUL_SENSORS_CONFIGURE_TYPE_DECIMATION_RATE 0x0100 +#define ZOUL_SENSORS_ERROR CC2538_SENSORS_ERROR /** @} */ /*---------------------------------------------------------------------------*/ -#endif /* REMOTE_SENSORS_H_ */ +#endif /* ZOUL_SENSORS_H_ */ /*---------------------------------------------------------------------------*/ /** * @} diff --git a/platform/zoul/firefly/Makefile.firefly b/platform/zoul/firefly/Makefile.firefly new file mode 100644 index 000000000..afecf9fa5 --- /dev/null +++ b/platform/zoul/firefly/Makefile.firefly @@ -0,0 +1,2 @@ +MOTELIST_ZOLERTIA = firefly +BOARD_SOURCEFILES += board.c diff --git a/platform/zoul/firefly/README.md b/platform/zoul/firefly/README.md new file mode 100644 index 000000000..55c6dafa9 --- /dev/null +++ b/platform/zoul/firefly/README.md @@ -0,0 +1,28 @@ +Zolertia Firefly platform +============================================ + +![Zolertia Firefly breakout board][firefly] + +The Firefly is a breakout board designed to inspire. + +It exposes the most basic Zoul features, sporting only the most down-to-core features to work with the Zoul, providing the following: + +* ARM Cortex-M3 with 512KB flash and 32KB RAM (16KB retention), 32MHz. +* ISM 2.4-GHz IEEE 802.15.4 & Zigbee compliant. +* ISM 868-, 915-, 920-, 950-MHz ISM/SRD Band. +* On-board printed PCB sub-1GHz antenna, alternatively u.FL for sub-1GHz/2.4GHz external antennas. +* AES-128/256, SHA2 Hardware Encryption Engine. +* ECC-128/256, RSA Hardware Acceleration Engine for Secure Key Exchange. +* Compatible with breadboards and protoboards. +* On-board CP2104/PIC to flash over USB. +* User and reset buttons. +* RGB LED to allow more than 7 colour combinations. +* Small form factor (53x25mm). + +The Firefly can be seen as the "small brother" of the RE-Mote, with a slick design and a lower cost. + +To work out of the box, the firefly includes a PCB antenna for the Sub-1GHz interface, as well as 2 x u.Fl connectors for 2.4GHz and sub-1GHz external antennas. + +The firefly can be programmed and debugged over JTAG and USB. The board has a CP2104 USB to serial converter with a PIC, it allows to program the CC2538 without having to manually to put the device in bootloader mode. + +[firefly]: ../images/firefly.png "Zolertia RE-Firefly breakout board" diff --git a/platform/remote/dev/phidget-sensor.h b/platform/zoul/firefly/board.c similarity index 55% rename from platform/remote/dev/phidget-sensor.h rename to platform/zoul/firefly/board.c index 577c8f2c7..0aea462d7 100644 --- a/platform/remote/dev/phidget-sensor.h +++ b/platform/zoul/firefly/board.c @@ -1,6 +1,5 @@ /* - * Copyright (c) 2015, Zolertia - http://www.zolertia.com - * Copyright (c) 2015, University of Bristol - http://www.bristol.ac.uk + * Copyright (c) 2014, Texas Instruments Incorporated - http://www.ti.com/ * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -11,7 +10,6 @@ * 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 copyright holder nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. @@ -31,54 +29,31 @@ */ /*---------------------------------------------------------------------------*/ /** - * \addtogroup remote-sensors - * @{ - * - * \defgroup remote-phidget-sensor Re-Mote Generic Phidget Sensor - * - * Driver for the Re-Mote phidget ADC sensor - * - * This driver supports phidgets connected to both the ADC2 and AND3 channels. - * This is controlled by the type argument of the value() function. Possible - * choices are: - * - PHIDGET_SENSORS_ADC2 (channel 2) - * - PHIDGET_SENSORS_ADC3 (channel 3) - * - * The decimation rate can be set by passing - * REMOTE_SENSORS_CONFIGURE_TYPE_DECIMATION_RATE as the type argument to the - * configure() function and then specifying the rate through the value - * argument. Valid values are: - * - SOC_ADC_ADCCON_DIV_64 (64 bit rate) - * - SOC_ADC_ADCCON_DIV_128 (128 bit rate) - * - SOC_ADC_ADCCON_DIV_256 (256 bit rate) - * - SOC_ADC_ADCCON_DIV_512 (512 bit rate) + * \addtogroup firefly * @{ * * \file - * Header file for the Re-Mote Generic Driver for Phidget/ADC sensors + * Board-initialisation for the Zolertia's Firefly platform + * */ /*---------------------------------------------------------------------------*/ -#ifndef PHIDGET_SENSOR_H_ -#define PHIDGET_SENSOR_H_ +#include "contiki-conf.h" +#include +#include /*---------------------------------------------------------------------------*/ -#include "lib/sensors.h" -#include "dev/soc-adc.h" +static void +configure_unused_pins(void) +{ + // FIXME +} +/*---------------------------------------------------------------------------*/ +void +board_init() +{ + configure_unused_pins(); +} /*---------------------------------------------------------------------------*/ /** - * \name Generic phidget sensor - * @{ + * @} */ -#define PHIDGET_SENSOR "Phidget ADC" -#define PHIDGET_SENSORS_ADC2 2 /**< 3V3 ADC phidget-like connector ADC2 */ -#define PHIDGET_SENSORS_ADC3 3 /**< 3V3 ADC phidget-like connector ADC3 */ -/** @} */ -/*---------------------------------------------------------------------------*/ -extern const struct sensors_sensor phidget_sensor; -/*---------------------------------------------------------------------------*/ -#endif /* PHIDGET_SENSOR_H_ */ -/*---------------------------------------------------------------------------*/ -/** - * @} - * @} - */ diff --git a/platform/zoul/firefly/board.h b/platform/zoul/firefly/board.h new file mode 100644 index 000000000..819889253 --- /dev/null +++ b/platform/zoul/firefly/board.h @@ -0,0 +1,305 @@ +/* + * Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/ + * Copyright (c) 2015, Zolertia + * 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 copyright holder 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 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. + */ +/** + * \addtogroup zoul-platforms + * @{ + * + * \defgroup firefly Firefly platform + * + * The Zolertia Firefly is the most down-to-core development platform, exposing + * the Zoul core functionalities and features, with a slick design to allow a + * flexible and easier user experience. + * + * Defines related to the Firefly platform: a Zoul-based breakout board + * + * This file provides connectivity information on LEDs, Buttons, UART and + * other peripherals + * + * This file can be used as the basis to configure other platforms using the + * cc2538 SoC. + * @{ + * + * \file + * Header file with definitions related to the I/O connections on the Zolertia's + * Firefly platform, Zoul-based + * + * \note Do not include this file directly. It gets included by contiki-conf + * after all relevant directives have been set. + */ +#ifndef BOARD_H_ +#define BOARD_H_ + +#include "dev/gpio.h" +#include "dev/nvic.h" +/*---------------------------------------------------------------------------*/ +/** \name Connector headers + * + * The Firefly features two 2.54 mm header rows over which exposes the following + * pins (facing up, Zolertia logo above and Micro-USB connector below): + * -----------------------------+---+---+-------------------------------------- + * PIN_NAME |JP3|JP2| PIN_NAME + * -----------------------------+---+---+-------------------------------------- + * PB5/CC1200.CS |-01|01-| LED1/PD5 + * PB2/SPI0.SCLK/CC1200.SCLK |-02|02-| LED2/PD4 + * PB1/SPIO0.MOSI/CC1200.MOSI |-03|03-| LED3/PD3 + * PB3/SPIO0.MISO/CC1200.MISO |-04|04-| PD2 + * PB3/CC1200.GPIO0 |-05|05-| PD1 + * PC0/UART1.TX |-06|06-| PD0 + * PC1/UART1.RX |-07|07-| AIN7/PA7 + * PC2/I2C.SDA |-08|08-| AIN6/PA6 + * PC3/I2C.SCL |-09|09-| ADC1/AIN5/PA5 + * PC4/SPI1.SCLK |-10|10-| ADC2/AIN4/PA4 + * PC5/SPI1.MOSI |-11|11-| BUTTON.USER/PA3 + * PC6/SPI1.MISO |-12|12-| ADC3/AIN2/PA2 + * USB.D+ |-13|13-| DGND + * USB.D- |-14|14-| D+3.3 + * ---------------------------+-+---+---+-+------------------------------------ + */ +/*---------------------------------------------------------------------------*/ +/** \name Firefly LED configuration + * + * LEDs on the Firefly are connected as follows: + * - LED1 (Red) -> PD5 + * - LED2 (Green) -> PD4 + * - LED3 (Blue) -> PD3 + * + * LED1 pin exposed in JP2 connector + * LED2 pin exposed in JP2 connector + * LED3 pin exposed in JP2 connector + * @{ + */ +/*---------------------------------------------------------------------------*/ +/* Some files include leds.h before us, so we need to get rid of defaults in + * leds.h before we provide correct definitions */ +#undef LEDS_GREEN +#undef LEDS_YELLOW +#undef LEDS_BLUE +#undef LEDS_RED +#undef LEDS_CONF_ALL + +/* In leds.h the LEDS_BLUE is defined by LED_YELLOW definition */ +#define LEDS_GREEN (1 << 4) /**< LED1 (Green) -> PD4 */ +#define LEDS_BLUE (1 << 3) /**< LED2 (Blue) -> PD3 */ +#define LEDS_RED (1 << 5) /**< LED3 (Red) -> PD5 */ + +#define LEDS_CONF_ALL (LEDS_GREEN | LEDS_BLUE | LEDS_RED) + +#define LEDS_LIGHT_BLUE (LEDS_GREEN | LEDS_BLUE) /**< Green + Blue (24) */ +#define LEDS_YELLOW (LEDS_GREEN | LEDS_RED) /**< Green + Red (48) */ +#define LEDS_PURPLE (LEDS_BLUE | LEDS_RED) /**< Blue + Red (40) */ +#define LEDS_WHITE LEDS_ALL /**< Green + Blue + Red (56) */ + +/* Notify various examples that we have LEDs */ +#define PLATFORM_HAS_LEDS 1 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name USB configuration + * + * The USB pullup is to be enabled by an external resistor, as it is not mapped + * to a GPIO. + */ +#ifdef USB_PULLUP_PORT +#undef USB_PULLUP_PORT +#endif +#ifdef USB_PULLUP_PIN +#undef USB_PULLUP_PIN +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name UART configuration + * + * On the Firefly, the UARTs are connected to the following ports/pins: + * + * - UART0: + * - RX: PA0, connected to CP2104 serial-to-usb converter TX pin + * - TX: PA1, connected to CP2104 serial-to-usb converter RX pin + * - UART1: + * - RX: PC1 + * - TX: PC0 + * - CTS: not used, one suggestion however is to use PD1 + * - RTS: not used, one suggestion however is to use PD0 + * + * We configure the port to use UART0 and UART1, CTS/RTS only for UART1, + * both without a HW pull-up resistor. + * UART0 is not exposed anywhere, UART1 pins are exposed over the JP3 connector. + * @{ + */ +#define UART0_RX_PORT GPIO_A_NUM +#define UART0_RX_PIN 0 +#define UART0_TX_PORT GPIO_A_NUM +#define UART0_TX_PIN 1 + +#define UART1_RX_PORT GPIO_C_NUM +#define UART1_RX_PIN 1 +#define UART1_TX_PORT GPIO_C_NUM +#define UART1_TX_PIN 0 +#define UART1_CTS_PORT (-1) /**< GPIO_D_NUM */ +#define UART1_CTS_PIN (-1) /**< 1 */ +#define UART1_RTS_PORT (-1) /**< GPIO_D_NUM */ +#define UART1_RTS_PIN (-1) /**< 0 */ +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name Firefly Button configuration + * + * Buttons on the Firefly are connected as follows: + * - BUTTON_USER -> PA3, S1 user button, shared with bootloader + * - BUTTON_RESET -> RESET_N line + * @{ + */ +/** BUTTON_USER -> PA3 */ +#define BUTTON_USER_PORT GPIO_A_NUM +#define BUTTON_USER_PIN 3 +#define BUTTON_USER_VECTOR NVIC_INT_GPIO_PORT_A + +/* Notify various examples that we have Buttons */ +#define PLATFORM_HAS_BUTTON 1 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name ADC configuration + * + * These values configure which CC2538 pins and ADC channels to use for the ADC + * inputs. There pins are suggested as they can be changed, but note that only + * pins from PA can be configured as ADC. + * + * The Firefly, as it is, only allows 3.3VDC sensors. + * + * The internal ADC reference is 1190mV, use either a voltage divider as input, + * or a different voltage reference, like AVDD5 or other externally (AIN7 or + * AIN6). + * @{ + */ +#define ADC_SENSORS_PORT GPIO_A_NUM /**< ADC GPIO control port */ +#define ADC_SENSORS_ADC1_PIN 5 /**< ADC1 to PA5, 3V3 */ +#define ADC_SENSORS_ADC2_PIN 4 /**< ADC2 to PA4, 3V3 */ +#define ADC_SENSORS_ADC3_PIN 2 /**< ADC3 to PA2, 3V3 */ +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name SPI (SSI0) configuration + * + * These values configure which CC2538 pins to use for the SPI (SSI0) lines, + * reserved exclusively for the CC1200 RF transceiver. These pins are exposed + * to the JP3 connector. To disable the CC1200 and use these pins, just + * remove the R10 resistor (0 ohm), which powers both the CC2538 and CC1200 to + * only power the SoC. + * TX -> MOSI, RX -> MISO + * @{ + */ +#define SPI0_CLK_PORT GPIO_B_NUM +#define SPI0_CLK_PIN 2 +#define SPI0_TX_PORT GPIO_B_NUM +#define SPI0_TX_PIN 1 +#define SPI0_RX_PORT GPIO_B_NUM +#define SPI0_RX_PIN 3 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name SPI (SSI1) configuration + * + * These values configure which CC2538 pins to use for the SPI (SSI1) lines, + * exposed over JP3 connector. + * TX -> MOSI, RX -> MISO + * @{ + */ +#define SPI1_CLK_PORT GPIO_C_NUM +#define SPI1_CLK_PIN 4 +#define SPI1_TX_PORT GPIO_C_NUM +#define SPI1_TX_PIN 5 +#define SPI1_RX_PORT GPIO_C_NUM +#define SPI1_RX_PIN 6 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name I2C configuration + * + * These values configure which CC2538 pins to use for the I2C lines, exposed + * over JP3 connector. + * @{ + */ +#define I2C_SCL_PORT GPIO_C_NUM +#define I2C_SCL_PIN 3 +#define I2C_SDA_PORT GPIO_C_NUM +#define I2C_SDA_PIN 2 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name Dual RF interface support + * + * Enables support for dual band operation (both CC1200 and 2.4GHz enabled). + * Unlike the RE-Mote, the Firefly doesn't have a RF switch, so both interfaces + * should be always enabled if the R10 resistor is mounted. If only using the + * 2.4GHz RF interface, the resistor can be removed to power-off the CC1200. + * @{ + */ +#define REMOTE_DUAL_RF_ENABLED 1 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name CC1200 configuration + * + * These values configure the required pins to drive the CC1200 + * None of the following pins are exposed to any connector, kept for internal + * use only + * @{ + */ +#define CC1200_SPI_INSTANCE 0 +#define CC1200_SPI_SCLK_PORT SPI0_CLK_PORT +#define CC1200_SPI_SCLK_PIN SPI0_CLK_PIN +#define CC1200_SPI_MOSI_PORT SPI0_TX_PORT +#define CC1200_SPI_MOSI_PIN SPI0_TX_PIN +#define CC1200_SPI_MISO_PORT SPI0_RX_PORT +#define CC1200_SPI_MISO_PIN SPI0_RX_PIN +#define CC1200_SPI_CSN_PORT GPIO_B_NUM +#define CC1200_SPI_CSN_PIN 5 +#define CC1200_GDO0_PORT GPIO_B_NUM +#define CC1200_GDO0_PIN 4 +#define CC1200_GDO2_PORT GPIO_B_NUM +#define CC1200_GDO2_PIN 0 +#define CC1200_RESET_PORT GPIO_C_NUM +#define CC1200_RESET_PIN 7 +#define CC1200_GPIOx_VECTOR NVIC_INT_GPIO_PORT_B +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name Device string used on startup + * @{ + */ +#define BOARD_STRING "Zolertia Firefly platform" +/** @} */ + +#endif /* BOARD_H_ */ + +/** + * @} + * @} + */ diff --git a/platform/zoul/images/firefly.png b/platform/zoul/images/firefly.png new file mode 100755 index 0000000000000000000000000000000000000000..362047c640a2f5b4c3968d978a6cfa2ee52e929b GIT binary patch literal 231381 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 GKsibS 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 I1*?ev0_k`&$N&HU literal 0 HcmV?d00001 diff --git a/platform/zoul/images/remote-pinout-back.png b/platform/zoul/images/remote-pinout-back.png new file mode 100755 index 0000000000000000000000000000000000000000..15ced83a0d2d0723fc7ca5f60893eac2e851eb26 GIT binary patch literal 127223 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 ME@lq%0}7i&9ct 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®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 G*#7{TrgYN) literal 0 HcmV?d00001 diff --git a/platform/zoul/images/remote-pinout-front.png b/platform/zoul/images/remote-pinout-front.png new file mode 100755 index 0000000000000000000000000000000000000000..c32427d087c7a0165c5c194c0ba43214078f5916 GIT binary patch literal 119524 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 AApigX literal 0 HcmV?d00001 diff --git a/platform/zoul/images/zoul-front.png b/platform/zoul/images/zoul-front.png new file mode 100755 index 0000000000000000000000000000000000000000..1a513051559bb1b00dde0e3f813605333a55c0c0 GIT binary patch literal 133666 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

XVIO5GE$kY5Lr=&l#uBPmYgntu58Z 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
z
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	R<>u=EeTgUaHx=T_9}P^;jDqG
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 HCZYcWmIQa} literal 0 HcmV?d00001 diff --git a/platform/zoul/images/zoul-pinout-front.png b/platform/zoul/images/zoul-pinout-front.png new file mode 100755 index 0000000000000000000000000000000000000000..c1d8a6c91314982789f44190529c0196aafbb335 GIT binary patch literal 98473 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%0A&huTA&hDylNT_Ok300Ca=~-* zbCeVr$uj%yX4sA2EHQwfoL2kkbOk2;o#C{fJkWs)kXzEI1tmb;xW;KZlt1i! zkEVeM?~-6v%R%@><%@$7lG|`v15X2S{$`%HIUaqK09JPKA;0Z3Rc9E+7*F>lA`H0_ zFjN1l@%L|_i|ntM6!v{dnR$vJr z$Ab*ubs&U3xEZ$iUhQ!TR7ssCpDbhqOkr=A7) zy8r|qNeV8C!=n;JV}|Rtjf1^oRk}7rJRkn*G3DMSF)7kws&gl?ZP$9R%%ef_hoPO! z%%D=Jz;@IAif7Bgi|U)^KzdwXW>Ood+j>RGljsLGZ0nAX;(iNOYr)AmAtAJ75J-r> z00Iv?$;yx6mCy2`*7EYF)Wn>Mt;CK;z#a^)6P?EOo`)nLhY z*hy{*VtWUg_vDrG@_zePW5+fz(qN%oxd+!Rl6l-BFqbrjX+z+b)?|{UzN+SHHDnOM z8~Ohu>#f70YQwf)y1PLT0TG0uJ5@Rq1&N_&KxsjwQ;?SKZs`GrmUL)o0cin2x{;ES zedF`K-?#U%$3w+`Tr+Fdy4QVO*LnUKGY!fDEle6esom}2ENPf`Ns=! zZh$u8jHcDaTn?(5<-Q2yA|Yn$L633=^ZV<)B)_^>no%GM>00(bq0O(qqkP>cv*8h6 z1DzhVCwve!348WR!%U0eSRC`LZU#*{|YZpavA^`}i>H$XhyG=9} zERGeOkqrxFNa-iq_c>F3dr8?<{}AzOx>5p;yiEXwhjrzTy` z3BI)Tgo=<&FkF33v7mEUxLR(mxcvBx-qv})%m0MvfnQJ#vhza>hV2o(9GN4Gg&Ydh zq@+LqT`pTt*-uXi`M$2c84mzR9)lf%fUa_eWwT!VRy+5V=-zMz8EXhtn zAk+cJU*rH^raBp}uAPp>VRg%L%8-iRG{IOdxDwE*u7>ORy1B-dG%fhBafm>zc*E~!Z-o#j~RVWRRgw1&BsQL>zOgb^FuMV zy9omEWTO0oenJU{X4NpDwHq4T#&cwH=~Dnv6p9`WBjzYcC<}}TizBk6qw&8GLDR;T z!_q};22ff@txJ5ld-qoE@ADfaY2w`9xrAMNhHJaMKMzLq)PCkujD?*s^y8{?)0UGe zzc@?a#5e&WZ6kSC3JQ1V8l=cC-)p>%f*94?jb?H@?}6{?;{JH?8^is9(1Sq?i!P*m~TL~koD1tGRCCJ zl=5+YDQH4z#p}%^f0!rHe;L-CoL79Y;Y;`j$af_(f4>a{nYXidvVq~ogSbr9Uokg9 z8E~n6h8Y@4IYQ08FS}EiMOIexi6f!J;XqzFwGGb5TrjwX1UT6{K4)n7*I}?I;9@CG z@Px+5OfFl7ZG^lKr$}=o9@rbNP9|mve548BoFDgEdI=~wv8yb(IuosQ_^8%}q!3Pr z4_VHm!~kY!iKh}DV*Tl&1TEatmE5Z`DQ`n4hw~$eh0wb?T+e@?4*G&P$$WY=H2!hw z0&LI6Ul@Q4$!=C3k`A_+21JN4-pzuC$*u!pXu7peVqM_-r1hqkgCZQK@-QjLg*5N@ z57?olOB)Q4<~*K@@~ro|hL+jYUH`Ff6PTHkdi*Mw?g`%FH(#fxB<>?w<(1>cqv4jf zKfHvMOMBI~{l!GrJ(;Po+}?f^#Nsn?anYo@d9pKeabddoFs?<-y^@UtGMYgjVqNDt z=+C~F{4NT3L8`c1QZxvqNtxBlJn<3isM*w#k9k}lNdR*i8?(4 zmnD$wZkyR-e%lE!r8O=|4HUoqK}c0X=18%;5H818or7OV;Fw`=vs|X|Of&Br?En+5 zs;OL4SGc}A&}-IhiKZJ!4joDFyR*fy`0HRn*5oP&i?3T`$4Y`)^DwubE^6I^c_YMs zj6iv3{2xl@WSe3`U*;u=W(uZX)aVN!)zB21b0ANvl*DRELsnTJ#8E(r9Q?w0q@lY{ zSm-`tOQ|Y0v25(@ z^lMP{Rxays1_Iw>@kJVr1-@1Aj6jDTH{V^>P6H`#mh`}Z;Jh^{{V}Z5U&JAH#LZPZ z=l6Dm-H%3J%k==i37LG<)`toEvsyQRNH-<}+L1`$oU(-)ef}iWf;^itHgPV(hDl!S zT;?(P$T@wdoy2;EyTCZYyg6~EtJ0G5rG>0*(DdWf>FHLyt2f(njwhM=T@K_$}`S;jU)N**YTro0_AWIiXXO$he_7t@wH!=th+f^mVb>_xm;w zGdIrOdQqmUH^a!<`@4Q-=BKHu1Uk~$6!!h3wmBx`IaaZiFbp*fV(K6foQeoKCNs~v zyNo!5#gq*{F5eQ$m*``nse~W;I}P=DDBr$o+g+qVO>Bpsh}tev$p&2FsHlo)s)C72 zG}us~sh@R&ROU0_e9}L&bM=%!2E#00Ea#t1&HmS>>+dgXuz23PR}2)8tNGjcJrTi5Z`N%&pm>wHNyh zG*r+*iTt)GkW)XHnj3^ptUFXDff4evAXhI|rB>MrsD zyRz2BouO&GKV$CoAMy9V>4H;QJ`zd92k{dLkaT`?JfM)k$uQ}7D1&HW0FUVrTd4j8 z4;X)frRX`n;bT3W+s>}yWvMfYx9p?fek9-xm8X^t8}wUQeu}V=(P5W@WC~V_*chKY z%;j7WxL%HcRzC$PiQ&aWu53uJm;Vb`!L7|2!oK<%9UXhO=3$Ojm5xk_B|Y%K2gCma zw>u+9rsZXYDKf1>6)``Mom#6QP~G8sw^ggD9n)iXHj*B1^+181 zs7}kcOgd4Ls6<-+9=anviKu{78Cr|Veifk=AS&_;qC|P>p&zh{i;1>zQ;1@Hq*W@IhMB{Suu=46cD1^pp3~VB;vc`chNCW)cOqs`)Xew; zkC{qy7)zYA+h$^8Z1n9RlJei*kCboCXd7Yx12w}jFi_Jlu@1UbJud>rKdnl=f0>w_ z_mS?$@B3Qkyv(%#eu2-VQ{^_-?MNUm$Uu_?gKx>ob=k{SXPNSRG zK7kJfKvb*F9hf==xRVw|BnfDg`V}UBc=fzPXS~JsQ&p@|I(F%OTPR4&8zo|5AwDBj zvr-`eV*YbQoCD~vsY7p1hq20RVgH5;I-1E>Adg%q+g{ITEPM2QwHSMXb2JXVQOQ2DVOmTKAcrYNXtUr#i0 z3+`z01T4+u@PO18F}2Bwagn^it3m&5ewQYC@}zgdJ)w3=pGNH<0IijM)1~z1`;(|o z-9K1I&bi2_(FPv86!T$ArE&PREE@)*C;znVx2gT%F@JJ+&oM?FQWai1o6z8DZSa@j zGV@cCS>he5IrclO+Do3$@28EUR)HMSyRWhHfb{7{kKx~~G zMHNr}q^alWnkV6%8hDpns0m{U{QBG;2P%p_$)|Wt*#?i14eJBPtx&&Tbx-hQE^kcyicaevl3SkP?L(HT;XCMg;QxMd%g<;SWGhz{i{rcAvbgpP_{|9K12Y?np zXgMst2~V#ojlM*Jwiu0r?ptF`ya9?!I?x?X71k1|jLDugg3XA2KsvnI??G&ZT`DvK z2gahC@y%;Qe6P>bO(&Thk1Ow1@GE~ zR61>y*+g4Q^EsAzE$@xw6cPVH=&0@!Zpoe{m$4SxqHa{4=BQjqy$BF|{7Aoe1qJf1 z%4i^XcmzSpK1t_e<#n=(75vO+Fd?=q#Dc3Ut*~Kme_436G>eBv-S&uyhTa4if>uP_ zrX5V*iHWtPw`WsmNdmGo)+3y|Bu<0B`r<-559-I?KADZKB{s#PkwfNrw5xsvITBqG z0E}otJP@A#jSKxh1D9s)hKIbKBP+N>+Tr!ZB6m%%?KPyW2JhsmoM#Sk;LiLl>GFQ3 zY4Fz8`syLrKFw-7&MZ|(I5+t*i;!B2b@GTmQnqRn%1+L=;?Lf;5%_<5xAv&KV>gho zs3zJ&{M)7fOrE#h692a#vArCi_P?3w*ZmT%5$IbLCZi*6@f^R81cX-ys_^N4*|oH! z4&OWFI=k1icAix3(^4BlkR7Mw+XVnzbvUERNYJ1g^9Tg%#Kc&BcN9Zn``#Ga64yN~ zyRsa0s_0>qz8iIh8cb1ePh2!gYL!LuX-4JMN-T254t&=fmJWyk#8!>9wu67~cx4cb zwxM_X&CM3TcFALLWT1~nW_0*Hi{XrX|JEQz<%st=8-wA<@}obKo^q&Y?>WF~x!Du{ zxEwZe2c2+7X>?E8vyBo6jCg@#Y%cvb;cc20I+FJ%JPJsA2=5nRUHw>jVQP{6@|9k; z1{;MpST(2b3x4`Qw;4V(G(>B+Qn*XIIP`pe*F`Irj<&Iv_7b1>`H?+KBwF~5e#ti& zNX%>7W>J^AKd<*s)YR_xUsG?B&1Hd$2X~Slcao}$;>~}D-RTTu<0^qWD!KuFRvOiq zf|<~WM4`mMSj2#cN~4YG=)B;4_8mNe`&9g80;?HI_F|E{#lOdjCm(iG$4abvLh-@W zbiMV07yXupONU%LGXC@cckSi>L9^U$49;*tOfy*`38lH8BeQM*!#Z8ZW|>MDyf3Qk z-cZW-GtjwC!rF!3_%%zohuO(3-L-0*?RZn<=(5H|YvjsUH7>*3;UDF(mRY%kF9fKD?Lp{r^6#{1vqc^q;uF@H@6g_)VOKiU@ zH+gDBik-C6%0|(4c$1j%XL@UDCe9IaGT7teCEjYBca-QQ)5vH2v@&%X_%*gZh(ECOB606j()@0;BLRy)KXQk;f`)~J zsdRx6vup7+1r z+Bok5i656U9_iq2C~py7JOh?CpKQ*L6i>9WgW+^-mwz$$PYq&%`$&f09=T_HVQ!M< z`J5;mAwVJ!Yb5K)?>6j?x;r3x2dd(AzLDgo)AIjO9yz|hriBM|d*g2kby%>0K62Ui z@RX65t#DtgPJhLs+zy4=KmQ{#s&%AF!U?F` z6{8|OBnellf%7}R00Z{>oo~&mf;q#lmz}sL=G25L($-+4zx;-Weoh}`dZSo`qAm0N zw1fFt3WReBS*gaPlY--|Qwl)fVnqmhA$EK8wesTM&F8n5G6*K3SzQV;293AL3*S6P z;lERDn;dGIZKkkn^Yg~J+~~B^xc*}Eoz?wh3=8%r5nPP+hW?q991(9GNJlXBvQ#=E z^^oCB{qqFlSTC6t#MQoRgNdWYn z$Y!%a^{A$D8P%WGePrpJ>-s(V*VlH?)j#QC=kVElhVaVp?S1WbRFOb)z@QsX{Kz&h z;h}mghVTCdD!ub?N8i0}H&}d&&88!JIf&S@rcAgO|ML=GUd~?{vNSpVW7WE{L?kjN z$FFKSWiK$TFp?!xCYUU$lmEMLO^0`P4sq{v=MIIYpTD_3Zwqg?WckPawWSZje5pO* zd!Vl(DaTL)K%#K~C5nixh~7{JiAAqJJphf7Uqp!rON=qi4QA$!ymAk*ZVa5(djYuf(3p`sA-SNdNgz)d zX!Z2|BzKq|yYTtjj%fZtTFacH2tCzsTL6TRupV0j78!gbm@Pl%*b4+?&^c{#E&St~<_rfUnQd|n~3|Zlq<-(ipuQB~2!pOmP2LW+4 zRenol)KUg?b<{F9{{c&mU4gwM=hKIU&}m8xWBSaIgxCsBNjl?+WU~KF8#)fxC(WS7 zP{-yukd{-BwQ+g5Jstt;b(Hd0Go-Ga~O z@H7vl1AA`Y^8~@l-S1ZvABTANAF5HGTz*iGaou^`JuZ0+KtUbT2JMd?#WX&`d@S4vb&9KD*CkabD2mh!6V$e zttKBM(bV!48_K5Op)2+Jx)6BiLRU?}Q-W4OA?8_%dF$Q(Q4x_|m>FX7HQ%vsH*d|j z)@>8+OdRtD)=rPkU$_F(-KL91?;55gMz*muLQ&O#zt3p<0F$Ps?Ow7dcbETQ{hOvv zg4T|5ZGSuY>dz(_O14mh)wG=%2gfrY+y&QR!ZA(Q|F0#%kuiQG3hn-X2LXMUcnz8o zB#=Zxl|9q{D;J_gY)Moy1n)oC-MFsxw*e!=noBrFZt^Gk;8Bz4GYOd|g8J+1hYh}5 zJoBHr6J;G|A5R>$pxIiKH#HK|hmkR)7wVVU`;PEE5f>c-c>((H!tX>-k9l47eO-uX zyqdaolNi|IWr4C{^27~VKBEFhF%-B$+3FfV^CU!8RomZpwJ31>|HEJrMAB5roz>l{ zmBW9Nk;Bf3pif~vu&g6pFxag7QTo>gP_DC{-uC-lfofdk?<8Ma`hHW=HkHRPB{N>R zlHcp1jV}M!gs2bo##}R^3bh+|#dMcIq{WXHiElp_MM-`Z=aD7#1ZDD@E;Hk!FkyX= z-rFQcT$YTbYby#YS6JGLsSOFKZ!a)`=hD^nt4a9%jhi+}q^E-D8%Yo^<~45b@DTYO z3<>tU0p_%djfE-T6dMMFc#jsi!{#-UkguyDqU!PE=F8j2c_^VQ(~J ztRD=0f?pg6j)qLw1#0M?FEvTs0@~u;)usXZWD8(XcxLqqFkSU^5>laa)iv_fYT% z@VtEo$l+dgVB4+sYP`T21G&M@NVdQBm?}JsX|KBuE4?Bi_#C9O823JjQITR`mcHnf zI|Zc>SX)NX(Q0BrzZuQ%uLA+(oq}c};6oY1b-2eak@6RnbYQjJ9k}5CzW`LvQ^lp1 z9fB`HxHy%sG?$3y7=nR3h3sU}Nd{tav-+Pgd+rXmA@P@Yx8->`8EmHBxZ3iAi%9kIN;KO(x=4(*-nbek_gVj#T(^(#% zire#~y|0+Li6Me%@&ob`EAX{L3B1F`o34p5aU={KX?KV9*wt)haj3}6E0fdxrNFCO zVKtpsuC6-fz#zr|h~{8NE%!)$C^bE`H?eu&ARPIK{r=)1jx2dvZO<)dWq|Oua-PGO z+;>TeIokUCvQ7NHoY#-FaO+#IkJu)$6+2^ow+N7We}N3CrD(OdD`jB=1Unw&k-5%( zb%V3ci2;0TONT9%DX{p9a(#M9VquV;{ zcMB;Pe%jGmi2W8!57S@X@2WOB)46BHnzMGu2-W)me;pm@{Zb*9N)Yp6xj8IATzy9!5%F>YR>(u_%WuEu{Qe8mV7JcD}iSdT<&9@I~0Yel9_Hf$f*Ns7r-NMzKo(y79 z!$E74G+!=UmrdU_B%5erWrfrkh!7$YxxXVjK7c1(Lr1|qTixRBdc8iXQ?hT;{@q6tE(<~2GivL6LJNeJC0>`Xd6%(zk4%uWy+9XJUY;m_3 zxBiu(;f4otGoE`pzE5^)n5xx{Y@C-eS0;0xZm}4hCvqG%6!f8M3p8i!9@9 zHRNqf*Mp75t5O;{S^eTPl=?JJ)Uc!;x+ZnxA;G#hHg5(i2S)JY+Bv`?PrwiJD*@EU z%WLlsN~H>p$KNPw4=I#NS9*I@ILj_QehvFp{W+u__Xdg|Ll5#^vBUR^G2GAfvaV08 z%&6ugpV3H4U@Z~kG=jDJ_H*az_$@w~R24`~PtWSjlXi zjufw$!x9r)J?8*vt9$RXpZhd})G0b}f_oDAwU1Xt^2d6pSpl{s?=z>A7NW}vp|Xpd zMTw|9cfT#Ae-u^VLE`)fa4r(a4aoLGp%>3MnN(qYpVOzs_Yy)jz75U59gQ3*2_ESV z9UV2OC1+wMhmL-(7_Hc64^4~$9(RCo*)?@-NDeaNRYW!QlMt>y6o5$VvlkNbssGBC zcqW?GxkgE(}77L-bYCtv{lnK`;AhL`!p+!)Duq)|DrFR#Ezf zjSDY3+>v};`n?rb%^oIX5OqS2w1WiXsGTswl|5fPstGuh&~(+KlQ3*0u}w2vp99)l zLTK(z)w9(k`zg`Q?`Hf?zD*2q`XNo_5oI9f-`Y603b!lzPTrUor8Lq2>i6~I zSu5dLLC1<&0iC!$O4Y(NQ9X6@n!uLv%%cA-^TE#H@qoW#pu8@6;_lw>c;Huv0A?iW zMDq6wk@t~i=#L5`Vp1EzrhaG58H18VkkV!8$aRjt;;mQ+XFrw%YT1SuzpgFO+k^gr zxDA{5@Ow3tBAnKay5)i{1~IKS!YZbiU(#4FMpM+pfHe_GZ9PT=3I&+{TsTw%iU~*4z2_m5^BmF)b$^6kH`psr(`K{6sfgZeHD4<3T0H#3Vu}xu>Lr1JD`DUMw;P}-yplJo?(c%5+pHb`Ml>-p|Gg2+=X6ei zO0fYDJJD#aH`h^SZ>ET#_Oc!b0QFuC%|2{6|9M-XFTNjP#0ww)0k$!(9u(y!SBrN; z%gR5UfL;wndIi^bXI|x)Ac{aM>qvYsg<=hzTkM><|?tMjS-)`=+HuWfDXXiC?_c7Tp&xdmEr}jufw`RMl=BF;dYI_x=bTg@kF~`r+f#5r_PMUT>VM^)ZV4ZqOg}={)r9b z-fN{Xr4Kj|TSG5i=-;!Hkd=nIi}5`izE`-Uz(68YArV%4I_g#PqNeF%$CHAD-c#VL>XeJnIDW|DSP{ZmUpn%J zoH)Fj{-9cTaGWu>Ja@)U^iEoQ{H;L}c#^m!O%nbYh3F6`?^PM`XI_GVDEw8Fe^TPq zOR`Gp*mY0qy^z9I0zwTdldstntiRvysarW2dR7H@^NWhg7oNR9LtKeOB!B9*9TW*6 zrljylbxxx?h(}#~2iS6u#!Gvf{5)Ad6FL|O7{m9Ek-YIn&^3wuMYUNSrae;{;=Thm zmeIh+j_n`93JX`}`P+>nWwb zqLNcaMy`ga0C%#&^ie<#!^2hPILIQ;3O%n%XHPSzCWh`zUiW+vk-28hB*?!@;5%@VsckM}GZ= z%S9U7`sI|_^T8_&-xUd#)X=Ipc6*yrYPS0o5j7a`?=7t>u>!GJu<`81M4%ZzvzkzVvY3osxP+j(z-XMi0pHnyyc>ZmL1IiL3v|;qYOE?RuZ;6MCPd zlF*g4fNa?_Wc1<zwNoeuCtgaFHZ8bGZp%HY(N-oHD&_h8or9*th*73x?J#KMxKS_#7PC^#$*byC8D z1U2ax8}zIG23$QjyN622{yS|uX8oa1>b(9}%fF*H&%kf5hV=_QQ=iiry(Zbqk5fns z)7bHQ-}tbTKngMOdeg%4R_xSh{;RRKK(D+Pj>^*_9@>bpo`?@mGMv$pvHFt=S-rtzJZ!fq3mIx)PB8q-l1dbKL!whh&jU9Z zCRw=xjImx&C8Bt!{;Q=y7(=S246bg}x^zAvy$NJY%3ifw`C z@Ou(c+J6KNwmqb*RCe!k{708NH6yZ89Es(Xe#5fYJ2jQ4a~;WfTrf3P0N7R3@PX3* zKtTdbjlvBl;`3GW$>+S;rPt%f`E_SYO&~HpR%wapYrZdLZ8P!}^eI&&DdMu-pifUbUO;vk=c++T*?H9%EZR!xv9kYIaA`L~Mumllz43ea^>V`^mk3 zmXT}{NWL#BF?bq6&JsJQ@RjlX^uUh`{rY#$VBIx=0=E&2M^iWJzarP(nhTK;(e7p{(BJdd+IEn>hoEmtUCiO0n z{RQvzPc}Rn9Z)qE^~*h|kNyCBd|3K>*MFqcgexjZ&9ip>>fV@>Y=-1@Cfsa)-Kxw} z@~S16tR~srSx?{EMjV~xN6A@$xnJz?Fy(0lW6udv?T5W#-+@Vae$5)OJ2fUZ&ZIUv zcQ!N0&EcD8S6;nMo5?D?OXejZ-XwC!#cy}RgGZvtPkn@u#Vvyj%UvJQXcE7$`Zkeu z6ZBFL?<+`rjxEM${y~ZJt(`yb6rPBUypV4C@_usAf}7ecB^tcn?QmRO*+)>jc{|Weqwgj)ELam_N+w`HQ-=6(OH< ze$CG1Na&bP(e3|PA=M&UX?AoJ9RKNs=4(WEnagNGg&YTe+hpNvLomn?6zJ5HCj-A|)af6a(2?bQP_Z!bOk zJ3sjC;&glrF$g_%$jUh7S{9Cintyh8fchZo`v7 z@IShpz9bWgcq|GA6XSoe-!lVu2TNd1yDe1u>DOa&ii@cFH;UE`rmRmF9-Jo1BD7Sg z=J7X~Up=hckd`}ALK#dS{1|%e;4yx5*Wbxsr@ZiSsX=*G1PWef;3F*=5gj;Ah#0Y2 z4N0`4WGdc_IAEu0;o4?o`f;xhQ zNKPjb`0pxk$TBgelK6Z=nj(t3LM))+jkMs`k8q>Czy1A})NLj!e@Z7XGxI5{IUmew zgi@c|uZNJ+7fL>Ig6StIBBn%U7f8GTG0Kn;M97ZJVP-WW8@)gBqD|6)Ly!L2+HkB( z^UN^N4+F#wq%1W|(O@DuP}v0k^1jIdfN!~z?XvwL@9+&P4mgrUG&)V~*yS3No_I-i zeJsv0)SBm7p68`6gih4x&I>+@n|*)o?-Ea>j%Is)?40Yti&SDe_=EJs(*hq75v8GI z?x_&rPhA-eNF8GeVVK>U#!+iu^O`HhIK!yd&3FB?5sx>y_HJI_gy#n@gb)rH5y(6^?zf}>^D_Xu<^l1Tlj4;X)HUGg^SR( z84TaQr^8gPT{h91PX{#>=GM@wtk-y?Fq(;J>sLUSQvsbAH+3m!<2g2db*IQ~`dIZL zEW7IGBJ*iYrF8;rGgEe}!U`7_1!Q)8b9{wO*8E8?$M9qCkAumCzX0gIM9Qb_a(zH2*HqZ&1lfz%yTp|X!(RxZZi{RM5C7W20d!AWt+i!?5pnuum zRevI1IP)DD%IQjs@f~FBE0iGJa2m*iH^*FzrvxTl{*oQBcOJkFTHnkC9$yBkhE$uD zXnR$^NXaDjYW(c^xM|82WUma`*N^?jn$uh#c7h*_jsG$ zFQE)tX^{3F!W;xp$%axrTd41oz~aVN-ccS`b)73K_a;S-*z*Wk|CnqlP5a@oa(ylO zzI?!kXtgdRZyZ~f)|w=0?Q?qIIXqtN2?8=#J5zLg^u4zR1$(O@02>aP$}2*xqLyO%{v@lXrFYbd)!SQ+kw@xiC`X8aX=c1t~y&L#_*_vStuWEXyQsOF-3TJN>& z^fg)+cmw?tHB3M1Y${1U^QT6{g&Y;Az^W?w$k)I#Pi<9jlN&De=zpG5=w`p(sVx>+sX!ZiW>`Fq@mKnY7qE>HmfRB!mR6?<9dH>MQ)s8@0lAG^gW;zaYH)nIq zx6k2^{;MAHVsp{~VJ7*p6`McMV}NtJve<9YkA4hm@Rz`(FeQFF9IvD}slwJkLmGE! z*zwc4_xf+$lP3KgS7uhcTy)}2@D5T}v2zJ9MJBvXEVUeH32F=(^}L?2?p9fz4zqxe z+?_nLNFCV`4~h)3SE8q87fQk8B7kL>byFE=qvN0-=xyqC@bd`~Si4Lmk-zQP=cMJ8 z@}^WOuluw>IH0G(=<2nhWln!Jv-!MmIGJ1^7LvbQELDP&goC zy?%+_Uq^h&L1~c7pxe<_WSnOx-8!pYbhe?kzgy6)x2(5HsEVL3;(NzlH`PwQEKpy- zY1*d?+2(?m`k98+i~N~j0^j`hlmOBU=5vT*XiBuJ_Xv(KVKcsT@@s5~NEv*XET?-? z9RwzTRfK@E{ABxaFWojc8*4l=2xL^!zF$vT{y3MZk3)8#p1yw0a6gpHg z0tF$Ma)D2c@h`h^A=v84h6zw1mj#gGN@-y@krE4B*v}n3+q~&mNcNqJ!lzxuAv6c! z{wD>P0|TVSA0hcuDqj*jq29--l8}S)D#hUwG5#lek;w#HhmcgCJJhj~P&T1_gatiHDP zm`G;Y3y%q%w7sY$NF07Ma5y&_B3#LO#@dl$5b)=Fflljho+IX;i~4p)V3WdylGKMn z-A6*5tG(YZS-G6NT6*Q;a$>dgwSgXkh7vxo$NnQ7ZD8Q#E0K{16Z3L5?5nQ(a8>a~ z>NNZkW@%@S1Mj`EtftQ_Fz%y0ULN+tYiF9LRk|T1mCVG032}_rNR5ms>HT~q_OozjG0|&4+hu z#hmwtKs2QWEoHanoolAw$WTe7S5bUs|KuXvc`TxMwS#1XQz1QD@n9#OGN*Apz+xyl zZ#5{sFJ~W6&r`mI=~e$mwd`Ubq_u`o;>xJ7A#e!^x6@(9+|I|ebvgO8&V#6s+yA?@ zHF`NQaarM(jT!C`?3al4bq-U1-+9JKEE$yLq6IiL&l0Q#o!t%PQ!go!)Yz?c7Bx4= zHi-t!#AcS)h4EO@Mi2eWc7jkT%+TY~Sh*6)i>R^ag&TWt?LIK9eM7}cXT=yq#u`c% z$e`QV<~AENBSC`5l0$?Nm2tRk@_Bh7f=`B(>E^26%+=#LG7jvUJ@-(&&79+9J{>mm zgtkm&Vh+%*t+l%U+us`)4|PnOE%+p<&WFgHsi4`qh!C>*)!|ByV0sw|tl*%QCD9Uh zQb&u4aR!rP4A(;IgZ(_bLzuodmD2>`2va0H6T0xj9DogwB4XBCRBB$u>vc76S_q`t zjbd8dZhNaq)q}4)1QEhRNQN+l%Giw)@i+#6llAh7eihvPWOAF`GqSZd4j$&+r#oU@ zzbkb#ljrY`tXfkKdFTVxW}jgphyT0H8Bl6oWoI6&b)L*wpJlM2)_fSyJ9o0y{aYbc z#Xy@7>-I}c9c=MVZT@Pwxd<1H<3GRH6zo*HPlU-T4z34)Z5?4C+q%5OSf$kPHvv?=2+q;-IZ&-OO)D)ftpGHctLv zybP+G{PDx6Eb*ypIKy73LzqBCnX;U2ff{GfiBjd0o4JkA@~p347?xG0lZ`hOB)`td z@`mxS`a75KhX+ZVcs5_V=sRyqYQpV}I>BaN6^*b7yw9MC{Gdw^7&nB#qHzY_bjxG^ z)jgj5`Qg|X5l;qWA$u8791&O~x3@?g4Gm4PT?cr{$HL!0AP_tIw#6StQ0Vjp@$*_+ z+1@_=UDk<@^Y(%>X)SSm_6^173h0h9+RkSMn#*A(e4~VD>R|AMB`~_7+EKO>o5KeO zk8O>6JF6OdbEdxxJHRFw3%TI6IYG%cw2!m2wdKV(!Aised)@xdiT+h9V#)|-2*fs z)p;)lZ(k96gq@2=M79om5ye;or5l19Y=;Tb6ck^~q>lFDvX02}p!cWc`$JqG1XblV zzx|sd0->2)RHfTMs9v{KQ~?(h9kc-tGBQvYt*fV}x8Iz#F0%L%#?*))4Sy4Sfn+H9 zS-a%ng$B8|uY@wQ#1xzR@hFKtNw}2u0aYFv`+Gu5C_|;)Gb~;4&Zdowul^@-eI|-^ zA}`XP?BFK#*+RWGyRcDadVy-e)aZy9icTz@)R;dLits?r%sl`XS6In`KeEiJu@EwJ z{B=8?0KEc0TMap~f%auF5n<#@_`+0=+!r!(lwUyu{O`Kl*Y0GMUYA-2B?Jip0Yubt z7c;5-0!jAW2M&!_Ji{~Tdw_EhL4e4@(#_Tx>xN}h4ri)#WgI1f?XCvEkA>`lgNYiJ z7>TvtHVtgI{1Ta)W=u(O2#{(m9K}XlaQ5yzEj;I*2c^LUnV68fG}TqT;&QFeQBS`k zeRJOAD;1A3y?c$vblCy4G!)ueT)To_w!(TDO=U(WAA_P3+U3YN#&O+dnj0Ouv?9BC zRzlJuukyt~fIU?u_7(e6o~8k(&(b1o6rY>yU&`NZg{#*0S>eh4A6{V{QIjN{fjXrYS}IDH4dZ#E#Ih9ah^g0gN9@g_dN7XE#1S1wY$k`>R%XtTeXr_T2^ZuwT`W5WOp zNC*^nYR@9{k8SL{?dPoZ#z>`8X&6&f?=Sh&3D5&52R|K(xawS}JJrlFiMapx0L55?Z+^Dj<08A^f&&rw<(NL_7ZC(pmSnn5O8 zPc`^hCKwnZdqChdFV#CTR;zCUJ(-f4A!(^{*)PF{I^0|Ij$DG%Mbc}^y*C>TrL^#N z2AYAYewX^QrXF5ght6cOO#7@Xi`KQx%?BzOmQFGu)$2Jjd z|4EHnnbaE(-VoS-AQW}lK(7G4N36+}9@p&ktH3p!dB_99a-pu52q!^Ex874Box0#) zY5Y@f9-`V_|CbRobzKm6voYsjTMmUJ*oeDswO1#|L%5i~;1MU8v!t*^tu~ZK;}HTW zb4WJNK*hEAaf{(QUz7jsqnso?AHmkGOT#F!sq>V?2$|Soq3cza19pfTEW}nx;br^d zi}S-guheMS=D8>$R^Q62Mz#UEj z^^#dNc~NX~PWqu5YjOJo`pe3*aGrN?xD9r~9eQuJWc;Hzd1pY>>n~1VTQj4G=TT0$ zx)lX#4=2wm{ygZ!9LD5bMPpl-h`p}JAY>x#&u6uZWFTHDQr9-MUu|>z21v(v$ zw>M^XPd_R5%!7|WF=0Tw`c7Qt_dJEYy?vW0$OrNG(%5+Z;?dqW*D>PLo&L+Ap-5Bb z>^=2QIzGo)ACw;a47nHh7Mn5b2BOj|mj&1K3G>(8DHVa>KxRfz%$J@uob?JtUb&!1 z_kzF3eTgYo`_c^~**EI-2?%AsdfnK>R=&lijL$Tq$^|sRFDuXVr_ZRMD2{T+x^DmO zx=_*NlC0Ure>J+KrxBA(g>LW9Lo2GO+j52hB`L(}uNeIx-cNDhSxVp5lM3(GgI1V0 z2$55V2^ssNATl1xbE$dqKr(t9IdGH5)9V_P7mI!H(8*86%OICPx(9cw zzIt3c{vbDtEBwM3!l05PrMIr=LQ($xr^9{fv^{nbNWE!u9UGkHe(|iixySwoBJMS%#Elok5?y=J*6ZL$a0xLN)&oNph6} zQ*_hpjzevIUBfi3X~#x=kor=k!F@dvkj!V==6(MACwM)+PKq}IyB5v&S-RWaPY`** z6a0u*&}HFiLTAyp&r(hH8DZs``5UdR&iPfkZXd=6>sL8(WWH-&C}vKNjoZeB%f!2G z)Z}^Tqitv6U9K``xkh)B~BIUA2#C{Po$i;bEIL4Cx6l}dTzpVr5f z>vH$~WxJ_Nv}2F&yWLXZnU}s-73m~ED=Tu1?T=K-AGP}AgYv92@tE`>5U3^pUIJPR zH8%w^P1SDenM}$&IggT6cbMLC8Pzsj@Xs^CFW|q^3x(EG$ z_WqS@*$9qy7c&+bG86M;pV?P@IUWs8DRpz7enI(@s`ITA*4isi{0S4CMs_010r)S! z?`^5Cp*Pz86A$X&3qor|L}4Tz;wb0px5HyV6^g zoR8g|f9`7fDT>T5o_F|q9PCB|i5uDN++h+KCnNOER){Y#UBb8znG##d3>Dnh6ojBd z9`MyDU3P579*9Yc_ZWaKLotT>ON)0na(uRA*Y-^n)@hrDY5QU?#|2J<;6vKcf%qky zv+>jj6FxJ}5YP7ocfhkPm;Vk{l2*cU){!PX%_3VD0fsts!pTERK>e$%3u{M0lh5ty zDuAqhmSQD5#%Ds3BAiG!^e_=)cm&*OJTo}m75 z#kq_tx7{(^;ZE|{Y^rAIAx{;kBZXFLvlC}cEO4Ki#=>_;iOQI;bmx{lbLuw=SmT8t zhPB2)ouHL-WuB~iq6P&?K$zQvxJhEpHA6xv8zKywA{F-wFv3saiYdLIItsY^mrTq5 z1cOyTwdUx~TDdl!CN>RbhZwq-PLRP>!iFIx!rXXjHOTB$N|SK>6mqOpp>p))+>F=9 z6jQnKx92v{O;r&{xOgcRb7~44`&Ilk++P+VK-8U?ef?hUg=-u>oBSA~a`4dTdqm`OHZ&2}z6 zy{prBo_n%m{r|A_Cg4y;@B6rY7fH6rF3Z@7tR*5_5@R9^+4o&`GL}pfvWJju3`Ros zu_ZgnzLR||`~Exne7@iR?{{7Qb43$foO$2(obx>QbKm!~qBxICTtdcI5p_}(rcGJc z7Y*1DaL0wxBT#2HoUj&kqLBTq3d`&5W=ne%uq+B>g(S&K{Zmir?rffcyYkNh1-Sxv zF=}j(yIGMT`)&C4E6^`vON?T^(H@(9F<((h`rfH#DzG7MOrDo2cl=a#Ar%pRbah5= z#gbt$ogdvZUtX4EiIz3QM2X0E*htM2Z1wsZo@+sJkfVog@Hfw!XOBL8NQzYvoQZX5 z7Bu_eop2@_(M3voHJq1QCfI4}6gWcl7inr@Fdn2@s&sgNZyKxP=c#6S!-~v zecn$JOI^#Skc`d0){L0AOaIHj#l5THv3QN1ru{q+Fr)3>4A?Bx?abFCj3CC*n zu&K2+_0tf^EGmt=YGZWI)MCDIf5k^pG+}}PydSfq9QLn9N%{|xGMMo@WK7y>$?)R} zuBb^3d&)S>>HV_h22-3AE*-s4p#^|1wJK2b@!xzu_|$EP4|y67da!6rd3D$3NsP0$ z#rRBFh*6*m#1f$ZMticNaTy8w0E@-`ozt^|*=AbXF+l6zVD0Fwte3YGefL%dI8WBi z(+N}wd?@WTe8$cTDv1OfUIMv)n7wwj9@#Gt3jz2HG^aX%ZX=b~6y#j}$S^-mJSgp7 zK2-nW3Y>1=#c8zYf6*E(T74Dl8BagOh}kJi{?jtRB%+xFV;c8XUalcYdvB(KcnnwB zU3;gvH7y^fs`ST6dgozya4t%mm#6RIL($0kK2tQ2ee1k0EZmHXCaUhOVAM0^N=XQl z(p~Z;W>uyEqeK_CgD_XGeE@soKxb(3>EB|uDStmbSU-4EU0{bjK<8 z4NYmxB7}YWmSB<|oN$kcK~N;^!+_`8GNIe%&p&12K)Tn>Pnu%v((1l_d!>E@J!Au) zlE>Tj##?8L)DEH)nB8bIoCy%i`P-;8nEsecqeEB`6DbnQ+ubY3M1~o)nt?TDo@|Uo$YG1f8apms9 z$@L5fqP-Lymp&gN$Xzds`;l&rThp2lS;+hD=thT3{rU}$!?2-)8yFu))uC^L@+)9GhE1!7iX za_;7i4cs>G`K0LCUWkAyJuW$^;C+7br>BFL4<8LaoSxhQ_QKvCsLV&RW0gtH&$nnO zr=>e3r&2l*50G0D58WbFNaQPAwY;+`;)`U#Dd~+!K#`R5RYX37q&?;mf9wq!%fJ%P z-LGX|VNI?JbISnOVuY~<{Rh~(@MT+!Y~*uw%%gE;ZnI-e#6X3-Y9(4;_lwYdm}ozI z(Qk|+z|k^4RBSF)9m#doK{mt0g-gy*Bw3kYq_S{z^zvc2%+w9}nQ!GUItk667!DOR zAYQy|PBJ46Q;=+#$8vmeQ)w=S)lng-gYsoJ+jPayEWaGA$`d+0Z~P0r@~#0&PTKiC z)>^;sEKfaGm$WG0cV{&7uw?m!)|X#DMBZxUR=J0f)^L*a5!0oqy`YWi)Koc+lZ3Ro zhUsXvH?Zo~bMFao5Ho!_I%i9h(2GIXKKEE2d(p2pRLQLL+5VcwAuk5fT;H$(-%aRA zDDj8x?>!SvTI1N@?kSlx1Ad*+SDc+))Zf|C5SwT8(0z%PpF@F~=x*#vU|K0PW~GA3 zzmSTDg_Ijp=@#PoG@Nky)U+|P$hLv#Ee@!%eCjAC&{x{$-q_b0`S==#j&oHzJztUQ z_nAZFOA)5Gmgth{^IW*{B6Xz1_6HH82-A+V`oN^Y3hDP=qIO78NT>8j9wT`q?p|`{oB6;JCMycPEHT_ z_G5T_+^|@iI9cB{T!&$1U88M)2A^)?q&lVeg<>_?S%pjNx=+T$XjcX~y5-L+{~rzW zOC}4WlAu6+hg~?HwWdP*gMPr9G@SzIJ_|Ymy~eKeLxiS@LLkcmmL8%#m>$uuMj{VM zG;<{v_5^+h>HXgahTcTyJb7J$m^7^s|D^c4?6$7G&5;vc!gSH>RMsB1130({8LX|z zH+_#BtoPS9mDqR0B9ILe0BM~->B~Q}=S}MJY_7ZplWK81qPZ)D`&Z6;*W(6PFFq6) z_dkjlvhyT(^w!`E32M7*CtMEyg~^C;;bly8NsosgKI(Zv6>?1DR(evv$&MhBrJ*aV zduziO#2JHN8tS6~p65M1#{H|;u;qzNgMxGwv(=K5!~GgZx74a%;X8ZKA1665JJJ)B zS%FE0RSr`19mo3C>m(yNd}i^pV7c91Mdk~k=pOM?cDvCc`N@Gj?Z+?vk{|d zIaWZlAOpD08tLv6dAWOULT=tF4D{#J7gqEr9}8UwhT^TanAgKBRRaHT#}!JIB-<_BC}wtS>CJ@Q2+^@#__lW zJOXO{qx(38jwzYt%GQ!>7snZJ8~8fZr>=!#zYr9G%VImb+TRAHUIuIXLhQ+2~x> zwgJv%L_zAmFl&HU;Z#MwsZ zi)O&yx-SqugiSs5*|kC#g3I&{Bd7)dWYY*P2? z&wShX_q-Rk&cah$F7MN&?d$*6iTf9_wFeRT^*Zte5**ewqoR*we?BJpHFOTJVa=jwq;%~!UP+eTK z0($^b`Wkx-r?0%AHZ3j$Nj)#!nk~G3_{^VIQU0JVDhegu#w5JOL ztj0xoF|pVGsAj^>cr;>PbI_7uByQ*Y{dJlS^{$(TX=;bxWS~!0Ly{O1F_Ufx#A_Ci zUHV0(?=H5eQNvm*eMYM?mZ!9h@Cl*#8GLVo*Y-n6aiLv*!w&53(!a&!GgL{jpy-`M0t} zh9vX#_>(^C%O77HQ(h_%1ux3u!OML};kh;%_>MM_A(Hi2nIkr=%#Pgl@B|Y9rhtlX z@aM}0MDyJUSwMgApsn=mGj7X%JV6=bSw5=eRNN>^(W1sRJcBMpa!gL~qUqGqI z*%ffkiH2QfBPhCQh$LdG{r$#+m@HBlh!b~(2p~?MQJuR3jt6q=iH;G$xrlpBBCZ-g z$Rfxv=rkIE+dXeWJhx8PLvhwi|HI4jWTTjuO^>W3vejqB44U5#Ultm3yf5%fFt@Vp zmVB8N9a5I)mai3q68)+fi{sxHl%n;KZeM~;OYa!34)UXwuOmCVB&^o9&jL2@ zo(r2riH68eR6>-PX*@LQ**4O--yyF00`mlLcL(kO6cq$F4)y0E>tBM7ONb#}8l%@8 zDJ^Z|?i8=dqRedb2N_ptmW;AHf`f|JUwqP&3T-%GI*qA;LcHihPqM%?NZSOPzA-5r zT)y|!;iz8r)^+4nISkfx3pE;&-S$V62~JcxBB|Twi1rjro|Z9^p|2ssby@o z+3=z4%*8_c%)dqcGei;%GPy~^=nOL3MdBhm%3R%QGMX_})!AyZq z7fPG{1l!WB8D3+d+i!i{Wz!+FcT!GpoOhYvYtJx^6G*j4!-&Q*eAvvN*s zpeU#MP_tx&-_Ux4q2DVNXF~NoeDo=i3rsL0W3u3OqBIQ?wbFvFBn1CKVN_el%|(rG z-iry^`M09?-tP9MN)Xvh41c!FthH8=>I@R>v1g&VPDg$O613)!Man6FB=PtHK3VkN zT+XO1xhC@l#B2HF^@WZ*)$?y%i1e77l#@%Y&FbL$)#Rs4Iq9mE?|8ap-G;J#x|>s^ zNSfGyi1s*nVU-(T`k4^(bM?Dsy>RW%H=N9bj;u+obg}nqbd#Tfs-CHPakyK@8#3e- zby$nguN(?&KLRJBa#`JDCYPZif281W|7L9$PfNu=ydu z!id~6uI%CvJc0D-361UCLE1+jG;RM7_#qSSRXhRe@AYJ!=|fdSx{M0w2*Q%=2<|9z z5TD{8Zy;SY&axG*n^2NLXee(NR#I168grw!31p{on#0Rt?I_TVRIo;%Pb}F^VKppf z{Usco#dXtKH{8%8NE1fXGRJ23zJ1UDo=n(5f$Lm%R38!a@ey@SvSf5M$@_Vo}yZ6nj*CFzW5&iS}dzh{8 zJxr9!vm0a`*ReDLf(>fO_SHwf)FXly?cJ!j9$RE9%y2ii?uZX+L2l4o|1YKIGN#!^Dtcz+ep+6Ml zNK~~|!*wl!TTzMKQ4WzZ@3sG2)R7^fk=T?n@qW+r&Q4mS%Af?Yt!ve6fIf{U+ME*A zS=+%hyid>CQ|2g2wSsWJL&Fp6nJW^=Wf4GWNpq9#iibZ#0nsk7K68-v<~Uf^p5|$y za-LBLILIUqS#)x6a(bn-f53w^m%$O4P=53MEi+h#W6NLM+yok~I})(N*(0e5p=?Rb zAI;K5Fe}~fVupzH%17%z)M*ZU5S2-4iQB%*U}GgZ=KHOp;+toE#W(5Q&=zhpj-eR7 z1pnm+Z8OJz&D4z^7QPTlQqzN7?RG)37{gDe535emL+5jw6He=yXOW|hJ?Y?z$*1_8 zI*WL}$v*uDE}^ObxMX06x&oIRvBhf|&2H+jA;2h{FqWbi-}^oIP+>9KpZfOf&i-uh z-Otx#LRaJm$R606$r#v6m#$m`5yx&=$M&e%cHZuK`!20Z@AF@7uM2tJMFaqtfGA@=K*BM`>eoouy%J1XJAPJR3M^pCg z>hay}TQ^p{pJe|W`VU|FiE8K$7)-H`DY;oY^;@QbRKQPr36dU%E$w5|3K(E0!x z^Ik7UaL=W+{G$5`NO$UNOREVaxJYP~mB(X>!u47AZ|#9Y#OU>!yiJ#OAE7_qe{5o8 z5<{t9S196d=b0$dm6VNd*0g*sisTGfd?WJJ+nrX-%v(oX?Hj*o??m+!3C+$S34UCsCxuzy{8{izWKp6ik(} zdOvrzaIN_Ct8rzEL0W+;tb=g$Rz!Y;4iUtv34b80rBAasgum;4BsFU8(+jcT=hgvb zM?qwcYaCB)c1u^B*ElUpLBPGfU-J-;>q|?|r)z(>jbnQ@mLvWcDFG(CGNrh;@6OwM zs4F`2zBev;@SP_&ndR|uYXgmg=cAoqJ1V?MYn*Zy8N(i!hk7ftW_;1f3 zL%&&%u#aAvWWvDqhkEWF20-`g$cwt|VOD_S$w*!HFw0lt6^Ay$0wNiVk|b$S&g5hK&ahw#cs+nwzju1>y?qj(bkbUN(#n1wnCVnj4>!>N zt@&vo9!dH`FWj$ z*)hiQAo7(Mz9%=eNky`%e=8}DF0T4&p%z%S6l&*Hd9^b1}rqr{nX6G!5sLVp4Ni~)YBK= zJ62aa_>8v?!SFj>Uq4+J-hUGsDqTbHPO?0iA}uT(C)He~xEAazSn-#wU9OY$Zk)X}H-ixJ#nQ|&)yZ<9Y0+>UE zuUfSJzsQduIH8Yf%9)iJ@JlSIIG-^umK3_vSLcO?v_);Yk&Vy9+|=>QUtgWPArcGo z-oDL(n_2hv?{NI|re9$)we4+T#v3%@)#}Nfg(6+7fGpLPuRZ+-V_FW>T75H7!t7~s zo>JIpAFMhq4t50tC_&f)!{R(_$IBf+3<9?p2X+itT&{!6H(_<$1>F);#CyNJvg}cX zMbE^#ja9FIXu5cL>zUtnIANJK4mb3dj11oW9!zq>Tht=6Z}f>4yeGG`c*|9sgQ@#17+@9 zQt>CRWON%s>XEOiv?HWGd&f_44JHEbS{!DUuoO=Z4-WzyoW8h?eTfnqJD9%)b6^#& zz{_3b$l*F$>-?U8WXt)N0xfq(u9YvQywg^CLIT)hnKhWNr2}0LrlMIduc+Mnm>XDkX(e**ZQ?uZ5v} z{4wS65PT=;Z2vAgeZaIzw}S*SfBo|PQF>!%#1y0_>epK$%EQuQaU zreb{b!KhicT95zU_9!&k%M^EJc6lf*9UJ)Kr@|gaO6IQsQXf)4UUr!HHILJ8baw(fA74HVn6^k$X6fZCt zbVF=BG^Gtjvzvj?e2Ylm-W#F8Ut`&7jLvJ!4nSOGbIn_q8}#tT-E5f0)|d^Pf59?E zV;5T1*wysgXEBB>@3cYYpK1sXcqE{Rwn$qEu8I(V?l0;VcJrvHe+?gMnv@)p2=Kp7 zB^k|f+qRrXF_!SG0kb^?dP=}uOM@siriO(G(2tr>OE$cJ%SRD0zEA24bHt3rSacG*W2Kf9+6FMS4;|+boVhQ0f7?{PahDU+;5w<7e$5&Wyig z76*s+rUL(r)cSO`pfsK?g(~zN?>29Am}NOL-hA|mH4z7z*|@%2x9n5(%%ib07OWm9 ztD<(UZqCi|S?a6Z`VKx?J6{}|d`jR3|5Is?3*mNV^jL{ALm}m7YM=}P&CllK*A{YL ztzw8b6m-8omecmH3Yn3cuG}0c6$CJc{uAoe7)y{QHdYGGE5GVJZQke#izRPyP<^|k z^X9k0%tV%cmyxagHztgYt|ZaIucI9oTKcK{o3P6#OApbP?Wfd|=(;P612-ROcLj;t zP-^5o6f2w$H=f7+u9tt5JoBqVB(tU7zbeMLh_mu*q(TJz5@GJyw?!!IFO~VAPOwuq zcIi)L57*HsxuV0UtdoAVt_rR!kh`w>DY88c|wv(~{&h$9_s4;v&ycSk&* zj`+rHfu%9@{fWvjTKaIj;|{I^Y|vh~;0fKSGhiA&YzgicnMOBe*)PLZzml;jOa4rm zb$Lhp78bZr`g!J;Mnz51;;H*g@ou@K&#Y&_kObkF+P@=jNr)(xON!gvl9Hr z;8Vcs!zYMvP@=ACI;?aUrU>qW-ny4_Si)#!%%kbr6Wf45-^vbpX8s>JXs~Bj`W8E! zQU>@NY|9`ITX|=q8R2Qmso}19v;5$ej8vmCq5NP(-ZMn^O`N2WyJ;) zU^Onb>_ACdrpvsQi#-XOp;2|#`Vqq6aZ|}?IqbRAwfJ%b9xO!scOP*@=oQ7q9B!G$ z3lcz+ZZ){5590%fe|H;`9(?nUC2*|gqJ`Va=zDHQ&Yu#rF}@9WP6v$a8+g&B{GvLX zg5$I*v=xMRqJ-!p3VZXD$eu~EpXi!|M=$Lqh;)4sG;gdl$87{)yELXQE6p*Z3D8i0 zkgBkkCMsiHOgsyF73PSVY!(W{id>0m%(zxkTvS_<^i^Z-cO^8-7?7W)R4J(3Q5ZPS zal7ct_+%%^4uN!wh-!i+;@<}fyt{&egRIMXKzYB9^dG|Oz`;3S|Jn3xHItiG+ms!? zNf@j`Uv)A*!13$!%$L%P-tW?0L1*+Zv9#xm89^=9VKA*=y?tWVX#)!0{2<*m9TmB& z8+}DH=_7KC+w0>Y$X`n!6l5~OO@GfWq2XY8X?D%xA!=MT)#yTmn@>pTY!f3-&V?JR3 zYj+pWCQ|*PH?)FP2+OXBEt-H3(gH2V^JdU4!j|qwE~Csr}yHlm38o4Oa=hLqHlP3a(79}W_NSx zTq7-uXgUDY_rfi^`5#@uFF2vYB9S++vT4hSC%)rjhJ&>jM_6_m+&!tmoUfeV*QN+& zGP&J6P?qtGiiZzl%1YLQzEHm{D`Dv;F5M9wenlcbzl9+V zRd8jd1JQWl#0n)~>m(Z89lQH+jxW@B8`@vq$Rmx_$Jm*9z)nA~oo9L^ApYQA_p7)W>LFVdVg{crvc zfTTPMMfdnRu?ke?M>8N@ zp|k(xp))914x0?2R{HiN_xynGCb$$x#rrn*3G7p?Qrj4rE~CQONCp%FlE7xr(6L%G z=0rcOGpIlRYa)!58eD^(!m5cdCIoe}R15$Z$?d5hAl&wS>y3GJW{1>fbnO>gmmBR0 z{SeCgcL^q6eGnNKW(&_e{g0OGyazi@G?9{nja{V=R%GIk+&d1?mc9cqy@DfmSBP-v_N0aKyBahw^ zR;Rw*py5t*pwj<*#uNUB37P_G)ruVdMMmmDmu?&!O!^pMO83EmE;Vd|t-SWboaJ%+ zCNgAE2=Yw|pH7jcW{gL@n-{vjk*S^1(Y5l0%3jz!cQBfMGDT;wh zw?yq!ghXL#R`0$?-1sk`6|4@Yel3!p(gt2pvA=eS@IBI5UQV^5tL=#JI5?4F!edu* z$^5>5ZISOu;mBj<k; zPWEXEh`$h}E4@z;v@qB&%mELs25-pxo1WFbqBH90FaSCOE5kt}D^NB7e3^)OP&l06qBvPEgFnAk-Nsw=bR+qP2>bcy|h3boUA| zkvurEqQSt6r{CSpxbw8PcP=E|z4^m)rOe=&Vx0e=E?V%XB7z~BR)-#MtYEbo{Fp?n zIuCxL*o4N!ga$o+m$9@Kn@4#i5l=%JV8wh`xOO+23du@pneXST8=esOAe|K1y&^E0 za$DqG{-dArB-gX|Y`Ja2C0>GgBk_n+uTJM;zP&805-m)S2r{_g6;HK_A6213z^)8I z;C4wM!^Wzm`h!V^);60R1l~|1NK!Yw%)DZ(V9vnR(ag(<@&S0HfQrOw`2h4x9A0~B zku8J(TQ{O+LAiGHv{_H<(5+BU=sFD`cz=S{@?hql1G(G?!SEK3R(hgX%G3=UtdrHL zg#qF4U0A0DR@aIY2jk{SNj^YVl7@>+rQvU*Wg_zU#>lT4J#P666~`i#8=~o7$g+GNJLgONF5MVsy@Byjh{t) z^7vMzS9H>01`t~=?l_-O&F1^oJq~U4d6A}9^D+2=Y5g&qPXPpFJpgGc5K3utR<|r1 zxgTOl7at#-u*FS7y3liRH9|Pl!gBj%4)|X41M0v}3V|`ewQtin zw9Qlbcf#VExiF(R`GfQ`OSvJvsbdapEZ==WOnec;1YLUe&-?~}NX$pHswx^f9W%q! zq-YSPGJu~whdc6kg`jvXmt{{BALL9ou z`-%%fhnxZrS0o!k9MbZd2vMLGVp)I{V?*$cIMG|J#!@#MPOu~D*5d;GjumEqBc%5Yr}gj}DnGEywflq?@pZ(~{dPinBZxZ5(*ICZSi$#N8| zzl3czteUV3TRi2$P!OTvxEiAGfG>cGo#0X5@L>LvOd;W`;ViFzyFWVUCvkCpG5DfW zKk<`0;c|{0)HC=e{7j8=8^H;K9}yKf*_ea+uJ zM7!TWHJuxh)MaU=KT`_k6t#YBcVsc)??|&s$+FMbcaz;0|07akKNpmYxvI=9O!yCM ztj#`oZmb*9Hn~=~D?S_*9|Byd`iN`Z`}|317k_3eNQ$?vc79^h{QcfK$qSyP72Q9o zNf+OrTvC-m(o7d!)2yw2JS1V)uCH$iK(HaI6{a``%(|0w{MYbc!=+ zr0y|WSnn`BALvXaD z4!n~M)mD{h?P?%07DoyyqPBn$)!~-${(1qi>e`5ERy4V(=bNM2<@&~L<5AYx=TmPvYkq0x&C)*Aa9C)xwD)(*3)>*d#@OGY1DEM|<$NUNS4eEr- z4*B`ba=`T;pn%Cr%MGiiiZLOQ#n=<{@INrBn=NA`g%^WRaHxVpdgEm=zkr3L<5{WXjnltCSXs+vEiD(!geQwUATrSxyN9A zvXbZ;WTyYq2b)iWp-+HaQsaf9P}$Z+R-Gp0A7{GzX*hFGRssjokJwZMD%D@+))xUb6x#uX~w*U*cD8^`}I6jls{59Fv(kSWd zv8hTy4%w$;p2{U#KkC#e-ATNAY>@-ZYpD;JmC%hVa=pMkj}QZ7iH+QvA^$b}S-e@y z0Q+-78=UZJbwq!*9I@e{%TG+J$~it+&CM?HmNDS9p!jB;FB#7JI>UPSdD%%j>eUph z-TRZ-cLl@-q|f&+*%~r603946AWL`l;P30yFU%;)~2#H_<1+T6XDq!vzKM zsJ)*^Fk~B7aTAC{^K;UsxOy;KCa?7~H%=Db)q3BP{d1Hx`G<2771ek%3lYk_|{CVR3 z`L@)#5i^kM{#K^P7f|UkxRVnr%>*1d0CTh6Hqyw6S)K}}D-+B@T1!u0Z=0SA=nF_fmd~Cp6Ldo^Rs#(I~+1$F}#c;5stN0b& zW#0^dOgZ;xVZ!>w@|KD3O`l&u3*q~`1?v|aW1DnZluyLo(K8Oy;;cvFX~;~TK2{b- zU*ZKz2H@^AnA|bT0j4}h;h9~Q_X1X6vd8~HX++_KQCk2aO{Gp!x3tyIbkIulcp_!u zfmG^aA=U+|gRNhggt{y-5a{bxObf2*3OAojCSh6= zzt&rK%M{4J`Uk+$UxPTWSfyF_UkRcr8dp}M@sX!A{Gfwfl8dmz=Wz`#iWXSD{T&iW z&!iOFYw8CCtN{mil*rIIhkJd%564Cx2O^6HdqJJy7O7U`O9-pmjmFn_@acTq%Um8j zXjgVWE$WqH$|CY1Eu@07GRbCPN|z@d_t!m_(+`TV*V85he$6w2oD?^-i4@CJ zwp4c=2L}ys;KKO$0UM7007Q42n)%cwabPAu{Vp(e#phvKWz1bMiL+Kpzcw7n1eJNk z^`SNU`)+%k>4znQUji8y6B)PR?EGFTA#G{Y$q(uWV^C&=*AA4+P*saN;`ZEt*;rZ3 zFhljS=mZ3XL{Ogiv8mhxnme@`DVkQd98g}y9=jgivhibic?Ilgr8e+rR0O9;Nz5Y; z-gyzX=?|hEQ=^lUJ91Rj8MW1}H{d>cT|aFA#JJFQA1L{{J_0wA41bLy8{k|nJh0A9 zBk#(uEE|LhFb0Z2t)V(gfQTtc`Zzi*3~c8H!z# zD-7)xEKNh>4w%zn>tUSn+S{5QExoEIiDIBTiD!4PK4GDq-C`XR5bA`w+nF5$1B#aw zkATWa(u5TLhyD6fkIW5?WHl}tQmA(Xbrws-SbC?8)>!P05HaW!FG4{EG1@Fjec?gH zOlq6_b5&dMKqe`GO$rFt4JaT7`*%lsEwsH`K%U*a?_(+DZVS)Fev>hLocl;1VrYQZ z^Y76|COSgsOJ|>QA5OUIT--k}s2OF#Oxo3b%xJ39GS5f%8{15Vx$RU@Sy^dlR9swW zYyV2AUc!(no+{|*!6q5^jo?Ls4@`Qre0YI-FTK?eouF380F%NQ{;AGW{y2S6ycTEU zB)E+gmwGOTi4q+@@KOW?RlSol&|&jJ{@&wg)!7|9xV)jXaU!-R<~Dayc+nM?B>L{F zFA9)hq&^)s3Tm&$1p|jVc@b8ucFN)(kGf)MX(=z?^~0@|?q0g_wVSi|uw>PvH|EMa zx#EuVwNIe0G)1qfmbY-$K@A9}2UA()?VTfzp4uFo>cX`TL*+$38d{s{Ebxs(ovdG} zoaDS;?moH_wxu~Xn`ps?$W^>cq)`HRfvffMVTPb_8G1!KWIv4+@TJ94KCk}J!?pKv z^1Av{i4D$OY43mDT&#Ln_+a$>^xam~WB7eT*pLypmTN2V-q)`kZry=;^z{TqCIB0( z2f-DTiC|!9iVTiJa(`i(lMwOm5c7w?esE!6@rs98<;LX!Y><-w;1;#MbqDBIP1Ado zUG&~G@LXyZS#f=Dd}Ava1;?-F(e&c0$RmN3d)y=o^D;I$cZEN$2v_bCVe2NegH=9p zcqC7g*tw`Xwkpv4TuP265K|dmOofLAaRDm`-zbFa~wVwvF{XTF^RSsm6)bKywi!`nL=y61!w|Gr=gB@Lhk3}UmZ6eV zmD&$kic>ziCKkUCZ#jYI+ym}LKJc)2-WPX|`kW+GGbn*jtcSO^k9&1Dch9WeCK6B^ z2csWxPQfW3zn6;GI=f4Pqwz9u69hPe;%Dfi{t*cBD8?DmLi6U%UwkBx3QcRRfz%6R zXFQ07&8ip8_j?>H8Lmi8^Rd16d+61BD&AmY-2z86;>+y(Z^CuqhFp zQ#P|uzT|uBkG4;(eg}}p?83Dcu@xJ@YMNR@S`lX3)o?DQ;Xf@gq30F~WTH*aQcmIi z+=BRtnr0XFBa*YX5^(yLT;tKPP=N-Qzy@^V#5B-U$x9U`#0T9k9v(J#$sMfr5IQ$^ zbaZqDACAR5F$e}Al?6!YVZQefBRj!Jb$Q*+7ES8b8I?A0LS1{&YT!ffNSTe$*KL?9 z^7I(4!vzMe0ZppS-Jm%k;8)BvG)L(NJce9@q)Y1cblf~i9oJcj(wE<~A650&dqoyp z(HYYADy+X|u!^J{RV6sji&esd{oc3l$_BfC+=~H`iR-F>muWs$IW?nb55zwpal0a# z-^B0A!S5eSzg$r$@;z=m__eeSlR_F#Kaq6h=ED%ZHAvof{xiV*5*19yKA1mRDx3K2 zjFT(bY`{p#yqrP+)R0-6nJqJYpLZ($y2|Q3BSx0=uP)FtLbU(I;quJZnIr>z2&Eu# z=Kt3A;m~o>#G+V7T~scJT8R_Q7@m1@Nl=7RD#|LTGFKFboHx1uw77!@(=866RMc2a z*>_mv`TF@0ERS9V)yaa-}f zFBKnOeIKmeK`L~sW6&qS$&i;`s{9MC&r^fQPb_AnumO8bmRa~XM zf}uTH|F2tZYX+k+5$s;yZXN5$lF{>;^Rs))Hv`I-?>XBCDjY5hpSgo?EgOOL!3qxm z4g`AG?fbTx+XW4X?i8J0{h)OXa#?7Q;z(!5P+r(mK0S5L`Vx}G3On}&fSD})tH&Oh zwSAKLT)`?f6M4i00A zlvPlasmFoozefREk{vF6klsb)XyDsl9Pb`~RDDcKG@M;^aCUEIEGpyCmBXw1cqxBR zc?Wd=1FUBBR=;kI^J)z+cmIoEg~=58R}@&ZNKh&wZJWJFVA^Rk$i~l8UMEq>4_(M= zp5R62C~;IjnwSWAVz^+ZQ3w# zf6RW~JcgGRAoO+pbD!UXV>$PFV;yL%vG;VD8FN+~`juwgLICUq=h$lb-*ZzSN5Ozo zacC6h)*JT_Nv4qYh@pq?Q8BC1>y{z=XUE%P;6W}nt)D}x!HazwyC&CtfF+4BBh31H z6Pts+X(HiloV37NO#|ofuwnvt=7qpY4$2-c| zyJ=82sh&?Gp!1C+1gjLUxqi^EpH09?%u89iB`Wa^_qSn)gAQR6zG1b&zU9%5yDNW0 z=DKG)sgK+KskX6ktFR~&26d;k6lj0I#`9mBTZ7<)SyN548K5Y&zk62r%VseOYfgw( zaTdjctv6P=-4(!Nu6yLYBQ1jk z-q-!X;Z6Rek9EGLljJBVVgO@s)LeKHaM8C~zo5spF6oFvDsXT{m8Zk7>H~j=I#$R) zP_;c$d@R|w8)%xgJO!ODrGOO&$!BI}n(n#n_R078Wgu^Fn z3|DFo?S+53BJ#bUmtQCMUX+>R=O_9&a14TIYhTYyul8U4% z5|(~f$ULl4rEpQ2BPaXX9%2;Kc&kv(z^M5O`;_I_*k32EB1S(>WA&1-F1q<{$-nSl z)0o*<>Y|)`%~BEThQJZU0*|A!h!_6AhC#gH5k%&6vd7iPdtqSU7Y=fbj)NrnyynK5 z{;cPI0fok9i|#(gqO>F@d?@g&F63q(&39~#JlwL6MmXWwi*_oArG)ATIIQhi*gK1q zNnkoSMdH*mv8g)0*|I-{KEp%TQoug6tY=dR=yZR1)6%&dhBRrzs#_ts(FjXBrrM@h#KyVRa|ehpz^&5a;Y(R>)ZpwSd>H96kzw$=#M(b>t8^!>F0w?W<3|wnL^neVK({!RCZ+ zpew{k^MQK>(M6%``TbY=F+10?#zN*mApnY7R(D?a+8gFZuMuL_xH$gDI`)b|1{_Un_L!pSFP}za z+A30e210`^*-EmjXSZAC_4gSAfOrsfDwW&P=btEo2jiNZW=7W!UOc@9$;#P&ABj05 zKJuoU@CUUzbZ~;VK!QX0o43k2W#7}E@L`gn`0jyLmG_87K9hUZlq(2?vXb7b@ZdWg zNqxjQG&ZIrYoRaftBU`mppgCz=-o1Gm;2>w_tXE%ECg`v{bb9v=>1xI_(qfbpVc8` z3|@2|`*d5}2KGX)x`SAs+|}JrMQ`6jPF`7UEJs`==^)|cl+Wqx`tWLo7a#hGsiLxs zZ=`vgyfW6W@bm?#{+Oc7nZJZ&OP~4I>XP0mgcVWx4?$DB?!tzU=7^pWFC zfqcB78VCD&0GK9!M~2wx3-h?9#Jb;)60S=oBy41(m9l(<>a-|-62#6sxU8nw z{Ar1oY8ST%2*((&{6+q`V-(?Pyi&0C@^13tiGPlF3l+f+n=hRpoJi?jTJ_>7CrA`p zK9j>+ShH!(|JLfFOmM}Z&>{nO22|mqhnRZAb4K0+^|Zu~kTBxVruzaWzm=LGyviE* zL$621j>-X(g;3=XFEgNI7e7nqEqk2$e7EXnXLj!*%xmbrC17lWhvYxW9yw%l3(!@9 zsXzl-D@&*-+S`h|2 zVNOk6Lo;$RNW4IIIBCV?ts0v3!NG|ArJgjY^>ydzI-gyuM(00fN}iunieBDm*~(tY%8YCZr3fL}$HB3) zMUqYSPO|rw`FkJT`~7{t=a1X%R@dpA^Z9tcp0DTg@g#PBtA^zXd8}tsutBk}3AKJGmigzQgVHZb^@7Jx~ z`DXj4V8-H`q&q2OIc%Injod?6i+6mb`$_R?2~XH5YBal!S^~Kd6;r=32a3O2RYm{F zI+#(zrh*NJYQE@lRx~nVBW8xc2Q$1&ChmIDR^=v5CxBql*%NQrxXr5qEspz+Fdq0M zed_BEy*cV-=BFiSAZM%a#hKd^@%^^mE^bd`X5rSHCweUH!&2ca93FuBxrOHT9F<@oHaByJ62X*>l>{`13;a>+7C#xL{NSes&$eClep#N8k%3MTbn)9B!qvP130?KCSHuZf|pxT!5IkqZHOUPGq(5!Uzy#8Zppd#@5Sn zI1n^L`@SmAR;hA+A_y89rLT;h(P<<&W#e~;Sg$#+IQg6w8ZYPn-HagHN=J0~!0NKUbX6-waL)pl2&m-^o$;7g{ zD$Mb*Mk>?GaWY4u2R|ASej7dPgr1{4hSOO&bzHcN$S z=95?c;YoI2F?)hftaRUu-P}3epyF*Yep~+#I%1;M*miw`q=N;D&pFVe$p8)OD~J)c z-WAL@cdNlHk%VmgXNl`b1S(^&5V^V6lPcnI^F_CtfyFOQ3Q+&?CFQ*%QL71TET-!~ zm^ml|!}9jG{?uHen&Fsi>)`mr)OD4=0oTeUnc*MOB|ae-@RO zZ$|xN?%{OmoV6AT!{=r5aPeyQTw(Jw;4ilGvDDj+{W0z*E{yA+pUn)uGse*4+%&%9 z@f2>0Pv9bTZdxjx!%XI|^Cu4;?!#ONgJpJi?`WBwMqH#8e{Ku76brylOWO!qB6SN( zdAyH}M#BiU*`zdsu^&5hj7DF}uF045)|7i1ofh!>Wh`GbiDvFsFD+kn#G6c`L2yPZ zF?rpmnC*cqOl*(Og9VwDfWO4~wKE9Vs6Wd9eI>8)L)Q9yTVX9nz#hFtsd*Et&W}6g z8nWC!Nw6Wak?r?9o>gWPfBth`EFmwhDb9@?SXFL;8|nckzM+=N&jfG5vyQKv=uSaF z>&MF!>Lx*!e0>6!C+p|uU~a5wV3>IrAm~cN=WRM!(n9Ufc zn-|0Fg=Jtc4R+JLa8x(E!HrBxZv3wlfaxKA)CXdOsp~~Y)t_SK=g&!TMn~h<_xJbD zJh5K8UR=uH7&erQ2N^hIFrKXau4DbFvW@Rm=r)q|!99%lBtV*3K8`CjS8&Ir-We&|5g8v!`zsyqx z|Mx`ruppvpHWf?)`$5SNe_((%H_}25gj_xB$AwI;_I2R--jTh_Il9B-70>-jf5N^G zoWA3io>)MCHS@5CN$8Vw-;|WsEAl&nRKV>pf;Jwk>>!)Dk**7>sv(ORa!@>oct18( zdYjgr!KuLoUIzT<7w$pev0huVh-v8B+YQFVnuzAh_v8h8L4ed!T7?1HLquqO>KpX`>(~qU-N|7cMa2#ym;MW9mRT}WN+el5wk^VYv48{ z2#`Sxu$yIwfA^r+RG;?u=&46QjAd=1qY!-K*VRBzbuqgELj+f?@ZrRT)iT#CEstG| zbon+gW$upx`{}w`%MH-JW(*BdhVdt>ca_AeT#CeMNmmFMShO0(b<*9HFl*}<>4pMX ztC=J;+cPo(T*EG(B*@BJt<1t?KaN3afQPU{Q$WXadFc3&pd40q+hDFMJ~j1N(0O1G zknY@Prc$40n3@01oiIP!aSiK(c{TC+|4)OxU>ZC~deYl{arq&GcsbKQ<5-4TJWlg$ z}Z zwE?3!%;?e;gBB}$JMKOSga?&BEB zsGneCt|v*)aAC$eiN5W6-Lj_SCHP&os#rl7KuN?Wa)T>0wpkl_AEe{-*h5LcF>w!VoK4ZXbZAd0-C>@uJO*7${&dq*KXv zKQX=&R1#S?UfkkYK{=Akkqqo0MHoSzjn&Q1cl_m0M_w9OWpUPPlcI}4reBYl4cU<| z?DsaYYXnDAEW+2$Wq`0w-GDjoHh?ECd=c$zF@^z8`O;~zN{ zj1C5++OaV3ahxnwpT%xC?p~kP9)#*V>uuIHy>A%cG%@!1=80-z{ z8t*N%^V%*_CaChSN;O~V#ccNcQI`n*Q;j?)a`HS$sS4M+pMN$u=s&vTN)u7GO_Cun zfmj6AiEgT;unoyPKWC3IyVthvzA4}qAB|U^m*VM^d?3jy0P zR!C1rt=07y){G8Qzg3}Rr$>9J3#(>@)_XIZ8N|<8pp50m-tu+h%zWo>cmh(#D|l z0nKT3STHlLVM+r**h~vt&K#VSZbI<0%p9>AvBdNR6p?SOju7gWt586%O-lo_7HDdo ze?9Q%Q5E-;jIiG;qqWxwXWC%r!C;dZ8lLE=lqS8@)*t;fO&knZ_u2DsVF&$*&-QHt z1Dm(j+xCn{rh+CO=dDqXv#Bu~0=s8&XZ_vxpc2V0xGYZ5@G$0;Y+gkepPa9FZbewn=0vr{ z)F^w=DJp7ZGSdA!W@1n}KqL~X4z@pk{pJ@f4>3|)5;~o69~cL=Og5dUsv1|h*Ois| z2wS>4d{#T^Ss9UPg*QP0Jva+PJ=~xKV-V-B>j5S z`y+04Nl{|Z@Nhc{C?239NvNl6`uS1$h07bF(XhAKWa2YB1c5N z3$nhkkqFq8>u(^Fs*}CH9OZ^oMV3boElzRQW!Apq?7AJ3Z93R!s=H_-#d0frIrG9F zHYTbe9Bb>Y2ISqtk9vXMH+UWU4QoL5;j~b?37K+%8O<@g$rB;lwJW@xrvS%UTBT_PFHo+ic(HkhHCZWMeF|0@l#haH~-8a_; zxy-#gj*J;Z3#z-1Z*TOu;kV~+9XQC#lx+m{q3pBOzk(c5Gff^jOg$}xDniRXNt?oA zM$Nl1(Z?JQ%1ktF-E@_z4dm*AM0w#Cz%J??5Cd|s$d!(eqm#|8m2rR z`CrH$C`$t~64y<{Ir2^5PBKuCq-KBzjLGx|+}tH*tk=3GE&B>d`hnGwCBs6&ON7f_ z#f|(*LX#aC^`v(`Q>xT$Vzfv&u4vsG_~*fF(#~eJG=u{>5)d+_7hZsmzub|iTl=!C zwBiPFiKRh55dB_=Qu@Krt8nnHRxNL&riUWgq9SpuEcP?McaPxQR!W_SW!;hS5fuo)iRf%Nfe z?Gzn1{E7U&LnIH?JB18**2aF4y zj|8vnu-Q`qz90=<$Z%ppA%W~VpCdMO!>Ltt{QP_N%QI+%=tWz<=E{bOKCk^1lg=43 z$`Nc`US*5)lz{Z|DBswB+@u($p6m}o97VBpM|L|`kbV*+d73wYVs(96s(a1jl_k*v z^>7=o0$_+c_hGuyGY0o{HVEjW+?Ub&t0>q;Mn&if%O~u>*#A9;s>1mfa<6u-eKybF z87t-6a06Kvrs93%WV~X3;yxbu?&EkX81z2sw!mNLdwD{c5Y_n6dT=C=%^%&C5?M{f8K5_TM959!l7Aw?UWd!l8$be_^@ROGK;54 zNTm+^Kkt66V@?KQ2PCc;nUw3c1Xq=jI*Z-J1S^t}MAAS)U2quyU*OOuF$-Kw-yUH4 zGCTx!F@2s@%s&`eoWeAO0anihTVSry`Cb|)1)9mP*ATyQc(9>-gA`p;ikON6d(`|; zMPW$R=-pTPXU^;X@<>-hPZi+E-5;FI9tz+8JM|bOpgx1^iI}4)q&5cqd>&mKz$m{A zEjra~foGf+P_3TqQ{0qCIU_Ctiu}&X4G#&87IkYiPeyD0Oi7Umfz8&kXjqB22tcX1 zSMdlT{=OHamVj0buut$jf24^g2J*$juJ<>W-{%=aG%1mjT{|9gF=A>4QpKE=^+T6~ za-`{7a%lpwFx-O|+f*@IHvm2!Eq0^?&Bc}mR4VA9atDEAU_XV1^z5bhTf_9Gum6Oh z=yYH+%h4dyzoO|9=%0t;ZcG~LCT;$w%f1y&O_#Qrpoo;b12imXrQN~+D(ql!5o{?y zJ=%-Fg$NN5UT$wSRF8%H_H*}{jHZF!Ezux`IkF&}meYj8{aqs?lLcZO&wM}@bNUKk z&RZW!aJx2Gj9OL8Xd%7^(~%MAEWnrsmQLv__tpnntSzJyYo5KIj5GieC&v$JtGTO% zh_3JGmVB6KVyVgKhF%RAXfy^zx6urL$szjDV9e!;^F>Ac{rj$s#R_P=5+&!LVA3c) zjM0EbvJ2jnZ6Eh5WW(t@El8iRgyq=-_kvPy_dp%InWP+^Y_`J=o#|&ScdyjHffkFB zulCNX|Hqs8Dtk}0Kte254nao#^;3!D)$#Md{a*2_^(!1d8YNguyZJQ3-n?Dgd;Y2j z%248^0b^+UUdpmYHIJC$*M_(!*SdAou~ zuHv~|UECd8IVp?hZS=naFASmI(2MdF5QOsddK>~C?29%l5EdPk)V7vio@5Ksgs`u; zh&Lz0=}iI~XX$Rw`>#+25-=iwW-|5Wf<`hs8L*5(Qy*(y3YA)PllqixW{zjAtU$}# zp(vJ`7z$ns4I?4~022zsYdx%6D0tBU&h_f96D&o39d-s5Z$uGy-(O6YgHhpc>i0X! zN!c!sD<=z?C07bL)TlMRT$)>IZoZwYHm7vh0J>)`9EnU!VmIWkKBUes^HnqP_w{@q z{GhE8s{K`$cME0zk6Rjm#BysES+`>Z0Rr9=OJBvBH!i3gt_bkY(Y_&ufplh$!xevW z_m!B&kjRx0_$sk4qB$Nu6I}6RM+TSxbhOxc&r)Xo)00{=JGQW}@0Z@_5W~Ry?9hYp zf|H!5=*`tDZ9MO~IrjMft_cJfQE6Y0C|1ZGv)^c>^OP!ge>+E-q@MRjqxPWr!H|fC z-dWxQJ;;)2d@gTg{{eve19VH;@1g!7Y#<{}NZRIfVb3@ab?e|h{r$ND)qH0XsIJDI zJPxdY&NSBxrXL}oc8S6`8q6#1`D{~kpT+cQAE#O*cjeipraGiPtUWlq!{jNIelwCx zG~dX~U~%@&=E&gcW7Swm#ii@0jyI(h)$=LzRhX`b0k9E+c&Iy*YvSDnGk8_ z4=mPG)E|N*H(v^WoE}SY&KZ*YMwc0sp~*Jl-MAG-#OXYhDk4i$#xYEHvQweR+B)4p zT}lH>MjzdBwWS80Jz!q+)+*>;-NHxv`Bt(Q6AjEY2L|dXxggf1YYUFAcO&k-zz6=X z;Ka&< zm5iPuiN42wfpN+0Et3E6;`Um8ZS|z|tn!OK&9m(#gsG=&&gjjL2h^o?Ium5tEyi+N zUL1@VadEMhNm->({&b*@k|L9PDlR6|Zvs1Vy#dL?48Gn)fvBTtQI@G#@0CU2fhb5r z+ky{``jyk0L65frEa0bG9>g)LLRoha%-(@7x+}cmFe}~EPsz%)X8w69bg1Ac82Eas z`xz-AI*NWckZK5!j{}%a1i-2D+F_$#esAUr43Y$|cF`UI)6N;5LKF#f=<$BL3O;O0EE8* zi5^whJcfpP_Z);1jrZ>00aI`qZ%WTr7nlXSZSe=ls9>M?;ne8s2fvF-gQWhf=A+&> zE;Y!}3hL)6gb2=YXLgFhgmt`?r+n(-Q(=v%TRuTcD$xBoP!D*1C=Q-s?q0JOI5IKs zMCOG`!GvSmx8&Z5-F@O0k!iG&iAx7=U4HU8U+=ay6`rpnt3$c#DpIAf4F&&ZPR$r$ ze>Y<4w}3NPna{9oat8G&^YQVi5l+daM1prKw08ywm+dk73_9}Z10UA8jz~V>A|jSW z?;df|0?-G@F9^fXiXgfO5Yb#}?%sHQ)_hqL;jTSCV~4>gqRZ!qKlf zH-p%u=CJ@BEUjK$UA>+c5mCh#tla#zrE6o$yeR@3TvJ6unUAyEw2~24e3_q|wPpAG z{`x;9CDjWsVtE+S^8TbbIHu;QpcCLqPE%P$3=mi*G7(;MesnavWcP~|wYh?TytKKrPh)qAI#^&G$bh!8fzBDYIDWmdwr zF;d7qcQO(%fYHDDp;mrw@jU(&Iq3MXo+;bFllS8nd!#Z$JQ)+41%Swzb=eVt%|pW4 ziN<$P9zrilOTIyGcw+7Y+ts&JC5D>DdtT*V&ya>_pkQ$Hxfdz2Ns5#R##Nbfn8@uC zLM-`ro8?1Mbo$2mE006nU8+Tc?|+ORj^G}D-WN{e2$0I{>;K9X-t%lxI~ywf`}{%i z+C)VU+#Ib4umQsND{PFDs@?7ai1`faJ1jpwVkme2o=dg-oH5kh)g9qwknRk8(lf*{x@u0=(n_=LX@$@# z|471r^j=&PPdyd@iZuY!_&0@=JT)*HH)^t`(th@{2*VC9b|wYISwS0Kv`N{YpGN+n z$Lv<-zi=T=$NdNGtu|OX4x&$)*vQ}Ce|lo@W-=RQj7bHJG2FQ@*4M_$5N0abpVYL#}vJ@|GQ1}6Cq8z=yn+LIn9Z->tUeG2+R1z^HUj~%?d2mnuX zh$vVFv~TiDkmcP)b-=BiJobdiG8lDS2YCZofnEv5LAxgb45)^gW4z^M%>#Cpxbarl zSmh+D`M|{v1oQpa-#B%xnItjF@~^-WtLYS8d;*$J($K#dxO$-#I$`B2fpYLxkDac5QHENH=#0-B6 zin~E#F*6v&0k7z-2>p4$3^Jj2?8Ad8l@i?qKIb~MyNdtyKdh#31ON{!$j=_H1NAHn z3y&&Q^mkhXNKp}eAQ#hc8Jo@m2|Owx#E?yY_ls|}Eo!-duKd9&(7Pq|^c^!`K|cG5 z8!vR;6BkCR(rhoAqKOByKB3hxi10G%MBbV%l}4%B#UgLt6vX*h;}@NlGxYj)Al8Uc z={hESaef@Ci$JVvqR#0sph=wwBSKgO6t50fV(LBaW_}ryrz@OkNzWwp2+DvPLw{o$ z3TBmOx7#9+<1e4G=b(UZoHZIo+|0 zCXjP5uvmJvWpfjuIWSCc){4^wWj2C9Badp>E9=Vt=fFum<OIc~XV*Lpqt#)KSm=}(Q?6P4{O=oT31noAj z@T;udGauF|KI*#XL5N3$*&1jkguE7q(I6!WraYjaX$;Ho-wh7)b;mtwgA*(N&KNqn zXuj9o?b(WK4c-6BfCM_c*_L|LfG0Wui#^y4nftUF9+FegQ>5sSRsOMd1O=EA(KqP7 zUBimyENAMuf*O;Xe75`2Q9a7bTPMv;49HZCeh&b_(aCb%PQ?g932y)r{nlQ@76%4u z);&@ln=z7po$rh2EEk6LkkR3U4ZNqb95jYv>X4|QJH4qSjMjG7#yTGt%~C{|U>c$# zVz{umK%eElbm`gIbm^;40{b%k`%RBfalW~kdYS70ogx^AzN&5z1>nDOCg-FRh`YmN zIrBIWhM+Eb8Lv!f#`pt24*IC-W`7Wn=OpcENED(5D2U|Q0F=WI=4Bn72K{t5y1?t1 z*h{wd#9X9wJ;&Px>}wJW>N0b~9liRTc(gTB>#^O(C=eJK)GM|fDBj=!o|HfE5?nKg zk;f+HJFcK42h$Rj&r*CilKh)zLA`)2GA>e%ZKVDGO9u9aRoP3U53TbxKV7TGV1Hov z{ZC5G`n}rHhu55oix#!H`xVL0R;7KmZnxBV^sCR+dMwZSB!5Q&dmbT7cXGwA<(HcJ z_5KE$EeQ_)VU#?#F}^2)Z`SBVr;m$7$5NN(m&KyX;rWSSP^#FlU}e^O9xKYYrEY&( zr>`NwY-sDVI~M*vThp}*fyeScu1+;)&c}Rwwr13?c*|2MACuvZmLE{8{EG=jVS?(G zqB^TTe(Je32@fLSIOuz+Z=z?Pvqm2j2Zmz7OI=IO<7W{Za$c=A_O2{#F(||hLrTrL^DJmY}OExP&6^o4B5=S$ed}UTN0=78UT}f5Jho#bF z+Q&4=t!J|MkcT17WXS0un{7}L|4;hs>f{tvQBX2X7!k;=q&f0Mr!%?4Depe``+)EJ zKi~r;W9y`^R+Xw=9Bq?U5yvK2GAH#QpN;od1p;3hC@2A+JgiY!fxzuqpQ}2bWfX*f z5PSf)>-~?L_Q9v|cqUzX?qYqmk!jQY{Xje=5ki)wZ*!)gI1AO&^fp_`nyj-`Ol8&6 zh(npOP_CAvY?QS0S6hGkDt%B1!29~mu>83EX5?FrKetC+;rviD+3J@nC>HP%-B=9z z|A^HbE<)O2Z2!^=b)_?1%%$zfDuXUc-6&* zk5uAox!Shen4oC4F%$N1JMj|%j=1fy_RQ7ZAd4s5mg(6?VkfzYe5-kn&Zg+pII>19 zCz6zH$#A4V*lJ6({mr!(jta?H;?L|RqJjYZBGXwFUBh67sIlicORHv=CLOa>aE?uk zL(|Q-D*|eZKKFkMdv)8R_fEm_e$!!}`09hV7BBvzMo&s~E%&B3;rTm!v=vS({ygRa z(8}N?_73q{Uclr9CphBEY}m;D{IYK0MjA&0YH3&lN2P%4B_nv-fPM@X@;Hn^a&z$6 zrUnC9=AaVtro(-|3gA8C*%D;F))FCIMOGYVKed`)!`}xQhKRPjwrl%HuKabU0-Xp` zgAz%INgIJq6ml$>g9)A9QC?ge|DvJw? zT-ZHH2z*D!Y*-XId_(H`V2chwv&cQCVzxm2Z~+#^kWpOpsc3GnFm^HMPtRN(V0>G=z4uU`nk~#h62)ln!wWvX0Jh?@d`fvNrLgJv+;S*EFeE7)VeUzz!d1|S9e@}5t zcICv@<+DH*$;L>i_ko1l|Rv`bV^fs->olw=D&TNJi>JHn5ai3kM6TJ9AArAJr{dASV4oc|`W( z$j68>J_f8Lx06~?gO=3vv`6>gUOKPKvqRcf*}wVFAft$3JtwFP#)hh@qx=%s*oi~x zJS_Q~pDklLiD1MN7pcuSdiv2|cE^r&m|w4dv|W#o4IGe8LSB1=_)saKXF!~{LmTR~ zcJGSJobrm4fd4GJdZGQVK;7>u)wL*OWm0;jxaHL+6IZr>W5RTj*0a@bl1NB z1J5BnivP=arOufgKWHFu0&lw)7VM#@6m3T!7~18C0NX?0PO|*gNpO2C49Kch`!8)^ zDj3~0z}X(B$%UWauUZAz;{==D_2yiLnTF%|uP-(+V1y4mJrkJd8LhPKJ%C;f`nC8I zeVqG!?-nK1{1|Ns9(kJ@4_+uj5XW862Rph?!a&+@kYhyxgq3@dpY3+f6kXS}xY@&z zvzLu9BJ(;Z?lE^IzzRAD*sb`TJaKfz&%D^7Hv1P;y_rwcuP(kn6iR9WEe?6U)+Ju~T<$~`bwlVU zht*84@&~u?e~LrG1)@Jm?{iR?wqinLZy0-1BH_t#mQRxg1aB$niJU*UlEDd!DAPKl z3)9mC9J(zK0bO|DOp5XoH&gYx*?fvP1V*j+0MxU~WI?+6CMC?0^_{PZCoe1ectaoy z+!_)48~7Jsng53tiU}1_R)L-_hmfdM;dD!NWb8EXDYK>&iDI>0!Z$bm&K$h{wqQUQ zHNVkKkLV*yQnLwCm-wk^E`gyd@y3P*EJq)HjCc|gvvttl_8~J}Fj`fl^s#!w564NL z;lU5OKmc%=LLI@{Te`$vqx@M;r8I8?T0XfD?IFY!xQu6hKv2=>mI(e{CjH&Pu~BFsQ`b!#D)i`#+2`>AfMBiENA%+ zd{=NZh!?;zyxW2fW_Y7ro%A2`c4WFMdgX|Z!J(AckVDX_Q8;Lwx15@~bzN2h-tB>2 z0O|OyDnhrK40@;7x!gg`>=&#ezorp<{&cp-ZT*%&?p+j|2h$X(HOPBmwG0D1 zq&|OQ0n*CZfcd(;CFpO@?*s5^#bH*2F~Hyk7g&~7@ATlRoPPRjNFDtl;qeZW3;Er5 z%k(ufA(GQs9{~BTSGk~3pmkpi?C_Pg+!q9uGL%)jSewzD;0u2qT5 zjBPKZ4{{x9f0=1;`|&qk6&gyM51HWV@*l;YCQJIwXLaj31=CCl^JhBF(R!BA(WBS+ zdf#QHNW~YFxLyQWp$Mi z=cQ4!xq*5NQ&C?@^0i16-;RZeRlL(S)5Dh~olIJkxLmc5B}rQ}|H=XyCbn|c{^_C> z$KdS^@wz_I$Cs}&(aSzS9l?bg{FAZ%7Uk+VY<=|mZQ!f?E=jvOn(P&=Bp9sUP2{NJ z7fBJ`h(9lU`=so+e%TV?V0&{zGMIsNaI{C542JD}F$2O_NeZdI)E#~omi+UE& zVxO+oZ-Y~QHrje$`tv}a3BvW)^=0$Ev#mlG+eE?bRS@0@;cTP*`X%IGH5!uhsNoE; zHq!LRy6>lK($FG`L-Yrd#kfZP3JE`^FN{E}Ng}~E>Lf`J5Wdhx)1TL(=9K9_TNbMa zKH%GzIMMdr-~3K$K0Q6br>K$oIAwGr0$>ChFS63{w3D-FaMyo;cjK@qZZ6jxH100? zyi9q`lYVEtE^wKS2l>MYXY?B<%-ij)6;K0Hx$giAf65$1kySYT1eb%jCp0+>z$sKJNFSvJ zD__ar^GtrQ>e4D~V|hO~F1WfuCr9z}3lvH%Gc z-8K7f2nXE$)zbt(T9^T4f6ZDu2bN?lqwUK|Rrcn&WL_g5NYR`RLnKLudsKqAyjG#Y z%ziJKkOlPWhf~${-Tyfoatk#u+dVtJzQB^fJPY2koTg}%n^t(p5^iqADW?i+~< zgamIkn#fY`6oPB@O1u zL;c`xi>}@ySF;|s2vEDN8?2yLmJp8xDwzj$)T3v7&UU-VB^n$`ET~WdrQ1crEUFn6 zrKi)t_@B!5dyxD0dW3j!o9YpF6z*D8N#*r{f+}Ey2>`XJf83Zi7*HuxK%4=K{{ z=#!u&wjVc;o@PTLdP6boTOw%d#5j;Ur=~uTsX{=Eg|rEMwBl|lXC%|FVFh_SVw4Xf z+C}(F#NVl>!sJPit1HHDkUH!o+F6mY%mv|0PgrrDCK?*=2r0}M{U52_HzjMGiNQmW z0UWSQ%RDR#fk8dSA5?%fM0&mSVtnLhaY7NWH5OL6bTgxJJxs!@!~Mghbegs$Erk&Y z6dT6UjXwg;vOhbt!g}Dd<&f@EQBa)nM|d*e$G=9e*}c4FS&VA=uxCND94OX9+a%8H^j5FMrykA(l#SNs^G}vFfOs*sRXLNU}DgGF~IN z!jpkDo_t{*i;};}CvAC}gOxc0XvY;Eu_ScPw^g79E9qxiun<`w&=kCv^X)h*EvFRE zq~2`&#|8$L8|$)Cjd&=SLY(H!MGvm)_rjCS0KOVDuu6zSvkn6s)ZN+-y2il9`|-0u zBcUD)XuZTaZH=x!2niVOSO?~h{kSIS-a~P4N7w1DYch-n(=nX>9C&8=$|3Ku?VKQa)(i_tX$3QF8PHhK%jSvIWmP?gJh9-WEXANCmb0hGI-w37Jx=LHtsxJ~IEqq*ju zorfJW_->^#5}`Bg5FLT3o1z-#I_bJL4Tz3u5 z?ri(c7Bk?}B9p|g7Wp%6L1dY+wR8(9Ac%3-4>nvo#}H=u4N%FL$@tv>L) z7J8393sLnWxy$49of&7|S>Q5#PyX}he3zW*1X@D!Tzn5*-22PkUw~V}fgqQC`S1SC%&3M8)4W89Bqu8^ zPf?vzt8E0hKsYx~;A(Y(VpC-hA|5;4QtSsT~5VX7y#(;$(73@Z+MD5{l zG>_L5CNArVirA5 zySM~|zrZgs?nK^9-czs6K)=$x^Mv9VTFJ@JA1t>{zi=#|O6)?WhK9QIl_D0y3~0}@ z2iWbwlpv%QH}3!Bk=buFWNI4P2eAhA>k;bbWBouvG+49~s>q-uU(LT;`IrPrvAirK zPb&1UVR%JW#xYj{OqwXkK9R8|8UK37Oe~!U)G>5F7TuO-f!?n`!i%Us@LOKJMKEc zngEGUsbAW}iV~OqCzp+RZbQ%U)n{2tjp>&v9zcw)ynco*M1w6tHq2DAWK0BKcsGRo zjui2WyiU-4LXxcBuZs2DFH5Nn1OV_@57dJX{-#M(96V~2Mb%b|Mgfv|X(d!diG&qk zieDr|-U_=Vvf^W*gyN_xJ|$rdGatak5xMoen~#UK3tFHg?XQl-@)!^^norwjIfA+;FmNh%&IeDgiLnNPTz zIVik*5ZbG(zyhjGrJnQXeeEdMAJo?-#HM&OJTh-p4*H(Bk%Xr_Nmd*{ubG|(Ihod~ z$K@lR?$hS5h?u=dh!C{Y(V$-wI(i`oQz0p<`7rgV<1;}7ZY-UtO*zQ(6bvYC1*qx(StoeKZu(%bMEF_y4M<5J>(nT}|NrLWEXZ-39m z1q>=|N*f%oTn*LqB#S7EX)S?uK6Wa>CCycNgFyh506}H|ffEL{$xc_H3CH5W)dqk= zbMDP04I?S>dY1sspA(LQY%Cx@(rM@fHYI~{M4bvzw*nNHY4BLXVBhIMe4V(S6{{&r zemoVO1zHQ9?nG^E;He(fjTqU+U%d~^+*)a=c4?o#Mv5yVSNd@9ZzCVWuFi0;uHSh8 zp+q$aU7HW9j6U$3Cuy&Uf<`Ph$L%2cvlYIc9NU7?2cS%e(*$A$2hEp{i?B(dBz>Os zo$T4TpXi-PSn-ZmLj%J|l%!>_pi#DUph~(*dG%1SCe68uiWJ)r^`m{nyKLgwyLeeT z4I;#TklfcLP5>;W+{8-edsyM3$c=p;hSENm|-C7LJKdU$XI1Uc? z$--*`_KpY65sr=9ig;ONdJrJoQ61`J+@|6Pi~%hBiHD(hEbp@urXum6U!nFB@NbHQ zQ3J%+zY>P00Io0^WDM$EP`iu8g75-WPEOsyIAJR`fLr*~5>z|6K8@q>+JssGbX{hX zdX{;T0nJ1a?G`o!V3GH?T@{;7uIEd9Kiun^=}^##jidb^kf(71Rl ziDuNQeIo!l<8{z|xATA&9s=?kh#Q@jnPNgqRF*olNs~?Cck+ZI8hD+U74Tj$0`~jF zpPRk!DI^puvpyJ8usrF2c-LdV@*XpszUpAZI@SPm`|7873f~vV@f7R_5+a9x9_Bt% z51V}tY?mKQLMdP_Hy~J9Iz`gMWGXrGN<0V3W5|=}flPr;!ID=Ti#Fpr)6qBTm&&f| zS43rj{bEK3xHBzm< zs9IKy-V)(P-XMe_M>$*L%xTFg`69*RF82?9gI2MY&dycabXbxGgW;=~n~68Nx?TfJ zLo#Tw7#sGCM|Hbs5Fr}^f>uzAOE3%H({S%46@^HphGu`m!vr=$7L$P-R*Jl{RXqTo zCxO}{37rU7u~^6epnS2XfTS(B0Oz;@M4P~g}Tc$cGz zLBIlV=MUT9$L+8CjFf$znS_D@K9Z%$xKuXf$Y^t4nr6y(>{%z zenZ+&Btmj8r0O%kMOF(dHnxnS9^U4uw&E!Ps?6_2NPiJ4eSg@i54C+zF}29jY$m28 z_wl8FL4wN*aMfG3 zI|87YsK4Th7A8!Aa?^3`_hS($;(v7xU!J#6SL+y?LI`XxN@ULCt%Jx_rDwZiBRlV|;#A<`So z1So9neBI9Kqciqd+sJNHbt4(9RGtGi?=0MeU+;F*-D~;>5K7N^CL_^%uWtR@6r-6e z>*MhUz&%?zxUU;rA$7@bKlu*_2p4Cr*Ofd%tV<;+!!`BW{8ya6pUx)U*Ng`jFd6Zi z&d0nH?}%6KDXHob-H(8t@8;cxiX55^<8GKe^S5s_OKAKQ$ooddI_U{1D|cL&*P^P# z?U&p4Ez7iKSpL?C1VUSM4J!3`sfSUkReI;sAmVA@{G=;+<3iU+N6A15s@vtx5tWf$ zSqcb;T5-40Ib>BR8)EI9M01<$C`j;3*|1xmtVS>o7~$ae}e!!bM8e_mw3Hglx7!X~P!DuLqUzd@JCgl6wGS{RhvYg$IMj9NE8>@(l*oq|WpZIu-(85A3d9j>W`M?L= zdQikGT{lmac?HF8jBWo^xVm8g{_F5~QC+*W&XDM&SigC0nvD4nsA^G;dPe={<2WCc zhS}D8y1={QCq*#%dOf!qhcBl zq25O>uEO2#0&4Ww5VwVc!M)aAAqYA`jhw?a2Q`eFsatyeE=%a07)W|h=UuSg_n6v0 za}qPpWjoKoQOc=QJT|Y;L27h_5s_kh5K&S=!uZH+L0||MGY0XA&O$_kr~()K#=4Rr zqiDB0hl7xN&ylR_c0Q_&nnZYv9k0K=P}tQ@u^P;BiTaEm?vhS^k7gL$Z2>PISlKsH zTVkf@tSx8cuAgV2V?i8{RDIlhx0B++fQQJh18yLjyw0}{gN@)iYR@p}2IpF3N>RlT zlKa0U12sJdPGFvWHPQ--d_>G-NTd(cHO6o|rn3x&JjD*%nn4@WtB8T^mZl}S;XM~6 znG4qq8=6OELsfo_=013<l=E9JVB~#U6h%WSX969sg!E#veBHNFm|L`F0gv| z)c|J9HE%mBm_xr(VQoi9r4=z|iqi{}p~CQGpbRzXA0mIhGspq)CG}_Mq+WKBBwO|m zZlqip*=bvr)%CfN$7Ay4J6;9Yk?guk=w8k5S)Kf_vflPrADOFo=2W*>e@LFOKm8}= z6TJea8rz6R>kGrfUwT|2g2mPQKfj35t1QefgDv3=n5lAoD#lL{V0WFF!n8#9{V$Q| zj$*%%s4mfYHdUa0F?B)}(;%A_$g!3n&W)1o{Iie; zgHQ*3?|cjeU15=ep|pIEXh$jbu<4>=}+3TjQP0NL2BI>TwlA z*hlwZ6h(k|ooLI+IZ{FY{V5-A zhy*RwX_CCU`+NDr%~QYWf1!%Gz9cncSb@sK@rG$ zYF~bq^t@|vl#kwsx&v%kG4kR;K}JC_Oq4fc-x`r3Y8`!3Z`5`zp^3~^3va>juzV=} zrhAugb{t@w=KeBIGeW%s8h{_JSo5@H>Lxd^l^}aA$C`3f-jx+*jQA^;Z)G-H<$VEo zc;gMul;SY-+el7LZ3}&oW^dTCqt%?S?f7WU|CM%~QB8GS8XJO05s*$01Pd)l5s{`8 z5dl$32p}aYAT1zO0-;EI6#)f_bOfXa6Qv0lN}^H%0fdAi0fR#5Nbh7Wyze(_)|zjv znKg6&ovhq_&fR<8bMDz^KhM5&?FT*h7nY;J|F~lLFa zYxue*J9Z^OSJ=2j)|EkZ!pqj_1L0iio=tTU7l^_*h>q>ZLCLB>BJt;msi|`}GuhBD z16Z;;688^)W|9@m3ex9~w=}$qWZU@Alj$R9pmKcjt{~t3%1Bl`2?Uy0nbFPHlmKQt zzNZQ>fgAX6Z|WDG;ra8G68HQUF5`7brzr2fs;nIpSVpcE@W*ZfRnh^5rj@EYuuy&Q zaqD2OW#%TgOgPi;AY#V*nh?Yx?9Pxld3r;V8RB8d05Gfnz#*%o0NR42`#R$3+NTp) z0O=ZTtW-Vyn4}?SZZ& z`MU|7UzT1y*Sj|L9fmZ+03QjAwiwpN61LyuP>~5uwY*SKO^&++9j2g>iH~$CdFK6o zMdM2kLVprXSC!5&#j#5I@|>8pvc19yB@&6kesbWhN2%u?*p9Wuk2~=gNa)qRTW+*X z)!2xPMT*^eV^JIJxTlAHW{m>B(2HJmCFA}yHp&C#Qy7D&rmH~oPXwweU8l5JIc^}# ze~5??Rn$@gs96CcGokh|6-HvJUtVFq3<(ggOsaKxvD(svP>|Vb8=y?^L7cDW6ccAq z%&O_4EYo?RwXl|Dk$J+n)VU)ODI!xxqIS6}U8~O*+iXsx66Q&7So1B{b#nhO_7)g5 z)b~86*4ThtRuR@sL+ppofv}kIUJf-4!}u0QzkRR&22>r8jj+7`O--xd*lB1oob^!f z+9XSOEaE8kwh1-yC5xvM!(KT^%L5v&@#arv;$cbwo<)2$pq}ddF+z_rmqXWFfIOeS zHRZN2mRFxAs>lq4-frycGDMC>cr{0Q5qj_r|Ss2S(= zrV#*1RHa*5$qXb0HAw9Y)I{+@kGo|zmrvK;!!YqpFh&IXCETDq;RU9LAwO-IS)N8W zigR3s+>`h4E>I9Tv2C5%{|Oe-9hYW9u5igZgK4dWRfAu2%fAN_BQWX^hp0hJ&ghC) zx)_utyi*fE3Ud#MA2^2)5~}6sF9Ad<%pH5e=+GxuO%L-?d# zgKgi)D&db5A@pv{n`dV+yEm^j02sRLioi5%Xbu-ea)GUa;~?5HqXhUt7r<|`3RIy; zyH-^H`K;{mhyoIK!?o|3NQ2(vcMb4t;p2gyIK>~{kKFo=ZI+AP}+Erz+4145Z@69k09>G+1)WI;k@2)fYnR7FZ#45kLRLHf}+1* z<%4Nsg1DcgY>Yd!lz@9}^iy-SIncb_`YtSzljnx52J2l-y652dZJ-G5GyeP3(1GTf zM*4p6b!#j_--Y$nt9_`aV5mv)>5{SHK7!dCZs4tg<_<3WIS5t4d9DxpoCnStr0eqf z-qUNXQMg8NG`Lq%C(nXUGU(i_ooWYb^zKqW5IX>lSQeXvfX(jmNx^5paFfJXJb9p!Wv%B&^X7m!43@?SDtJxjW;(R$`RiB>Y$$Z1u*s49hzJ$`-8J& zAd%uI_9=H_?1RNGvHgBs|GDR$18Dc-^QEzUW?bO9vyxdk>WFIqQv*O#C3lel>LW~_ zJV!TbzvrWHtnOhdC$#Q8PWcPxE~vE%*6ngi=YIF4?pTFO4&2$xG@R|pzmuG`SRIc^ zfm)ctuem?wg2L}}0)TU;b)k8H7*odD1>66mO*5;J2KpjZ6(c334uFgI4(mj5`4e6V z@>vWh=d&{-fD(V6*N?IjZYl(&g;yhZ6R)}zXxw^0YlpP}&^)kU+L@&zM$p|e;uP|_ zOs&DBt)ZG3O-AgF-(M%$;yUk1baWnMS{O1B!HZXz`9)cKE)EUE z?b{ZwroauF{xcB5elE@yKp=8Uqp<0bavgRufoZ8JTY}F=4yev51z;ebr2`fBo}B(z zY8C#qpAgF#wrxTX&ArmT`?&i>A=}rxFmBxYb|TBthTeyFCcYbc@)922B?=uo->#^e zF0@xUvfSTg4665!RF^9sBHm%wi)lWj=YzTy9dYq-RHc~BQEQ&D5JBY27y24;XC95A z&k4KQ{O00rN;~#h|A-T93$qYQ@cpHa0_#&Jf}Y1&^q52Q(t6r43kV z@NdXgM2GexL!VKPc>z>Eo{JBUkj0n2ezG$b2i{u;tFq1zb1c{mrO@@f-Ii6dM9=PO ztVKjxUkSX3@|Q%In_!vxD!oTBd4Yq+7Fxm!S-0&na;`{IUH<&;9NK0`4>H#zr5A~X z3!_N8uIoX0EeL;Drv`XYV*IKBG{dF`Fjo78#iNnyq3wQUy~}TC>$-mEQ70lfJ-@A{F)a(hav? zcQ11TD#*q20SI&}Pfa@G!yuWq7YbuxgK5gcO1Kjpb~d!N_r^`ti=qgTv{m3TWrTXx zbx_@VkUxZj`ENj_UHd#Oa|YG!xGJyjPW8R%$hTlKl45ycKc;E;X53ast>IQ5i_!cK zVy0h|vHVLFjZRr3>Umjz)WCGy{P=cct#px;y~Wx}iq~R$Y3S+YNvD#$>c~G3SO!WV zDjEv{h&7(Ign>jvc9vW0@Is)FG)cpSEn-d*$#flI1mzpG<3#-887#Gj;*)HBR}x&# zMtWS-6Y5mCD`^ZCRr#D0ZxKDeGg~s;VFo3+nHMJWe(|vmPH#Jg^My`?YIJ1;g?(JY z?iEjzWviN64#dTmq&x1qVy=5i$NN1GNx=*emVU&hd}TTXc%&r0ZkLjY;p70WJp^ud z>*vpzIb4)K5-Dets8#>^*D30R5%~+ZQJ}c3l^~z%GsIadzCYX5zc-i9o9<=X%g-2` zg^k`-u6*!bt5Yq7DsWCHX;dlgFUGLsJ+)`~hDnmo=u-CgtDPG^^fwBB*Dl}bvLx23 z$C63=&R}~QayF2kvWVyoE==OP1)H*5zhhx{W|l9ER7OxdWQwd0QcIxU?*Sjt*&S~J`Zp+Xf@w4D#LZ# z!pVEO<@JOIeWh=*Px@I^ehi*uu9{hICxF+1vdnBe*`|Bl4sAgDh051V9K9|ORf2QH zG!O?M2{-8t+F7^jd*>@w*+A8^obsUgD{ApRy!3FQ(`)Tq#8S@LzKo#w;+Jm`2CK_ZjwR!Vh)^V1wXHb zv7rI~3#fg7S%~c)FhiITEWxFuDCBA+uU*lA%N)VN+~J0X1Ag#Gz98vD(Vo>lU+rlZeZr$XsGOZnyQ zTzP$=X{vfIS;_`^I);+@eTdG(Ob&*42~xbK(y?2Au!}U>`MHt~$yTCV=a4B0r8kp# zdd<0N5Pdo0bL;Z(N=i+@b{jsl);{y2Dyx>q!As(v={Hh49$j9^Jjd#SHW!{cN=iW_ zIkQKh*)na@)yd4Joi)l8x0k(xJ)GW)I63z{DtDP$G>3Fus|q|mg>Bz%j9D$f`yik}TLC>TMGP;DC%QGc^ge%8U+ET_`io6fhKr@i zwc;$9faufuBI|@d9*SwkW1qy1y3CpCLILx&UCi~4g*GrERfaCrvEZkhT6^9k^Gzod z>m+NtnJ`&$6XI*oTAxFWwrMbdsQlJ<7e0y3S2&sT2iFsD!qweBwuDL>2g;|*AVcS6 z!DIcfE9p12qOOPa2p#B0x+v=0kts7h-_e|eVZHUYNu92Zo4$O5b6;0cGP*6%)qXne zK9d?d6Sff02qRc}1?0Sob4ruXp3U@8IwK9k^gXRpStk;y;Q_aw29wYPI%O8ijpEnW z5IojAV+KtQ<&qa7JX(&%USpG~n9zCSb9<7}t!kK&o8?)MT=cZ`!?2ucM3%FqzpZ1} z1ls@NdaEZ0UX;5Q_EJT>k6FYBnr9~4^4qCa3S>OMHrV&=6e>k;oZ>d1%tkCvFCZ*Q zB%IGbv!j*ptL>p;+KZ<@3C`v+j62<>AXtP7z8xL(@@D?#@OshS=-xyhtVa~rJ{A)2 zjBnY0ZrIOe&)+TUhf)V7s>D|{rZZo;D&SIF497Z&h@aqC*YP4QPd~Wxx!+e`7%ik8pMUC6|LIUz$>E}!HbzfEp!(=Ya z6ovL+Ye!ea>Au#fYP~7|AzOgb3u$2m)c73}PdREnnYEWt+ zT5)zgtgH~Lk@%}^9oEfw377%UiQ_vjYqo=~(o|$CT=gLnuTRfO)YsYRHmh5+)&}gn z2e>f^c^5v$TBR&>YR&t7!uZejz%Xu_nO2I{r7%Y+Q}R`9fYK{S#PnRg!fYey*AvAP zk$-eQJo;N~d@?C|r`e>FMVGRe>@@fN!t=Zfx6C(X%p3|`r6p$WjrZ;1^Kb+JLaHXp zOEmt-o9CgNrACD+;U1<~S6o*&J~8w48(jF)tIl6U8_OZBT8-7j_*0ZlSe!({FT-KZ zr*E~V*9m8?$Sj3<+U$Rp>p-1AD24i`#1Hz?MaKA*fZJ5?9N27m+!Ox=%w0Ho!WmL> zx3;|YJFQ_02^J=dq%J18f^uqBGQsXK@XKpMD5@x#gBW)u;e7JKwshp0ENS^`snp+} zJ94+Z`%+3&pOqEGE0B8FLx-ITTWjh=Dlf$jOh0 z49k%a_;}?^X>}=>z!y}Tppy3Gu?YXyguf?C8QC5)savvHITLQLB4bb1Yb?Hh|LxbJ z<(NMymT+ErHVwJ)CyN60Q2`K2R&8h{5m3YEvg?}h;sobrUP+H{gO72F>dg|Vj*_`E z(NY(G%VOmY%tn?*Z#~MlZ*>fWR$D<=hr8OI3S7IY zWp-Kj+VXLWmfzLHv~Y91sB(QFwAZAGkyK1|sUqn@88@UXyXwMo4e;2f*0}qx7ETk_hE|aw6`fJG)eBOBC+8kXJ8Cr zJvi{wC`0#o0oAI(p6q5-wxx;Zi_5$4{PS@9WOZo`fe)DDk@I*PPJ~rO5u?9v3RlY( z5)jEIG|g!R4>BLf367jYAV1rC6@18UPkuo6c6qY&_#%p!6O3yPK;8qbT_q&jYI!zt z)(%wALz1y;Cy4xU`k}f56%4)o^}{YGi}s_Xxu>Uxh(ScoEiM9kx5W<@y_>)P7Gb-Au@xQX+zK zGmGtSX~+E-*=WzmVt^huT3&*WZux{}cjf@4sp2zli*I8v3b3V;pDlWlMG2m3S=! RoFOn7>fhFTujBaiKLB European Project. + +![Zolertia RE-Mote development platform][remote-back] + +The RE-Mote features a Zoul as its core module and it is bundled with the following features: + +* ARM Cortex-M3 with 512KB flash and 32KB RAM (16KB retention), 32MHz. +* ISM 2.4-GHz IEEE 802.15.4 & Zigbee compliant. +* ISM 868-, 915-, 920-, 950-MHz ISM/SRD Band. +* On-board RF switch to programatically select RF itnerfaces. Above RF interfaces can be used alternatively over a single RP-SMA connector for external antenna, or simultaneously by using an UFl pigtail or soldering an internal ceramic chip antenna (available on request). +* AES-128/256, SHA2 Hardware Encryption Engine. +* ECC-128/256, RSA Hardware Acceleration Engine for Secure Key Exchange. +* Power consumption down to 300nA using our shutdown mode. +* Programming over BSL without requiring to press any button to enter bootloader mode. +* Built-in battery charger (500mA), Energy Harvesting and Solar Panels to be connected to standards LiPo batteries. +* Power input with wide range 3.7-26VDC. +* On-board micro USB connector for USB 2.0 applications. +* RGB LED to allow more than 7 colour combinations. +* On-board nano-watt RTC. +* User and Reset buttons. +* On-board Micro-SD for external storage. +* On-board external Watchdog Timer (WDT) for resilient operation. +* Small form-factor of 73x40 mm. + +The most prominent feature of the RE-Mote is its ultra low-power implementation, allowing a flexible and time/date-aware control of the platform operation modes by introducing a real-time clock (RTC), nanowatt external timer, ultra-low power PIC governing the battery manager, etc. + +The RE-Mote features an optional custom-made enclosure to fit most scenarios, allowing to easily connect sensors, actuators and rechargeable LiPo batteries. Its on-board RP-SMA antenna eliminates the need to mechanize an external antenna, allowing to alternatively use either a sub-1GHz or 2.4GHz antenna, or a multiband one. + +The external WDT with battery monitor allows a robust and resilience operation for most critical applications. + +Zoul pin-out +============= + +![RE-Mote pin-out (front)][remote-pinout-front] +![RE-Mote pin-out (back)][remote-pinout-back] + +[remote-front]: ../images/remote-front.png "Zolertia RE-Mote development platform" +[remote-back]: ../images/remote-back.png "Zolertia RE-Mote development platform" +[remote-pinout-front]: ../images/remote-pinout-front.png "RE-Mote pin-out (front)" +[remote-pinout-back]: ../images/remote-pinout-back.png "RE-Mote pin-out (back)" diff --git a/platform/remote/dev/antenna-sw.c b/platform/zoul/remote/antenna-sw.c similarity index 62% rename from platform/remote/dev/antenna-sw.c rename to platform/zoul/remote/antenna-sw.c index 6d320fedc..ca87e37a7 100644 --- a/platform/remote/dev/antenna-sw.c +++ b/platform/zoul/remote/antenna-sw.c @@ -32,12 +32,22 @@ * \addtogroup remote-antenna * @{ * - * Driver for the Re-Mote 2.4Ghz antenna switch, to enable either the internal - * ceramic antenna or an external one connected to the uFL connector + * Driver for the RE-Mote RF switch, to enable either the built-in 2.4GHz RF + * interface of the CC2538, or the CC1200 Sub-1GHz RF interface, both routed to + * the RP-SMA connector for an external antenna. + * When the 2.4GHz RF interface is enabled, the CC1200 is powered down. + * When the CC1200 is enabled, alternatively the 2.4GHz can be also used if + * placing an 0Ohm resistor (R19), to connect either via a non-mounted chip + * antenna, or with an external antenna connected to a non-mounted U.Fl + * connector with a pigtail. + * + * RF switch state: + * - LOW: 2.4GHz RF interface on RP-SMA connector, CC1200 powered-off. + * - HIGH: Sub-1GHz RF interface on RP-SMA connector. * @{ * * \file - * Driver for the Re-Mote 2.4Ghz antenna switch + * Driver for the RE-Mote RF antenna switch */ /*---------------------------------------------------------------------------*/ #include "contiki.h" @@ -46,8 +56,8 @@ #include /*---------------------------------------------------------------------------*/ -#define ANTENNA_2_4GHZ_SW_PORT_BASE GPIO_PORT_TO_BASE(ANTENNA_2_4GHZ_SW_PORT) -#define ANTENNA_2_4GHZ_SW_PIN_MASK GPIO_PIN_MASK(ANTENNA_2_4GHZ_SW_PIN) +#define ANTENNA_RF_SW_PORT_BASE GPIO_PORT_TO_BASE(ANTENNA_RF_SW_PORT) +#define ANTENNA_RF_SW_PIN_MASK GPIO_PIN_MASK(ANTENNA_RF_SW_PIN) /*---------------------------------------------------------------------------*/ static uint8_t initialized = 0; /*---------------------------------------------------------------------------*/ @@ -55,36 +65,51 @@ void antenna_sw_config(void) { /* Software controlled */ - GPIO_SOFTWARE_CONTROL(ANTENNA_2_4GHZ_SW_PORT_BASE, - ANTENNA_2_4GHZ_SW_PIN_MASK); + GPIO_SOFTWARE_CONTROL(ANTENNA_RF_SW_PORT_BASE, + ANTENNA_RF_SW_PIN_MASK); /* Set pin to output */ - GPIO_SET_OUTPUT(ANTENNA_2_4GHZ_SW_PORT_BASE, ANTENNA_2_4GHZ_SW_PIN_MASK); + GPIO_SET_OUTPUT(ANTENNA_RF_SW_PORT_BASE, ANTENNA_RF_SW_PIN_MASK); /* Set the antenna selector to a default position */ - GPIO_CLR_PIN(ANTENNA_2_4GHZ_SW_PORT_BASE, ANTENNA_2_4GHZ_SW_PIN_MASK); + GPIO_WRITE_PIN(ANTENNA_RF_SW_PORT_BASE, ANTENNA_RF_SW_PIN_MASK, + ANTENNA_SW_SELECT_DEFAULT); initialized = 1; } /*---------------------------------------------------------------------------*/ int +antenna_sw_get(void) +{ + if(!initialized) { + return ANTENNA_SW_SELECT_ERROR; + } + + /* Set the antenna selector */ + return GPIO_READ_PIN(ANTENNA_RF_SW_PORT_BASE, ANTENNA_RF_SW_PIN_MASK); +} +/*---------------------------------------------------------------------------*/ +int antenna_sw_select(uint8_t val) { if(!initialized) { return ANTENNA_SW_SELECT_ERROR; } - if(val != ANTENNA_SW_SELECT_INTERNAL && val != ANTENNA_SW_SELECT_EXTERNAL) { + if(val != ANTENNA_SW_SELECT_SUBGHZ && val != ANTENNA_SW_SELECT_2_4GHZ) { return ANTENNA_SW_SELECT_ERROR; } + if(val & antenna_sw_get()) { + return val; + } + /* Set the antenna selector */ - GPIO_WRITE_PIN(ANTENNA_2_4GHZ_SW_PORT_BASE, ANTENNA_2_4GHZ_SW_PIN_MASK, val); + GPIO_WRITE_PIN(ANTENNA_RF_SW_PORT_BASE, ANTENNA_RF_SW_PIN_MASK, val); return val; } /*---------------------------------------------------------------------------*/ - /** * @} * @} diff --git a/platform/remote/dev/antenna-sw.h b/platform/zoul/remote/antenna-sw.h similarity index 75% rename from platform/remote/dev/antenna-sw.h rename to platform/zoul/remote/antenna-sw.h index a93f580d3..6f02c8bb4 100644 --- a/platform/remote/dev/antenna-sw.h +++ b/platform/zoul/remote/antenna-sw.h @@ -31,14 +31,14 @@ * \addtogroup remote * @{ * - * \defgroup remote-antenna Re-Mote Antenna switch + * \defgroup remote-antenna RE-Mote Antenna switch * - * Driver for the Re-Mote 2.4Ghz antenna switch, to enable either the internal + * Driver for the RE-Mote RF antenna switch, to enable either the internal * ceramic antenna or an external one connected to the uFL connector * @{ * * \file - * Header file for the Re-Mote 2.4Ghz antenna switch Driver + * Header file for the RE-Mote RF antenna switch */ /* -------------------------------------------------------------------------- */ #ifndef ANTENNA_SW_H_ @@ -46,17 +46,16 @@ /* -------------------------------------------------------------------------- */ #include /* -------------------------------------------------------------------------- */ -#define ANTENNA_SW_SELECT_EXTERNAL 0xFF -#define ANTENNA_SW_SELECT_INTERNAL 0x00 - -#define ANTENNA_SW_SELECT_ERROR -1 +#define ANTENNA_SW_SELECT_2_4GHZ 0 +#define ANTENNA_SW_SELECT_SUBGHZ (1 << ANTENNA_RF_SW_PIN) +#define ANTENNA_SW_SELECT_ERROR (-1) /* -------------------------------------------------------------------------- */ /** * \brief Init function for the antenna switch * - * The Re-Mote platform allows to programatically select between the 2.4Ghz - * internal or external antenna. - * The function is set to enable using the internal ceramic antenna as default, + * The RE-Mote platform allows to programatically select between the 2.4GHz + * RF interface of the CC2538, or the Sub-1GHz RF interface of the CC1200. + * The function is set to enable the Sub-1GHz as default, * it should be called from the contiki-main initialization process. * * \return ignored @@ -64,15 +63,24 @@ void antenna_sw_config(void); /** - * \brief Function to select between the internal or external 2.4Ghz antenna + * \brief Function to select between the 2.4GHz or Sub-1GHz RF interface * * \param val Select antenna. - * External: ANTENNA_SW_SELECT_EXTERNAL or - * Internal (ceramic): ANTENNA_SW_SELECT_INTERNAL + * 2.4GHz : ANTENNA_SW_SELECT_2_4GHZ or + * Sub-1GHz: ANTENNA_SW_SELECT_SUBGHZ * \return the selected antenna position, or ANTENNA_SW_SELECT_ERROR if not * previously configured */ int antenna_sw_select(uint8_t val); + +/** + * \brief Function to read the current status of the RF switch + * + * + * \return the selected antenna position, or ANTENNA_SW_SELECT_ERROR if not + * previously configured + */ +int antenna_sw_get(void); /* -------------------------------------------------------------------------- */ #endif /* ifndef ANTENNA_SW_H_ */ /* -------------------------------------------------------------------------- */ diff --git a/platform/zoul/remote/board.c b/platform/zoul/remote/board.c new file mode 100644 index 000000000..2bc8c2409 --- /dev/null +++ b/platform/zoul/remote/board.c @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2014, Texas Instruments Incorporated - http://www.ti.com/ + * 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 copyright holder 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 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. + */ +/*---------------------------------------------------------------------------*/ +/** + * \addtogroup remote + * @{ + * + * \file + * Board-initialisation for the Zolertia's RE-Mote platform + * + */ +/*---------------------------------------------------------------------------*/ +#include "contiki-conf.h" +#include "antenna-sw.h" +#include +#include +/*---------------------------------------------------------------------------*/ +static void +configure_unused_pins(void) +{ + // FIXME +} +/*---------------------------------------------------------------------------*/ +void +board_init() +{ + antenna_sw_config(); + configure_unused_pins(); +} +/*---------------------------------------------------------------------------*/ +/** + * @} + */ + diff --git a/platform/zoul/remote/board.h b/platform/zoul/remote/board.h new file mode 100644 index 000000000..b2326c579 --- /dev/null +++ b/platform/zoul/remote/board.h @@ -0,0 +1,431 @@ +/* + * Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/ + * Copyright (c) 2015, Zolertia + * 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 copyright holder 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 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. + */ +/** + * \addtogroup zoul-platforms + * @{ + * + * \defgroup remote RE-Mote platform + * + * The RE-Mote was designed jointly with universities and industry partners in + * RERUM European project, to ease the development of private and secure + * applications for IoT and Smart City applications. The RE-Mote packs several + * on-board resources, like a RTC, external WDT, Micro-SD, RF switch and a + * Shutdown mode to reduce its power consumption down to 300nA. + * + * This file provides connectivity information on LEDs, Buttons, UART and + * other RE-Mote peripherals + * + * This file can be used as the basis to configure other platforms using the + * cc2538 SoC. + * @{ + * + * \file + * Header file with definitions related to the I/O connections on the Zolertia's + * RE-Mote platform, cc2538-based + * + * \note Do not include this file directly. It gets included by contiki-conf + * after all relevant directives have been set. + */ +#ifndef BOARD_H_ +#define BOARD_H_ + +#include "dev/gpio.h" +#include "dev/nvic.h" +/*---------------------------------------------------------------------------*/ +/** \name Connector headers + * + * The RE-Mote features two 2.54 mm header rows over which exposes the following + * pins (facing up, Zolertia/RERUM logo above, buttons and micro USB at bottom): + * ----------------------+---+---+--------------------------------------------- + * PIN_NAME |JP6|JP5| PIN_NAME + * ----------------------+---+---+--------------------------------------------- + * LED1/EXT_WDT/PD5 |-01|18-| PC6/SPI1.MISO/USD.MISO + * LED2/UART1.CTS/PD4 |-02|17-| PC5/SPI1.MOSI/USD.MOSI + * LED3/UART1.RTS/PD3 |-03|16-| PC4/SPI1.SCLK/USD.SCLK + * UART0.RX/PA0 |-04|15-| PA3/BUTTON.USER + * UART0.TX/PA1 |-05|14-| RESET/JTAG.RESET/BUTTON.RESET + * SHUTDOWN_ENABLE/PD1 |-06|13-| DGND + * RTC.SDA/I2C.SDA/PC2 |-07|12-| D+3.3 + * RTC.SCL/I2C.SCL/PC3 |-08|11-| PA5/AIN5/ADC1 + * DGND |-09|10-| PA4/RTC_INT1/AIN4/ADC2 + * D+3.3 |-10|09-| DGND + * USD.CS/AIN7/PA7 |-11|08-| D+5.1 + * SHUTDOWN_DONE/PD0 |-12|07-| PA2/AIN2/ADC3 + * UART1.RX/PC1 |-13|06-| JTAG.TMS + * UART1.TX/PC0 |-14|05-| JTAG.TCK + * DGND |-15|04-| PB7/JTAG.TDO + * D+3.3 |-16|03-| PB6/JTAG.TDI + * DGND |-17|02-| PS+EXT + * +VBAT |-18|01-| DGND + * ----------------------+---+---+--------------------------------------------- + */ +/*---------------------------------------------------------------------------*/ +/** \name RE-Mote LED configuration + * + * LEDs on the RE-Mote are connected as follows: + * - LED1 (Red) -> PD5 + * - LED2 (Green) -> PD4 + * - LED3 (Blue) -> PD3 + * + * LED1 pin shared with EXT_WDT and exposed in JP6 connector + * LED2 pin shared with UART1 CTS, pin exposed in JP6 connector + * LED3 pin shared with UART1 RTS, exposed in JP6 connector + * @{ + */ +/*---------------------------------------------------------------------------*/ +/* Some files include leds.h before us, so we need to get rid of defaults in + * leds.h before we provide correct definitions */ +#undef LEDS_GREEN +#undef LEDS_YELLOW +#undef LEDS_BLUE +#undef LEDS_RED +#undef LEDS_CONF_ALL + +/* In leds.h the LEDS_BLUE is defined by LED_YELLOW definition */ +#define LEDS_GREEN (1 << 4) /**< LED1 (Green) -> PD4 */ +#define LEDS_BLUE (1 << 3) /**< LED2 (Blue) -> PD3 */ +#define LEDS_RED (1 << 5) /**< LED3 (Red) -> PD5 */ + +#define LEDS_CONF_ALL (LEDS_GREEN | LEDS_BLUE | LEDS_RED) + +#define LEDS_LIGHT_BLUE (LEDS_GREEN | LEDS_BLUE) /**< Green + Blue (24) */ +#define LEDS_YELLOW (LEDS_GREEN | LEDS_RED) /**< Green + Red (48) */ +#define LEDS_PURPLE (LEDS_BLUE | LEDS_RED) /**< Blue + Red (40) */ +#define LEDS_WHITE LEDS_ALL /**< Green + Blue + Red (56) */ + +/* Notify various examples that we have LEDs */ +#define PLATFORM_HAS_LEDS 1 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name USB configuration + * + * The USB pullup is enabled by an external resistor, not mapped to a GPIO + */ +#ifdef USB_PULLUP_PORT +#undef USB_PULLUP_PORT +#endif +#ifdef USB_PULLUP_PIN +#undef USB_PULLUP_PIN +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name UART configuration + * + * On the RE-Mote, the UARTs are connected to the following ports/pins: + * + * - UART0: + * - RX: PA0, connected to CP2104 serial-to-usb converter TX pin + * - TX: PA1, connected to CP2104 serial-to-usb converter RX pin + * - UART1: + * - RX: PC1 + * - TX: PC0 + * - CTS: PD4, shared with LED2 (Green), disabled as default + * - RTS: PD3, shared with LED3 (Blue), disabled as default + * + * We configure the port to use UART0 and UART1, CTS/RTS only for UART1, + * both without a HW pull-up resistor + * UART0 and UART1 pins are exposed over the JP6 connector + * @{ + */ +#define UART0_RX_PORT GPIO_A_NUM +#define UART0_RX_PIN 0 +#define UART0_TX_PORT GPIO_A_NUM +#define UART0_TX_PIN 1 + +#define UART1_RX_PORT GPIO_C_NUM +#define UART1_RX_PIN 1 +#define UART1_TX_PORT GPIO_C_NUM +#define UART1_TX_PIN 0 +#define UART1_CTS_PORT (-1) +#define UART1_CTS_PIN (-1) +#define UART1_RTS_PORT (-1) +#define UART1_RTS_PIN (-1) +/** @} */ +/*---------------------------------------------------------------------------*/ +/** \name RE-Mote Button configuration + * + * Buttons on the RE-Mote are connected as follows: + * - BUTTON_USER -> PA3, S1 user button, shared with bootloader and RTC_INT1 + * - BUTTON_RESET -> RESET_N line, S2 reset both CC2538 and CoP + * - BUTTON_PIC1W -> shared with SHUTDOWN_ENABLE, not mounted. + * @{ + */ +/** BUTTON_USER -> PA3 */ +#define BUTTON_USER_PORT GPIO_A_NUM +#define BUTTON_USER_PIN 3 +#define BUTTON_USER_VECTOR NVIC_INT_GPIO_PORT_A + +/* Notify various examples that we have Buttons */ +#define PLATFORM_HAS_BUTTON 1 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name ADC configuration + * + * These values configure which CC2538 pins and ADC channels to use for the ADC + * inputs. By default the RE-Mote allows two out-of-the-box ADC ports with a + * phidget-like 3-pin connector (GND/VDD/ADC) + * + * The RE-Mote allows both 3.3V and 5V analogue sensors as follow: + * + * - ADC1: up to 3.3V. + * - ADC2: up to 3.3V, shared with RTC_INT + * - ADC3: up to 5V, by means of a 2/3 voltage divider. + * + * ADC inputs can only be on port A. + * All ADCx are exposed in JP5 connector, but only ADC1 and ADC3 have GND and + * VDD (3/5V) pins next to it, so these can be exposed into a 3-pin phidget-like + * connector, for ADC2 either solder a wire to connect, or use a 4-pin connector + * to expose both ADC1 and ADC2 in a single connector, but this will leave no + * space for a ADC3 connector. + * The internal ADC reference is 1190mV, use either a voltage divider as input, + * or a different voltage reference, like AVDD5 or other externally (AIN7), but + * note the PA7 is shared with the Micro-SD CSn pin, likewise for PA6 (AIN6) + * shared witht the Micro-SD select pin + * To use the ADC2 pin, remove the resistor on the Zoul's PA4 pin (JP1, pin 10) + * and enable below (replace -1 with 4). + * @{ + */ +#define ADC_SENSORS_PORT GPIO_A_NUM /**< ADC GPIO control port */ +#define ADC_SENSORS_ADC1_PIN 5 /**< ADC1 to PA5, 3V3 */ +#define ADC_SENSORS_ADC2_PIN (-1) /**< ADC2 to PA4, 3V3 */ +#define ADC_SENSORS_ADC3_PIN 2 /**< ADC3 to PA2, 5V0 */ +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name SPI (SSI0) configuration + * + * These values configure which CC2538 pins to use for the SPI (SSI0) lines, + * reserved exclusively for the CC1200 RF transceiver. These pins are not + * exposed to any connector, and should be avoid to use it. + * TX -> MOSI, RX -> MISO + * @{ + */ +#define SPI0_CLK_PORT GPIO_B_NUM +#define SPI0_CLK_PIN 2 +#define SPI0_TX_PORT GPIO_B_NUM +#define SPI0_TX_PIN 1 +#define SPI0_RX_PORT GPIO_B_NUM +#define SPI0_RX_PIN 3 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name SPI (SSI1) configuration + * + * These values configure which CC2538 pins to use for the SPI (SSI1) lines, + * shared with the microSD and exposed over JP5 connector. + * It is advisable to use a CSn pin other than the Micro-SD's. + * TX -> MOSI, RX -> MISO + * @{ + */ +#define SPI1_CLK_PORT GPIO_C_NUM +#define SPI1_CLK_PIN 4 +#define SPI1_TX_PORT GPIO_C_NUM +#define SPI1_TX_PIN 5 +#define SPI1_RX_PORT GPIO_C_NUM +#define SPI1_RX_PIN 6 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name I2C configuration + * + * These values configure which CC2538 pins to use for the I2C lines, exposed + * over JP6 connector, also available as testpoints T2 (PC2) and T3 (PC3). + * The I2C bus is shared with the on-board RTC. + * @{ + */ +#define I2C_SCL_PORT GPIO_C_NUM +#define I2C_SCL_PIN 3 +#define I2C_SDA_PORT GPIO_C_NUM +#define I2C_SDA_PIN 2 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name Antenna switch configuration + * + * These values configure the required pin to drive the RF antenna switch, to + * either enable the sub-1Ghz RF interface (power-up the CC1200) or the 2.4GHz + * RF interface of the CC2538, both alternatively routed to a RP-SMA connector + * to allow using an external antenna for both cases. + * + * Note it is also possible to enable both RF interfaces at the same time, by + * switching On the sub-1GHz RF interface, and placing an 0Ohm resistor (R19), + * to select between using a ceramic chip antenna (not mounted), or to connect + * and external antenna over a pigtail to the U.Fl connector (not mounted). + * + * RF switch state: + * - LOW: 2.4GHz RF interface on RP-SMA connector, CC1200 powered-off. + * - HIGH: Sub-1GHz RF interface on RP-SMA connector. + * @{ + */ +#define ANTENNA_RF_SW_PORT GPIO_D_NUM +#define ANTENNA_RF_SW_PIN 2 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name Dual RF interface support + * + * Enables support for dual band operation (both CC1200 and 2.4GHz enabled). + * The driver checks the selected Radio stack, and forces the antenna switch to + * either position. Enabling the definition below forces to skip this check. + * @{ + */ +#define REMOTE_DUAL_RF_ENABLED 0 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name CC1200 configuration + * + * These values configure the required pins to drive the CC1200 + * None of the following pins are exposed to any connector, kept for internal + * use only + * @{ + */ +#define CC1200_SPI_INSTANCE 0 +#define CC1200_SPI_SCLK_PORT SPI0_CLK_PORT +#define CC1200_SPI_SCLK_PIN SPI0_CLK_PIN +#define CC1200_SPI_MOSI_PORT SPI0_TX_PORT +#define CC1200_SPI_MOSI_PIN SPI0_TX_PIN +#define CC1200_SPI_MISO_PORT SPI0_RX_PORT +#define CC1200_SPI_MISO_PIN SPI0_RX_PIN +#define CC1200_SPI_CSN_PORT GPIO_B_NUM +#define CC1200_SPI_CSN_PIN 5 +#define CC1200_GDO0_PORT GPIO_B_NUM +#define CC1200_GDO0_PIN 4 +#define CC1200_GDO2_PORT GPIO_B_NUM +#define CC1200_GDO2_PIN 0 +#define CC1200_RESET_PORT GPIO_C_NUM +#define CC1200_RESET_PIN 7 +#define CC1200_GPIOx_VECTOR NVIC_INT_GPIO_PORT_B +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name microSD configuration + * + * These values configure the required pins to drive the built-in microSD + * external module, to be used with SSI1 + * @{ + */ +#define USD_CLK_PORT SPI1_CLK_PORT +#define USD_CLK_PIN SPI1_CLK_PIN +#define USD_MOSI_PORT SPI1_TX_PORT +#define USD_MOSI_PIN SPI1_TX_PIN +#define USD_MISO_PORT SPI1_RX_PORT +#define USD_MISO_PIN SPI1_RX_PIN +#define USD_CSN_PORT GPIO_A_NUM +#define USD_CSN_PIN 7 +#define USD_SEL_PORT GPIO_A_NUM +#define USD_SEL_PIN 6 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name Shutdown Mode + * + * The shutdown mode is an ultra-low power operation mode that effectively + * powers-down the entire RE-Mote (CC2538, CC1200, attached sensors, etc) and + * only keeps running a power gating timer (NanoTimer), the on-board RTC and + * an ultra-low power consumption MCU (PIC12F635). The Shutdown mode allows: + * + * - Put the RE-Mote in an ultra-low power sleep (shutdown) drawing 350nA avg. + * - Periodically awake and execute tasks, being the shutdown period selectable + * via R47 resistor value (22KOhm as default for 1 minute shutdown period). + * - Enter shutdown mode before the shutdown period expiration, by sending a + * pulse to SHUTDOWN_DONE. + * + * To enable or disable the shutdown mode a well-known sequence has to be sent + * to the PIC12F635 via its 1-Wire pin, when the shutdown mode is enabled, + * confirmation is done by the PIC echoing-back the command to the CC2538. + * + * The shutdown mode can be disabled by hardware by short-circuiting or placing + * an 0Ohm resistor across W1 pad. + * @{ + */ +#define SHUTDOWN_DONE_PORT GPIO_D_NUM +#define SHUTDOWN_DONE_PIN 0 +#define SHUTDOWN_ENABLE_PORT GPIO_D_NUM +#define SHUTDOWN_ENABLE_PIN 1 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name On-board RTC + * + * The Abracon AB0805 RTC is used by both the + * The shutdown mode can be disabled by hardware by short-circuiting or placing + * an 0Ohm resistor across W1 pad. As the RTC_INT1 pin is also shared with the + * BUTTON_USER, so either disable or not use the user button, or upon receiving + * an interrupt, poll the RTC. + * + * The RTC_INT1 can be used to exit the CC2538's LPM3 mode. + * A second interruption pin is connected to the PIC12F635, for applications + * requiring to put the PIC into deep-sleep and waking up at a certain time. + * @{ + */ +#define RTC_SDA_PORT I2C_SDA_PORT +#define RTC_SDA_PIN I2C_SDA_PIN +#define RTC_SCL_PORT I2C_SCL_PORT +#define RTC_SCL_PIN I2C_SCL_PIN +#define RTC_INT1_PORT GPIO_A_NUM +#define RTC_INT1_PIN 4 +#define RTC_INT1_VECTOR NVIC_INT_GPIO_PORT_A +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name On-board external WDT + * The RE-Mote features an on-board external WDT and battery monitor, which + * adds more robustness and prevents the mote to run wild if any unexpected + * problem shows-up. + * The external WDT requires a short pulse (<1ms) to be sent before a 2-second + * period. The battery monitor keeps the device in Reset if the voltage input + * is lower than 2.5V. + * The external WDT can be disabled by removing the R40 0Ohm resistor. + * The EXT_WDT pin is shared with LED1 (Red). For long-time operation, it is + * advised to remove R14 resistor to disable LED1. + * As default the Texas Instrument's TPS3823 WDT is not mounted. + * @{ + */ +#define EXT_WDT_PORT GPIO_D_NUM +#define EXT_WDT_PIN 5 +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name Device string used on startup + * @{ + */ +#define BOARD_STRING "Zolertia RE-Mote platform" +/** @} */ + +#endif /* BOARD_H_ */ + +/** + * @} + * @} + */ diff --git a/platform/zoul/zolertia-zoul-cdc-acm.inf b/platform/zoul/zolertia-zoul-cdc-acm.inf new file mode 100755 index 000000000..00ac60439 --- /dev/null +++ b/platform/zoul/zolertia-zoul-cdc-acm.inf @@ -0,0 +1,64 @@ +; Windows LUFA CDC ACM Setup File +; Copyright (c) 2000 Microsoft Corporation + +[DefaultInstall] +CopyINF="zolertia-zoul-cdc-acm.inf" + +[Version] +Signature="$Windows NT$" +Class=Ports +ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} +Provider=%MFGNAME% +DriverVer=7/1/2012,10.0.0.0 + +[Manufacturer] +%MFGNAME%=DeviceList, NTx86, NTamd64, NTia64 + +[SourceDisksNames] + +[SourceDisksFiles] + +[DestinationDirs] +DefaultDestDir=12 + +[DriverInstall] +Include=mdmcpq.inf +CopyFiles=FakeModemCopyFileSection +AddReg=DriverInstall.AddReg + +[DriverInstall.Services] +Include=mdmcpq.inf +AddService=usbser, 0x00000002, LowerFilter_Service_Inst + +[DriverInstall.AddReg] +HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider" + +;------------------------------------------------------------------------------ +; Vendor and Product ID Definitions +;------------------------------------------------------------------------------ +; When developing your USB device, the VID and PID used in the PC side +; application program and the firmware on the microcontroller must match. +; Modify the below line to use your VID and PID. Use the format as shown below. +; Note: One INF file can be used for multiple devices with different VID and PIDs. +; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. +;------------------------------------------------------------------------------ +[DeviceList] +%DESCRIPTION%=DriverInstall, USB\VID_0451&PID_16C8 + +[DeviceList.NTx86] +%DESCRIPTION%=DriverInstall, USB\VID_0451&PID_16C8 + +[DeviceList.NTamd64] +%DESCRIPTION%=DriverInstall, USB\VID_0451&PID_16C8 + +[DeviceList.NTia64] +%DESCRIPTION%=DriverInstall, USB\VID_0451&PID_16C8 + +;------------------------------------------------------------------------------ +; String Definitions +;------------------------------------------------------------------------------ +;Modify these strings to customize your device +;------------------------------------------------------------------------------ +[Strings] +MFGNAME="http://zolertia.io" +DESCRIPTION="Zolertia Zoul Virtual COM Port" diff --git a/regression-tests/18-compile-arm-ports/Makefile b/regression-tests/18-compile-arm-ports/Makefile index 222474b13..bbd68f8a5 100644 --- a/regression-tests/18-compile-arm-ports/Makefile +++ b/regression-tests/18-compile-arm-ports/Makefile @@ -7,6 +7,7 @@ ipv6/rpl-border-router/ev-aducrf101mkxz \ webserver-ipv6/ev-aducrf101mkxz \ ipv6/multicast/ev-aducrf101mkxz \ cc2538dk/sniffer/ev-aducrf101mkxz \ + cc26xx/cc26xx-web-demo/srf06-cc26xx \ cc26xx/very-sleepy-demo/srf06-cc26xx \ hello-world/cc2538dk \ @@ -19,6 +20,12 @@ cc2538dk/sniffer/cc2538dk \ cc2538dk/mqtt-demo/cc2538dk \ ipv6/multicast/cc2538dk \ +zolertia/zoul \ +zolertia/zoul/cc1200-demo/zoul \ +er-rest-example/zoul \ +hello-world/zoul \ +cc2538dk/mqtt-demo/zoul \ + TOOLS= include ../Makefile.compile-test diff --git a/tools/z1/license-bsl.txt b/tools/zolertia/license-bsl.txt similarity index 100% rename from tools/z1/license-bsl.txt rename to tools/zolertia/license-bsl.txt diff --git a/tools/z1/motelist-z1 b/tools/zolertia/motelist-zolertia similarity index 84% rename from tools/z1/motelist-z1 rename to tools/zolertia/motelist-zolertia index fe71148da..e286887ac 100755 --- a/tools/z1/motelist-z1 +++ b/tools/zolertia/motelist-zolertia @@ -17,11 +17,13 @@ options: -m method to scan usb: procfs, sysfs, auto (default) -dev_prefix force the device prefix for the serial device -usb display extra usb information + -b specify which Zolertia board to list (z1, remote, etc) EOF my %Opt = ( compact => 0, usb => 0, + board => "", method => "auto", kernel => "auto", dev_prefix => [ "/dev/usb/tts/", "/dev/ttyUSB", "/dev/tts/USB" ], @@ -38,6 +40,7 @@ while (@ARGV) { elsif( $opt eq "-m" ) { $Opt{method} = shift @ARGV; } elsif( $opt eq "-dev_prefix" ) { $Opt{dev_prefix} = shift @ARGV; } elsif( $opt eq "-usb" ) { $Opt{usb} = 1; } + elsif( $opt eq "-b" ) { $Opt{board} = shift @ARGV; } else { print STDERR "$help\nerror, unknown command line option $opt\n"; exit 1; } } @@ -50,6 +53,12 @@ if( $Opt{method} eq "auto" ) { $Opt{method} = ($Opt{kernel} eq "2.4") ? "procfs" : "sysfs"; } +if( $Opt{board} eq "z1" ) { + $Opt{board} = "Zolertia Z1"; +} elsif( $Opt{board} eq "remote" ) { + $Opt{board} = "Zolertia RE-Mote platform"; +} + my @devs = $Opt{method} eq "procfs" ? scan_procfs() : scan_sysfs(); print_motelist( sort { cmp_usbdev($a,$b) } @devs ); @@ -59,24 +68,29 @@ print_motelist( sort { cmp_usbdev($a,$b) } @devs ); # sub scan_sysfs { - # Scan /sys/bus/usb/drivers/usb for FTDI devices - my @ftdidevs = - grep { ($_->{UsbVendor}||"") eq "10c4" && ($_->{UsbProduct}||"") eq "ea60" && ($_->{ProductString}||"") eq "Zolertia Z1" } + my $tmp = '($_->{UsbVendor}||"") eq "10c4" && ($_->{UsbProduct}||"") eq "ea60"'; + + if($Opt{board}) { + $tmp = '($_->{ProductString}||"") eq $Opt{board} && ' . $tmp + } + + # Scan /sys/bus/usb/drivers/usb for CP210x devices + my @cpdevs = + grep { eval "$tmp" } map { { SysPath => $_, UsbVendor => snarf("$_/idVendor",1), UsbProduct => snarf("$_/idProduct",1), ProductString => snarf("$_/product",1), } } - glob("/sys/bus/usb/drivers/usb/*"); + glob("/sys/bus/usb/drivers/usb/*"); - # Gather information about each FTDI device - for my $f (@ftdidevs) { + # Gather information about each CP210x device + for my $f (@cpdevs) { my $syspath = $f->{SysPath}; - + $f->{InfoSerial} = snarf("$syspath/serial",1); $f->{InfoManufacturer} = snarf("$syspath/manufacturer",1); $f->{InfoProduct} = snarf("$syspath/product",1); - $f->{InfoSerial} = snarf("$syspath/serial",1); $f->{UsbDevNum} = snarf("$syspath/devnum",1); my $devstr = readlink($syspath); @@ -92,8 +106,7 @@ sub scan_sysfs { $f->{SerialDevNum} = $1 if $f->{SerialDevName} =~ /(\d+)/; $f->{SerialDevName} = getSerialDevName( $f->{SerialDevNum} ) || " (none)"; } - - return @ftdidevs; + return @cpdevs; } @@ -113,7 +126,7 @@ sub scan_procfs { $usbtree{usbkey($tts->{path})}{usbserial} = $tts if defined $tts->{path}; } - my @ftdidevs = map { { + my @cpdevs = map { { UsbVendor => $_->{Vendor}, UsbProduct => $_->{ProdID}, InfoManufacturer => $_->{Manufacturer}, @@ -129,7 +142,7 @@ sub scan_procfs { grep { ($_->{Vendor}||"") eq "0403" && ($_->{ProdID}||"") eq "6001" } values %usbtree; - return @ftdidevs; + return @cpdevs; } sub build_usb_tree { @@ -223,13 +236,15 @@ sub print_motelist { if( !$Opt{compact} ) { if( $Opt{usb} ) { print << "EOF" unless $Opt{compact}; -Bus Dev USB Path Reference Device Description ---- --- ------------------------ ---------- ---------------- ------------------------------------- +--- --- ------------------------ -------------- ---------------- ------------------------------------- +Bus Dev USB Path Reference Device Description +--- --- ------------------------ -------------- ---------------- ------------------------------------- EOF } else { print << "EOF" unless $Opt{compact}; -Reference Device Description ----------- ---------------- --------------------------------------------- +-------------- ---------------- --------------------------------------------- +Reference Device Description +-------------- ---------------- --------------------------------------------- EOF } } @@ -242,7 +257,7 @@ EOF if( $Opt{compact} ) { print join(",",@output) . "\n"; } else { - printf( ($Opt{usb}?"%3d %3d %-24s ":"")."%-10s %-16s %s\n", @output ); + printf( ($Opt{usb}?"%3d %3d %-24s ":"")."%-14s %-16s %s\n", @output ); } } } diff --git a/tools/z1/motelist-z1-macos b/tools/zolertia/motelist-zolertia-macos similarity index 100% rename from tools/z1/motelist-z1-macos rename to tools/zolertia/motelist-zolertia-macos diff --git a/tools/z1/z1-bsl b/tools/zolertia/z1-bsl similarity index 100% rename from tools/z1/z1-bsl rename to tools/zolertia/z1-bsl diff --git a/tools/z1/z1-bsl-nopic b/tools/zolertia/z1-bsl-nopic similarity index 100% rename from tools/z1/z1-bsl-nopic rename to tools/zolertia/z1-bsl-nopic From daa3ce415c1feb504d006cc03f45604920059fb6 Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Mon, 23 Nov 2015 17:38:20 +0100 Subject: [PATCH 34/46] Fixed typos --- platform/zoul/Makefile.zoul | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/zoul/Makefile.zoul b/platform/zoul/Makefile.zoul index 992e41f10..41aa47feb 100644 --- a/platform/zoul/Makefile.zoul +++ b/platform/zoul/Makefile.zoul @@ -69,11 +69,12 @@ else endif -+%.upload: %.bin %.elf + +%.upload: %.bin %.elf ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - $(PYTHON) $(BSL) $(BSL_FLAGS) -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) + $(PYTHON) $(BSL) $(BSL_FLAGS) -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) $< endif motelist: From afa5ab1ae4ae878a45704053373da92bfeaa2eb3 Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Mon, 23 Nov 2015 18:14:37 -0600 Subject: [PATCH 35/46] Updated README --- platform/zoul/README.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/platform/zoul/README.md b/platform/zoul/README.md index 2e671ef53..3565cf1fa 100644 --- a/platform/zoul/README.md +++ b/platform/zoul/README.md @@ -128,7 +128,7 @@ Use the Port ============ The following examples are intended to work off-the-shelf: -* Examples under `examples/remote` +* Examples under `examples/zolertia/zoul` * MQTT example `examples/cc2538dk/mqtt-demo` * Border router: `examples/ipv6/rpl-border-router` * Webserver: `examples/webserver-ipv6` @@ -160,6 +160,8 @@ The `PORT` argument could be used to specify in which port the device is connect To generate an assembly listing of the compiled firmware, run `make zoul-demo.lst`. This may be useful for debugging or optimizing your application code. To intersperse the C source code within the assembly listing, you must instruct the compiler to include debugging information by adding `CFLAGS += -g` to the project Makefile and rebuild by running `make clean zoul-demo.lst`. +To enable printing debug output to your console, use the `make login` to get the information over the USB programming/debugging port, or alternatively use `make serialview` to also add a timestamp in each print. + Node IEEE/RIME/IPv6 Addresses ----------------------------- @@ -231,7 +233,7 @@ Setting this define to 1 will automatically set the following to 0: Code Size Optimisations ----------------------- -The build system currently uses optimization level `-Os`, which is controlled indirectly through the value of the `SMALL` make variable. This value can be overridden by example makefiles, or it can be changed directly in `platform/remote/Makefile.remote`. +The build system currently uses optimization level `-Os`, which is controlled indirectly through the value of the `SMALL` make variable. This value can be overridden by example makefiles, or it can be changed directly in `platform/zoul/Makefile.zoul`. Historically, the `-Os` flag has caused problems with some toolchains. If you are using one of the toolchains documented in this README, you should be able to use it without issues. If for whatever reason you do come across problems, try setting `SMALL=0` or replacing `-Os` with `-O2` in `cpu/cc2538/Makefile.cc2538`. @@ -241,7 +243,7 @@ This port's code has been documented with doxygen. To build the documentation, n If you want to build this platform's documentation only and skip the remaining platforms, run this: - make basedirs="platform/zoul core cpu/cc2538 examples/remote examples/cc2538dk" + make basedirs="platform/zoul core cpu/cc2538 examples/zolertia/zoul examples/cc2538dk" Once you've built the docs, open `$(CONTIKI)/doc/html/index.html` and enjoy. @@ -258,6 +260,12 @@ More Reading 2. [CC2538 System-on-Chip Solution][cc2538] 3. [CC1200 sub-1GHz RF transceiver][cc1200] 4. [Zolertia Hackster channel][hackster] +5. [IoT in five days open source and online book][IoT5days] + +Maintainers +=========== +The Zoul and derived platforms (as well as the Z1 mote) are maintained by Zolertia. +Main contributor: Antonio Lignan [zolertia-site]: http://www.zolertia.io/products "Zolertia" [cc1200]: http://www.ti.com/product/cc1200 "CC1200" @@ -270,3 +278,4 @@ More Reading [zoul]: images/zoul-front.png "Zolertia Zoul Module" [zoul-pinout-front]: images/zoul-pinout-front.png "Zoul pin-out (front)" [zoul-pinout-back]: images/zoul-pinout-back.png "Zoul pin-out (back)" +[IoT5days]: https://github.com/alignan/IPv6-WSN-book "IoT in Five days online book" From e1f6d398579280a971cd723bf255b6d409a1bb28 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Tue, 24 Nov 2015 12:00:23 +0000 Subject: [PATCH 36/46] Fix code style: Z1 main examples --- examples/zolertia/z1/test-adxl345.c | 117 ++++++++-------------- examples/zolertia/z1/test-battery.c | 20 ++-- examples/zolertia/z1/test-light-ziglet.c | 15 +-- examples/zolertia/z1/test-phidgets.c | 15 ++- examples/zolertia/z1/test-potent.c | 10 +- examples/zolertia/z1/test-relay-phidget.c | 19 ++-- examples/zolertia/z1/test-sht11.c | 15 +-- examples/zolertia/z1/test-sht25.c | 9 +- examples/zolertia/z1/test-tlc59116.c | 23 ++--- examples/zolertia/z1/test-tmp102.c | 30 ++---- 10 files changed, 108 insertions(+), 165 deletions(-) diff --git a/examples/zolertia/z1/test-adxl345.c b/examples/zolertia/z1/test-adxl345.c index 48fa175dd..259c46fde 100644 --- a/examples/zolertia/z1/test-adxl345.c +++ b/examples/zolertia/z1/test-adxl345.c @@ -47,36 +47,27 @@ #include "shell-file.h" #include "shell-text.h" #include "dev/adxl345.h" - -#define LED_INT_ONTIME CLOCK_SECOND/2 +/*---------------------------------------------------------------------------*/ +#define LED_INT_ONTIME (CLOCK_SECOND / 2) #define ACCM_READ_INTERVAL CLOCK_SECOND - -static process_event_t ledOff_event; +/*---------------------------------------------------------------------------*/ +static process_event_t led_off_event; +static struct etimer led_etimer; +static struct etimer et; /*---------------------------------------------------------------------------*/ PROCESS(accel_process, "Test Accel process"); PROCESS(led_process, "LED handling process"); AUTOSTART_PROCESSES(&accel_process, &led_process); /*---------------------------------------------------------------------------*/ -/* As several interrupts can be mapped to one interrupt pin, when interrupt - strikes, the adxl345 interrupt source register is read. This function prints - out which interrupts occurred. Note that this will include all interrupts, - even those mapped to 'the other' pin, and those that will always signal even if - not enabled (such as watermark). */ - +/* As several interrupts can be mapped to one interrupt pin, when interrupt + * strikes, the adxl345 interrupt source register is read. This function prints + * out which interrupts occurred. Note that this will include all interrupts, + * even those mapped to 'the other' pin, and those that will always signal even + * if not enabled (such as watermark). + */ void -print_int(uint16_t reg){ -#define ANNOYING_ALWAYS_THERE_ANYWAY_OUTPUT 0 -#if ANNOYING_ALWAYS_THERE_ANYWAY_OUTPUT - if(reg & ADXL345_INT_OVERRUN) { - printf("Overrun "); - } - if(reg & ADXL345_INT_WATERMARK) { - printf("Watermark "); - } - if(reg & ADXL345_INT_DATAREADY) { - printf("DataReady "); - } -#endif +print_int(uint16_t reg) +{ if(reg & ADXL345_INT_FREEFALL) { printf("Freefall "); } @@ -94,74 +85,49 @@ print_int(uint16_t reg){ } printf("\n"); } - /*---------------------------------------------------------------------------*/ /* accelerometer free fall detection callback */ void -accm_ff_cb(uint8_t reg){ +accm_ff_cb(uint8_t reg) +{ L_ON(LEDS_B); - process_post(&led_process, ledOff_event, NULL); - printf("~~[%u] Freefall detected! (0x%02X) -- ", ((uint16_t) clock_time())/128, reg); + process_post(&led_process, led_off_event, NULL); + printf("~~[%u] Freefall detected! (0x%02X) -- ", + ((uint16_t)clock_time()) / 128, reg); print_int(reg); } /*---------------------------------------------------------------------------*/ /* accelerometer tap and double tap detection callback */ void -accm_tap_cb(uint8_t reg){ - process_post(&led_process, ledOff_event, NULL); - if(reg & ADXL345_INT_DOUBLETAP){ +accm_tap_cb(uint8_t reg) +{ + process_post(&led_process, led_off_event, NULL); + if(reg & ADXL345_INT_DOUBLETAP) { L_ON(LEDS_G); - printf("~~[%u] DoubleTap detected! (0x%02X) -- ", ((uint16_t) clock_time())/128, reg); + printf("~~[%u] DoubleTap detected! (0x%02X) -- ", + ((uint16_t)clock_time()) / 128, reg); } else { L_ON(LEDS_R); - printf("~~[%u] Tap detected! (0x%02X) -- ", ((uint16_t) clock_time())/128, reg); + printf("~~[%u] Tap detected! (0x%02X) -- ", + ((uint16_t)clock_time()) / 128, reg); } print_int(reg); } /*---------------------------------------------------------------------------*/ -/* When posted an ledOff event, the LEDs will switch off after LED_INT_ONTIME. - static process_event_t ledOff_event; - ledOff_event = process_alloc_event(); - process_post(&led_process, ledOff_event, NULL); -*/ - -static struct etimer ledETimer; PROCESS_THREAD(led_process, ev, data) { PROCESS_BEGIN(); - while(1){ - PROCESS_WAIT_EVENT_UNTIL(ev == ledOff_event); - etimer_set(&ledETimer, LED_INT_ONTIME); - PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&ledETimer)); + while(1) { + PROCESS_WAIT_EVENT_UNTIL(ev == led_off_event); + etimer_set(&led_etimer, LED_INT_ONTIME); + PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&led_etimer)); L_OFF(LEDS_R + LEDS_G + LEDS_B); } PROCESS_END(); } - -/*---------------------------------------------------------------------------*/ -/* Returns a string with the argument byte written in binary. - Example usage: - printf("Port1: %s\n", char2bin(P1IN)); -*/ -/* -static uint8_t b[9]; - -static uint8_t -*char2bin(uint8_t x) { - uint8_t z; - b[8] = '\0'; - for (z = 0; z < 8; z++) { - b[7-z] = (x & (1 << z)) ? '1' : '0'; - } - return b; -} -*/ /*---------------------------------------------------------------------------*/ /* Main process, setups */ - -static struct etimer et; - PROCESS_THREAD(accel_process, ev, data) { PROCESS_BEGIN(); { @@ -169,11 +135,11 @@ PROCESS_THREAD(accel_process, ev, data) { serial_shell_init(); shell_ps_init(); - shell_file_init(); // for printing out files - shell_text_init(); // for binprint + shell_file_init(); /* for printing out files */ + shell_text_init(); /* for binprint */ /* Register the event used for lighting up an LED when interrupt strikes. */ - ledOff_event = process_alloc_event(); + led_off_event = process_alloc_event(); /* Start and setup the accelerometer with default values, eg no interrupts enabled. */ accm_init(); @@ -182,15 +148,15 @@ PROCESS_THREAD(accel_process, ev, data) { ACCM_REGISTER_INT1_CB(accm_ff_cb); ACCM_REGISTER_INT2_CB(accm_tap_cb); - /* Set what strikes the corresponding interrupts. Several interrupts per pin is - possible. For the eight possible interrupts, see adxl345.h and adxl345 datasheet. */ + /* Set what strikes the corresponding interrupts. Several interrupts per pin is + possible. For the eight possible interrupts, see adxl345.h and adxl345 datasheet. */ accm_set_irq(ADXL345_INT_FREEFALL, ADXL345_INT_TAP + ADXL345_INT_DOUBLETAP); - while (1) { - x = accm_read_axis(X_AXIS); - y = accm_read_axis(Y_AXIS); - z = accm_read_axis(Z_AXIS); - printf("x: %d y: %d z: %d\n", x, y, z); + while(1) { + x = accm_read_axis(X_AXIS); + y = accm_read_axis(Y_AXIS); + z = accm_read_axis(Z_AXIS); + printf("x: %d y: %d z: %d\n", x, y, z); etimer_set(&et, ACCM_READ_INTERVAL); PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); @@ -198,6 +164,5 @@ PROCESS_THREAD(accel_process, ev, data) { } PROCESS_END(); } - /*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/test-battery.c b/examples/zolertia/z1/test-battery.c index fb39e91d3..b10dbe6d5 100644 --- a/examples/zolertia/z1/test-battery.c +++ b/examples/zolertia/z1/test-battery.c @@ -29,30 +29,27 @@ * This file is part of the Contiki operating system. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * Testing the internal MSP430 battery sensor on the Zolertia Z1 Platform. * \author * Enric M. Calvo */ - - +/*---------------------------------------------------------------------------*/ #include "contiki.h" #include "dev/battery-sensor.h" -#include /* For printf() */ - - +#include +/*---------------------------------------------------------------------------*/ float floor(float x) { if(x >= 0.0f) { - return (float) ((int) x); + return (float)((int)x); } else { - return (float) ((int) x - 1); + return (float)((int)x - 1); } } - /*---------------------------------------------------------------------------*/ PROCESS(test_battery_process, "Battery Sensor Test"); AUTOSTART_PROCESSES(&test_battery_process); @@ -67,13 +64,12 @@ PROCESS_THREAD(test_battery_process, ev, data) while(1) { uint16_t bateria = battery_sensor.value(0); float mv = (bateria * 2.500 * 2) / 4096; - printf("Battery: %i (%ld.%03d mV)\n", bateria, (long) mv, - (unsigned) ((mv - floor(mv)) * 1000)); + printf("Battery: %i (%ld.%03d mV)\n", bateria, (long)mv, + (unsigned)((mv - floor(mv)) * 1000)); } SENSORS_DEACTIVATE(battery_sensor); PROCESS_END(); } - /*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/test-light-ziglet.c b/examples/zolertia/z1/test-light-ziglet.c index 1f48004e6..e0df68dc0 100644 --- a/examples/zolertia/z1/test-light-ziglet.c +++ b/examples/zolertia/z1/test-light-ziglet.c @@ -29,32 +29,32 @@ * This file is part of the Contiki operating system. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * A quick program for testing the light ziglet driver in the Z1 platform * \author * Antonio Lignan */ - +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/i2cmaster.h" #include "dev/light-ziglet.h" - -#if 1 +/*---------------------------------------------------------------------------*/ +#if DEBUG #define PRINTF(...) printf(__VA_ARGS__) #else #define PRINTF(...) #endif - +/*---------------------------------------------------------------------------*/ #define SENSOR_READ_INTERVAL (CLOCK_SECOND / 2) - +/*---------------------------------------------------------------------------*/ PROCESS(test_process, "Test light ziglet process"); AUTOSTART_PROCESSES(&test_process); /*---------------------------------------------------------------------------*/ static struct etimer et; - +/*---------------------------------------------------------------------------*/ PROCESS_THREAD(test_process, ev, data) { PROCESS_BEGIN(); @@ -75,3 +75,4 @@ PROCESS_THREAD(test_process, ev, data) } PROCESS_END(); } +/*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/test-phidgets.c b/examples/zolertia/z1/test-phidgets.c index 2ad9ee000..1b767e86a 100644 --- a/examples/zolertia/z1/test-phidgets.c +++ b/examples/zolertia/z1/test-phidgets.c @@ -29,7 +29,7 @@ * This file is part of the Contiki operating system. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * An example of how to use the button and light sensor on @@ -37,44 +37,41 @@ * \author * Joakim Eriksson */ - +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/button-sensor.h" #include "dev/leds.h" #include "dev/z1-phidgets.h" - /*---------------------------------------------------------------------------*/ PROCESS(test_button_process, "Test Button & Phidgets"); AUTOSTART_PROCESSES(&test_button_process); /*---------------------------------------------------------------------------*/ PROCESS_THREAD(test_button_process, ev, data) { - //static struct etimer et; + /* static struct etimer et; */ PROCESS_BEGIN(); SENSORS_ACTIVATE(phidgets); SENSORS_ACTIVATE(button_sensor); while(1) { - //etimer_set(&et, CLOCK_SECOND/2); printf("Please press the User Button\n"); + PROCESS_WAIT_EVENT_UNTIL(ev == sensors_event && data == &button_sensor); - //PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); leds_toggle(LEDS_GREEN); - //printf("Button clicked\n"); + printf("Phidget 5V 1:%d\n", phidgets.value(PHIDGET5V_1)); printf("Phidget 5V 2:%d\n", phidgets.value(PHIDGET5V_2)); printf("Phidget 3V 1:%d\n", phidgets.value(PHIDGET3V_1)); printf("Phidget 3V 2:%d\n", phidgets.value(PHIDGET3V_2)); - if (phidgets.value(PHIDGET3V_1) < 100) { + if(phidgets.value(PHIDGET3V_1) < 100) { leds_on(LEDS_RED); } else { leds_off(LEDS_RED); } - } PROCESS_END(); } diff --git a/examples/zolertia/z1/test-potent.c b/examples/zolertia/z1/test-potent.c index 265f0e144..ecf92413f 100644 --- a/examples/zolertia/z1/test-potent.c +++ b/examples/zolertia/z1/test-potent.c @@ -29,19 +29,17 @@ * This file is part of the Contiki operating system. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * Testing the Potentiometer in Zolertia Z1 Starter Platform. * \author * Enric M. Calvo */ - +/*---------------------------------------------------------------------------*/ #include "contiki.h" #include "dev/potentiometer-sensor.h" -#include - - +#include /*---------------------------------------------------------------------------*/ PROCESS(test_potent_process, "Testing Potentiometer in Z1SP"); AUTOSTART_PROCESSES(&test_potent_process); @@ -63,6 +61,4 @@ PROCESS_THREAD(test_potent_process, ev, data) PROCESS_END(); } - /*---------------------------------------------------------------------------*/ - diff --git a/examples/zolertia/z1/test-relay-phidget.c b/examples/zolertia/z1/test-relay-phidget.c index 4e8685c03..2f1bef99a 100644 --- a/examples/zolertia/z1/test-relay-phidget.c +++ b/examples/zolertia/z1/test-relay-phidget.c @@ -29,7 +29,7 @@ * This file is part of the Contiki operating system. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * A quick program for testing a generic relay device connected in the @@ -37,25 +37,19 @@ * \author * Antonio Lignan */ - +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/relay-phidget.h" - -#if 1 +/*---------------------------------------------------------------------------*/ +#if DEBUG #define PRINTF(...) printf(__VA_ARGS__) #else #define PRINTF(...) #endif - -#if 0 -#define PRINTFDEBUG(...) printf(__VA_ARGS__) -#else -#define PRINTFDEBUG(...) -#endif - +/*---------------------------------------------------------------------------*/ #define RELAY_INTERVAL (CLOCK_SECOND) - +/*---------------------------------------------------------------------------*/ PROCESS(test_process, "Relay test process"); AUTOSTART_PROCESSES(&test_process); /*---------------------------------------------------------------------------*/ @@ -78,3 +72,4 @@ PROCESS_THREAD(test_process, ev, data) } PROCESS_END(); } +/*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/test-sht11.c b/examples/zolertia/z1/test-sht11.c index ff812eec3..b71d87711 100644 --- a/examples/zolertia/z1/test-sht11.c +++ b/examples/zolertia/z1/test-sht11.c @@ -29,7 +29,7 @@ * This file is part of the Contiki operating system. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * Testing the SHT11 sensor on the Zolertia Z1 Platform. @@ -37,15 +37,15 @@ * Nicolas Tsiftes * Enric M. Calvo */ - +/*---------------------------------------------------------------------------*/ #include "contiki.h" #include "dev/sht11/sht11.h" #include - +/*---------------------------------------------------------------------------*/ PROCESS(test_sht11_process, "SHT11 test"); AUTOSTART_PROCESSES(&test_sht11_process); - +/*---------------------------------------------------------------------------*/ PROCESS_THREAD(test_sht11_process, ev, data) { static struct etimer et; @@ -54,14 +54,15 @@ PROCESS_THREAD(test_sht11_process, ev, data) PROCESS_BEGIN(); sht11_init(); - for (etimer_set(&et, CLOCK_SECOND);; etimer_reset(&et)) { + for(etimer_set(&et, CLOCK_SECOND);; etimer_reset(&et)) { PROCESS_YIELD(); printf("Temperature: %u degrees Celsius\n", - (unsigned) (-39.60 + 0.01 * sht11_temp())); + (unsigned)(-39.60 + 0.01 * sht11_temp())); rh = sht11_humidity(); printf("Rel. humidity: %u%%\n", - (unsigned) (-4 + 0.0405*rh - 2.8e-6*(rh*rh))); + (unsigned)(-4 + 0.0405 * rh - 2.8e-6 * (rh * rh))); } PROCESS_END(); } +/*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/test-sht25.c b/examples/zolertia/z1/test-sht25.c index 6137e9753..092935937 100644 --- a/examples/zolertia/z1/test-sht25.c +++ b/examples/zolertia/z1/test-sht25.c @@ -29,21 +29,23 @@ * This file is part of the Contiki operating system. * */ +/*---------------------------------------------------------------------------*/ /** * \file * A quick program for testing the SHT25 temperature and humidity sensor * \author * Antonio Lignan */ +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/sht25.h" - +/*---------------------------------------------------------------------------*/ PROCESS(test_sht25_process, "SHT25 test"); AUTOSTART_PROCESSES(&test_sht25_process); - +/*---------------------------------------------------------------------------*/ static struct etimer et; - +/*---------------------------------------------------------------------------*/ PROCESS_THREAD(test_sht25_process, ev, data) { int16_t temperature, humidity; @@ -61,3 +63,4 @@ PROCESS_THREAD(test_sht25_process, ev, data) } PROCESS_END(); } +/*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/test-tlc59116.c b/examples/zolertia/z1/test-tlc59116.c index 36dda845e..3d389a4ea 100644 --- a/examples/zolertia/z1/test-tlc59116.c +++ b/examples/zolertia/z1/test-tlc59116.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2013, Jelmer Tiete. * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,8 +12,8 @@ * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote * products derived from this software without specific prior - * written permission. - * + * written permission. + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -25,11 +25,11 @@ * 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 file is part of the Contiki operating system. - * + * */ - +/*---------------------------------------------------------------------------*/ /** * \file * A simple program for testing the TLC59116 I2C led driver. @@ -37,23 +37,21 @@ * \author * Jelmer Tiete, VUB */ - +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/tlc59116.h" - -#define BLINK_INTERVAL CLOCK_SECOND/25 - +/*---------------------------------------------------------------------------*/ +#define BLINK_INTERVAL (CLOCK_SECOND / 25) /*---------------------------------------------------------------------------*/ PROCESS(tlc59116_process, "Test tlc59116 process"); AUTOSTART_PROCESSES(&tlc59116_process); - /*---------------------------------------------------------------------------*/ /* Main process, setups */ static struct etimer et; static uint8_t count = 0; - +/*---------------------------------------------------------------------------*/ PROCESS_THREAD(tlc59116_process, ev, data) { PROCESS_BEGIN(); @@ -80,5 +78,4 @@ PROCESS_THREAD(tlc59116_process, ev, data) } PROCESS_END(); } - /*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/test-tmp102.c b/examples/zolertia/z1/test-tmp102.c index 3f6f37ec4..69627262a 100644 --- a/examples/zolertia/z1/test-tmp102.c +++ b/examples/zolertia/z1/test-tmp102.c @@ -29,41 +29,32 @@ * This file is part of the Contiki operating system. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * A quick program for testing the tmp102 driver in the Z1 platform * \author * Enric M. Calvo */ - +/*---------------------------------------------------------------------------*/ #include #include "contiki.h" #include "dev/i2cmaster.h" #include "dev/tmp102.h" - - -#if 1 +/*---------------------------------------------------------------------------*/ +#if DEBUG #define PRINTF(...) printf(__VA_ARGS__) #else #define PRINTF(...) #endif - - -#if 0 -#define PRINTFDEBUG(...) printf(__VA_ARGS__) -#else -#define PRINTFDEBUG(...) -#endif - - -#define TMP102_READ_INTERVAL (CLOCK_SECOND/2) - +/*---------------------------------------------------------------------------*/ +#define TMP102_READ_INTERVAL (CLOCK_SECOND / 2) +/*---------------------------------------------------------------------------*/ PROCESS(temp_process, "Test Temperature process"); AUTOSTART_PROCESSES(&temp_process); /*---------------------------------------------------------------------------*/ static struct etimer et; - +/*---------------------------------------------------------------------------*/ PROCESS_THREAD(temp_process, ev, data) { PROCESS_BEGIN(); @@ -86,14 +77,15 @@ PROCESS_THREAD(temp_process, ev, data) PRINTFDEBUG("Reading Temp...\n"); raw = tmp102_read_temp_raw(); absraw = raw; - if(raw < 0) { // Perform 2C's if sensor returned negative data + if(raw < 0) { /* Perform 2C's if sensor returned negative data */ absraw = (raw ^ 0xFFFF) + 1; sign = -1; } tempint = (absraw >> 8) * sign; - tempfrac = ((absraw >> 4) % 16) * 625; // Info in 1/10000 of degree + tempfrac = ((absraw >> 4) % 16) * 625; /* Info in 1/10000 of degree */ minus = ((tempint == 0) & (sign == -1)) ? '-' : ' '; PRINTF("Temp = %c%d.%04d\n", minus, tempint, tempfrac); } PROCESS_END(); } +/*---------------------------------------------------------------------------*/ From be1bd9a6191997a53fb79233b8ba9a66e0389ca0 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Tue, 24 Nov 2015 12:00:56 +0000 Subject: [PATCH 37/46] Fix code style: Z1 websense example --- .../z1/ipv6/z1-websense/websense-remote.c | 11 ++-- examples/zolertia/z1/ipv6/z1-websense/wget.c | 30 +++++----- examples/zolertia/z1/ipv6/z1-websense/wget.h | 4 +- .../z1/ipv6/z1-websense/z1-websense.c | 57 +++++++++++-------- 4 files changed, 53 insertions(+), 49 deletions(-) diff --git a/examples/zolertia/z1/ipv6/z1-websense/websense-remote.c b/examples/zolertia/z1/ipv6/z1-websense/websense-remote.c index 7323293ca..7cfebd355 100644 --- a/examples/zolertia/z1/ipv6/z1-websense/websense-remote.c +++ b/examples/zolertia/z1/ipv6/z1-websense/websense-remote.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * A simple example using HTTP to control and be controlled @@ -35,7 +35,7 @@ * Niclas Finne * Joakim Eriksson */ - +/*---------------------------------------------------------------------------*/ #include "contiki.h" #include "dev/button-sensor.h" #include "dev/leds.h" @@ -43,7 +43,7 @@ #include "webserver-nogui.h" #include "httpd-simple.h" #include - +/*---------------------------------------------------------------------------*/ /* The address of the server to register the services for this node */ #define SERVER "aaaa::1" @@ -56,11 +56,9 @@ /* The commands to send to the other node */ #define SET_LEDS_ON "/1" #define SET_LEDS_OFF "/0" - +/*---------------------------------------------------------------------------*/ PROCESS(websense_remote_process, "Websense Remote"); - AUTOSTART_PROCESSES(&websense_remote_process); - /*---------------------------------------------------------------------------*/ static const char *TOP = "Contiki Websense Remote\n"; static const char *BOTTOM = "\n"; @@ -161,7 +159,6 @@ PROCESS_THREAD(websense_remote_process, ev, data) } /* Alternate between the two commands */ mode = !mode; - } else if(ev == PROCESS_EVENT_TIMER && etimer_expired(&timer)) { printf("Registering services\n"); send_command(SERVER, REGISTER_COMMAND); diff --git a/examples/zolertia/z1/ipv6/z1-websense/wget.c b/examples/zolertia/z1/ipv6/z1-websense/wget.c index 3d9b56974..d55040b11 100644 --- a/examples/zolertia/z1/ipv6/z1-websense/wget.c +++ b/examples/zolertia/z1/ipv6/z1-websense/wget.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * A simple wget implementation @@ -35,28 +35,29 @@ * Niclas Finne * Joakim Eriksson */ - +/*---------------------------------------------------------------------------*/ #include "webclient.h" #include "wget.h" #include "dev/leds.h" - +/*---------------------------------------------------------------------------*/ #define DEBUG DEBUG_NONE #include "net/ip/uip-debug.h" - +/*---------------------------------------------------------------------------*/ #define DEBUG_LEDS 0 #undef LEDS_ON #undef LEDS_OFF + #if DEBUG_LEDS #define LEDS_ON(led) leds_on(led) #define LEDS_OFF(led) leds_off(led) #else #define LEDS_ON(led) #define LEDS_OFF(led) -#endif /* DEBUG */ - +#endif /* DEBUG_LEDS */ +/*---------------------------------------------------------------------------*/ static int fetch_running; -#define STATS ((DEBUG) & DEBUG_PRINT) && 1 +#define STATS ((DEBUG)&DEBUG_PRINT) && 1 #if STATS static clock_time_t fetch_started; static unsigned long fetch_counter; @@ -66,9 +67,8 @@ static const char *server; static const char *file; static uint16_t port; static const struct wget_callbacks *callbacks; - +/*---------------------------------------------------------------------------*/ PROCESS(wget_process, "wget"); - /*---------------------------------------------------------------------------*/ static void call_done(int status) @@ -115,11 +115,11 @@ webclient_datahandler(char *data, uint16_t len) PRINTF("wget: recv %lu bytes during %lu sec (", fetch_counter, (elapsed / CLOCK_SECOND)); #if CLOCK_SECOND == 128 - PRINTF("%lu.%02lus, ", (unsigned long) elapsed >> 7, + PRINTF("%lu.%02lus, ", (unsigned long)elapsed >> 7, (unsigned long)((elapsed & 127) * 100) / 128); PRINTF("%lu byte/sec ", (fetch_counter * 128L) / elapsed); #endif - PRINTF("%lu tick): ", (unsigned long) elapsed); + PRINTF("%lu tick): ", (unsigned long)elapsed); if(elapsed > CLOCK_SECOND) { PRINTF("%lu", fetch_counter / (elapsed / CLOCK_SECOND)); } else { @@ -132,7 +132,7 @@ webclient_datahandler(char *data, uint16_t len) fetch_running = 0; call_done(WGET_OK); - LEDS_OFF(LEDS_RED|LEDS_YELLOW); + LEDS_OFF(LEDS_RED | LEDS_YELLOW); } else { #if STATS fetch_counter += len; @@ -156,7 +156,7 @@ void webclient_timedout(void) { PRINTF("wget: timedout\n"); - LEDS_OFF(LEDS_RED|LEDS_YELLOW); + LEDS_OFF(LEDS_RED | LEDS_YELLOW); fetch_running = 0; call_done(WGET_TIMEDOUT); } @@ -165,7 +165,7 @@ void webclient_aborted(void) { PRINTF("wget: aborted\n"); - LEDS_OFF(LEDS_RED|LEDS_YELLOW); + LEDS_OFF(LEDS_RED | LEDS_YELLOW); fetch_running = 0; call_done(WGET_ABORTED); } @@ -175,7 +175,7 @@ webclient_closed(void) { PRINTF("wget: closed\n"); fetch_running = 0; - LEDS_OFF(LEDS_RED|LEDS_YELLOW); + LEDS_OFF(LEDS_RED | LEDS_YELLOW); call_done(WGET_CLOSED); } /*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/z1/ipv6/z1-websense/wget.h b/examples/zolertia/z1/ipv6/z1-websense/wget.h index b87f69692..28ab27aed 100644 --- a/examples/zolertia/z1/ipv6/z1-websense/wget.h +++ b/examples/zolertia/z1/ipv6/z1-websense/wget.h @@ -42,8 +42,8 @@ #include "contiki.h" struct wget_callbacks { - void (* data)(const char *data, uint16_t len); - void (* done)(int status); + void (*data)(const char *data, uint16_t len); + void (*done)(int status); }; void wget_init(void); diff --git a/examples/zolertia/z1/ipv6/z1-websense/z1-websense.c b/examples/zolertia/z1/ipv6/z1-websense/z1-websense.c index 5e8bedb1e..9dca126e9 100644 --- a/examples/zolertia/z1/ipv6/z1-websense/z1-websense.c +++ b/examples/zolertia/z1/ipv6/z1-websense/z1-websense.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * */ - +/*---------------------------------------------------------------------------*/ /** * \file * Battery and Temperature IPv6 Demo for Zolertia Z1 @@ -37,7 +37,7 @@ * Joel Hoglund * Enric M. Calvo */ - +/*---------------------------------------------------------------------------*/ #include "contiki.h" #include "httpd-simple.h" #include "webserver-nogui.h" @@ -46,22 +46,23 @@ #include "cc2420.h" #include "dev/leds.h" #include - - -float floor(float x){ - if(x>=0.0f) return (float) ((int)x); - else return (float) ((int)x-1); +/*---------------------------------------------------------------------------*/ +float +floor(float x) +{ + if(x >= 0.0f) { + return (float)((int)x); + } else { return (float)((int)x - 1); + } } - +/*---------------------------------------------------------------------------*/ PROCESS(web_sense_process, "Sense Web Demo"); - AUTOSTART_PROCESSES(&web_sense_process); - +/*---------------------------------------------------------------------------*/ #define HISTORY 16 static int temperature[HISTORY]; static int battery1[HISTORY]; static int sensors_pos; - /*---------------------------------------------------------------------------*/ static int get_battery(void) @@ -74,10 +75,16 @@ get_temp(void) { return temperature_sensor.value(0); } - -static float get_mybatt(void){ return (float) ((get_battery()*2.500*2)/4096);} -static float get_mytemp(void){ return (float) (((get_temp()*2.500)/4096)-0.986)*282;} - +static float +get_mybatt(void) +{ + return (float)((get_battery() * 2.500 * 2) / 4096); +} +static float +get_mytemp(void) +{ + return (float)(((get_temp() * 2.500) / 4096) - 0.986) * 282; +} /*---------------------------------------------------------------------------*/ static const char *TOP = "Contiki Web Sense\n"; static const char *BOTTOM = "\n"; @@ -85,11 +92,13 @@ static const char *BOTTOM = "\n"; /* Only one single request at time */ static char buf[256]; static int blen; -#define ADD(...) do { \ - blen += snprintf(&buf[blen], sizeof(buf) - blen, __VA_ARGS__); \ - } while(0) +#define ADD(...) do { \ + blen += snprintf(&buf[blen], sizeof(buf) - blen, __VA_ARGS__); \ +} while(0) +/*---------------------------------------------------------------------------*/ static void -generate_chart(const char *title, const char *unit, int min, int max, int *values) +generate_chart(const char *title, const char *unit, int min, int max, + int *values) { int i; blen = 0; @@ -103,6 +112,7 @@ generate_chart(const char *title, const char *unit, int min, int max, int *value } ADD("\">"); } +/*---------------------------------------------------------------------------*/ static PT_THREAD(send_values(struct httpd_state *s)) { @@ -120,20 +130,17 @@ PT_THREAD(send_values(struct httpd_state *s)) ADD("

Current readings

\n" "Battery: %ld.%03d V
" "Temperature: %ld.%03d ° C", - (long) mybatt, (unsigned) ((mybatt-floor(mybatt))*1000), - (long) mytemp, (unsigned) ((mytemp-floor(mytemp))*1000)); + (long)mybatt, (unsigned)((mybatt - floor(mybatt)) * 1000), + (long)mytemp, (unsigned)((mytemp - floor(mytemp)) * 1000)); SEND_STRING(&s->sout, buf); - } else if(s->filename[1] == '0') { /* Turn off leds */ leds_off(LEDS_ALL); SEND_STRING(&s->sout, "Turned off leds!"); - } else if(s->filename[1] == '1') { /* Turn on leds */ leds_on(LEDS_ALL); SEND_STRING(&s->sout, "Turned on leds!"); - } else { if(s->filename[1] != 't') { generate_chart("Battery", "mV", 0, 4000, battery1); @@ -173,7 +180,7 @@ PROCESS_THREAD(web_sense_process, ev, data) PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer)); etimer_reset(&timer); - battery1[sensors_pos] = get_mybatt()*1000; + battery1[sensors_pos] = get_mybatt() * 1000; temperature[sensors_pos] = get_mytemp(); sensors_pos = (sensors_pos + 1) % HISTORY; } From a30154c43e966af22e6ad48dfd49def480f77249 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Tue, 24 Nov 2015 12:02:35 +0000 Subject: [PATCH 38/46] Fix code style: zoul examples --- examples/zolertia/zoul/cc1200-demo/cc1200-demo.c | 4 ++-- examples/zolertia/zoul/cc1200-demo/project-conf.h | 4 ++-- examples/zolertia/zoul/zoul-demo.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/zolertia/zoul/cc1200-demo/cc1200-demo.c b/examples/zolertia/zoul/cc1200-demo/cc1200-demo.c index 1262af1d1..1fe69f58c 100644 --- a/examples/zolertia/zoul/cc1200-demo/cc1200-demo.c +++ b/examples/zolertia/zoul/cc1200-demo/cc1200-demo.c @@ -64,8 +64,8 @@ broadcast_recv(struct broadcast_conn *c, const linkaddr_t *from) { printf("*** Received %u bytes from %u:%u: '0x%04u' ", packetbuf_datalen(), from->u8[0], from->u8[1], *(uint16_t *)packetbuf_dataptr()); - printf("%d - %u\n", (int8_t) packetbuf_attr(PACKETBUF_ATTR_RSSI), - packetbuf_attr(PACKETBUF_ATTR_LINK_QUALITY)); + printf("%d - %u\n", (int8_t)packetbuf_attr(PACKETBUF_ATTR_RSSI), + packetbuf_attr(PACKETBUF_ATTR_LINK_QUALITY)); leds_toggle(LEDS_GREEN); } /*---------------------------------------------------------------------------*/ diff --git a/examples/zolertia/zoul/cc1200-demo/project-conf.h b/examples/zolertia/zoul/cc1200-demo/project-conf.h index 66797e7d6..9367973ff 100644 --- a/examples/zolertia/zoul/cc1200-demo/project-conf.h +++ b/examples/zolertia/zoul/cc1200-demo/project-conf.h @@ -55,7 +55,7 @@ #endif /* PROJECT_CONF_H_ */ -/** +/** + * @} * @} - * @} */ diff --git a/examples/zolertia/zoul/zoul-demo.c b/examples/zolertia/zoul/zoul-demo.c index aabe38313..a42ef2507 100644 --- a/examples/zolertia/zoul/zoul-demo.c +++ b/examples/zolertia/zoul/zoul-demo.c @@ -154,7 +154,7 @@ PROCESS_THREAD(zoul_demo_process, ev, data) adc_sensors.value(ZOUL_SENSORS_ADC1)); printf("ADC3 = %d raw\n", - adc_sensors.value(ZOUL_SENSORS_ADC3)); + adc_sensors.value(ZOUL_SENSORS_ADC3)); etimer_set(&et, LOOP_INTERVAL); rtimer_set(&rt, RTIMER_NOW() + LEDS_OFF_HYSTERISIS, 1, From 8727fef05b57aacd8b55cc1d122ea883c70f3f8d Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Tue, 24 Nov 2015 12:09:23 +0000 Subject: [PATCH 39/46] Fix code style: platform/zoul --- platform/zoul/contiki-conf.h | 16 +++++++-------- platform/zoul/dev/adc-sensors.c | 6 +++--- platform/zoul/dev/adc-sensors.h | 6 +++--- platform/zoul/dev/button-sensor.h | 2 +- platform/zoul/dev/cc1200-zoul-arch.c | 15 ++++++-------- platform/zoul/dev/sht25.c | 6 +++--- platform/zoul/firefly/board.c | 2 +- platform/zoul/firefly/board.h | 12 +++++------ platform/zoul/remote/antenna-sw.c | 6 +++--- platform/zoul/remote/board.c | 2 +- platform/zoul/remote/board.h | 30 ++++++++++++++-------------- 11 files changed, 50 insertions(+), 53 deletions(-) diff --git a/platform/zoul/contiki-conf.h b/platform/zoul/contiki-conf.h index e99057a51..21bb11cef 100644 --- a/platform/zoul/contiki-conf.h +++ b/platform/zoul/contiki-conf.h @@ -34,7 +34,7 @@ * * \defgroup zoul-platforms Zolertia platforms based on the Zoul core module * - * The Zoul allows a fast reuse and easy integration to most applications and + * The Zoul allows a fast reuse and easy integration to most applications and * products. Its small size and module format eases to place in different PCB * designs and to integrate in existing products. The Zoul-based platforms * share most of the Zoul core implementation. @@ -74,7 +74,7 @@ typedef uint32_t uip_stats_t; * RTIMER_CLOCK_LT to override this */ typedef uint32_t rtimer_clock_t; -#define RTIMER_CLOCK_LT(a,b) ((int32_t)((a)-(b)) < 0) +#define RTIMER_CLOCK_LT(a, b) ((int32_t)((a) - (b)) < 0) /** @} */ /*---------------------------------------------------------------------------*/ /** @@ -83,7 +83,7 @@ typedef uint32_t rtimer_clock_t; * @{ */ #ifndef FLASH_CCA_CONF_BOOTLDR_BACKDOOR -#define FLASH_CCA_CONF_BOOTLDR_BACKDOOR 1 /** MOSI, RX -> MISO diff --git a/platform/zoul/remote/antenna-sw.c b/platform/zoul/remote/antenna-sw.c index ca87e37a7..3266b66cc 100644 --- a/platform/zoul/remote/antenna-sw.c +++ b/platform/zoul/remote/antenna-sw.c @@ -36,9 +36,9 @@ * interface of the CC2538, or the CC1200 Sub-1GHz RF interface, both routed to * the RP-SMA connector for an external antenna. * When the 2.4GHz RF interface is enabled, the CC1200 is powered down. - * When the CC1200 is enabled, alternatively the 2.4GHz can be also used if + * When the CC1200 is enabled, alternatively the 2.4GHz can be also used if * placing an 0Ohm resistor (R19), to connect either via a non-mounted chip - * antenna, or with an external antenna connected to a non-mounted U.Fl + * antenna, or with an external antenna connected to a non-mounted U.Fl * connector with a pigtail. * * RF switch state: @@ -72,7 +72,7 @@ antenna_sw_config(void) GPIO_SET_OUTPUT(ANTENNA_RF_SW_PORT_BASE, ANTENNA_RF_SW_PIN_MASK); /* Set the antenna selector to a default position */ - GPIO_WRITE_PIN(ANTENNA_RF_SW_PORT_BASE, ANTENNA_RF_SW_PIN_MASK, + GPIO_WRITE_PIN(ANTENNA_RF_SW_PORT_BASE, ANTENNA_RF_SW_PIN_MASK, ANTENNA_SW_SELECT_DEFAULT); initialized = 1; diff --git a/platform/zoul/remote/board.c b/platform/zoul/remote/board.c index 2bc8c2409..ad98f2fd0 100644 --- a/platform/zoul/remote/board.c +++ b/platform/zoul/remote/board.c @@ -45,7 +45,7 @@ static void configure_unused_pins(void) { - // FIXME + /* FIXME */ } /*---------------------------------------------------------------------------*/ void diff --git a/platform/zoul/remote/board.h b/platform/zoul/remote/board.h index b2326c579..2578ec544 100644 --- a/platform/zoul/remote/board.h +++ b/platform/zoul/remote/board.h @@ -192,7 +192,7 @@ * \name ADC configuration * * These values configure which CC2538 pins and ADC channels to use for the ADC - * inputs. By default the RE-Mote allows two out-of-the-box ADC ports with a + * inputs. By default the RE-Mote allows two out-of-the-box ADC ports with a * phidget-like 3-pin connector (GND/VDD/ADC) * * The RE-Mote allows both 3.3V and 5V analogue sensors as follow: @@ -201,15 +201,15 @@ * - ADC2: up to 3.3V, shared with RTC_INT * - ADC3: up to 5V, by means of a 2/3 voltage divider. * - * ADC inputs can only be on port A. - * All ADCx are exposed in JP5 connector, but only ADC1 and ADC3 have GND and - * VDD (3/5V) pins next to it, so these can be exposed into a 3-pin phidget-like - * connector, for ADC2 either solder a wire to connect, or use a 4-pin connector - * to expose both ADC1 and ADC2 in a single connector, but this will leave no + * ADC inputs can only be on port A. + * All ADCx are exposed in JP5 connector, but only ADC1 and ADC3 have GND and + * VDD (3/5V) pins next to it, so these can be exposed into a 3-pin phidget-like + * connector, for ADC2 either solder a wire to connect, or use a 4-pin connector + * to expose both ADC1 and ADC2 in a single connector, but this will leave no * space for a ADC3 connector. - * The internal ADC reference is 1190mV, use either a voltage divider as input, + * The internal ADC reference is 1190mV, use either a voltage divider as input, * or a different voltage reference, like AVDD5 or other externally (AIN7), but - * note the PA7 is shared with the Micro-SD CSn pin, likewise for PA6 (AIN6) + * note the PA7 is shared with the Micro-SD CSn pin, likewise for PA6 (AIN6) * shared witht the Micro-SD select pin * To use the ADC2 pin, remove the resistor on the Zoul's PA4 pin (JP1, pin 10) * and enable below (replace -1 with 4). @@ -272,8 +272,8 @@ /** * \name Antenna switch configuration * - * These values configure the required pin to drive the RF antenna switch, to - * either enable the sub-1Ghz RF interface (power-up the CC1200) or the 2.4GHz + * These values configure the required pin to drive the RF antenna switch, to + * either enable the sub-1Ghz RF interface (power-up the CC1200) or the 2.4GHz * RF interface of the CC2538, both alternatively routed to a RP-SMA connector * to allow using an external antenna for both cases. * @@ -295,7 +295,7 @@ * \name Dual RF interface support * * Enables support for dual band operation (both CC1200 and 2.4GHz enabled). - * The driver checks the selected Radio stack, and forces the antenna switch to + * The driver checks the selected Radio stack, and forces the antenna switch to * either position. Enabling the definition below forces to skip this check. * @{ */ @@ -331,7 +331,7 @@ /** * \name microSD configuration * - * These values configure the required pins to drive the built-in microSD + * These values configure the required pins to drive the built-in microSD * external module, to be used with SSI1 * @{ */ @@ -356,13 +356,13 @@ * an ultra-low power consumption MCU (PIC12F635). The Shutdown mode allows: * * - Put the RE-Mote in an ultra-low power sleep (shutdown) drawing 350nA avg. - * - Periodically awake and execute tasks, being the shutdown period selectable + * - Periodically awake and execute tasks, being the shutdown period selectable * via R47 resistor value (22KOhm as default for 1 minute shutdown period). * - Enter shutdown mode before the shutdown period expiration, by sending a * pulse to SHUTDOWN_DONE. * * To enable or disable the shutdown mode a well-known sequence has to be sent - * to the PIC12F635 via its 1-Wire pin, when the shutdown mode is enabled, + * to the PIC12F635 via its 1-Wire pin, when the shutdown mode is enabled, * confirmation is done by the PIC echoing-back the command to the CC2538. * * The shutdown mode can be disabled by hardware by short-circuiting or placing @@ -378,7 +378,7 @@ /** * \name On-board RTC * - * The Abracon AB0805 RTC is used by both the + * The Abracon AB0805 RTC is used by both the * The shutdown mode can be disabled by hardware by short-circuiting or placing * an 0Ohm resistor across W1 pad. As the RTC_INT1 pin is also shared with the * BUTTON_USER, so either disable or not use the user button, or upon receiving From d867b2e6e9562b2b3827a93eb1292c4de311cf92 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Tue, 24 Nov 2015 12:13:25 +0000 Subject: [PATCH 40/46] Undo travis-breaking change --- regression-tests/18-compile-arm-ports/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/regression-tests/18-compile-arm-ports/Makefile b/regression-tests/18-compile-arm-ports/Makefile index bbd68f8a5..ac0358211 100644 --- a/regression-tests/18-compile-arm-ports/Makefile +++ b/regression-tests/18-compile-arm-ports/Makefile @@ -7,7 +7,6 @@ ipv6/rpl-border-router/ev-aducrf101mkxz \ webserver-ipv6/ev-aducrf101mkxz \ ipv6/multicast/ev-aducrf101mkxz \ cc2538dk/sniffer/ev-aducrf101mkxz \ - cc26xx/cc26xx-web-demo/srf06-cc26xx \ cc26xx/very-sleepy-demo/srf06-cc26xx \ hello-world/cc2538dk \ @@ -19,7 +18,6 @@ cc2538dk/udp-ipv6-echo-server/cc2538dk \ cc2538dk/sniffer/cc2538dk \ cc2538dk/mqtt-demo/cc2538dk \ ipv6/multicast/cc2538dk \ - zolertia/zoul \ zolertia/zoul/cc1200-demo/zoul \ er-rest-example/zoul \ From aa9eb5264f1a2926cdc92ff9db352d366d6ebc68 Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Tue, 24 Nov 2015 17:06:34 +0100 Subject: [PATCH 41/46] Fixed warning related to gpio_callback_t type --- platform/zoul/dev/cc1200-zoul-arch.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/platform/zoul/dev/cc1200-zoul-arch.c b/platform/zoul/dev/cc1200-zoul-arch.c index ac5d05a8f..0df21a037 100644 --- a/platform/zoul/dev/cc1200-zoul-arch.c +++ b/platform/zoul/dev/cc1200-zoul-arch.c @@ -92,6 +92,13 @@ extern int cc1200_rx_interrupt(void); /*---------------------------------------------------------------------------*/ void +cc1200_int_handler(uint8_t port, uint8_t pin) +{ + /* To keep the gpio_register_callback happy */ + cc1200_rx_interrupt(); +} +/*---------------------------------------------------------------------------*/ +void cc1200_arch_spi_select(void) { /* Set CSn to low (0) */ @@ -177,7 +184,7 @@ cc1200_arch_gpio0_setup_irq(int rising) GPIO_ENABLE_INTERRUPT(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); ioc_set_over(CC1200_GDO0_PORT, CC1200_GDO0_PIN, IOC_OVERRIDE_PUE); nvic_interrupt_enable(CC1200_GPIOx_VECTOR); - gpio_register_callback(cc1200_rx_interrupt, CC1200_GDO0_PORT, + gpio_register_callback(cc1200_int_handler, CC1200_GDO0_PORT, CC1200_GDO0_PIN); } /*---------------------------------------------------------------------------*/ @@ -199,7 +206,7 @@ cc1200_arch_gpio2_setup_irq(int rising) GPIO_ENABLE_INTERRUPT(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); ioc_set_over(CC1200_GDO2_PORT, CC1200_GDO2_PIN, IOC_OVERRIDE_PUE); nvic_interrupt_enable(CC1200_GPIOx_VECTOR); - gpio_register_callback(cc1200_rx_interrupt, CC1200_GDO2_PORT, + gpio_register_callback(cc1200_int_handler, CC1200_GDO2_PORT, CC1200_GDO2_PIN); } /*---------------------------------------------------------------------------*/ From 0775de97320fdf19fbe66ed14c1ef92e56cbb99e Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Tue, 24 Nov 2015 18:02:30 +0100 Subject: [PATCH 42/46] Fixed really big test value leftover --- platform/zoul/contiki-conf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/zoul/contiki-conf.h b/platform/zoul/contiki-conf.h index 21bb11cef..9b2e9df42 100644 --- a/platform/zoul/contiki-conf.h +++ b/platform/zoul/contiki-conf.h @@ -101,7 +101,7 @@ typedef uint32_t rtimer_clock_t; * * @{ */ -#define COFFEE_CONF_SIZE 0x78000 +#define COFFEE_CONF_SIZE (4 * COFFEE_SECTOR_SIZE) /** @} */ /*---------------------------------------------------------------------------*/ /** From bea4ff164d9200b1de733e0b89a9f6e06c877cc0 Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Tue, 24 Nov 2015 21:27:56 +0100 Subject: [PATCH 43/46] Changed Makefile.zoul as done in previous BSL commit --- platform/zoul/Makefile.zoul | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/zoul/Makefile.zoul b/platform/zoul/Makefile.zoul index 41aa47feb..91ea267f7 100644 --- a/platform/zoul/Makefile.zoul +++ b/platform/zoul/Makefile.zoul @@ -68,13 +68,14 @@ else perl -ne 'print $$1 . " " if(m-(/dev/\w+)-);') endif - - %.upload: %.bin %.elf ifeq ($(wildcard $(BSL)), ) @echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?" else - $(PYTHON) $(BSL) $(BSL_FLAGS) -a $$($(OBJDUMP) -h $*.elf | sed -n '/\/{g;1!p;};h' | awk '{print "0x" $$5}' | sort -g | head -1) $< + $(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h $*.elf | grep -B1 LOAD | \ + grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \ + sort -g | head -1)) + $(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $< endif motelist: From ed4c1788a73b252d4fa51881dac56e6168f2c02a Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Tue, 24 Nov 2015 21:30:51 +0100 Subject: [PATCH 44/46] Fixed broken Z1 regression test --- regression-tests/01-compile-base/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regression-tests/01-compile-base/Makefile b/regression-tests/01-compile-base/Makefile index b86416df3..160f01139 100644 --- a/regression-tests/01-compile-base/Makefile +++ b/regression-tests/01-compile-base/Makefile @@ -31,7 +31,7 @@ telnet-server/minimal-net \ webserver/minimal-net \ webserver-ipv6/eval-adf7xxxmb4z \ wget/minimal-net \ -z1/z1 \ +zolertia/z1/z1 \ settings-example/avr-raven \ ipv6/multicast/sky \ From 830f5fb60d328f00329c359ea65e59b4e7aec8fc Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Tue, 24 Nov 2015 22:02:05 +0100 Subject: [PATCH 45/46] Fixed warnings in Z1 examples --- examples/zolertia/z1/test-light-ziglet.c | 13 +---------- examples/zolertia/z1/test-phidgets.c | 5 ++-- examples/zolertia/z1/test-tmp102.c | 29 +++--------------------- 3 files changed, 6 insertions(+), 41 deletions(-) diff --git a/examples/zolertia/z1/test-light-ziglet.c b/examples/zolertia/z1/test-light-ziglet.c index e0df68dc0..ce292dff0 100644 --- a/examples/zolertia/z1/test-light-ziglet.c +++ b/examples/zolertia/z1/test-light-ziglet.c @@ -42,12 +42,6 @@ #include "dev/i2cmaster.h" #include "dev/light-ziglet.h" /*---------------------------------------------------------------------------*/ -#if DEBUG -#define PRINTF(...) printf(__VA_ARGS__) -#else -#define PRINTF(...) -#endif -/*---------------------------------------------------------------------------*/ #define SENSOR_READ_INTERVAL (CLOCK_SECOND / 2) /*---------------------------------------------------------------------------*/ PROCESS(test_process, "Test light ziglet process"); @@ -59,19 +53,14 @@ PROCESS_THREAD(test_process, ev, data) { PROCESS_BEGIN(); - uint16_t light; - /* Initialize driver and set a slower data rate */ - light_ziglet_init(); i2c_setrate(I2C_PRESC_100KHZ_LSB, I2C_PRESC_100KHZ_MSB); while(1) { etimer_set(&et, SENSOR_READ_INTERVAL); PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); - - light = light_ziglet_read(); - PRINTF("Light = %u\n", light); + printf("Light = %u\n", light_ziglet_read()); } PROCESS_END(); } diff --git a/examples/zolertia/z1/test-phidgets.c b/examples/zolertia/z1/test-phidgets.c index 1b767e86a..5dbdaf497 100644 --- a/examples/zolertia/z1/test-phidgets.c +++ b/examples/zolertia/z1/test-phidgets.c @@ -32,8 +32,7 @@ /*---------------------------------------------------------------------------*/ /** * \file - * An example of how to use the button and light sensor on - * the Z1 platform. + * An example of how to use the button and read the ADC ports * \author * Joakim Eriksson */ @@ -44,7 +43,7 @@ #include "dev/leds.h" #include "dev/z1-phidgets.h" /*---------------------------------------------------------------------------*/ -PROCESS(test_button_process, "Test Button & Phidgets"); +PROCESS(test_button_process, "Test Button & ADC"); AUTOSTART_PROCESSES(&test_button_process); /*---------------------------------------------------------------------------*/ PROCESS_THREAD(test_button_process, ev, data) diff --git a/examples/zolertia/z1/test-tmp102.c b/examples/zolertia/z1/test-tmp102.c index 69627262a..5d8be7a08 100644 --- a/examples/zolertia/z1/test-tmp102.c +++ b/examples/zolertia/z1/test-tmp102.c @@ -42,12 +42,6 @@ #include "dev/i2cmaster.h" #include "dev/tmp102.h" /*---------------------------------------------------------------------------*/ -#if DEBUG -#define PRINTF(...) printf(__VA_ARGS__) -#else -#define PRINTF(...) -#endif -/*---------------------------------------------------------------------------*/ #define TMP102_READ_INTERVAL (CLOCK_SECOND / 2) /*---------------------------------------------------------------------------*/ PROCESS(temp_process, "Test Temperature process"); @@ -59,32 +53,15 @@ PROCESS_THREAD(temp_process, ev, data) { PROCESS_BEGIN(); - int16_t tempint; - uint16_t tempfrac; - int16_t raw; - uint16_t absraw; - int16_t sign; - char minus = ' '; + int16_t temp; tmp102_init(); while(1) { etimer_set(&et, TMP102_READ_INTERVAL); PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); - - sign = 1; - - PRINTFDEBUG("Reading Temp...\n"); - raw = tmp102_read_temp_raw(); - absraw = raw; - if(raw < 0) { /* Perform 2C's if sensor returned negative data */ - absraw = (raw ^ 0xFFFF) + 1; - sign = -1; - } - tempint = (absraw >> 8) * sign; - tempfrac = ((absraw >> 4) % 16) * 625; /* Info in 1/10000 of degree */ - minus = ((tempint == 0) & (sign == -1)) ? '-' : ' '; - PRINTF("Temp = %c%d.%04d\n", minus, tempint, tempfrac); + temp = tmp102_read_temp_x100(); + printf("Temp = %d\n", temp); } PROCESS_END(); } From 6978297d710edcfb6081243510b692151b5c0130 Mon Sep 17 00:00:00 2001 From: Antonio Lignan Date: Tue, 24 Nov 2015 22:52:29 +0100 Subject: [PATCH 46/46] Fixed regression test for the zoul platform --- regression-tests/18-compile-arm-ports/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regression-tests/18-compile-arm-ports/Makefile b/regression-tests/18-compile-arm-ports/Makefile index ac0358211..550ee6617 100644 --- a/regression-tests/18-compile-arm-ports/Makefile +++ b/regression-tests/18-compile-arm-ports/Makefile @@ -18,7 +18,7 @@ cc2538dk/udp-ipv6-echo-server/cc2538dk \ cc2538dk/sniffer/cc2538dk \ cc2538dk/mqtt-demo/cc2538dk \ ipv6/multicast/cc2538dk \ -zolertia/zoul \ +zolertia/zoul/zoul \ zolertia/zoul/cc1200-demo/zoul \ er-rest-example/zoul \ hello-world/zoul \

;$vr@efeclFW|eoYm~5s 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

>w{Pw0MG*%u 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 HH}ro2X#PT_ literal 0 HcmV?d00001 diff --git a/platform/zoul/images/remote-front.png b/platform/zoul/images/remote-front.png new file mode 100755 index 0000000000000000000000000000000000000000..390e1671922778d4fbda57ae2b0b3f70290c48cf GIT binary patch literal 122895 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