From 5a046799f6d22af0b849e4312ceed14f2250a85e Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 13 Nov 2018 12:32:15 +0700 Subject: [PATCH] clean up board.h --- hw/bsp/board.h | 86 +++++++++++--------------------- hw/bsp/pca10056/board_pca10056.c | 18 +++---- hw/bsp/pca10056/board_pca10056.h | 6 ++- 3 files changed, 43 insertions(+), 67 deletions(-) diff --git a/hw/bsp/board.h b/hw/bsp/board.h index c8d6546ac..580494d29 100644 --- a/hw/bsp/board.h +++ b/hw/bsp/board.h @@ -40,8 +40,8 @@ * \defgroup group_board Boards Abstraction Layer * @{ */ -#ifndef _TUSB_BOARD_H_ -#define _TUSB_BOARD_H_ +#ifndef _BSP_BOARD_H_ +#define _BSP_BOARD_H_ #ifdef __cplusplus extern "C" { @@ -52,26 +52,6 @@ #include "ansi_escape.h" -//--------------------------------------------------------------------+ -// BOARD DEFINE -//--------------------------------------------------------------------+ -/** \defgroup group_supported_board Supported Boards - * @{ */ -#define BOARD_LPCXPRESSO11U14 1114 ///< LPCXpresso 11u14, some APIs requires the base board -#define BOARD_LPCXPRESSO11U68 1168 ///< LPC11U37 from microbuilder http://www.microbuilder.eu/Blog/13-03-14/LPC1xxx_1GHZ_Wireless_Board_Preview.aspx -#define BOARD_LPCXPRESSO1347 1347 ///< LPCXpresso 1347, some APIs requires the base board -#define BOARD_LPCXPRESSO1769 1769 ///< LPCXpresso 1769, some APIs requires the base board - -#define BOARD_NGX4330 4330 ///< NGX 4330 Xplorer -#define BOARD_EA4357 4357 ///< Embedded Artists LPC4357 developer kit -#define BOARD_MCB4300 4300 ///< Keil MCB4300 -#define BOARD_HITEX4350 4350 ///< Hitex 4350 - -#define BOARD_LPC4357USB 4304 ///< microbuilder.eu - -#define BOARD_LPCLINK2 4370 ///< LPClink2 uses as LPC4370 development board -/** @} */ - //--------------------------------------------------------------------+ // PRINTF TARGET DEFINE //--------------------------------------------------------------------+ @@ -86,28 +66,25 @@ #define PRINTF(...) printf(__VA_ARGS__) -//--------------------------------------------------------------------+ -// BOARD INCLUDE -//--------------------------------------------------------------------+ -#if BOARD == BOARD_LPCXPRESSO11U14 +#if defined BOARD_LPCXPRESSO11U14 #include "lpcxpresso11u14/board_lpcxpresso11u14.h" -#elif BOARD == BOARD_LPCXPRESSO11U68 +#elif defined BOARD_LPCXPRESSO11U68 #include "lpcxpresso11u68/board_lpcxpresso11u68.h" -#elif BOARD == BOARD_LPCXPRESSO1347 +#elif defined BOARD_LPCXPRESSO1347 #include "lpcxpresso1347/board_lpcxpresso1347.h" -#elif BOARD == BOARD_LPCXPRESSO1769 +#elif defined BOARD_LPCXPRESSO1769 #include "lpcxpresso1769/board_lpcxpresso1769.h" -#elif BOARD == BOARD_NGX4330 +#elif defined BOARD_NGX4330 #include "ngx/board_ngx4330.h" -#elif BOARD == BOARD_EA4357 +#elif defined BOARD_EA4357 #include "ea4357/board_ea4357.h" -#elif BOARD == BOARD_MCB4300 +#elif defined BOARD_MCB4300 #include "keil/board_mcb4300.h" -#elif BOARD == BOARD_HITEX4350 +#elif defined BOARD_HITEX4350 #include "hitex/board_hitex4350.h" -#elif BOARD == BOARD_LPC4357USB +#elif defined BOARD_LPC4357USB #include "microbuilder/board_lpc4357usb.h" -#elif BOARD == BOARD_LPCLINK2 +#elif defined BOARD_LPCLINK2 #include "lpcxpresso/board_lpclink2.h" #elif defined BOARD_PCA10056 #include "pca10056/board_pca10056.h" @@ -115,28 +92,20 @@ #error BOARD is not defined or supported yet #endif -//--------------------------------------------------------------------+ -// Common Configuration -//--------------------------------------------------------------------+ -#define CFG_UART_BAUDRATE 115200 ///< Baudrate for UART - +#define CFG_UART_BAUDRATE 115200 #define BOARD_TICKS_HZ 1000 +#define board_tick2ms(tck) ( ( ((uint64_t)(tck)) * 1000) / BOARD_TICKS_HZ ) -#define board_tick2ms(tck) ( ( ((uint64_t)(tck)) * 1000) / BOARD_TICKS_HZ ) -//--------------------------------------------------------------------+ -// Board Common API -//--------------------------------------------------------------------+ -/** \defgroup group_board_api Board API - * \brief All the board must support these APIs. - * @{ */ - -/// Initialize all required peripherals on board including uart, led, buttons etc ... +/// Initialize on-board peripherals void board_init(void); - -#define BOARD_LED0 0 - +//--------------------------------------------------------------------+ +// LED +// Board variant must defined following +// - BOARD_LED_NUM : number of LEDs +// - BOARD_LEDn : where n is 0,1 etc ... +//--------------------------------------------------------------------+ void board_led_control(uint32_t led_id, bool state); static inline void board_led_on(uint32_t led_id) @@ -149,27 +118,30 @@ static inline void board_led_off(uint32_t led_id) board_led_control(led_id, false); } -/** \brief Get the current state of the buttons on the board +//--------------------------------------------------------------------+ +// Buttons +// TODO refractor later +//--------------------------------------------------------------------+ +/** Get the current state of the buttons on the board * \return Bitmask where a '1' means active (pressed), a '0' means inactive. */ uint32_t board_buttons(void); -/** \brief Get a character input from UART +/** Get a character input from UART * \return ASCII code of the input character or zero if none. */ uint8_t board_uart_getchar(void); -/** \brief Send a character to UART +/** Send a character to UART * \param[in] c the character to be sent */ void board_uart_putchar(uint8_t c); -/** @} */ #ifdef __cplusplus } #endif -#endif /* _TUSB_BOARD_H_ */ +#endif /* _BSP_BOARD_H_ */ /** @} */ diff --git a/hw/bsp/pca10056/board_pca10056.c b/hw/bsp/pca10056/board_pca10056.c index 6c7e38e12..928c39acf 100644 --- a/hw/bsp/pca10056/board_pca10056.c +++ b/hw/bsp/pca10056/board_pca10056.c @@ -37,16 +37,14 @@ /**************************************************************************/ #include "bsp/board.h" -#include "nrf_gpio.h" -#include "nrfx_power.h" -#include "nrfx_qspi.h" +#include "nrfx/hal/nrf_gpio.h" +#include "nrfx/drivers/include/nrfx_power.h" +#include "nrfx/drivers/include/nrfx_qspi.h" #include "tusb.h" /*------------------------------------------------------------------*/ /* MACRO TYPEDEF CONSTANT ENUM *------------------------------------------------------------------*/ -#define LED_1 13 - #define LED_STATE_ON 0 #define LED_STATE_OFF (1-LED_STATE_ON) @@ -94,8 +92,11 @@ void board_init(void) NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk); NRF_CLOCK->TASKS_LFCLKSTART = 1UL; - // LED - nrf_gpio_cfg_output(LED_1); + // LEDs + nrf_gpio_cfg_output(BOARD_LED0); + nrf_gpio_cfg_output(BOARD_LED1); + nrf_gpio_cfg_output(BOARD_LED2); + nrf_gpio_cfg_output(BOARD_LED3); // Button for(uint8_t i=0; i