From a2d1849be86bb72e34dd3f250b826b2e1d1b7582 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Sat, 9 Mar 2019 21:28:56 +0100 Subject: [PATCH] stm32-f4discovery-cc256x: create Segger Ozone project files --- port/stm32-f4discovery-cc256x-2/Makefile | 6 +- port/stm32-f4discovery-cc256x-2/ozone.jdebug | 239 ++++++++++++++++++ .../port/btstack_config.h | 2 +- 3 files changed, 245 insertions(+), 2 deletions(-) create mode 100644 port/stm32-f4discovery-cc256x-2/ozone.jdebug diff --git a/port/stm32-f4discovery-cc256x-2/Makefile b/port/stm32-f4discovery-cc256x-2/Makefile index bd4255838..acc712f06 100644 --- a/port/stm32-f4discovery-cc256x-2/Makefile +++ b/port/stm32-f4discovery-cc256x-2/Makefile @@ -364,7 +364,8 @@ all: \ $(addprefix $(BUILD_DIR)/,$(GATT_FILES:.gatt=.h)) \ $(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.elf)) \ $(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.hex)) \ - $(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.bin)) + $(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.bin)) \ + $(addprefix $(BUILD_DIR)/,$(EXAMPLES:=.jdebug)) \ include ${BTSTACK_ROOT}/chipset/cc256x/Makefile.inc @@ -387,6 +388,9 @@ $(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) $(BIN) $< $@ +$(BUILD_DIR)/%.jdebug: ozone.jdebug | $(BUILD_DIR) + sed -e "s|EXAMPLE|$(basename $(notdir $@))|" $< > $@ + $(BUILD_DIR): mkdir $@ diff --git a/port/stm32-f4discovery-cc256x-2/ozone.jdebug b/port/stm32-f4discovery-cc256x-2/ozone.jdebug new file mode 100644 index 000000000..153e22f7c --- /dev/null +++ b/port/stm32-f4discovery-cc256x-2/ozone.jdebug @@ -0,0 +1,239 @@ + +/********************************************************************* +* +* OnProjectLoad +* +* Function description +* Project load routine. Required. +* +********************************************************************** +*/ +void OnProjectLoad (void) { + // + // Dialog-generated settings + // + Project.SetDevice ("STM32F407VG"); + Project.SetHostIF ("USB", ""); + Project.SetTargetIF ("SWD"); + Project.SetTIFSpeed ("50 MHz"); + Project.AddSvdFile ("$(InstallDir)/Config/CPU/Cortex-M4F.svd"); + Project.AddPathSubstitute ("/Projects/btstack/port/stm32-f4discovery-cc256x/cubemx-f4discovery-cc256x", "$(ProjectDir)"); + Project.AddPathSubstitute ("/projects/btstack/port/stm32-f4discovery-cc256x/cubemx-f4discovery-cc256x", "$(ProjectDir)"); + // + // User settings + // + File.Open ("$(ProjectDir)/EXAMPLE.elf"); +} + +/********************************************************************* +* +* TargetReset +* +* Function description +* Replaces the default target device reset routine. Optional. +* +* Notes +* This example demonstrates the usage when +* debugging a RAM program on a Cortex-M target device +* +********************************************************************** +*/ +//void TargetReset (void) { +// +// unsigned int SP; +// unsigned int PC; +// unsigned int VectorTableAddr; +// +// Exec.Reset(); +// +// VectorTableAddr = Elf.GetBaseAddr(); +// +// if (VectorTableAddr != 0xFFFFFFFF) { +// +// Util.Log("Resetting Program."); +// +// SP = Target.ReadU32(VectorTableAddr); +// Target.SetReg("SP", SP); +// +// PC = Target.ReadU32(VectorTableAddr + 4); +// Target.SetReg("PC", PC); +// } +//} + +/********************************************************************* +* +* BeforeTargetReset +* +* Function description +* Event handler routine. Optional. +* +********************************************************************** +*/ +//void BeforeTargetReset (void) { +//} + +/********************************************************************* +* +* AfterTargetReset +* +* Function description +* Event handler routine. +* - Sets the PC register to program reset value. +* - Sets the SP register to program reset value on Cortex-M. +* +********************************************************************** +*/ +void AfterTargetReset (void) { + unsigned int SP; + unsigned int PC; + unsigned int VectorTableAddr; + + VectorTableAddr = Elf.GetBaseAddr(); + + if (VectorTableAddr == 0xFFFFFFFF) { + Util.Log("Project file error: failed to get program base"); + } else { + SP = Target.ReadU32(VectorTableAddr); + Target.SetReg("SP", SP); + + PC = Target.ReadU32(VectorTableAddr + 4); + Target.SetReg("PC", PC); + } +} + +/********************************************************************* +* +* DebugStart +* +* Function description +* Replaces the default debug session startup routine. Optional. +* +********************************************************************** +*/ +//void DebugStart (void) { +//} + +/********************************************************************* +* +* TargetConnect +* +* Function description +* Replaces the default target IF connection routine. Optional. +* +********************************************************************** +*/ +//void TargetConnect (void) { +//} + +/********************************************************************* +* +* BeforeTargetConnect +* +* Function description +* Event handler routine. Optional. +* +********************************************************************** +*/ +//void BeforeTargetConnect (void) { +//} + +/********************************************************************* +* +* AfterTargetConnect +* +* Function description +* Event handler routine. Optional. +* +********************************************************************** +*/ +//void AfterTargetConnect (void) { +//} + +/********************************************************************* +* +* TargetDownload +* +* Function description +* Replaces the default program download routine. Optional. +* +********************************************************************** +*/ +//void TargetDownload (void) { +//} + +/********************************************************************* +* +* BeforeTargetDownload +* +* Function description +* Event handler routine. Optional. +* +********************************************************************** +*/ +//void BeforeTargetDownload (void) { +//} + +/********************************************************************* +* +* AfterTargetDownload +* +* Function description +* Event handler routine. +* - Sets the PC register to program reset value. +* - Sets the SP register to program reset value on Cortex-M. +* +********************************************************************** +*/ +void AfterTargetDownload (void) { + unsigned int SP; + unsigned int PC; + unsigned int VectorTableAddr; + + VectorTableAddr = Elf.GetBaseAddr(); + + if (VectorTableAddr == 0xFFFFFFFF) { + Util.Log("Project file error: failed to get program base"); + } else { + SP = Target.ReadU32(VectorTableAddr); + Target.SetReg("SP", SP); + + PC = Target.ReadU32(VectorTableAddr + 4); + Target.SetReg("PC", PC); + } +} + +/********************************************************************* +* +* BeforeTargetDisconnect +* +* Function description +* Event handler routine. Optional. +* +********************************************************************** +*/ +//void BeforeTargetDisconnect (void) { +//} + +/********************************************************************* +* +* AfterTargetDisconnect +* +* Function description +* Event handler routine. Optional. +* +********************************************************************** +*/ +//void AfterTargetDisconnect (void) { +//} + +/********************************************************************* +* +* AfterTargetHalt +* +* Function description +* Event handler routine. Optional. +* +********************************************************************** +*/ +//void AfterTargetHalt (void) { +//} diff --git a/port/stm32-f4discovery-cc256x-2/port/btstack_config.h b/port/stm32-f4discovery-cc256x-2/port/btstack_config.h index bec3b593e..dd485b9e9 100644 --- a/port/stm32-f4discovery-cc256x-2/port/btstack_config.h +++ b/port/stm32-f4discovery-cc256x-2/port/btstack_config.h @@ -23,7 +23,7 @@ #define ENABLE_HFP_WIDE_BAND_SPEECH #define ENABLE_CC256X_BAUDRATE_CHANGE_FLOWCONTROL_BUG_WORKAROUND // #define ENABLE_EHCILL -// #define ENABLE_SEGGER_RTT +#define ENABLE_SEGGER_RTT // BTstack configuration. buffers, sizes, ... #define HCI_ACL_PAYLOAD_SIZE 1021