summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2021-11-07 17:45:16 +0700
committerhathach <[email protected]>2021-11-08 16:41:29 +0700
commit91646d039c7dac8e16042c42c2d7197034111aeb (patch)
treecea9ea783756114236c93af5d53ddedb84ea0656
parent23e6e0ef335fac28dc7731a62cca05f838a78caa (diff)
add flash-openocd target. correct ek-tm4c123 button state
-rw-r--r--examples/device/99-tinyusb.rules7
-rw-r--r--examples/rules.mk13
-rw-r--r--hw/bsp/ek-tm4c123gxl/board.mk35
-rw-r--r--hw/bsp/ek-tm4c123gxl/tm4c123gxl.c6
4 files changed, 33 insertions, 28 deletions
diff --git a/examples/device/99-tinyusb.rules b/examples/device/99-tinyusb.rules
index e6372ed58..d306bada5 100644
--- a/examples/device/99-tinyusb.rules
+++ b/examples/device/99-tinyusb.rules
@@ -12,3 +12,10 @@ ATTRS{idVendor}=="cafe", MODE="0666", GROUP="dialout"
# Rule to blacklist TinyUSB example from being manipulated by ModemManager.
SUBSYSTEMS=="usb", ATTRS{idVendor}=="cafe", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# Xplained Pro SamG55 Device
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2111", MODE="0666", GROUP="users", ENV{ID_MM_DEVICE_IGNORE}="1"
+SUBSYSTEMS=="tty", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2111", MODE="0666", GROUP="users", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+# TI Stellaris/Tiva-C Launchpad ICDI
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666"
diff --git a/examples/rules.mk b/examples/rules.mk
index 92fa4e14d..4cc35cb22 100644
--- a/examples/rules.mk
+++ b/examples/rules.mk
@@ -158,13 +158,14 @@ endif
# Flash Targets
# ---------------------------------------
-# Flash binary using Jlink
+# Jlink binary
ifeq ($(OS),Windows_NT)
JLINKEXE = JLink.exe
else
JLINKEXE = JLinkExe
endif
+# Jlink Interface
JLINK_IF ?= swd
# Flash using jlink
@@ -177,18 +178,22 @@ flash-jlink: $(BUILD)/$(PROJECT).hex
@echo exit >> $(BUILD)/$(BOARD).jlink
$(JLINKEXE) -device $(JLINK_DEVICE) -if $(JLINK_IF) -JTAGConf -1,-1 -speed auto -CommandFile $(BUILD)/$(BOARD).jlink
-# flash STM32 MCU using stlink with STM32 Cube Programmer CLI
+# Flash STM32 MCU using stlink with STM32 Cube Programmer CLI
flash-stlink: $(BUILD)/$(PROJECT).elf
STM32_Programmer_CLI --connect port=swd --write $< --go
-# flash with pyocd
+# Flash using pyocd
PYOCD_OPTION ?=
flash-pyocd: $(BUILD)/$(PROJECT).hex
pyocd flash -t $(PYOCD_TARGET) $(PYOCD_OPTION) $<
pyocd reset -t $(PYOCD_TARGET)
-# flash with Black Magic Probe
+# Flash using openocd
+OPENOCD_OPTION ?=
+flash-openocd: $(BUILD)/$(PROJECT).elf
+ openocd $(OPENOCD_OPTION) -c "program $< verify reset exit"
+# flash with Black Magic Probe
# This symlink is created by https://github.com/blacksphere/blackmagic/blob/master/driver/99-blackmagic.rules
BMP ?= /dev/ttyBmpGdb
diff --git a/hw/bsp/ek-tm4c123gxl/board.mk b/hw/bsp/ek-tm4c123gxl/board.mk
index f6522dc2c..368e79f4e 100644
--- a/hw/bsp/ek-tm4c123gxl/board.mk
+++ b/hw/bsp/ek-tm4c123gxl/board.mk
@@ -1,4 +1,3 @@
-
DEPS_SUBMODULES += hw/mcu/ti
CFLAGS += \
@@ -12,39 +11,29 @@ CFLAGS += \
-uvectors \
-DTM4C123GH6PM
-# lpc_types.h cause following errors
-CFLAGS += -Wno-error=strict-prototypes
+# mcu driver cause following warnings
+CFLAGS += -Wno-error=strict-prototypes -Wno-error=cast-qual
MCU_DIR=hw/mcu/ti/tm4c123xx/
-CMSIS=$(TOP)/hw/mcu/ti/tm4c123xx/CMSIS/5.7.0/CMSIS/Include
-
-TI_HDR=$(TOP)/hw/mcu/ti/tm4c123xx/Include/TM4C123/
-
# All source paths should be relative to the top level.
-
-LD_FILE = hw/bsp/$(BOARD)/tm4c123.ld
+LD_FILE = $(BOARD_PATH)/tm4c123.ld
INC += \
- $(CMSIS) \
- $(TI_HDR) \
- $(TOP)/hw/bsp
-
+ $(TOP)/$(MCU_DIR)/CMSIS/5.7.0/CMSIS/Include \
+ $(TOP)/$(MCU_DIR)/Include/TM4C123 \
+ $(TOP)/hw/bsp
SRC_C += \
- $(MCU_DIR)/Source/system_TM4C123.c \
- $(MCU_DIR)/Source/GCC/tm4c123_startup.c
-
-# For TinyUSB port source
-VENDOR = ti
-CHIP_FAMILY = tm4c123xx
+ $(MCU_DIR)/Source/system_TM4C123.c \
+ $(MCU_DIR)/Source/GCC/tm4c123_startup.c
# For freeRTOS port source
FREERTOS_PORT = ARM_CM4F
# For flash-jlink target
-JLINK_DEVICE = LPC1769
+JLINK_DEVICE = TM4C123GH6PM
-# flash using jlink
-flash: $(BUILD)/$(PROJECT).elf
- openocd -f board/ti_ek-tm4c123gxl.cfg -c "program $< verify reset exit"
+# flash using openocd
+OPENOCD_OPTION = -f board/ti_ek-tm4c123gxl.cfg
+flash: flash-openocd
diff --git a/hw/bsp/ek-tm4c123gxl/tm4c123gxl.c b/hw/bsp/ek-tm4c123gxl/tm4c123gxl.c
index d78b0f7e3..b370b7577 100644
--- a/hw/bsp/ek-tm4c123gxl/tm4c123gxl.c
+++ b/hw/bsp/ek-tm4c123gxl/tm4c123gxl.c
@@ -3,9 +3,12 @@
#define BOARD_UART UART0
#define BOARD_UART_PORT GPIOA
+
#define BOARD_BTN_PORT GPIOF
#define BOARD_BTN 4
#define BOARD_BTN_Msk (1u<<4)
+#define BUTTON_STATE_ACTIVE 0
+
#define LED_PORT GPIOF
#define LED_PIN_RED 1
#define LED_PIN_BLUE 2
@@ -125,7 +128,8 @@ void board_led_write(bool state)
uint32_t board_button_read(void)
{
- return ReadGPIOPin(BOARD_BTN_PORT, BOARD_BTN_Msk);
+ uint32_t gpio_value = ReadGPIOPin(BOARD_BTN_PORT, BOARD_BTN_Msk);
+ return BUTTON_STATE_ACTIVE ? gpio_value : !gpio_value;
}
int board_uart_write(void const* buf, int len)