From c7aaefb4daa03a48ffff73cc26cfbab16acdff6e Mon Sep 17 00:00:00 2001 From: Richard Weickelt Date: Tue, 6 Feb 2018 14:30:50 +0100 Subject: [PATCH] Add board file deduction logic and board init stages --- arch/cpu/simplelink/Makefile.simplelink | 12 +++++++++--- arch/platform/simplelink/Makefile.simplelink | 11 +++++++++++ arch/platform/simplelink/platform.c | 16 ++++++++++++++++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/arch/cpu/simplelink/Makefile.simplelink b/arch/cpu/simplelink/Makefile.simplelink index bda65826d..b5b9084d2 100644 --- a/arch/cpu/simplelink/Makefile.simplelink +++ b/arch/cpu/simplelink/Makefile.simplelink @@ -9,12 +9,15 @@ SDK_DEVICE_SOURCE := $(SDK_SOURCE)/ti/devices/$(SDK_DEVICE) SDK_DRIVERLIB := $(SDK_DEVICE_SOURCE)/driverlib SDK_DRIVERS := $(SDK_SOURCE)/ti/drivers SDK_KERNEL := $(SIMPLELINK_SDK)/kernel/nortos/ -SDK_BOARDS := $(SDK_SOURCE)/ti/boards SDK_STARTUP := $(SDK_DEVICE_SOURCE)/startup_files SDK_STARTUP_SRCS = ccfg.c startup_gcc.c - EXTERNALDIRS += $(SDK_STARTUP) +ifneq ($(SIMPLELINK_BOARD),CUSTOM) + SDK_BOARDS := $(SDK_SOURCE)/ti/boards + LDSCRIPT = $(SDK_BOARDS)/$(SIMPLELINK_BOARD)/$(SIMPLELINK_BOARD)_NoRTOS.lds +endif + ### MODULES will add some of these to the include path, but we need to add ### them earlier to prevent filename clashes with Contiki core files CFLAGS += -I$(CPU_ABS_PATH) @@ -24,7 +27,10 @@ CFLAGS += -I$(SDK_DEVICE_SOURCE)/inc CFLAGS += -I$(SDK_KERNEL) CFLAGS += -I$(SDK_KERNEL)/posix -LDSCRIPT = $(SDK_BOARDS)/$(SIMPLELINK_BOARD)/$(SIMPLELINK_BOARD)_NoRTOS.lds +ifneq ($(SIMPLELINK_BOARD),CUSTOM) + CFLAGS += -I$(SDK_BOARDS)/$(SIMPLELINK_BOARD) +endif + ### If the user-specified a Node ID, pass a define ifdef NODEID diff --git a/arch/platform/simplelink/Makefile.simplelink b/arch/platform/simplelink/Makefile.simplelink index 2a28cd231..bed4c64a5 100644 --- a/arch/platform/simplelink/Makefile.simplelink +++ b/arch/platform/simplelink/Makefile.simplelink @@ -8,6 +8,17 @@ ifndef SIMPLELINK_SDK $(error SIMPLELINK_SDK not defined! You must specify where the SimpleLink SDK resides!) endif +AVAILABLE_BOARDS := $(shell ls $(SIMPLELINK_SDK)/source/ti/boards/) +AVAILABLE_BOARDS += CUSTOM # Allows an own board file in the application project + +ifndef SIMPLELINK_BOARD + $(error SIMPLELINK_BOARD not defined! You must specify a board! Available boards: $(AVAILABLE_BOARDS)) +endif + +ifneq ($(findstring $(SIMPLELINK_BOARD),$(AVAILABLE_BOARDS)),$(SIMPLELINK_BOARD)) + $(error '$(SIMPLELINK_BOARD)' is not a valid board. Available boards: $(AVAILABLE_BOARDS)) +endif + ### Board and BSP selection CONTIKI_TARGET_DIRS += . diff --git a/arch/platform/simplelink/platform.c b/arch/platform/simplelink/platform.c index 0691f669c..8f047463a 100644 --- a/arch/platform/simplelink/platform.c +++ b/arch/platform/simplelink/platform.c @@ -46,6 +46,12 @@ */ #include "contiki.h" #include "contiki-net.h" + +#include +#include +#include + + //#include "leds.h" //#include "lpm.h" //#include "gpio-interrupt.h" @@ -123,6 +129,10 @@ void board_init(void); void platform_init_stage_one() { + Board_initGeneral(); + GPIO_init(); + GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON); + GPIO_write(Board_GPIO_LED1, Board_GPIO_LED_OFF); // /* Enable flash cache and prefetch. */ // ti_lib_vims_mode_set(VIMS_BASE, VIMS_MODE_ENABLED); // ti_lib_vims_configure(VIMS_BASE, true, true); @@ -158,6 +168,9 @@ platform_init_stage_one() void platform_init_stage_two() { + GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_OFF); + GPIO_write(Board_GPIO_LED1, Board_GPIO_LED_ON); + // random_init(0x1234); // // /* Character I/O Initialisation */ @@ -176,6 +189,9 @@ platform_init_stage_two() void platform_init_stage_three() { + GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON); + GPIO_write(Board_GPIO_LED1, Board_GPIO_LED_ON); + // radio_value_t chan, pan; // // set_rf_params();