From 2180a02e2f79b8ee77780ea11be188c0faaa8866 Mon Sep 17 00:00:00 2001 From: chrysn Date: Sat, 25 Feb 2012 18:57:11 +0100 Subject: first attempt at porting libopencm3 to energymicro unless sources are explicitly given, the linker scripts and make files were copied over from the stm32/f1 port. --- .../libopencm3/efm32/tinygecko/devicerevision.h | 26 +++++++++++++++++ include/libopencm3/efm32/tinygecko/vector.h | 11 +++++++ include/libopencm3/efm32/vector.h | 34 ++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 include/libopencm3/efm32/tinygecko/devicerevision.h create mode 100644 include/libopencm3/efm32/tinygecko/vector.h create mode 100644 include/libopencm3/efm32/vector.h (limited to 'include/libopencm3/efm32') diff --git a/include/libopencm3/efm32/tinygecko/devicerevision.h b/include/libopencm3/efm32/tinygecko/devicerevision.h new file mode 100644 index 0000000..83e0e0d --- /dev/null +++ b/include/libopencm3/efm32/tinygecko/devicerevision.h @@ -0,0 +1,26 @@ +/* this implements d0034_efm32tg_reference_manual.pdf's 7.3.4 "Device Revision" + * section */ + +#ifndef LIBOPENCM3_EFM32_TINYGECKO_DEVICEREVISION_H +#define LIBOPENCM3_EFM32_TINYGECKO_DEVICEREVISION_H + +#include + +#define DEVICEREVISION_PID2 MMIO32(0xE00FFFE8) +#define DEVICEREVISION_PID3 MMIO32(0xE00FFFEC) + +/* devicerevision_revision_get has a comment that would make these definitions + * obsolete; i'm not sure how far it is reasonable to parameterize everythin + * g*/ +#define DEVICEREVISION_REVISION_LENGTH 4 +#define DEVICEREVISION_REVISION_SHIFT 4 +#define DEVICEREVISION_REVISION_MASK (~(~0< + +typedef void (*efm32_vector_table_entry_t)(void); + +typedef struct { + unsigned int *initial_sp_value; + efm32_vector_table_entry_t reset; + efm32_vector_table_entry_t nmi; + efm32_vector_table_entry_t hard_fault; + efm32_vector_table_entry_t memory_manage_fault; + efm32_vector_table_entry_t bus_fault; + efm32_vector_table_entry_t usage_fault; + efm32_vector_table_entry_t reserved_x001c[4]; + efm32_vector_table_entry_t sv_call; + efm32_vector_table_entry_t reserved_debug; + efm32_vector_table_entry_t reserved_x0034; + efm32_vector_table_entry_t pend_sv; + efm32_vector_table_entry_t systick; + efm32_vector_table_entry_t irq[EFM32_VECTOR_NIRQ]; +} efm32_vector_table_t; + +#endif -- cgit v1.2.3