diff --git a/project/stm32-p407-test.mk b/project/stm32-p407-test.mk new file mode 100644 index 00000000..e0596f30 --- /dev/null +++ b/project/stm32-p407-test.mk @@ -0,0 +1,9 @@ +LOCAL_DIR := $(GET_LOCAL_DIR) + +MODULES += \ + lib/debugcommands \ + app/tests \ + app/shell + +include project/stm32-p407.mk + diff --git a/project/stm32-p407.mk b/project/stm32-p407.mk new file mode 100644 index 00000000..ac51071c --- /dev/null +++ b/project/stm32-p407.mk @@ -0,0 +1,4 @@ +LOCAL_DIR := $(GET_LOCAL_DIR) + +TARGET := stm32-p407 + diff --git a/target/stm32-p407/include/target/debugconfig.h b/target/stm32-p407/include/target/debugconfig.h new file mode 100644 index 00000000..af7c27a6 --- /dev/null +++ b/target/stm32-p407/include/target/debugconfig.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2012 Travis Geiselbrecht + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef __TARGET_DEBUGCONFIG_H +#define __TARGET_DEBUGCONFIG_H + +#define DEBUG_UART 3 + +#endif diff --git a/target/stm32-p407/include/target/gpioconfig.h b/target/stm32-p407/include/target/gpioconfig.h new file mode 100644 index 00000000..c75880c7 --- /dev/null +++ b/target/stm32-p407/include/target/gpioconfig.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2012 Travis Geiselbrecht + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#ifndef __TARGET_GPIOCONFIG_H +#define __TARGET_GPIOCONFIG_H + +#include + +#define GPIO_USART3_TX GPIO(GPIO_PORT_D, 8) +#define GPIO_USART3_RX GPIO(GPIO_PORT_D, 9) + +#define GPIO_LED0 GPIO(GPIO_PORT_F, 6) +#define GPIO_LED1 GPIO(GPIO_PORT_F, 7) +#define GPIO_LED2 GPIO(GPIO_PORT_F, 8) +#define GPIO_LED3 GPIO(GPIO_PORT_F, 9) + +#endif diff --git a/target/stm32-p407/init.c b/target/stm32-p407/init.c new file mode 100644 index 00000000..8cc31c81 --- /dev/null +++ b/target/stm32-p407/init.c @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2012 Travis Geiselbrecht + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void target_early_init(void) +{ + /* configure the usart3 pins */ + gpio_config(GPIO_USART3_TX, GPIO_STM32_AF | GPIO_STM32_AFn(GPIO_AF_USART3) | GPIO_PULLUP); + gpio_config(GPIO_USART3_RX, GPIO_STM32_AF | GPIO_STM32_AFn(GPIO_AF_USART3) | GPIO_PULLUP); + + stm32_debug_early_init(); + + /* configure some status leds */ + gpio_config(GPIO_LED0, GPIO_OUTPUT); + gpio_config(GPIO_LED1, GPIO_OUTPUT); + gpio_config(GPIO_LED2, GPIO_OUTPUT); + gpio_config(GPIO_LED3, GPIO_OUTPUT); +} + +void target_init(void) +{ + TRACE_ENTRY; + + stm32_debug_init(); + + TRACE_EXIT; +} + +void target_set_debug_led(unsigned int led, bool on) +{ + switch (led) { + case 0: + gpio_set(GPIO_LED0, on); + break; + case 1: + gpio_set(GPIO_LED1, on); + break; + case 2: + gpio_set(GPIO_LED2, on); + break; + case 3: + gpio_set(GPIO_LED3, on); + break; + } +} + diff --git a/target/stm32-p407/rules.mk b/target/stm32-p407/rules.mk new file mode 100644 index 00000000..80a5c15d --- /dev/null +++ b/target/stm32-p407/rules.mk @@ -0,0 +1,19 @@ +LOCAL_DIR := $(GET_LOCAL_DIR) + +MODULE := $(LOCAL_DIR) + +STM32_CHIP := stm32f407 + +PLATFORM := stm32f2xx + +DEFINES += \ + ENABLE_UART3=1 \ + TARGET_HAS_DEBUG_LED=1 + +INCLUDES += -I$(LOCAL_DIR)/include + +MODULE_SRCS += \ + $(LOCAL_DIR)/init.c + +include make/module.mk +