From cca0635bcdb18be5bde5c645b9733faf62da3fff Mon Sep 17 00:00:00 2001 From: Karl Palsson Date: Sat, 17 Oct 2015 02:55:13 +0000 Subject: WIP: adc-power f3 needs rcc fixups --- openocd/openocd.stm32f3-disco.cfg | 13 +++++++++ tests/adc-power/Makefile.stm32f3-disco | 28 ++++++++++++++++++ tests/adc-power/main-stm32f3-disco.c | 52 ++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 openocd/openocd.stm32f3-disco.cfg create mode 100644 tests/adc-power/Makefile.stm32f3-disco create mode 100644 tests/adc-power/main-stm32f3-disco.c diff --git a/openocd/openocd.stm32f3-disco.cfg b/openocd/openocd.stm32f3-disco.cfg new file mode 100644 index 0000000..066c12a --- /dev/null +++ b/openocd/openocd.stm32f3-disco.cfg @@ -0,0 +1,13 @@ +source [find interface/stlink-v2.cfg] +set WORKAREASIZE 0x4000 +source [find target/stm32f3x.cfg] + +# serial of my f3 disco board. +hla_serial "S?n\x06gePQ6G\x10?" + +tpiu config internal swodump.stm32f3-disco.log uart off 72000000 + +# Uncomment to reset on connect, for grabbing under WFI et al +reset_config srst_only srst_nogate +# reset_config srst_only srst_nogate connect_assert_srst + diff --git a/tests/adc-power/Makefile.stm32f3-disco b/tests/adc-power/Makefile.stm32f3-disco new file mode 100644 index 0000000..98e06be --- /dev/null +++ b/tests/adc-power/Makefile.stm32f3-disco @@ -0,0 +1,28 @@ + +BOARD = stm32f3-disco +PROJECT = adc-power-$(BOARD) +BUILD_DIR = bin-$(BOARD) + +SHARED_DIR = ../../shared + +CFILES = main-$(BOARD).c +CFILES += adc-power.c +CFILES += trace.c trace_stdio.c + +VPATH += $(SHARED_DIR) + +INCLUDES += $(patsubst %,-I%, . $(SHARED_DIR)) + +OPENCM3_DIR=../../libopencm3/ + +### This section can go to an arch shared rules eventually... +LDSCRIPT = $(OPENCM3_DIR)/lib/stm32/f3/stm32f303xc.ld +OPENCM3_LIB = opencm3_stm32f3 +OPENCM3_DEFS = -DSTM32F3 +FP_FLAGS ?= -mfloat-abi=hard -mfpu=fpv4-sp-d16 +ARCH_FLAGS = -mthumb -mcpu=cortex-m4 $(FP_FLAGS) +#OOCD_INTERFACE = stlink-v2 +#OOCD_TARGET = stm32f3x +OOCD_FILE = ../../openocd/openocd.stm32f3-disco.cfg + +include ../../rules.mk diff --git a/tests/adc-power/main-stm32f3-disco.c b/tests/adc-power/main-stm32f3-disco.c new file mode 100644 index 0000000..f02e610 --- /dev/null +++ b/tests/adc-power/main-stm32f3-disco.c @@ -0,0 +1,52 @@ +/* + * Oct 2015 Karl Palsson + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "trace.h" +#include "adc-power.h" + +#define LED_DISCO_GREEN_PORT GPIOD +#define LED_DISCO_GREEN_PIN GPIO12 + +int main(void) +{ + int i; + int j = 0; + rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]); + rcc_periph_clock_enable(RCC_GPIOD); + printf("hi guys!\n"); + /* green led for ticking */ + gpio_mode_setup(LED_DISCO_GREEN_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, + LED_DISCO_GREEN_PIN); + + rcc_periph_clock_enable(RCC_GPIOA); + gpio_mode_setup(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO0); + gpio_mode_setup(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO1); + + adc_power_init(); + while (1) { + adc_power_task_up(); + gpio_toggle(LED_DISCO_GREEN_PORT, LED_DISCO_GREEN_PIN); + + for (i = 0; i < 0x1000000; i++) { /* Wait a bit. */ + __asm__("NOP"); + } + adc_power_task_down(); + gpio_toggle(LED_DISCO_GREEN_PORT, LED_DISCO_GREEN_PIN); + for (i = 0; i < 0x1000000; i++) { /* Wait a bit. */ + __asm__("NOP"); + } + } + + return 0; +} -- cgit