add flash-openocd target. correct ek-tm4c123 button state

This commit is contained in:
hathach 2021-11-07 17:45:16 +07:00
parent 23e6e0ef33
commit 91646d039c
4 changed files with 33 additions and 28 deletions

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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)