diff options
| -rw-r--r-- | boards/ST_STM32F0_DISCOVERY/board.c | 52 | ||||
| -rw-r--r-- | boards/ST_STM32F0_DISCOVERY/board.h | 899 | ||||
| -rw-r--r-- | boards/ST_STM32F0_DISCOVERY/board.mk | 4 | ||||
| -rw-r--r-- | boards/ST_STM32F0_DISCOVERY/cfg/board.chcfg | 11 | ||||
| -rw-r--r-- | boards/ST_STM32F0_DISCOVERY/cfg/board.chxml | 665 | ||||
| -rw-r--r-- | readme.txt | 2 | ||||
| -rw-r--r-- | tools/eclipse/config_wizard/META-INF/MANIFEST.MF | 2 | ||||
| -rw-r--r-- | tools/eclipse/config_wizard/resources/gencfg/processors/boards/stm32f0xx/templates/board.h.ftl | 7 | ||||
| -rw-r--r-- | tools/eclipse/config_wizard/resources/gencfg/xml/stm32f0board.xml | 2 | ||||
| -rw-r--r-- | tools/eclipse/plugins/org.chibios.tools.eclipse.config_1.0.2.jar | bin | 1845778 -> 1845764 bytes | 
10 files changed, 1394 insertions, 250 deletions
| diff --git a/boards/ST_STM32F0_DISCOVERY/board.c b/boards/ST_STM32F0_DISCOVERY/board.c index 025050af4..97d3f80c9 100644 --- a/boards/ST_STM32F0_DISCOVERY/board.c +++ b/boards/ST_STM32F0_DISCOVERY/board.c @@ -21,34 +21,62 @@  #include "ch.h"
  #include "hal.h"
 +#if HAL_USE_PAL || defined(__DOXYGEN__)
  /**
   * @brief   PAL setup.
   * @details Digital I/O ports static configuration as defined in @p board.h.
   *          This variable is used by the HAL when initializing the PAL driver.
   */
 -#if HAL_USE_PAL || defined(__DOXYGEN__)
  const PALConfig pal_default_config =
  {
 -  {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
 -  {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
 -  {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
 -  {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
 -  {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}
 +  {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
 +   VAL_GPIOA_ODR,   VAL_GPIOA_AFRL,   VAL_GPIOA_AFRH},
 +  {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
 +   VAL_GPIOB_ODR,   VAL_GPIOB_AFRL,   VAL_GPIOB_AFRH},
 +  {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
 +   VAL_GPIOC_ODR,   VAL_GPIOC_AFRL,   VAL_GPIOC_AFRH},
 +  {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
 +   VAL_GPIOD_ODR,   VAL_GPIOD_AFRL,   VAL_GPIOD_AFRH},
 +  {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
 +   VAL_GPIOF_ODR,   VAL_GPIOF_AFRL,   VAL_GPIOF_AFRH},
  };
  #endif
 -/*
 - * Early initialization code.
 - * This initialization must be performed just after stack setup and before
 - * any other initialization.
 +/**
 + * @brief   Early initialization code.
 + * @details This initialization must be performed just after stack setup
 + *          and before any other initialization.
   */
  void __early_init(void) {
    stm32_clock_init();
  }
 -/*
 - * Board-specific initialization code.
 +#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
 +/**
 + * @brief   MMC_SPI card detection.
 + */
 +bool_t mmc_lld_is_card_inserted(MMCDriver *mmcp) {
 +
 +  (void)mmcp;
 +  /* TODO: Fill the implementation.*/
 +  return TRUE;
 +}
 +
 +/**
 + * @brief   MMC_SPI card write protection detection.
 + */
 +bool_t mmc_lld_is_write_protected(MMCDriver *mmcp) {
 +
 +  (void)mmcp;
 +  /* TODO: Fill the implementation.*/
 +  return FALSE;
 +}
 +#endif
 +
 +/**
 + * @brief   Board-specific initialization code.
 + * @todo    Add your board-specific code, if any.
   */
  void boardInit(void) {
  }
 diff --git a/boards/ST_STM32F0_DISCOVERY/board.h b/boards/ST_STM32F0_DISCOVERY/board.h index 300821c14..fe34c8190 100644 --- a/boards/ST_STM32F0_DISCOVERY/board.h +++ b/boards/ST_STM32F0_DISCOVERY/board.h @@ -22,41 +22,30 @@  #define _BOARD_H_
  /*
 - * Setup for STMicroelectronics STM32F0-Discovery board.
 + * Setup for ST STM32F0-Discovery board.
   */
  /*
   * Board identifier.
   */
 -#define BOARD_ST_STM32F0_DISCOVERY
 -#define BOARD_NAME              "ST STM32F0-Discovery"
 +#define BOARD_BOARD_ST_STM32F0_DISCOVERY
 +#define BOARD_NAME                  "ST STM32F0-Discovery"
 +
  /*
 - * Board frequencies.
 - * NOTE: The both crystals are not fitted by default on the board but there
 - *       the option to both mount an 8MHz HE crystal or drive HSE with an
 - *       8MHz clock from the on-board ST-Link. LSE can be optionally mounted
 - *       too.
 + * Board oscillators-related settings.
 + * NOTE: LSE not fitted.
 + * NOTE: HSE not fitted.
   */
 -#if defined(DISCOVERY_HSE_MOUNTED) && defined(DISCOVERY_HSE_DRIVEN)
 -#error "HSE OSC-IN cannot be both crystal equipped and externally driven"
 -#endif
 -
 -#if defined(DISCOVERY_LSE_MOUNTED)
 -#define STM32_LSECLK            32768
 -#else
 -#define STM32_LSECLK            0
 +#if !defined(STM32_LSECLK)
 +#define STM32_LSECLK                0
  #endif
 -#if defined(DISCOVERY_HSE_MOUNTED) || defined(DISCOVERY_HSE_DRIVEN)
 -#define STM32_HSECLK            8000000
 -#else
 -#define STM32_HSECLK            0
 +#if !defined(STM32_HSECLK)
 +#define STM32_HSECLK                0
  #endif
 -#if defined(DISCOVERY_HSE_DRIVEN)
  #define STM32_HSE_BYPASS
 -#endif
  /*
   * MCU type as defined in the ST header file stm32f0xx.h.
 @@ -66,10 +55,90 @@  /*
   * IO pins assignments.
   */
 -#define GPIOA_BUTTON            0
 +#define GPIOA_BUTTON                0
 +#define GPIOA_PIN1                  1
 +#define GPIOA_PIN2                  2
 +#define GPIOA_PIN3                  3
 +#define GPIOA_PIN4                  4
 +#define GPIOA_PIN5                  5
 +#define GPIOA_PIN6                  6
 +#define GPIOA_PIN7                  7
 +#define GPIOA_PIN8                  8
 +#define GPIOA_PIN9                  9
 +#define GPIOA_PIN10                 10
 +#define GPIOA_PIN11                 11
 +#define GPIOA_PIN12                 12
 +#define GPIOA_SWDAT                 13
 +#define GPIOA_SWCLK                 14
 +#define GPIOA_PIN15                 15
 -#define GPIOC_LED4              8
 -#define GPIOC_LED3              9
 +#define GPIOB_PIN0                  0
 +#define GPIOB_PIN1                  1
 +#define GPIOB_PIN2                  2
 +#define GPIOB_PIN3                  3
 +#define GPIOB_PIN4                  4
 +#define GPIOB_PIN5                  5
 +#define GPIOB_PIN6                  6
 +#define GPIOB_PIN7                  7
 +#define GPIOB_PIN8                  8
 +#define GPIOB_PIN9                  9
 +#define GPIOB_PIN10                 10
 +#define GPIOB_PIN11                 11
 +#define GPIOB_PIN12                 12
 +#define GPIOB_PIN13                 13
 +#define GPIOB_PIN14                 14
 +#define GPIOB_PIN15                 15
 +
 +#define GPIOC_PIN0                  0
 +#define GPIOC_PIN1                  1
 +#define GPIOC_PIN2                  2
 +#define GPIOC_PIN3                  3
 +#define GPIOC_PIN4                  4
 +#define GPIOC_PIN5                  5
 +#define GPIOC_PIN6                  6
 +#define GPIOC_PIN7                  7
 +#define GPIOC_LED4                  8
 +#define GPIOC_LED3                  9
 +#define GPIOC_PIN10                 10
 +#define GPIOC_PIN11                 11
 +#define GPIOC_PIN12                 12
 +#define GPIOC_PIN13                 13
 +#define GPIOC_OSC32_IN              14
 +#define GPIOC_OSC32_OUT             15
 +
 +#define GPIOD_PIN0                  0
 +#define GPIOD_PIN1                  1
 +#define GPIOD_PIN2                  2
 +#define GPIOD_PIN3                  3
 +#define GPIOD_PIN4                  4
 +#define GPIOD_PIN5                  5
 +#define GPIOD_PIN6                  6
 +#define GPIOD_PIN7                  7
 +#define GPIOD_PIN8                  8
 +#define GPIOD_PIN9                  9
 +#define GPIOD_PIN10                 10
 +#define GPIOD_PIN11                 11
 +#define GPIOD_PIN12                 12
 +#define GPIOD_PIN13                 13
 +#define GPIOD_PIN14                 14
 +#define GPIOD_PIN15                 15
 +
 +#define GPIOF_OSC_IN                0
 +#define GPIOF_OSC_OUT               1
 +#define GPIOF_PIN2                  2
 +#define GPIOF_PIN3                  3
 +#define GPIOF_PIN4                  4
 +#define GPIOF_PIN5                  5
 +#define GPIOF_PIN6                  6
 +#define GPIOF_PIN7                  7
 +#define GPIOF_PIN8                  8
 +#define GPIOF_PIN9                  9
 +#define GPIOF_PIN10                 10
 +#define GPIOF_PIN11                 11
 +#define GPIOF_PIN12                 12
 +#define GPIOF_PIN13                 13
 +#define GPIOF_PIN14                 14
 +#define GPIOF_PIN15                 15
  /*
   * I/O ports initial setup, this configuration is established soon after reset
 @@ -80,233 +149,603 @@  #define PIN_MODE_OUTPUT(n)          (1U << ((n) * 2))
  #define PIN_MODE_ALTERNATE(n)       (2U << ((n) * 2))
  #define PIN_MODE_ANALOG(n)          (3U << ((n) * 2))
 +#define PIN_ODR_LOW(n)              (0U << (n))
 +#define PIN_ODR_HIGH(n)             (1U << (n))
  #define PIN_OTYPE_PUSHPULL(n)       (0U << (n))
  #define PIN_OTYPE_OPENDRAIN(n)      (1U << (n))
 -#define PIN_OSPEED_400K(n)          (0U << ((n) * 2))
 -#define PIN_OSPEED_2M(n)            (1U << ((n) * 2))
 -#define PIN_OSPEED_10M(n)           (2U << ((n) * 2))
 +#define PIN_OSPEED_2M(n)            (0U << ((n) * 2))
 +#define PIN_OSPEED_10M(n)           (1U << ((n) * 2))
  #define PIN_OSPEED_40M(n)           (3U << ((n) * 2))
 -#define PIN_PUDR_FLOATING(n)        (0U << ((n) * 2))
 -#define PIN_PUDR_PULLUP(n)          (1U << ((n) * 2))
 -#define PIN_PUDR_PULLDOWN(n)        (2U << ((n) * 2))
 +#define PIN_PUPDR_FLOATING(n)       (0U << ((n) * 2))
 +#define PIN_PUPDR_PULLUP(n)         (1U << ((n) * 2))
 +#define PIN_PUPDR_PULLDOWN(n)       (2U << ((n) * 2))
  #define PIN_AFIO_AF(n, v)           ((v##U) << ((n % 8) * 4))
  /*
 - * Port A setup.
 - * All input with pull-up except:
 - * PA0  - GPIOA_BUTTON  (input floating).
 - * PA13 - JTMS/SWDAT    (alternate 0).
 - * PA14 - JTCK/SWCLK    (alternate 0).
 + * GPIOA setup:
 + *
 + * PA0  - BUTTON                    (input floating).
 + * PA1  - PIN1                      (input pullup).
 + * PA2  - PIN2                      (input pullup).
 + * PA3  - PIN3                      (input pullup).
 + * PA4  - PIN4                      (input pullup).
 + * PA5  - PIN5                      (input pullup).
 + * PA6  - PIN6                      (input pullup).
 + * PA7  - PIN7                      (input pullup).
 + * PA8  - PIN8                      (input pullup).
 + * PA9  - PIN9                      (input pullup).
 + * PA10 - PIN10                     (input pullup).
 + * PA11 - PIN11                     (input pullup).
 + * PA12 - PIN12                     (input pullup).
 + * PA13 - SWDAT                     (alternate 0).
 + * PA14 - SWCLK                     (alternate 0).
 + * PA15 - PIN15                     (input pullup).
   */
  #define VAL_GPIOA_MODER             (PIN_MODE_INPUT(GPIOA_BUTTON) |         \
 -                                     PIN_MODE_INPUT(1) |                    \
 -                                     PIN_MODE_INPUT(2) |                    \
 -                                     PIN_MODE_INPUT(3) |                    \
 -                                     PIN_MODE_INPUT(4) |                    \
 -                                     PIN_MODE_INPUT(5) |                    \
 -                                     PIN_MODE_INPUT(6) |                    \
 -                                     PIN_MODE_INPUT(7) |                    \
 -                                     PIN_MODE_INPUT(8) |                    \
 -                                     PIN_MODE_INPUT(9) |                    \
 -                                     PIN_MODE_INPUT(10) |                   \
 -                                     PIN_MODE_INPUT(11) |                   \
 -                                     PIN_MODE_INPUT(12) |                   \
 -                                     PIN_MODE_ALTERNATE(13) |               \
 -                                     PIN_MODE_ALTERNATE(14) |               \
 -                                     PIN_MODE_INPUT(15))
 -#define VAL_GPIOA_OTYPER            0x00000000
 -#define VAL_GPIOA_OSPEEDR           0xFFFFFFFF
 -#define VAL_GPIOA_PUPDR             (PIN_PUDR_FLOATING(GPIOA_BUTTON) |      \
 -                                     PIN_PUDR_PULLUP(1) |                   \
 -                                     PIN_PUDR_PULLUP(2) |                   \
 -                                     PIN_PUDR_PULLUP(3) |                   \
 -                                     PIN_PUDR_PULLUP(4) |                   \
 -                                     PIN_PUDR_PULLUP(5) |                   \
 -                                     PIN_PUDR_PULLUP(6) |                   \
 -                                     PIN_PUDR_PULLUP(7) |                   \
 -                                     PIN_PUDR_PULLUP(8) |                   \
 -                                     PIN_PUDR_PULLUP(9) |                   \
 -                                     PIN_PUDR_PULLUP(10) |                  \
 -                                     PIN_PUDR_PULLUP(11) |                  \
 -                                     PIN_PUDR_PULLUP(12) |                  \
 -                                     PIN_PUDR_FLOATING(13) |                \
 -                                     PIN_PUDR_FLOATING(14) |                \
 -                                     PIN_PUDR_PULLUP(15))
 -#define VAL_GPIOA_ODR               0xFFFFFFFF
 -#define VAL_GPIOA_AFRL              0x00000000
 -#define VAL_GPIOA_AFRH              0x00000000
 +                                     PIN_MODE_INPUT(GPIOA_PIN1) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN2) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN3) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN4) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN5) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN6) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN7) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN8) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN9) |           \
 +                                     PIN_MODE_INPUT(GPIOA_PIN10) |          \
 +                                     PIN_MODE_INPUT(GPIOA_PIN11) |          \
 +                                     PIN_MODE_INPUT(GPIOA_PIN12) |          \
 +                                     PIN_MODE_ALTERNATE(GPIOA_SWDAT) |      \
 +                                     PIN_MODE_ALTERNATE(GPIOA_SWCLK) |      \
 +                                     PIN_MODE_INPUT(GPIOA_PIN15))
 +#define VAL_GPIOA_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) |     \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN1) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN2) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN3) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN4) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN5) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN6) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN7) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN8) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN9) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN10) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN11) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN12) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_SWDAT) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
 +#define VAL_GPIOA_OSPEEDR           (PIN_OSPEED_2M(GPIOA_BUTTON) |          \
 +                                     PIN_OSPEED_2M(GPIOA_PIN1) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN2) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN3) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN4) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN5) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN6) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN7) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN8) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN9) |            \
 +                                     PIN_OSPEED_2M(GPIOA_PIN10) |           \
 +                                     PIN_OSPEED_2M(GPIOA_PIN11) |           \
 +                                     PIN_OSPEED_2M(GPIOA_PIN12) |           \
 +                                     PIN_OSPEED_40M(GPIOA_SWDAT) |          \
 +                                     PIN_OSPEED_40M(GPIOA_SWCLK) |          \
 +                                     PIN_OSPEED_40M(GPIOA_PIN15))
 +#define VAL_GPIOA_PUPDR             (PIN_PUPDR_FLOATING(GPIOA_BUTTON) |     \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN1) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN2) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN3) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN4) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN5) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN6) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN7) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN8) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN9) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN10) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN11) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN12) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOA_SWDAT) |        \
 +                                     PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) |      \
 +                                     PIN_PUPDR_PULLUP(GPIOA_PIN15))
 +#define VAL_GPIOA_ODR               (PIN_ODR_HIGH(GPIOA_BUTTON) |           \
 +                                     PIN_ODR_HIGH(GPIOA_PIN1) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN2) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN3) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN4) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN5) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN6) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN7) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN8) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN9) |             \
 +                                     PIN_ODR_HIGH(GPIOA_PIN10) |            \
 +                                     PIN_ODR_HIGH(GPIOA_PIN11) |            \
 +                                     PIN_ODR_HIGH(GPIOA_PIN12) |            \
 +                                     PIN_ODR_HIGH(GPIOA_SWDAT) |            \
 +                                     PIN_ODR_HIGH(GPIOA_SWCLK) |            \
 +                                     PIN_ODR_HIGH(GPIOA_PIN15))
 +#define VAL_GPIOA_AFRL              (PIN_AFIO_AF(GPIOA_BUTTON, 0) |         \
 +                                     PIN_AFIO_AF(GPIOA_PIN1, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN2, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN3, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN4, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN5, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN6, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN7, 0))
 +#define VAL_GPIOA_AFRH              (PIN_AFIO_AF(GPIOA_PIN8, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN9, 0) |           \
 +                                     PIN_AFIO_AF(GPIOA_PIN10, 0) |          \
 +                                     PIN_AFIO_AF(GPIOA_PIN11, 0) |          \
 +                                     PIN_AFIO_AF(GPIOA_PIN12, 0) |          \
 +                                     PIN_AFIO_AF(GPIOA_SWDAT, 0) |          \
 +                                     PIN_AFIO_AF(GPIOA_SWCLK, 0) |          \
 +                                     PIN_AFIO_AF(GPIOA_PIN15, 0))
  /*
 - * Port B setup.
 - * All input with pull-up except:
 + * GPIOB setup:
 + *
 + * PB0  - PIN0                      (input pullup).
 + * PB1  - PIN1                      (input pullup).
 + * PB2  - PIN2                      (input pullup).
 + * PB3  - PIN3                      (input pullup).
 + * PB4  - PIN4                      (input pullup).
 + * PB5  - PIN5                      (input pullup).
 + * PB6  - PIN6                      (input pullup).
 + * PB7  - PIN7                      (input pullup).
 + * PB8  - PIN8                      (input pullup).
 + * PB9  - PIN9                      (input pullup).
 + * PB10 - PIN10                     (input pullup).
 + * PB11 - PIN11                     (input pullup).
 + * PB12 - PIN12                     (input pullup).
 + * PB13 - PIN13                     (input pullup).
 + * PB14 - PIN14                     (input pullup).
 + * PB15 - PIN15                     (input pullup).
   */
 -#define VAL_GPIOB_MODER             (PIN_MODE_INPUT(0) |                    \
 -                                     PIN_MODE_INPUT(1) |                    \
 -                                     PIN_MODE_INPUT(2) |                    \
 -                                     PIN_MODE_INPUT(3) |                    \
 -                                     PIN_MODE_INPUT(4) |                    \
 -                                     PIN_MODE_INPUT(5) |                    \
 -                                     PIN_MODE_INPUT(6) |                    \
 -                                     PIN_MODE_INPUT(7) |                    \
 -                                     PIN_MODE_INPUT(8) |                    \
 -                                     PIN_MODE_INPUT(9) |                    \
 -                                     PIN_MODE_INPUT(10) |                   \
 -                                     PIN_MODE_INPUT(11) |                   \
 -                                     PIN_MODE_INPUT(12) |                   \
 -                                     PIN_MODE_INPUT(13) |                   \
 -                                     PIN_MODE_INPUT(14) |                   \
 -                                     PIN_MODE_INPUT(15))
 -#define VAL_GPIOB_OTYPER            0x00000000
 -#define VAL_GPIOB_OSPEEDR           0xFFFFFFFF
 -#define VAL_GPIOB_PUPDR             (PIN_PUDR_PULLUP(0) |                   \
 -                                     PIN_PUDR_PULLUP(1) |                   \
 -                                     PIN_PUDR_PULLUP(2) |                   \
 -                                     PIN_PUDR_PULLUP(3) |                   \
 -                                     PIN_PUDR_PULLUP(4) |                   \
 -                                     PIN_PUDR_PULLUP(5) |                   \
 -                                     PIN_PUDR_PULLUP(6) |                   \
 -                                     PIN_PUDR_PULLUP(7) |                   \
 -                                     PIN_PUDR_PULLUP(8) |                   \
 -                                     PIN_PUDR_PULLUP(9) |                   \
 -                                     PIN_PUDR_PULLUP(10) |                  \
 -                                     PIN_PUDR_PULLUP(11) |                  \
 -                                     PIN_PUDR_PULLUP(12) |                  \
 -                                     PIN_PUDR_PULLUP(13) |                  \
 -                                     PIN_PUDR_PULLUP(14) |                  \
 -                                     PIN_PUDR_PULLUP(15))
 -#define VAL_GPIOB_ODR               0xFFFFFFFF
 -#define VAL_GPIOB_AFRL              0x00000000
 -#define VAL_GPIOB_AFRH              0x00000000
 +#define VAL_GPIOB_MODER             (PIN_MODE_INPUT(GPIOB_PIN0) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN1) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN2) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN3) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN4) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN5) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN6) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN7) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN8) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN9) |           \
 +                                     PIN_MODE_INPUT(GPIOB_PIN10) |          \
 +                                     PIN_MODE_INPUT(GPIOB_PIN11) |          \
 +                                     PIN_MODE_INPUT(GPIOB_PIN12) |          \
 +                                     PIN_MODE_INPUT(GPIOB_PIN13) |          \
 +                                     PIN_MODE_INPUT(GPIOB_PIN14) |          \
 +                                     PIN_MODE_INPUT(GPIOB_PIN15))
 +#define VAL_GPIOB_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN1) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN2) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN3) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN4) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN5) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN6) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN7) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN8) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN9) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN10) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN11) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN12) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN13) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN14) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOB_PIN15))
 +#define VAL_GPIOB_OSPEEDR           (PIN_OSPEED_2M(GPIOB_PIN0) |            \
 +                                     PIN_OSPEED_2M(GPIOB_PIN1) |            \
 +                                     PIN_OSPEED_40M(GPIOB_PIN2) |           \
 +                                     PIN_OSPEED_40M(GPIOB_PIN3) |           \
 +                                     PIN_OSPEED_40M(GPIOB_PIN4) |           \
 +                                     PIN_OSPEED_2M(GPIOB_PIN5) |            \
 +                                     PIN_OSPEED_2M(GPIOB_PIN6) |            \
 +                                     PIN_OSPEED_2M(GPIOB_PIN7) |            \
 +                                     PIN_OSPEED_2M(GPIOB_PIN8) |            \
 +                                     PIN_OSPEED_2M(GPIOB_PIN9) |            \
 +                                     PIN_OSPEED_2M(GPIOB_PIN10) |           \
 +                                     PIN_OSPEED_2M(GPIOB_PIN11) |           \
 +                                     PIN_OSPEED_2M(GPIOB_PIN12) |           \
 +                                     PIN_OSPEED_2M(GPIOB_PIN13) |           \
 +                                     PIN_OSPEED_2M(GPIOB_PIN14) |           \
 +                                     PIN_OSPEED_2M(GPIOB_PIN15))
 +#define VAL_GPIOB_PUPDR             (PIN_PUPDR_PULLUP(GPIOB_PIN0) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN1) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN2) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN3) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN4) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN5) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN6) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN7) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN8) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN9) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN10) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN11) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN12) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN13) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN14) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOB_PIN15))
 +#define VAL_GPIOB_ODR               (PIN_ODR_HIGH(GPIOB_PIN0) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN1) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN2) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN3) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN4) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN5) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN6) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN7) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN8) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN9) |             \
 +                                     PIN_ODR_HIGH(GPIOB_PIN10) |            \
 +                                     PIN_ODR_HIGH(GPIOB_PIN11) |            \
 +                                     PIN_ODR_HIGH(GPIOB_PIN12) |            \
 +                                     PIN_ODR_HIGH(GPIOB_PIN13) |            \
 +                                     PIN_ODR_HIGH(GPIOB_PIN14) |            \
 +                                     PIN_ODR_HIGH(GPIOB_PIN15))
 +#define VAL_GPIOB_AFRL              (PIN_AFIO_AF(GPIOB_PIN0, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN1, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN2, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN3, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN4, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN5, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN6, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN7, 0))
 +#define VAL_GPIOB_AFRH              (PIN_AFIO_AF(GPIOB_PIN8, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN9, 0) |           \
 +                                     PIN_AFIO_AF(GPIOB_PIN10, 0) |          \
 +                                     PIN_AFIO_AF(GPIOB_PIN11, 0) |          \
 +                                     PIN_AFIO_AF(GPIOB_PIN12, 0) |          \
 +                                     PIN_AFIO_AF(GPIOB_PIN13, 0) |          \
 +                                     PIN_AFIO_AF(GPIOB_PIN14, 0) |          \
 +                                     PIN_AFIO_AF(GPIOB_PIN15, 0))
  /*
 - * Port C setup.
 - * All input with pull-up except:
 - * PC8  - GPIOC_LED4    (output push-pull).
 - * PC9  - GPIOC_LED3    (output push-pull).
 - * PC13 - OSC32_OUT     (input floating).
 - * PC14 - OSC32_IN      (input floating).
 + * GPIOC setup:
 + *
 + * PC0  - PIN0                      (input pullup).
 + * PC1  - PIN1                      (input pullup).
 + * PC2  - PIN2                      (input pullup).
 + * PC3  - PIN3                      (input pullup).
 + * PC4  - PIN4                      (input pullup).
 + * PC5  - PIN5                      (input pullup).
 + * PC6  - PIN6                      (input pullup).
 + * PC7  - PIN7                      (input pullup).
 + * PC8  - LED4                      (output pushpull maximum).
 + * PC9  - LED3                      (output pushpull maximum).
 + * PC10 - PIN10                     (input pullup).
 + * PC11 - PIN11                     (input pullup).
 + * PC12 - PIN12                     (input pullup).
 + * PC13 - PIN13                     (input pullup).
 + * PC14 - OSC32_IN                  (input floating).
 + * PC15 - OSC32_OUT                 (input floating).
   */
 -#define VAL_GPIOC_MODER             (PIN_MODE_INPUT(0) |                    \
 -                                     PIN_MODE_INPUT(1) |                    \
 -                                     PIN_MODE_INPUT(2) |                    \
 -                                     PIN_MODE_INPUT(3) |                    \
 -                                     PIN_MODE_INPUT(4) |                    \
 -                                     PIN_MODE_INPUT(5) |                    \
 -                                     PIN_MODE_INPUT(6) |                    \
 -                                     PIN_MODE_INPUT(7) |                    \
 +#define VAL_GPIOC_MODER             (PIN_MODE_INPUT(GPIOC_PIN0) |           \
 +                                     PIN_MODE_INPUT(GPIOC_PIN1) |           \
 +                                     PIN_MODE_INPUT(GPIOC_PIN2) |           \
 +                                     PIN_MODE_INPUT(GPIOC_PIN3) |           \
 +                                     PIN_MODE_INPUT(GPIOC_PIN4) |           \
 +                                     PIN_MODE_INPUT(GPIOC_PIN5) |           \
 +                                     PIN_MODE_INPUT(GPIOC_PIN6) |           \
 +                                     PIN_MODE_INPUT(GPIOC_PIN7) |           \
                                       PIN_MODE_OUTPUT(GPIOC_LED4) |          \
                                       PIN_MODE_OUTPUT(GPIOC_LED3) |          \
 -                                     PIN_MODE_INPUT(10) |                   \
 -                                     PIN_MODE_INPUT(11) |                   \
 -                                     PIN_MODE_INPUT(12) |                   \
 -                                     PIN_MODE_INPUT(13) |                   \
 -                                     PIN_MODE_INPUT(14) |                   \
 -                                     PIN_MODE_INPUT(15))
 -#define VAL_GPIOC_OTYPER            0x00000000
 -#define VAL_GPIOC_OSPEEDR           0xFFFFFFFF
 -#define VAL_GPIOC_PUPDR             (PIN_PUDR_PULLUP(0) |                   \
 -                                     PIN_PUDR_PULLUP(1) |                   \
 -                                     PIN_PUDR_PULLUP(2) |                   \
 -                                     PIN_PUDR_PULLUP(3) |                   \
 -                                     PIN_PUDR_PULLUP(4) |                   \
 -                                     PIN_PUDR_PULLUP(5) |                   \
 -                                     PIN_PUDR_PULLUP(6) |                   \
 -                                     PIN_PUDR_PULLUP(7) |                   \
 -                                     PIN_PUDR_FLOATING(GPIOC_LED4) |        \
 -                                     PIN_PUDR_FLOATING(GPIOC_LED3) |        \
 -                                     PIN_PUDR_PULLUP(10) |                  \
 -                                     PIN_PUDR_PULLUP(11) |                  \
 -                                     PIN_PUDR_PULLUP(12) |                  \
 -                                     PIN_PUDR_PULLUP(13) |                  \
 -                                     PIN_PUDR_FLOATING(14) |                \
 -                                     PIN_PUDR_FLOATING(15))
 -#define VAL_GPIOC_ODR               0xFFFFFCFF
 -#define VAL_GPIOC_AFRL              0x00000000
 -#define VAL_GPIOC_AFRH              0x00000000
 +                                     PIN_MODE_INPUT(GPIOC_PIN10) |          \
 +                                     PIN_MODE_INPUT(GPIOC_PIN11) |          \
 +                                     PIN_MODE_INPUT(GPIOC_PIN12) |          \
 +                                     PIN_MODE_INPUT(GPIOC_PIN13) |          \
 +                                     PIN_MODE_INPUT(GPIOC_OSC32_IN) |       \
 +                                     PIN_MODE_INPUT(GPIOC_OSC32_OUT))
 +#define VAL_GPIOC_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN1) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN2) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN3) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN4) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN5) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN6) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN7) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_LED4) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_LED3) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN10) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN11) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN12) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_PIN13) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) |   \
 +                                     PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
 +#define VAL_GPIOC_OSPEEDR           (PIN_OSPEED_2M(GPIOC_PIN0) |            \
 +                                     PIN_OSPEED_2M(GPIOC_PIN1) |            \
 +                                     PIN_OSPEED_2M(GPIOC_PIN2) |            \
 +                                     PIN_OSPEED_2M(GPIOC_PIN3) |            \
 +                                     PIN_OSPEED_2M(GPIOC_PIN4) |            \
 +                                     PIN_OSPEED_2M(GPIOC_PIN5) |            \
 +                                     PIN_OSPEED_2M(GPIOC_PIN6) |            \
 +                                     PIN_OSPEED_2M(GPIOC_PIN7) |            \
 +                                     PIN_OSPEED_40M(GPIOC_LED4) |           \
 +                                     PIN_OSPEED_40M(GPIOC_LED3) |           \
 +                                     PIN_OSPEED_2M(GPIOC_PIN10) |           \
 +                                     PIN_OSPEED_2M(GPIOC_PIN11) |           \
 +                                     PIN_OSPEED_2M(GPIOC_PIN12) |           \
 +                                     PIN_OSPEED_2M(GPIOC_PIN13) |           \
 +                                     PIN_OSPEED_40M(GPIOC_OSC32_IN) |       \
 +                                     PIN_OSPEED_40M(GPIOC_OSC32_OUT))
 +#define VAL_GPIOC_PUPDR             (PIN_PUPDR_PULLUP(GPIOC_PIN0) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN1) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN2) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN3) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN4) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN5) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN6) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN7) |         \
 +                                     PIN_PUPDR_FLOATING(GPIOC_LED4) |       \
 +                                     PIN_PUPDR_FLOATING(GPIOC_LED3) |       \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN10) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN11) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN12) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOC_PIN13) |        \
 +                                     PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) |   \
 +                                     PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
 +#define VAL_GPIOC_ODR               (PIN_ODR_HIGH(GPIOC_PIN0) |             \
 +                                     PIN_ODR_HIGH(GPIOC_PIN1) |             \
 +                                     PIN_ODR_HIGH(GPIOC_PIN2) |             \
 +                                     PIN_ODR_HIGH(GPIOC_PIN3) |             \
 +                                     PIN_ODR_HIGH(GPIOC_PIN4) |             \
 +                                     PIN_ODR_HIGH(GPIOC_PIN5) |             \
 +                                     PIN_ODR_HIGH(GPIOC_PIN6) |             \
 +                                     PIN_ODR_HIGH(GPIOC_PIN7) |             \
 +                                     PIN_ODR_LOW(GPIOC_LED4) |              \
 +                                     PIN_ODR_LOW(GPIOC_LED3) |              \
 +                                     PIN_ODR_HIGH(GPIOC_PIN10) |            \
 +                                     PIN_ODR_HIGH(GPIOC_PIN11) |            \
 +                                     PIN_ODR_HIGH(GPIOC_PIN12) |            \
 +                                     PIN_ODR_HIGH(GPIOC_PIN13) |            \
 +                                     PIN_ODR_HIGH(GPIOC_OSC32_IN) |         \
 +                                     PIN_ODR_HIGH(GPIOC_OSC32_OUT))
 +#define VAL_GPIOC_AFRL              (PIN_AFIO_AF(GPIOC_PIN0, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN1, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN2, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN3, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN4, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN5, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN6, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN7, 0))
 +#define VAL_GPIOC_AFRH              (PIN_AFIO_AF(GPIOC_LED4, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_LED3, 0) |           \
 +                                     PIN_AFIO_AF(GPIOC_PIN10, 0) |          \
 +                                     PIN_AFIO_AF(GPIOC_PIN11, 0) |          \
 +                                     PIN_AFIO_AF(GPIOC_PIN12, 0) |          \
 +                                     PIN_AFIO_AF(GPIOC_PIN13, 0) |          \
 +                                     PIN_AFIO_AF(GPIOC_OSC32_IN, 0) |       \
 +                                     PIN_AFIO_AF(GPIOC_OSC32_OUT, 0))
  /*
 - * Port D setup.
 - * All input with pull-up.
 + * GPIOD setup:
 + *
 + * PD0  - PIN0                      (input pullup).
 + * PD1  - PIN1                      (input pullup).
 + * PD2  - PIN2                      (input pullup).
 + * PD3  - PIN3                      (input pullup).
 + * PD4  - PIN4                      (input pullup).
 + * PD5  - PIN5                      (input pullup).
 + * PD6  - PIN6                      (input pullup).
 + * PD7  - PIN7                      (input pullup).
 + * PD8  - PIN8                      (input pullup).
 + * PD9  - PIN9                      (input pullup).
 + * PD10 - PIN10                     (input pullup).
 + * PD11 - PIN11                     (input pullup).
 + * PD12 - PIN12                     (input pullup).
 + * PD13 - PIN13                     (input pullup).
 + * PD14 - PIN14                     (input pullup).
 + * PD15 - PIN15                     (input pullup).
   */
 -#define VAL_GPIOD_MODER             (PIN_MODE_INPUT(0) |                    \
 -                                     PIN_MODE_INPUT(1) |                    \
 -                                     PIN_MODE_INPUT(2) |                    \
 -                                     PIN_MODE_INPUT(3) |                    \
 -                                     PIN_MODE_INPUT(4) |                    \
 -                                     PIN_MODE_INPUT(5) |                    \
 -                                     PIN_MODE_INPUT(6) |                    \
 -                                     PIN_MODE_INPUT(7) |                    \
 -                                     PIN_MODE_INPUT(8) |                    \
 -                                     PIN_MODE_INPUT(9) |                    \
 -                                     PIN_MODE_INPUT(10) |                   \
 -                                     PIN_MODE_INPUT(11) |                   \
 -                                     PIN_MODE_INPUT(12) |                   \
 -                                     PIN_MODE_INPUT(13) |                   \
 -                                     PIN_MODE_INPUT(14) |                   \
 -                                     PIN_MODE_INPUT(15))
 -#define VAL_GPIOD_OTYPER            0x00000000
 -#define VAL_GPIOD_OSPEEDR           0xFFFFFFFF
 -#define VAL_GPIOD_PUPDR             (PIN_PUDR_PULLUP(0) |                   \
 -                                     PIN_PUDR_PULLUP(1) |                   \
 -                                     PIN_PUDR_PULLUP(2) |                   \
 -                                     PIN_PUDR_PULLUP(3) |                   \
 -                                     PIN_PUDR_PULLUP(4) |                   \
 -                                     PIN_PUDR_PULLUP(5) |                   \
 -                                     PIN_PUDR_PULLUP(6) |                   \
 -                                     PIN_PUDR_PULLUP(7) |                   \
 -                                     PIN_PUDR_PULLUP(8) |                   \
 -                                     PIN_PUDR_PULLUP(9) |                   \
 -                                     PIN_PUDR_PULLUP(10) |                  \
 -                                     PIN_PUDR_PULLUP(11) |                  \
 -                                     PIN_PUDR_PULLUP(12) |                  \
 -                                     PIN_PUDR_PULLUP(13) |                  \
 -                                     PIN_PUDR_PULLUP(14) |                  \
 -                                     PIN_PUDR_PULLUP(15))
 -#define VAL_GPIOD_ODR               0xFFFFFFFF
 -#define VAL_GPIOD_AFRL              0x00000000
 -#define VAL_GPIOD_AFRH              0x00000000
 +#define VAL_GPIOD_MODER             (PIN_MODE_INPUT(GPIOD_PIN0) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN1) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN2) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN3) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN4) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN5) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN6) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN7) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN8) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN9) |           \
 +                                     PIN_MODE_INPUT(GPIOD_PIN10) |          \
 +                                     PIN_MODE_INPUT(GPIOD_PIN11) |          \
 +                                     PIN_MODE_INPUT(GPIOD_PIN12) |          \
 +                                     PIN_MODE_INPUT(GPIOD_PIN13) |          \
 +                                     PIN_MODE_INPUT(GPIOD_PIN14) |          \
 +                                     PIN_MODE_INPUT(GPIOD_PIN15))
 +#define VAL_GPIOD_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN1) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN2) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN3) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN4) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN5) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN6) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN7) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN8) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN9) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN10) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN11) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN12) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN13) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN14) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
 +#define VAL_GPIOD_OSPEEDR           (PIN_OSPEED_2M(GPIOD_PIN0) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN1) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN2) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN3) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN4) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN5) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN6) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN7) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN8) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN9) |            \
 +                                     PIN_OSPEED_2M(GPIOD_PIN10) |           \
 +                                     PIN_OSPEED_2M(GPIOD_PIN11) |           \
 +                                     PIN_OSPEED_2M(GPIOD_PIN12) |           \
 +                                     PIN_OSPEED_2M(GPIOD_PIN13) |           \
 +                                     PIN_OSPEED_2M(GPIOD_PIN14) |           \
 +                                     PIN_OSPEED_2M(GPIOD_PIN15))
 +#define VAL_GPIOD_PUPDR             (PIN_PUPDR_PULLUP(GPIOD_PIN0) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN1) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN2) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN3) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN4) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN5) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN6) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN7) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN8) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN9) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN10) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN11) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN12) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN13) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN14) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOD_PIN15))
 +#define VAL_GPIOD_ODR               (PIN_ODR_HIGH(GPIOD_PIN0) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN1) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN2) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN3) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN4) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN5) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN6) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN7) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN8) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN9) |             \
 +                                     PIN_ODR_HIGH(GPIOD_PIN10) |            \
 +                                     PIN_ODR_HIGH(GPIOD_PIN11) |            \
 +                                     PIN_ODR_HIGH(GPIOD_PIN12) |            \
 +                                     PIN_ODR_HIGH(GPIOD_PIN13) |            \
 +                                     PIN_ODR_HIGH(GPIOD_PIN14) |            \
 +                                     PIN_ODR_HIGH(GPIOD_PIN15))
 +#define VAL_GPIOD_AFRL              (PIN_AFIO_AF(GPIOD_PIN0, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN1, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN2, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN3, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN4, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN5, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN6, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN7, 0))
 +#define VAL_GPIOD_AFRH              (PIN_AFIO_AF(GPIOD_PIN8, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN9, 0) |           \
 +                                     PIN_AFIO_AF(GPIOD_PIN10, 0) |          \
 +                                     PIN_AFIO_AF(GPIOD_PIN11, 0) |          \
 +                                     PIN_AFIO_AF(GPIOD_PIN12, 0) |          \
 +                                     PIN_AFIO_AF(GPIOD_PIN13, 0) |          \
 +                                     PIN_AFIO_AF(GPIOD_PIN14, 0) |          \
 +                                     PIN_AFIO_AF(GPIOD_PIN15, 0))
  /*
 - * Port F setup.
 - * All input with pull-up.
 + * GPIOF setup:
 + *
 + * PF0  - OSC_IN                    (input floating).
 + * PF1  - OSC_OUT                   (input floating).
 + * PF2  - PIN2                      (input pullup).
 + * PF3  - PIN3                      (input pullup).
 + * PF4  - PIN4                      (input pullup).
 + * PF5  - PIN5                      (input pullup).
 + * PF6  - PIN6                      (input pullup).
 + * PF7  - PIN7                      (input pullup).
 + * PF8  - PIN8                      (input pullup).
 + * PF9  - PIN9                      (input pullup).
 + * PF10 - PIN10                     (input pullup).
 + * PF11 - PIN11                     (input pullup).
 + * PF12 - PIN12                     (input pullup).
 + * PF13 - PIN13                     (input pullup).
 + * PF14 - PIN14                     (input pullup).
 + * PF15 - PIN15                     (input pullup).
   */
 -#define VAL_GPIOF_MODER             (PIN_MODE_INPUT(0) |                    \
 -                                     PIN_MODE_INPUT(1) |                    \
 -                                     PIN_MODE_INPUT(2) |                    \
 -                                     PIN_MODE_INPUT(3) |                    \
 -                                     PIN_MODE_INPUT(4) |                    \
 -                                     PIN_MODE_INPUT(5) |                    \
 -                                     PIN_MODE_INPUT(6) |                    \
 -                                     PIN_MODE_INPUT(7) |                    \
 -                                     PIN_MODE_INPUT(8) |                    \
 -                                     PIN_MODE_INPUT(9) |                    \
 -                                     PIN_MODE_INPUT(10) |                   \
 -                                     PIN_MODE_INPUT(11) |                   \
 -                                     PIN_MODE_INPUT(12) |                   \
 -                                     PIN_MODE_INPUT(13) |                   \
 -                                     PIN_MODE_INPUT(14) |                   \
 -                                     PIN_MODE_INPUT(15))
 -#define VAL_GPIOF_OTYPER            0x00000000
 -#define VAL_GPIOF_OSPEEDR           0xFFFFFFFF
 -#define VAL_GPIOF_PUPDR             (PIN_PUDR_PULLUP(0) |                   \
 -                                     PIN_PUDR_PULLUP(1) |                   \
 -                                     PIN_PUDR_PULLUP(2) |                   \
 -                                     PIN_PUDR_PULLUP(3) |                   \
 -                                     PIN_PUDR_PULLUP(4) |                   \
 -                                     PIN_PUDR_PULLUP(5) |                   \
 -                                     PIN_PUDR_PULLUP(6) |                   \
 -                                     PIN_PUDR_PULLUP(7) |                   \
 -                                     PIN_PUDR_PULLUP(8) |                   \
 -                                     PIN_PUDR_PULLUP(9) |                   \
 -                                     PIN_PUDR_PULLUP(10) |                  \
 -                                     PIN_PUDR_PULLUP(11) |                  \
 -                                     PIN_PUDR_PULLUP(12) |                  \
 -                                     PIN_PUDR_PULLUP(13) |                  \
 -                                     PIN_PUDR_PULLUP(14) |                  \
 -                                     PIN_PUDR_PULLUP(15))
 -#define VAL_GPIOF_ODR               0xFFFFFFFF
 -#define VAL_GPIOF_AFRL              0x00000000
 -#define VAL_GPIOF_AFRH              0x00000000
 +#define VAL_GPIOF_MODER             (PIN_MODE_INPUT(GPIOF_OSC_IN) |         \
 +                                     PIN_MODE_INPUT(GPIOF_OSC_OUT) |        \
 +                                     PIN_MODE_INPUT(GPIOF_PIN2) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN3) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN4) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN5) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN6) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN7) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN8) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN9) |           \
 +                                     PIN_MODE_INPUT(GPIOF_PIN10) |          \
 +                                     PIN_MODE_INPUT(GPIOF_PIN11) |          \
 +                                     PIN_MODE_INPUT(GPIOF_PIN12) |          \
 +                                     PIN_MODE_INPUT(GPIOF_PIN13) |          \
 +                                     PIN_MODE_INPUT(GPIOF_PIN14) |          \
 +                                     PIN_MODE_INPUT(GPIOF_PIN15))
 +#define VAL_GPIOF_OTYPER            (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) |     \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) |    \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN2) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN3) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN4) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN5) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN6) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN7) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN8) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN9) |       \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN10) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN11) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN12) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN13) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN14) |      \
 +                                     PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
 +#define VAL_GPIOF_OSPEEDR           (PIN_OSPEED_2M(GPIOF_OSC_IN) |          \
 +                                     PIN_OSPEED_2M(GPIOF_OSC_OUT) |         \
 +                                     PIN_OSPEED_2M(GPIOF_PIN2) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN3) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN4) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN5) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN6) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN7) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN8) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN9) |            \
 +                                     PIN_OSPEED_2M(GPIOF_PIN10) |           \
 +                                     PIN_OSPEED_2M(GPIOF_PIN11) |           \
 +                                     PIN_OSPEED_2M(GPIOF_PIN12) |           \
 +                                     PIN_OSPEED_2M(GPIOF_PIN13) |           \
 +                                     PIN_OSPEED_2M(GPIOF_PIN14) |           \
 +                                     PIN_OSPEED_2M(GPIOF_PIN15))
 +#define VAL_GPIOF_PUPDR             (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) |     \
 +                                     PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) |    \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN2) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN3) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN4) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN5) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN6) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN7) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN8) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN9) |         \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN10) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN11) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN12) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN13) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN14) |        \
 +                                     PIN_PUPDR_PULLUP(GPIOF_PIN15))
 +#define VAL_GPIOF_ODR               (PIN_ODR_HIGH(GPIOF_OSC_IN) |           \
 +                                     PIN_ODR_HIGH(GPIOF_OSC_OUT) |          \
 +                                     PIN_ODR_HIGH(GPIOF_PIN2) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN3) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN4) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN5) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN6) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN7) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN8) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN9) |             \
 +                                     PIN_ODR_HIGH(GPIOF_PIN10) |            \
 +                                     PIN_ODR_HIGH(GPIOF_PIN11) |            \
 +                                     PIN_ODR_HIGH(GPIOF_PIN12) |            \
 +                                     PIN_ODR_HIGH(GPIOF_PIN13) |            \
 +                                     PIN_ODR_HIGH(GPIOF_PIN14) |            \
 +                                     PIN_ODR_HIGH(GPIOF_PIN15))
 +#define VAL_GPIOF_AFRL              (PIN_AFIO_AF(GPIOF_OSC_IN, 0) |         \
 +                                     PIN_AFIO_AF(GPIOF_OSC_OUT, 0) |        \
 +                                     PIN_AFIO_AF(GPIOF_PIN2, 0) |           \
 +                                     PIN_AFIO_AF(GPIOF_PIN3, 0) |           \
 +                                     PIN_AFIO_AF(GPIOF_PIN4, 0) |           \
 +                                     PIN_AFIO_AF(GPIOF_PIN5, 0) |           \
 +                                     PIN_AFIO_AF(GPIOF_PIN6, 0) |           \
 +                                     PIN_AFIO_AF(GPIOF_PIN7, 0))
 +#define VAL_GPIOF_AFRH              (PIN_AFIO_AF(GPIOF_PIN8, 0) |           \
 +                                     PIN_AFIO_AF(GPIOF_PIN9, 0) |           \
 +                                     PIN_AFIO_AF(GPIOF_PIN10, 0) |          \
 +                                     PIN_AFIO_AF(GPIOF_PIN11, 0) |          \
 +                                     PIN_AFIO_AF(GPIOF_PIN12, 0) |          \
 +                                     PIN_AFIO_AF(GPIOF_PIN13, 0) |          \
 +                                     PIN_AFIO_AF(GPIOF_PIN14, 0) |          \
 +                                     PIN_AFIO_AF(GPIOF_PIN15, 0))
 +
  #if !defined(_FROM_ASM_)
  #ifdef __cplusplus
 diff --git a/boards/ST_STM32F0_DISCOVERY/board.mk b/boards/ST_STM32F0_DISCOVERY/board.mk index 144ae4963..b01198769 100644 --- a/boards/ST_STM32F0_DISCOVERY/board.mk +++ b/boards/ST_STM32F0_DISCOVERY/board.mk @@ -1,5 +1,5 @@  # List of all the board related files.
 -BOARDSRC = ${CHIBIOS}/boards/ST_STM32F0_DISCOVERY/board.c
 +BOARDSRC = ${CHIBIOS}/boards/BOARD_ST_STM32F0_DISCOVERY/board.c
  # Required include directories
 -BOARDINC = ${CHIBIOS}/boards/ST_STM32F0_DISCOVERY
 +BOARDINC = ${CHIBIOS}/boards/BOARD_ST_STM32F0_DISCOVERY
 diff --git a/boards/ST_STM32F0_DISCOVERY/cfg/board.chcfg b/boards/ST_STM32F0_DISCOVERY/cfg/board.chcfg new file mode 100644 index 000000000..11e9fa54e --- /dev/null +++ b/boards/ST_STM32F0_DISCOVERY/cfg/board.chcfg @@ -0,0 +1,11 @@ +# Automatically generated configuration project file. + +# Templates path in the configuration plugin resources, do not modify. +source=resources/gencfg/processors/boards/stm32f0xx/templates + +# XML configuration data file path relative to this configuration file. +xmlfile=board.chxml + +# Output directory path relative to directory containing this configuration +# file. +output=.. diff --git a/boards/ST_STM32F0_DISCOVERY/cfg/board.chxml b/boards/ST_STM32F0_DISCOVERY/cfg/board.chxml new file mode 100644 index 000000000..6679b29eb --- /dev/null +++ b/boards/ST_STM32F0_DISCOVERY/cfg/board.chxml @@ -0,0 +1,665 @@ +<?xml version="1.0" encoding="UTF-8"?>
 +<!-- STM32F0xx board Template -->
 +<board
 +  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +  xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd">
 +  <board_name>ST STM32F0-Discovery</board_name>
 +  <board_id>BOARD_ST_STM32F0_DISCOVERY</board_id>
 +  <board_functions></board_functions>
 +  <clocks
 +    HSEFrequency="0"
 +    HSEBypass="true"
 +    LSEFrequency="0" />
 +  <ports>
 +    <GPIOA>
 +      <pin0
 +        ID="BUTTON"
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="Floating"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin1
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin2
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin3
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin4
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin5
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin6
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin7
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin8
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin9
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin10
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin11
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin12
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin13
 +        ID="SWDAT"
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Alternate"
 +        Alternate="0" />
 +      <pin14
 +        ID="SWCLK"
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="PullDown"
 +        Level="High"
 +        Mode="Alternate"
 +        Alternate="0" />
 +      <pin15
 +        ID=""
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +    </GPIOA>
 +    <GPIOB>
 +      <pin0
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin1
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin2
 +        ID=""
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin3
 +        ID=""
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin4
 +        ID=""
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin5
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin6
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin7
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin8
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin9
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin10
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin11
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin12
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin13
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin14
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin15
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +    </GPIOB>
 +    <GPIOC>
 +      <pin0
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin1
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin2
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin3
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin4
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin5
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin6
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin7
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin8
 +        ID="LED4"
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="Floating"
 +        Level="Low"
 +        Mode="Output"
 +        Alternate="0" />
 +      <pin9
 +        ID="LED3"
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="Floating"
 +        Level="Low"
 +        Mode="Output"
 +        Alternate="0" />
 +      <pin10
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin11
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin12
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin13
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin14
 +        ID="OSC32_IN"
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="Floating"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin15
 +        ID="OSC32_OUT"
 +        Type="PushPull"
 +        Speed="Maximum"
 +        Resistor="Floating"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +    </GPIOC>
 +    <GPIOD>
 +      <pin0
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin1
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin2
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin3
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin4
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin5
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin6
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin7
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin8
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin9
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin10
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin11
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin12
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin13
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin14
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin15
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +    </GPIOD>
 +    <GPIOF>
 +      <pin0
 +        ID="OSC_IN"
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="Floating"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin1
 +        ID="OSC_OUT"
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="Floating"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin2
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin3
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin4
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin5
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin6
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin7
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin8
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin9
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin10
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin11
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin12
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin13
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin14
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +      <pin15
 +        ID=""
 +        Type="PushPull"
 +        Speed="Minimum"
 +        Resistor="PullUp"
 +        Level="High"
 +        Mode="Input"
 +        Alternate="0" />
 +    </GPIOF>
 +  </ports>
 +</board>
 diff --git a/readme.txt b/readme.txt index 870d22af9..d4cc72f3e 100644 --- a/readme.txt +++ b/readme.txt @@ -162,6 +162,8 @@    3484947)(backported to 2.4.1).
  - FIX: Fixed various minor documentation errors (bug 3484942)(backported
    to 2.4.1).
 +- NEW: Added configuration wizard plugin under ./tools/eclipse/plugins. This
 +  first version is able to configure the board files for STM32F0 and STM32F4.
  - NEW: Added USART6 support to the STM32 UARTv1 driver, contributed by Erik
    van der Zalm.
  - NEW: Added demo for Arduino Mega, contributed by Fabio Utzig.
 diff --git a/tools/eclipse/config_wizard/META-INF/MANIFEST.MF b/tools/eclipse/config_wizard/META-INF/MANIFEST.MF index 8d3f5f45a..96de4cd14 100644 --- a/tools/eclipse/config_wizard/META-INF/MANIFEST.MF +++ b/tools/eclipse/config_wizard/META-INF/MANIFEST.MF @@ -11,7 +11,7 @@ Require-Bundle: org.eclipse.core.resources,   org.eclipse.ui.ide  Bundle-ActivationPolicy: lazy  Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Bundle-Vendor: chibios-org +Bundle-Vendor: chibios.org  Bundle-ClassPath: .,   lib/jdom-2.0.2.jar,   lib/freemarker.jar, diff --git a/tools/eclipse/config_wizard/resources/gencfg/processors/boards/stm32f0xx/templates/board.h.ftl b/tools/eclipse/config_wizard/resources/gencfg/processors/boards/stm32f0xx/templates/board.h.ftl index 798161f83..30fda47df 100644 --- a/tools/eclipse/config_wizard/resources/gencfg/processors/boards/stm32f0xx/templates/board.h.ftl +++ b/tools/eclipse/config_wizard/resources/gencfg/processors/boards/stm32f0xx/templates/board.h.ftl @@ -103,9 +103,8 @@  #define PIN_ODR_HIGH(n)             (1U << (n))
  #define PIN_OTYPE_PUSHPULL(n)       (0U << (n))
  #define PIN_OTYPE_OPENDRAIN(n)      (1U << (n))
 -#define PIN_OSPEED_400K(n)          (0U << ((n) * 2))
 -#define PIN_OSPEED_2M(n)            (1U << ((n) * 2))
 -#define PIN_OSPEED_10M(n)           (2U << ((n) * 2))
 +#define PIN_OSPEED_2M(n)            (0U << ((n) * 2))
 +#define PIN_OSPEED_10M(n)           (1U << ((n) * 2))
  #define PIN_OSPEED_40M(n)           (3U << ((n) * 2))
  #define PIN_PUPDR_FLOATING(n)       (0U << ((n) * 2))
  #define PIN_PUPDR_PULLUP(n)         (1U << ((n) * 2))
 @@ -208,7 +207,7 @@ ${line + ")"}      [/#if]
      [#assign speed = pin.@Speed[0] /]
      [#if speed == "Minimum"]
 -      [#assign out = "PIN_OSPEED_400K(" + port_name + "_" + name + ")" /]
 +      [#assign out = "PIN_OSPEED_2M(" + port_name + "_" + name + ")" /]
      [#elseif speed == "Low"]
        [#assign out = "PIN_OSPEED_2M(" + port_name + "_" + name + ")" /]
      [#elseif speed == "High"]
 diff --git a/tools/eclipse/config_wizard/resources/gencfg/xml/stm32f0board.xml b/tools/eclipse/config_wizard/resources/gencfg/xml/stm32f0board.xml index 57ec5f9e5..7e4dd5459 100644 --- a/tools/eclipse/config_wizard/resources/gencfg/xml/stm32f0board.xml +++ b/tools/eclipse/config_wizard/resources/gencfg/xml/stm32f0board.xml @@ -120,7 +120,7 @@          ID="SWDAT"
          Type="PushPull"
          Speed="Maximum"
 -        Resistor="Floating"
 +        Resistor="PullUp"
          Level="High"
          Mode="Alternate"
          Alternate="0" />
 diff --git a/tools/eclipse/plugins/org.chibios.tools.eclipse.config_1.0.2.jar b/tools/eclipse/plugins/org.chibios.tools.eclipse.config_1.0.2.jarBinary files differ index 6da515a9a..3ecd62c5d 100644 --- a/tools/eclipse/plugins/org.chibios.tools.eclipse.config_1.0.2.jar +++ b/tools/eclipse/plugins/org.chibios.tools.eclipse.config_1.0.2.jar | 
