board_test example run with lpcxpresso51u68

This commit is contained in:
hathach 2019-08-26 12:24:46 +07:00
parent d4895c4af6
commit fa796de6cd
2 changed files with 64 additions and 7 deletions

View File

@ -15,7 +15,8 @@ LD_FILE = hw/bsp/lpcxpresso51u68/LPC51U68_flash.ld
SRC_C += \
hw/mcu/nxp/lpcopen/lpc51u6x/system_LPC51U68.c \
hw/mcu/nxp/lpcopen/lpc51u6x/drivers/fsl_clock.c \
hw/mcu/nxp/lpcopen/lpc51u6x/drivers/fsl_gpio.c
hw/mcu/nxp/lpcopen/lpc51u6x/drivers/fsl_gpio.c \
hw/mcu/nxp/lpcopen/lpc51u6x/drivers/fsl_reset.c
INC += \
$(TOP)/hw/mcu/nxp/lpcopen/lpc51u6x \

View File

@ -25,6 +25,7 @@
*/
#include "../board.h"
#include "LPC51U68.h"
#include "fsl_gpio.h"
#define LED_PORT 0
@ -37,11 +38,66 @@
void board_init(void)
{
/* Board pin, clock, debug console init */
/* attach 12 MHz clock to FLEXCOMM0 (debug console) */
// CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
/* enable clock for GPIO*/
CLOCK_EnableClock(kCLOCK_Gpio0);
CLOCK_EnableClock(kCLOCK_Gpio1);
/* Board pin, clock, debug console init */
/* attach 12 MHz clock to FLEXCOMM0 (debug console) */
// CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);
/* enable clock for GPIO*/
CLOCK_EnableClock(kCLOCK_Gpio0);
CLOCK_EnableClock(kCLOCK_Gpio1);
#if CFG_TUSB_OS == OPT_OS_NONE
// 1ms tick timer
SysTick_Config(SystemCoreClock / 1000);
#elif CFG_TUSB_OS == OPT_OS_FREERTOS
// If freeRTOS is used, IRQ priority is limit by max syscall ( smaller is higher )
NVIC_SetPriority(USB0_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY );
#endif
// LED
gpio_pin_config_t led_config = { kGPIO_DigitalOutput, 0, };
GPIO_PortInit(GPIO, LED_PORT);
GPIO_PinInit(GPIO, LED_PORT, LED_PIN, &led_config);
}
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state)
{
GPIO_PinWrite(GPIO, LED_PORT, LED_PIN, state ? LED_STATE_ON : (1-LED_STATE_ON));
}
uint32_t board_button_read(void)
{
// active low
// return Chip_GPIO_GetPinState(LPC_GPIO, BUTTON_PORT, BUTTON_PIN) ? 0 : 1;
return 0;
}
int board_uart_read(uint8_t* buf, int len)
{
(void) buf;
(void) len;
return 0;
}
int board_uart_write(void const * buf, int len)
{
(void) buf;
(void) len;
return 0;
}
#if CFG_TUSB_OS == OPT_OS_NONE
volatile uint32_t system_ticks = 0;
void SysTick_Handler (void)
{
system_ticks++;
}
uint32_t board_millis(void)
{
return system_ticks;
}
#endif