From 4de9439fb11a412630c758217779920a11487cd2 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 14 Jan 2020 18:13:42 +0700 Subject: [PATCH 1/2] more nuvoton support - add LED for nutiny nuc 121, 125s, 126v - flash target to use nuvoton's openocd fork --- hw/bsp/nutiny_nuc121s/board.mk | 7 +++++-- hw/bsp/nutiny_nuc121s/nutiny_nuc121.c | 10 +++++++++- hw/bsp/nutiny_nuc125s/board.mk | 9 ++++++--- hw/bsp/nutiny_nuc125s/nutiny_nuc125.c | 10 +++++++++- hw/bsp/nutiny_nuc126v/board.mk | 6 ++++-- hw/bsp/nutiny_nuc126v/nutiny_nuc126.c | 10 +++++++++- 6 files changed, 42 insertions(+), 10 deletions(-) diff --git a/hw/bsp/nutiny_nuc121s/board.mk b/hw/bsp/nutiny_nuc121s/board.mk index ec4966cb0..7e01de2bb 100644 --- a/hw/bsp/nutiny_nuc121s/board.mk +++ b/hw/bsp/nutiny_nuc121s/board.mk @@ -51,5 +51,8 @@ FREERTOS_PORT = ARM_CM0 JLINK_DEVICE = NUC121SC2AE JLINK_IF = swd -# flash using jlink -flash: flash-jlink + +# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton +# Please compile and install it from github source +flash: $(BUILD)/$(BOARD)-firmware.elf + openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< verify reset exit" diff --git a/hw/bsp/nutiny_nuc121s/nutiny_nuc121.c b/hw/bsp/nutiny_nuc121s/nutiny_nuc121.c index 51ca28a82..dfa67206b 100644 --- a/hw/bsp/nutiny_nuc121s/nutiny_nuc121.c +++ b/hw/bsp/nutiny_nuc121s/nutiny_nuc121.c @@ -29,6 +29,11 @@ #include "clk.h" #include "sys.h" +#define LED_PORT PB +#define LED_PIN 4 +#define LED_PIN_IO PB4 +#define LED_STATE_ON 0 + void board_init(void) { /* Unlock protected registers */ @@ -60,6 +65,9 @@ void board_init(void) // 1ms tick timer SysTick_Config(48000000 / 1000); #endif + + // LED + GPIO_SetMode(LED_PORT, 1 << LED_PIN, GPIO_MODE_OUTPUT); } #if CFG_TUSB_OS == OPT_OS_NONE @@ -81,7 +89,7 @@ uint32_t board_millis(void) void board_led_write(bool state) { - (void)(state); + LED_PIN_IO = (state ? LED_STATE_ON : (1-LED_STATE_ON)); } uint32_t board_button_read(void) diff --git a/hw/bsp/nutiny_nuc125s/board.mk b/hw/bsp/nutiny_nuc125s/board.mk index 6329ca7cf..d563db5e9 100644 --- a/hw/bsp/nutiny_nuc125s/board.mk +++ b/hw/bsp/nutiny_nuc125s/board.mk @@ -13,7 +13,8 @@ LD_FILE = hw/bsp/nutiny_nuc125s/nuc125_flash.ld SRC_C += \ hw/mcu/nuvoton/nuc121_125/Device/Nuvoton/NUC121/Source/system_NUC121.c \ - hw/mcu/nuvoton/nuc121_125/StdDriver/src/clk.c + hw/mcu/nuvoton/nuc121_125/StdDriver/src/clk.c \ + hw/mcu/nuvoton/nuc121_125/StdDriver/src/gpio.c SRC_S += \ hw/mcu/nuvoton/nuc121_125/Device/Nuvoton/NUC121/Source/GCC/startup_NUC121.S @@ -34,5 +35,7 @@ FREERTOS_PORT = ARM_CM0 JLINK_DEVICE = NUC125SC2AE JLINK_IF = swd -# flash using jlink -flash: flash-jlink +# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton +# Please compile and install it from github source +flash: $(BUILD)/$(BOARD)-firmware.elf + openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< verify reset exit" diff --git a/hw/bsp/nutiny_nuc125s/nutiny_nuc125.c b/hw/bsp/nutiny_nuc125s/nutiny_nuc125.c index 51ca28a82..dfa67206b 100644 --- a/hw/bsp/nutiny_nuc125s/nutiny_nuc125.c +++ b/hw/bsp/nutiny_nuc125s/nutiny_nuc125.c @@ -29,6 +29,11 @@ #include "clk.h" #include "sys.h" +#define LED_PORT PB +#define LED_PIN 4 +#define LED_PIN_IO PB4 +#define LED_STATE_ON 0 + void board_init(void) { /* Unlock protected registers */ @@ -60,6 +65,9 @@ void board_init(void) // 1ms tick timer SysTick_Config(48000000 / 1000); #endif + + // LED + GPIO_SetMode(LED_PORT, 1 << LED_PIN, GPIO_MODE_OUTPUT); } #if CFG_TUSB_OS == OPT_OS_NONE @@ -81,7 +89,7 @@ uint32_t board_millis(void) void board_led_write(bool state) { - (void)(state); + LED_PIN_IO = (state ? LED_STATE_ON : (1-LED_STATE_ON)); } uint32_t board_button_read(void) diff --git a/hw/bsp/nutiny_nuc126v/board.mk b/hw/bsp/nutiny_nuc126v/board.mk index d38e6c4d5..1edf4a632 100644 --- a/hw/bsp/nutiny_nuc126v/board.mk +++ b/hw/bsp/nutiny_nuc126v/board.mk @@ -55,5 +55,7 @@ FREERTOS_PORT = ARM_CM0 JLINK_DEVICE = NUC126VG4AE JLINK_IF = swd -# flash using jlink -flash: flash-jlink +# Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton +# Please compile and install it from github source +flash: $(BUILD)/$(BOARD)-firmware.elf + openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< verify reset exit" diff --git a/hw/bsp/nutiny_nuc126v/nutiny_nuc126.c b/hw/bsp/nutiny_nuc126v/nutiny_nuc126.c index 0ce787d3e..bdc154559 100644 --- a/hw/bsp/nutiny_nuc126v/nutiny_nuc126.c +++ b/hw/bsp/nutiny_nuc126v/nutiny_nuc126.c @@ -29,6 +29,11 @@ #include "clk.h" #include "sys.h" +#define LED_PORT PC +#define LED_PIN 9 +#define LED_PIN_IO PC9 +#define LED_STATE_ON 0 + #define CRYSTAL_LESS /* system will be 48MHz when defined, otherwise, system is 72MHz */ #define HIRC48_AUTO_TRIM SYS_IRCTCTL1_REFCKSEL_Msk | (1UL << SYS_IRCTCTL1_LOOPSEL_Pos) | (2UL << SYS_IRCTCTL1_FREQSEL_Pos) #define TRIM_INIT (SYS_BASE+0x118) @@ -91,6 +96,9 @@ void board_init(void) // 1ms tick timer SysTick_Config(48000000 / 1000); #endif + + // LED + GPIO_SetMode(LED_PORT, 1 << LED_PIN, GPIO_MODE_OUTPUT); } #if CFG_TUSB_OS == OPT_OS_NONE @@ -112,7 +120,7 @@ uint32_t board_millis(void) void board_led_write(bool state) { - (void)(state); + LED_PIN_IO = (state ? LED_STATE_ON : (1-LED_STATE_ON)); } uint32_t board_button_read(void) From 0c1fff735d2db0971515330394479912624da6f7 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 14 Jan 2020 18:19:33 +0700 Subject: [PATCH 2/2] skip nuc flash verify --- hw/bsp/nutiny_nuc121s/board.mk | 3 +-- hw/bsp/nutiny_nuc125s/board.mk | 2 +- hw/bsp/nutiny_nuc126v/board.mk | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/hw/bsp/nutiny_nuc121s/board.mk b/hw/bsp/nutiny_nuc121s/board.mk index 7e01de2bb..893c8500a 100644 --- a/hw/bsp/nutiny_nuc121s/board.mk +++ b/hw/bsp/nutiny_nuc121s/board.mk @@ -51,8 +51,7 @@ FREERTOS_PORT = ARM_CM0 JLINK_DEVICE = NUC121SC2AE JLINK_IF = swd - # Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton # Please compile and install it from github source flash: $(BUILD)/$(BOARD)-firmware.elf - openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< verify reset exit" + openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< reset exit" diff --git a/hw/bsp/nutiny_nuc125s/board.mk b/hw/bsp/nutiny_nuc125s/board.mk index d563db5e9..e2eecff12 100644 --- a/hw/bsp/nutiny_nuc125s/board.mk +++ b/hw/bsp/nutiny_nuc125s/board.mk @@ -38,4 +38,4 @@ JLINK_IF = swd # Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton # Please compile and install it from github source flash: $(BUILD)/$(BOARD)-firmware.elf - openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< verify reset exit" + openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< reset exit" diff --git a/hw/bsp/nutiny_nuc126v/board.mk b/hw/bsp/nutiny_nuc126v/board.mk index 1edf4a632..cc88b5529 100644 --- a/hw/bsp/nutiny_nuc126v/board.mk +++ b/hw/bsp/nutiny_nuc126v/board.mk @@ -58,4 +58,4 @@ JLINK_IF = swd # Flash using Nuvoton's openocd fork at https://github.com/OpenNuvoton/OpenOCD-Nuvoton # Please compile and install it from github source flash: $(BUILD)/$(BOARD)-firmware.elf - openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< verify reset exit" + openocd -f interface/nulink.cfg -f target/numicroM0.cfg -c "program $< reset exit"