aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--firmware/Makefile32
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/chip.h (renamed from firmware/include_sam3s/chip.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/CMSIS_Core.htm (renamed from firmware/cmsis/CMSIS_Core.htm)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/core_cm3.c (renamed from firmware/cmsis/core_cm3.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/core_cm3.h (renamed from firmware/cmsis/core_cm3.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/SAM3S.h (renamed from firmware/include_sam3s/SAM3S.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/USBD_Config.h (renamed from firmware/include_sam3s/USBD_Config.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/efc.h (renamed from firmware/include_sam3s/efc.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/exceptions.h (renamed from firmware/include_sam3s/exceptions.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/flashd.h (renamed from firmware/include_sam3s/flashd.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/hsmci.h (renamed from firmware/include_sam3s/hsmci.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/pio.h (renamed from firmware/include_sam3s/pio.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/pio_capture.h (renamed from firmware/include_sam3s/pio_capture.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/pio_it.h (renamed from firmware/include_sam3s/pio_it.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/pmc.h (renamed from firmware/include_sam3s/pmc.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/spi.h (renamed from firmware/include_sam3s/spi.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/tc.h (renamed from firmware/include_sam3s/tc.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/trace.h (renamed from firmware/include_sam3s/trace.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/unique_id.h (renamed from firmware/include_sam3s/unique_id.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/usart.h (renamed from firmware/include_sam3s/usart.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/include/wdt.h (renamed from firmware/include_sam3s/wdt.h)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/USBD_HAL.c (renamed from firmware/src_sam3s/USBD_HAL.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/efc.c (renamed from firmware/src_sam3s/efc.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/exceptions.c (renamed from firmware/src_sam3s/exceptions.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/flashd.c (renamed from firmware/src_sam3s/flashd.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/pio.c (renamed from firmware/src_sam3s/pio.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_capture.c (renamed from firmware/src_sam3s/pio_capture.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c (renamed from firmware/src_sam3s/pio_it.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/pmc.c (renamed from firmware/src_sam3s/pmc.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/spi.c (renamed from firmware/src_sam3s/spi.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/tc.c (renamed from firmware/src_sam3s/tc.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/unique_id.c (renamed from firmware/src_sam3s/unique_id.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/usart.c (renamed from firmware/src_sam3s/usart.c)0
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/wdt.c (renamed from firmware/src_sam3s/wdt.c)0
-rw-r--r--firmware/libboard/common/include/board_common.h (renamed from firmware/include_board/board_common.h)0
-rw-r--r--firmware/libboard/common/include/board_lowlevel.h (renamed from firmware/include_board/board_lowlevel.h)0
-rw-r--r--firmware/libboard/common/include/boardver_adc.h (renamed from firmware/include_board/boardver_adc.h)0
-rw-r--r--firmware/libboard/common/include/led.h (renamed from firmware/include_board/led.h)0
-rw-r--r--firmware/libboard/common/include/uart_console.h (renamed from firmware/include_board/uart_console.h)0
-rw-r--r--firmware/libboard/common/resources/sam3s1/flash.ld140
-rw-r--r--firmware/libboard/common/resources/sam3s1/sram.ld140
-rw-r--r--firmware/libboard/common/resources/sam3s1/sram_samba.lds91
-rw-r--r--firmware/libboard/common/resources/sam3s2/flash.ld140
-rw-r--r--firmware/libboard/common/resources/sam3s2/sram.ld140
-rw-r--r--firmware/libboard/common/resources/sam3s2/sram_samba.lds91
-rw-r--r--firmware/libboard/common/resources/sam3s4/flash.ld140
-rw-r--r--firmware/libboard/common/resources/sam3s4/sram.ld140
-rw-r--r--firmware/libboard/common/resources/sam3s4/sram_samba.lds91
-rw-r--r--firmware/libboard/common/resources/sam3s_ek_flash.gdb31
-rw-r--r--firmware/libboard/common/resources/sam3s_ek_sram.gdb27
-rw-r--r--firmware/libboard/common/resources/sam3s_vb_sram.gdb27
-rw-r--r--firmware/libboard/common/source/board_cstartup_gnu.c (renamed from firmware/src_board/board_cstartup_gnu.c)0
-rw-r--r--firmware/libboard/common/source/board_lowlevel.c (renamed from firmware/src_board/board_lowlevel.c)0
-rw-r--r--firmware/libboard/common/source/boardver_adc.c (renamed from firmware/src_board/boardver_adc.c)0
-rw-r--r--firmware/libboard/common/source/led.c (renamed from firmware/src_board/led.c)0
-rw-r--r--firmware/libboard/common/source/uart_console.c (renamed from firmware/src_board/uart_console.c)0
-rw-r--r--firmware/libboard/owhw/include/board.h (renamed from firmware/include_board/owhw/board.h)0
-rw-r--r--firmware/libboard/owhw/source/owhw.c (renamed from firmware/src_board/owhw.c)0
-rw-r--r--firmware/libboard/qmod/include/board.h (renamed from firmware/include_board/qmod/board.h)0
-rw-r--r--firmware/libboard/qmod/include/i2c.h (renamed from firmware/src_simtrace/i2c.h)0
-rw-r--r--firmware/libboard/qmod/include/wwan_led.h (renamed from firmware/src_simtrace/wwan_led.h)0
-rw-r--r--firmware/libboard/qmod/include/wwan_perst.h (renamed from firmware/src_simtrace/wwan_perst.h)0
-rw-r--r--firmware/libboard/qmod/source/i2c.c (renamed from firmware/src_simtrace/i2c.c)0
-rw-r--r--firmware/libboard/qmod/source/wwan_led.c (renamed from firmware/src_simtrace/wwan_led.c)0
-rw-r--r--firmware/libboard/qmod/source/wwan_perst.c (renamed from firmware/src_simtrace/wwan_perst.c)0
-rw-r--r--firmware/libboard/simtrace/include/board.h (renamed from firmware/include_board/simtrace/board.h)0
-rw-r--r--firmware/libcommon/include/iso7816_fidi.h (renamed from firmware/src_simtrace/iso7816_fidi.h)0
-rw-r--r--firmware/libcommon/include/llist_irqsafe.h (renamed from firmware/src_simtrace/llist_irqsafe.h)0
-rw-r--r--firmware/libcommon/include/req_ctx.h (renamed from firmware/src_simtrace/req_ctx.h)0
-rw-r--r--firmware/libcommon/include/ringbuffer.h (renamed from firmware/src_simtrace/ringbuffer.h)0
-rw-r--r--firmware/libcommon/include/syscalls.h (renamed from firmware/include_board/syscalls.h)0
-rw-r--r--firmware/libcommon/include/utils.h (renamed from firmware/src_simtrace/utils.h)0
-rw-r--r--firmware/libcommon/source/iso7816_fidi.c (renamed from firmware/src_simtrace/iso7816_fidi.c)0
-rw-r--r--firmware/libcommon/source/req_ctx.c (renamed from firmware/src_simtrace/req_ctx.c)0
-rw-r--r--firmware/libcommon/source/ringbuffer.c (renamed from firmware/src_simtrace/ringbuffer.c)0
-rw-r--r--firmware/libcommon/source/syscalls.c (renamed from firmware/src_board/syscalls.c)0
-rw-r--r--firmware/libosmocore/include/osmocom/core/linuxlist.h (renamed from firmware/include_libosmocore/osmocom/core/linuxlist.h)0
-rw-r--r--firmware/libosmocore/include/osmocom/core/linuxrbtree.h (renamed from firmware/include_libosmocore/osmocom/core/linuxrbtree.h)0
-rw-r--r--firmware/libosmocore/include/osmocom/core/timer.h (renamed from firmware/include_libosmocore/osmocom/core/timer.h)0
-rw-r--r--firmware/libosmocore/source/rbtree.c (renamed from firmware/src_simtrace/rbtree.c)0
-rw-r--r--firmware/libosmocore/source/timer.c (renamed from firmware/src_libosmocore/timer.c)0
81 files changed, 1218 insertions, 12 deletions
diff --git a/firmware/Makefile b/firmware/Makefile
index 6092e8c..da92ce3 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -70,9 +70,11 @@ OBJ = obj
# Tools
#-------------------------------------------------------------------------------
-AT91LIB_USB_COMMON_CORE_PATH = atmel_softpack_libraries/usb/common/core
-AT91LIB_USB_CORE_PATH = atmel_softpack_libraries/usb/device/core
-AT91LIB_USB_DFU_PATH = atmel_softpack_libraries/usb/device/dfu
+AT91LIB = ./atmel_softpack_libraries
+
+AT91LIB_USB_COMMON_CORE_PATH = $(AT91LIB)/usb/common/core
+AT91LIB_USB_CORE_PATH = $(AT91LIB)/usb/device/core
+AT91LIB_USB_DFU_PATH = $(AT91LIB)/usb/device/dfu
# Tool suffix when cross-compiling
CROSS_COMPILE = arm-none-eabi-
@@ -92,15 +94,16 @@ TOP=..
GIT_VERSION=$(shell $(TOP)/git-version-gen $(TOP)/.tarvers)
# Flags
-INCLUDES_USB = -Iatmel_softpack_libraries/usb/include -Iatmel_softpack_libraries
-
-INCLUDES = -Iinclude_board -Iinclude_sam3s -Iinclude -Isrc_simtrace -Iinclude_libosmocore
+INCLUDES_USB = -I$(AT91LIB)/usb/include -I$(AT91LIB)
-# FIXME: This must be made configurable!
-INCLUDES += -Iinclude_board/$(BOARD)
-
-INCLUDES += -Icmsis
-INCLUDES += $(INCLUDES_USB)
+INCLUDES = $(INCLUDES_USB)
+INCLUDES += -I$(AT91LIB)/libchip_sam3s -I$(AT91LIB)/libchip_sam3s/include
+INCLUDES += -I$(AT91LIB)/libchip_sam3s/cmsis
+INCLUDES += -Ilibboard/common/include -Ilibboard/$(BOARD)/include
+INCLUDES += -Ilibcommon/include
+INCLUDES += -Ilibosmocore/include
+INCLUDES += -Iinclude_board
+INCLUDES += -Isrc_simtrace -Iinclude
CFLAGS += -Wall -Wchar-subscripts -Wcomment -Wimplicit-int #-Wformat=2
CFLAGS += -Werror-implicit-function-declaration -Wmain -Wparentheses
@@ -141,7 +144,12 @@ LDFLAGS = -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-secti
# Directories where source files can be found
USB_PATHS = $(AT91LIB_USB_CORE_PATH) $(AT91LIB_USB_DFU_PATH) $(AT91LIB_USB_COMMON_CORE_PATH)
-VPATH += src_board src_sam3s cmsis $(USB_PATHS) src_simtrace src_libosmocore
+
+VPATH += $(USB_PATHS)
+VPATH += $(AT91LIB)/libchip_sam3s/source/ $(AT91LIB)/libchip_sam3s/cmsis
+VPATH += libboard/common/source libboard/$(BOARD)/source
+VPATH += libcommon/source
+VPATH += libosmocore/source src_board src_simtrace
# Objects built from C source files
C_CMSIS = core_cm3.o
diff --git a/firmware/include_sam3s/chip.h b/firmware/atmel_softpack_libraries/libchip_sam3s/chip.h
index e6af94e..e6af94e 100644
--- a/firmware/include_sam3s/chip.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/chip.h
diff --git a/firmware/cmsis/CMSIS_Core.htm b/firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/CMSIS_Core.htm
index b8acb53..b8acb53 100644
--- a/firmware/cmsis/CMSIS_Core.htm
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/CMSIS_Core.htm
diff --git a/firmware/cmsis/core_cm3.c b/firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/core_cm3.c
index db88654..db88654 100644
--- a/firmware/cmsis/core_cm3.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/core_cm3.c
diff --git a/firmware/cmsis/core_cm3.h b/firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/core_cm3.h
index 4afe42c..4afe42c 100644
--- a/firmware/cmsis/core_cm3.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/cmsis/core_cm3.h
diff --git a/firmware/include_sam3s/SAM3S.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/SAM3S.h
index 05e2c8d..05e2c8d 100644
--- a/firmware/include_sam3s/SAM3S.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/SAM3S.h
diff --git a/firmware/include_sam3s/USBD_Config.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/USBD_Config.h
index 256262c..256262c 100644
--- a/firmware/include_sam3s/USBD_Config.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/USBD_Config.h
diff --git a/firmware/include_sam3s/efc.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/efc.h
index 0a99633..0a99633 100644
--- a/firmware/include_sam3s/efc.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/efc.h
diff --git a/firmware/include_sam3s/exceptions.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/exceptions.h
index c682f39..c682f39 100644
--- a/firmware/include_sam3s/exceptions.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/exceptions.h
diff --git a/firmware/include_sam3s/flashd.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/flashd.h
index e58ba02..e58ba02 100644
--- a/firmware/include_sam3s/flashd.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/flashd.h
diff --git a/firmware/include_sam3s/hsmci.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/hsmci.h
index 940ed2b..940ed2b 100644
--- a/firmware/include_sam3s/hsmci.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/hsmci.h
diff --git a/firmware/include_sam3s/pio.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pio.h
index 82fa388..82fa388 100644
--- a/firmware/include_sam3s/pio.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pio.h
diff --git a/firmware/include_sam3s/pio_capture.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pio_capture.h
index f225350..f225350 100644
--- a/firmware/include_sam3s/pio_capture.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pio_capture.h
diff --git a/firmware/include_sam3s/pio_it.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pio_it.h
index 10da613..10da613 100644
--- a/firmware/include_sam3s/pio_it.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pio_it.h
diff --git a/firmware/include_sam3s/pmc.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pmc.h
index 085612e..085612e 100644
--- a/firmware/include_sam3s/pmc.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/pmc.h
diff --git a/firmware/include_sam3s/spi.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/spi.h
index a552fe4..a552fe4 100644
--- a/firmware/include_sam3s/spi.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/spi.h
diff --git a/firmware/include_sam3s/tc.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/tc.h
index 6bd3a47..6bd3a47 100644
--- a/firmware/include_sam3s/tc.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/tc.h
diff --git a/firmware/include_sam3s/trace.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/trace.h
index 8d96aab..8d96aab 100644
--- a/firmware/include_sam3s/trace.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/trace.h
diff --git a/firmware/include_sam3s/unique_id.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/unique_id.h
index a0851fd..a0851fd 100644
--- a/firmware/include_sam3s/unique_id.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/unique_id.h
diff --git a/firmware/include_sam3s/usart.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/usart.h
index 7f58b50..7f58b50 100644
--- a/firmware/include_sam3s/usart.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/usart.h
diff --git a/firmware/include_sam3s/wdt.h b/firmware/atmel_softpack_libraries/libchip_sam3s/include/wdt.h
index 2621754..2621754 100644
--- a/firmware/include_sam3s/wdt.h
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/include/wdt.h
diff --git a/firmware/src_sam3s/USBD_HAL.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/USBD_HAL.c
index 7776004..7776004 100644
--- a/firmware/src_sam3s/USBD_HAL.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/USBD_HAL.c
diff --git a/firmware/src_sam3s/efc.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/efc.c
index b6a028e..b6a028e 100644
--- a/firmware/src_sam3s/efc.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/efc.c
diff --git a/firmware/src_sam3s/exceptions.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/exceptions.c
index 1f023b8..1f023b8 100644
--- a/firmware/src_sam3s/exceptions.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/exceptions.c
diff --git a/firmware/src_sam3s/flashd.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/flashd.c
index 6247139..6247139 100644
--- a/firmware/src_sam3s/flashd.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/flashd.c
diff --git a/firmware/src_sam3s/pio.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio.c
index 49a6741..49a6741 100644
--- a/firmware/src_sam3s/pio.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio.c
diff --git a/firmware/src_sam3s/pio_capture.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_capture.c
index 407a5c0..407a5c0 100644
--- a/firmware/src_sam3s/pio_capture.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_capture.c
diff --git a/firmware/src_sam3s/pio_it.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c
index 48403c0..48403c0 100644
--- a/firmware/src_sam3s/pio_it.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c
diff --git a/firmware/src_sam3s/pmc.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pmc.c
index fa4dde0..fa4dde0 100644
--- a/firmware/src_sam3s/pmc.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pmc.c
diff --git a/firmware/src_sam3s/spi.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/spi.c
index 8e4b965..8e4b965 100644
--- a/firmware/src_sam3s/spi.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/spi.c
diff --git a/firmware/src_sam3s/tc.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/tc.c
index 9cad546..9cad546 100644
--- a/firmware/src_sam3s/tc.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/tc.c
diff --git a/firmware/src_sam3s/unique_id.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/unique_id.c
index 460eb9c..460eb9c 100644
--- a/firmware/src_sam3s/unique_id.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/unique_id.c
diff --git a/firmware/src_sam3s/usart.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/usart.c
index f1acb2f..f1acb2f 100644
--- a/firmware/src_sam3s/usart.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/usart.c
diff --git a/firmware/src_sam3s/wdt.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/wdt.c
index f8a493b..f8a493b 100644
--- a/firmware/src_sam3s/wdt.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/wdt.c
diff --git a/firmware/include_board/board_common.h b/firmware/libboard/common/include/board_common.h
index 9943ae1..9943ae1 100644
--- a/firmware/include_board/board_common.h
+++ b/firmware/libboard/common/include/board_common.h
diff --git a/firmware/include_board/board_lowlevel.h b/firmware/libboard/common/include/board_lowlevel.h
index cc6cdbe..cc6cdbe 100644
--- a/firmware/include_board/board_lowlevel.h
+++ b/firmware/libboard/common/include/board_lowlevel.h
diff --git a/firmware/include_board/boardver_adc.h b/firmware/libboard/common/include/boardver_adc.h
index a89d630..a89d630 100644
--- a/firmware/include_board/boardver_adc.h
+++ b/firmware/libboard/common/include/boardver_adc.h
diff --git a/firmware/include_board/led.h b/firmware/libboard/common/include/led.h
index 87e2fc9..87e2fc9 100644
--- a/firmware/include_board/led.h
+++ b/firmware/libboard/common/include/led.h
diff --git a/firmware/include_board/uart_console.h b/firmware/libboard/common/include/uart_console.h
index c48c2c1..c48c2c1 100644
--- a/firmware/include_board/uart_console.h
+++ b/firmware/libboard/common/include/uart_console.h
diff --git a/firmware/libboard/common/resources/sam3s1/flash.ld b/firmware/libboard/common/resources/sam3s1/flash.ld
new file mode 100644
index 0000000..b6c5428
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s1/flash.ld
@@ -0,0 +1,140 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal FLASH on the ATSAM3S1
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+SEARCH_DIR(.)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x00400000, LENGTH = 0x00010000 /* Flash, 64K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00004000 /* sram, 16K */
+}
+
+/* Section Definitions */
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ _sfixed = .;
+ KEEP(*(.vectors .vectors.*))
+ *(.text .text.* .gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7)
+ *(.rodata .rodata* .gnu.linkonce.r.*)
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+
+ /* Support C constructors, and C destructors in both user code
+ and the C library. This also provides support for C++ code. */
+ . = ALIGN(4);
+ KEEP(*(.init))
+ . = ALIGN(4);
+ __preinit_array_start = .;
+ KEEP (*(.preinit_array))
+ __preinit_array_end = .;
+
+ . = ALIGN(4);
+ __init_array_start = .;
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ __init_array_end = .;
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*crtend.o(.ctors))
+
+ . = ALIGN(4);
+ KEEP(*(.fini))
+
+ . = ALIGN(4);
+ __fini_array_start = .;
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ __fini_array_end = .;
+
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*crtend.o(.dtors))
+
+ . = ALIGN(4);
+ _efixed = .; /* End of text section */
+ } > rom
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ PROVIDE_HIDDEN (__exidx_start = .);
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > rom
+ PROVIDE_HIDDEN (__exidx_end = .);
+
+ . = ALIGN(4);
+ _etext = .;
+
+ .relocate : AT (_etext)
+ {
+ . = ALIGN(4);
+ _srelocate = .;
+ *(.ramfunc .ramfunc.*);
+ *(.data .data.*);
+ . = ALIGN(4);
+ _erelocate = .;
+ } > ram
+
+ /* .bss section which is used for uninitialized data */
+ .bss (NOLOAD) :
+ {
+ . = ALIGN(4);
+ _sbss = . ;
+ _szero = .;
+ *(.bss .bss.*)
+ *(COMMON)
+ . = ALIGN(4);
+ _ebss = . ;
+ _ezero = .;
+ } > ram
+
+ /* stack section */
+ .stack (NOLOAD):
+ {
+ . = ALIGN(8);
+ *(.stack .stack.*)
+ } > ram
+
+ . = ALIGN(4);
+ _end = . ;
+}
diff --git a/firmware/libboard/common/resources/sam3s1/sram.ld b/firmware/libboard/common/resources/sam3s1/sram.ld
new file mode 100644
index 0000000..22b170a
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s1/sram.ld
@@ -0,0 +1,140 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal SRAM on the ATSAM3S1
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+SEARCH_DIR(.)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x00400000, LENGTH = 0x00010000 /* Flash, 64K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00004000 /* sram, 16K */
+}
+
+/* Section Definitions */
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ _sfixed = .;
+ KEEP(*(.vectors .vectors.*))
+ *(.text .text.* .gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7)
+ *(.rodata .rodata* .gnu.linkonce.r.*)
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+
+ /* Support C constructors, and C destructors in both user code
+ and the C library. This also provides support for C++ code. */
+ . = ALIGN(4);
+ KEEP(*(.init))
+ . = ALIGN(4);
+ __preinit_array_start = .;
+ KEEP (*(.preinit_array))
+ __preinit_array_end = .;
+
+ . = ALIGN(4);
+ __init_array_start = .;
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ __init_array_end = .;
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*crtend.o(.ctors))
+
+ . = ALIGN(4);
+ KEEP(*(.fini))
+
+ . = ALIGN(4);
+ __fini_array_start = .;
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ __fini_array_end = .;
+
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*crtend.o(.dtors))
+
+ . = ALIGN(4);
+ _efixed = .; /* End of text section */
+ } > ram
+
+ . = ALIGN(4);
+ _etext = .;
+
+ .relocate : AT (_etext)
+ {
+ . = ALIGN(4);
+ _srelocate = .;
+ *(.ramfunc .ramfunc.*);
+ *(.data .data.*);
+ . = ALIGN(4);
+ _erelocate = .;
+ } > ram
+
+ /* .bss section which is used for uninitialized data */
+ .bss (NOLOAD) :
+ {
+ . = ALIGN(4);
+ _sbss = . ;
+ _szero = .;
+ *(.bss .bss.*)
+ *(COMMON)
+ . = ALIGN(4);
+ _ebss = . ;
+ _ezero = .;
+ } > ram
+
+ /* stack section */
+ .stack (NOLOAD):
+ {
+ . = ALIGN(8);
+ *(.stack .stack.*)
+ } > ram
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ PROVIDE_HIDDEN (__exidx_start = .);
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > ram
+ PROVIDE_HIDDEN (__exidx_end = .);
+
+ . = ALIGN(4);
+ _end = . ;
+}
diff --git a/firmware/libboard/common/resources/sam3s1/sram_samba.lds b/firmware/libboard/common/resources/sam3s1/sram_samba.lds
new file mode 100644
index 0000000..0f87ad3
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s1/sram_samba.lds
@@ -0,0 +1,91 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal SRAM on the AT91SAM3S1
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(entry)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ romcodesram (W!RX) : ORIGIN = 0x20000000, LENGTH = 0x0800
+ sram (W!RX) : ORIGIN = 0x20000800, LENGTH = 0x00003800 /* sram, 16K - sizeof(romcodesram) */
+}
+
+/* Entry point */
+/*ENTRY (ResetException)*/
+
+SECTIONS
+{
+ /* startup code in the .isr_vector */
+ .text :
+ {
+ . = ALIGN(4);
+ _stext = .;
+ KEEP(*(.isr_vector .isr_vector.*))
+ *(.mailbox)
+ *(.text .text.*)
+ *(.rodata .rodata.*)
+ *(.glue_7)
+ *(.glue_7t)
+ *(.gcc_except_table)
+ *(.rodata .rodata*)
+ *(.gnu.linkonce.r.*)
+ . = ALIGN(4);
+ _etext = .;
+ } > sram
+
+ /* data */
+ .data :
+ {
+ . = ALIGN(4);
+ _sidata = .;
+ _sdata = .;
+
+ *(.data)
+ *(.data.*)
+ . = ALIGN(4);
+ _edata = .;
+ } > sram
+
+ .bss (NOLOAD) : {
+ _szero = .;
+ *(.bss)
+ . = ALIGN(4);
+ _ezero = .;
+ } >sram
+
+ /* Stack in SRAM */
+ _sstack = 0x20003FFC;
+}
+end = .;
diff --git a/firmware/libboard/common/resources/sam3s2/flash.ld b/firmware/libboard/common/resources/sam3s2/flash.ld
new file mode 100644
index 0000000..22cfe59
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s2/flash.ld
@@ -0,0 +1,140 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal FLASH on the ATSAM3S2
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+SEARCH_DIR(.)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x00400000, LENGTH = 0x00020000 /* flash, 128K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000 /* sram, 32K */
+}
+
+/* Section Definitions */
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ _sfixed = .;
+ KEEP(*(.vectors .vectors.*))
+ *(.text .text.* .gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7)
+ *(.rodata .rodata* .gnu.linkonce.r.*)
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+
+ /* Support C constructors, and C destructors in both user code
+ and the C library. This also provides support for C++ code. */
+ . = ALIGN(4);
+ KEEP(*(.init))
+ . = ALIGN(4);
+ __preinit_array_start = .;
+ KEEP (*(.preinit_array))
+ __preinit_array_end = .;
+
+ . = ALIGN(4);
+ __init_array_start = .;
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ __init_array_end = .;
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*crtend.o(.ctors))
+
+ . = ALIGN(4);
+ KEEP(*(.fini))
+
+ . = ALIGN(4);
+ __fini_array_start = .;
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ __fini_array_end = .;
+
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*crtend.o(.dtors))
+
+ . = ALIGN(4);
+ _efixed = .; /* End of text section */
+ } > rom
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ PROVIDE_HIDDEN (__exidx_start = .);
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > rom
+ PROVIDE_HIDDEN (__exidx_end = .);
+
+ . = ALIGN(4);
+ _etext = .;
+
+ .relocate : AT (_etext)
+ {
+ . = ALIGN(4);
+ _srelocate = .;
+ *(.ramfunc .ramfunc.*);
+ *(.data .data.*);
+ . = ALIGN(4);
+ _erelocate = .;
+ } > ram
+
+ /* .bss section which is used for uninitialized data */
+ .bss (NOLOAD) :
+ {
+ . = ALIGN(4);
+ _sbss = . ;
+ _szero = .;
+ *(.bss .bss.*)
+ *(COMMON)
+ . = ALIGN(4);
+ _ebss = . ;
+ _ezero = .;
+ } > ram
+
+ /* stack section */
+ .stack (NOLOAD):
+ {
+ . = ALIGN(8);
+ *(.stack .stack.*)
+ } > ram
+
+ . = ALIGN(4);
+ _end = . ;
+}
diff --git a/firmware/libboard/common/resources/sam3s2/sram.ld b/firmware/libboard/common/resources/sam3s2/sram.ld
new file mode 100644
index 0000000..8c14ac6
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s2/sram.ld
@@ -0,0 +1,140 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal SRAM on the ATSAM3S2
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT ("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+SEARCH_DIR(.)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x00400000, LENGTH = 0x00020000 /* flash, 128K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000 /* sram, 32K */
+}
+
+/* Section Definitions */
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ _sfixed = .;
+ KEEP(*(.vectors .vectors.*))
+ *(.text .text.* .gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7)
+ *(.rodata .rodata* .gnu.linkonce.r.*)
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+
+ /* Support C constructors, and C destructors in both user code
+ and the C library. This also provides support for C++ code. */
+ . = ALIGN(4);
+ KEEP(*(.init))
+ . = ALIGN(4);
+ __preinit_array_start = .;
+ KEEP (*(.preinit_array))
+ __preinit_array_end = .;
+
+ . = ALIGN(4);
+ __init_array_start = .;
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ __init_array_end = .;
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*crtend.o(.ctors))
+
+ . = ALIGN(4);
+ KEEP(*(.fini))
+
+ . = ALIGN(4);
+ __fini_array_start = .;
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ __fini_array_end = .;
+
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*crtend.o(.dtors))
+
+ . = ALIGN(4);
+ _efixed = .; /* End of text section */
+ } > ram
+
+ . = ALIGN(4);
+ _etext = .;
+
+ .relocate : AT (_etext)
+ {
+ . = ALIGN(4);
+ _srelocate = .;
+ *(.ramfunc .ramfunc.*);
+ *(.data .data.*);
+ . = ALIGN(4);
+ _erelocate = .;
+ } > ram
+
+ /* .bss section which is used for uninitialized data */
+ .bss (NOLOAD) :
+ {
+ . = ALIGN(4);
+ _sbss = . ;
+ _szero = .;
+ *(.bss .bss.*)
+ *(COMMON)
+ . = ALIGN(4);
+ _ebss = . ;
+ _ezero = .;
+ } > ram
+
+ /* stack section */
+ .stack (NOLOAD):
+ {
+ . = ALIGN(8);
+ *(.stack .stack.*)
+ } > ram
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ PROVIDE_HIDDEN (__exidx_start = .);
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > ram
+ PROVIDE_HIDDEN (__exidx_end = .);
+
+ . = ALIGN(4);
+ _end = . ;
+}
diff --git a/firmware/libboard/common/resources/sam3s2/sram_samba.lds b/firmware/libboard/common/resources/sam3s2/sram_samba.lds
new file mode 100644
index 0000000..00040c8
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s2/sram_samba.lds
@@ -0,0 +1,91 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal SRAM on the AT91SAM3S2
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(entry)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ romcodesram (W!RX) : ORIGIN = 0x20000000, LENGTH = 0x0800
+ sram (W!RX) : ORIGIN = 0x20000800, LENGTH = 0x00007800 /* sram, 32K - sizeof(romcodesram) */
+}
+
+/* Entry point */
+/*ENTRY (ResetException)*/
+
+SECTIONS
+{
+ /* startup code in the .isr_vector */
+ .text :
+ {
+ . = ALIGN(4);
+ _stext = .;
+ KEEP(*(.isr_vector .isr_vector.*))
+ *(.mailbox)
+ *(.text .text.*)
+ *(.rodata .rodata.*)
+ *(.glue_7)
+ *(.glue_7t)
+ *(.gcc_except_table)
+ *(.rodata .rodata*)
+ *(.gnu.linkonce.r.*)
+ . = ALIGN(4);
+ _etext = .;
+ } > sram
+
+ /* data */
+ .data :
+ {
+ . = ALIGN(4);
+ _sidata = .;
+ _sdata = .;
+
+ *(.data)
+ *(.data.*)
+ . = ALIGN(4);
+ _edata = .;
+ } > sram
+
+ .bss (NOLOAD) : {
+ _szero = .;
+ *(.bss)
+ . = ALIGN(4);
+ _ezero = .;
+ } >sram
+
+ /* Stack in SRAM */
+ _sstack = 0x20007FFC;
+}
+end = .;
diff --git a/firmware/libboard/common/resources/sam3s4/flash.ld b/firmware/libboard/common/resources/sam3s4/flash.ld
new file mode 100644
index 0000000..c47a2c5
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s4/flash.ld
@@ -0,0 +1,140 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal FLASH on the ATSAM3S4
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+SEARCH_DIR(.)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x00400000, LENGTH = 0x00040000 /* flash, 256K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x0000c000 /* sram, 48K */
+}
+
+/* Section Definitions */
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ _sfixed = .;
+ KEEP(*(.vectors .vectors.*))
+ *(.text .text.* .gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7)
+ *(.rodata .rodata* .gnu.linkonce.r.*)
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+
+ /* Support C constructors, and C destructors in both user code
+ and the C library. This also provides support for C++ code. */
+ . = ALIGN(4);
+ KEEP(*(.init))
+ . = ALIGN(4);
+ __preinit_array_start = .;
+ KEEP (*(.preinit_array))
+ __preinit_array_end = .;
+
+ . = ALIGN(4);
+ __init_array_start = .;
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ __init_array_end = .;
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*crtend.o(.ctors))
+
+ . = ALIGN(4);
+ KEEP(*(.fini))
+
+ . = ALIGN(4);
+ __fini_array_start = .;
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ __fini_array_end = .;
+
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*crtend.o(.dtors))
+
+ . = ALIGN(4);
+ _efixed = .; /* End of text section */
+ } > rom
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ PROVIDE_HIDDEN (__exidx_start = .);
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > rom
+ PROVIDE_HIDDEN (__exidx_end = .);
+
+ . = ALIGN(4);
+ _etext = .;
+
+ .relocate : AT (_etext)
+ {
+ . = ALIGN(4);
+ _srelocate = .;
+ *(.ramfunc .ramfunc.*);
+ *(.data .data.*);
+ . = ALIGN(4);
+ _erelocate = .;
+ } > ram
+
+ /* .bss section which is used for uninitialized data */
+ .bss (NOLOAD) :
+ {
+ . = ALIGN(4);
+ _sbss = . ;
+ _szero = .;
+ *(.bss .bss.*)
+ *(COMMON)
+ . = ALIGN(4);
+ _ebss = . ;
+ _ezero = .;
+ } > ram
+
+ /* stack section */
+ .stack (NOLOAD):
+ {
+ . = ALIGN(8);
+ *(.stack .stack.*)
+ } > ram
+
+ . = ALIGN(4);
+ _end = . ;
+}
diff --git a/firmware/libboard/common/resources/sam3s4/sram.ld b/firmware/libboard/common/resources/sam3s4/sram.ld
new file mode 100644
index 0000000..9c68755
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s4/sram.ld
@@ -0,0 +1,140 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal SRAM on the ATSAM3S4
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+SEARCH_DIR(.)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x00400000, LENGTH = 0x00040000 /* flash, 256K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x0000c000 /* sram, 48K */
+}
+
+/* Section Definitions */
+SECTIONS
+{
+ .text :
+ {
+ . = ALIGN(4);
+ _sfixed = .;
+ KEEP(*(.vectors .vectors.*))
+ *(.text .text.* .gnu.linkonce.t.*)
+ *(.glue_7t) *(.glue_7)
+ *(.rodata .rodata* .gnu.linkonce.r.*)
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+
+ /* Support C constructors, and C destructors in both user code
+ and the C library. This also provides support for C++ code. */
+ . = ALIGN(4);
+ KEEP(*(.init))
+ . = ALIGN(4);
+ __preinit_array_start = .;
+ KEEP (*(.preinit_array))
+ __preinit_array_end = .;
+
+ . = ALIGN(4);
+ __init_array_start = .;
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ __init_array_end = .;
+
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*crtend.o(.ctors))
+
+ . = ALIGN(4);
+ KEEP(*(.fini))
+
+ . = ALIGN(4);
+ __fini_array_start = .;
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ __fini_array_end = .;
+
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*crtend.o(.dtors))
+
+ . = ALIGN(4);
+ _efixed = .; /* End of text section */
+ } > ram
+
+ . = ALIGN(4);
+ _etext = .;
+
+ .relocate : AT (_etext)
+ {
+ . = ALIGN(4);
+ _srelocate = .;
+ *(.ramfunc .ramfunc.*);
+ *(.data .data.*);
+ . = ALIGN(4);
+ _erelocate = .;
+ } > ram
+
+ /* .bss section which is used for uninitialized data */
+ .bss (NOLOAD) :
+ {
+ . = ALIGN(4);
+ _sbss = . ;
+ _szero = .;
+ *(.bss .bss.*)
+ *(COMMON)
+ . = ALIGN(4);
+ _ebss = . ;
+ _ezero = .;
+ } > ram
+
+ /* stack section */
+ .stack (NOLOAD):
+ {
+ . = ALIGN(8);
+ *(.stack .stack.*)
+ } > ram
+
+ /* .ARM.exidx is sorted, so has to go in its own output section. */
+ PROVIDE_HIDDEN (__exidx_start = .);
+ .ARM.exidx :
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > ram
+ PROVIDE_HIDDEN (__exidx_end = .);
+
+ . = ALIGN(4);
+ _end = . ;
+}
diff --git a/firmware/libboard/common/resources/sam3s4/sram_samba.lds b/firmware/libboard/common/resources/sam3s4/sram_samba.lds
new file mode 100644
index 0000000..16b1dc9
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s4/sram_samba.lds
@@ -0,0 +1,91 @@
+/* ----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2009, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/*------------------------------------------------------------------------------
+ * Linker script for running in internal SRAM on the AT91SAM3S4
+ *----------------------------------------------------------------------------*/
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(entry)
+
+/* Memory Spaces Definitions */
+MEMORY
+{
+ romcodesram (W!RX) : ORIGIN = 0x20000000, LENGTH = 0x01000
+ sram (W!RX) : ORIGIN = 0x20001000, LENGTH = 0x0000B000 /* sram, 48K - sizeof(romcodesram) */
+}
+
+/* Entry point */
+/*ENTRY (ResetException)*/
+
+SECTIONS
+{
+ /* startup code in the .isr_vector */
+ .text :
+ {
+ . = ALIGN(4);
+ _stext = .;
+ KEEP(*(.isr_vector .isr_vector.*))
+ *(.mailbox)
+ *(.text .text.*)
+ *(.rodata .rodata.*)
+ *(.glue_7)
+ *(.glue_7t)
+ *(.gcc_except_table)
+ *(.rodata .rodata*)
+ *(.gnu.linkonce.r.*)
+ . = ALIGN(4);
+ _etext = .;
+ } > sram
+
+ /* data */
+ .data :
+ {
+ . = ALIGN(4);
+ _sidata = .;
+ _sdata = .;
+
+ *(.data)
+ *(.data.*)
+ . = ALIGN(4);
+ _edata = .;
+ } > sram
+
+ .bss (NOLOAD) : {
+ _szero = .;
+ *(.bss)
+ . = ALIGN(4);
+ _ezero = .;
+ } >sram
+
+ /* Stack in SRAM */
+ _sstack = 0x2000BFFC;
+}
+end = .;
diff --git a/firmware/libboard/common/resources/sam3s_ek_flash.gdb b/firmware/libboard/common/resources/sam3s_ek_flash.gdb
new file mode 100644
index 0000000..7d79615
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s_ek_flash.gdb
@@ -0,0 +1,31 @@
+#*******************************************************
+#
+# Connect to J-Link and debug application in flash.
+#
+
+# define 'reset' command
+define reset
+
+# Connect to the J-Link gdb server
+target remote localhost:2331
+# Reset the chip to get to a known state
+monitor reset
+
+# Select flash device
+monitor flash device = AT91SAM3S4C
+# Enable flash download and flash breakpoints
+monitor flash download = 1
+# Load the program
+load
+
+# Reset peripheral (RSTC_CR)
+set *0x400e1400 = 0xA5000004
+
+# Initializing PC and stack pointer
+mon reg sp=(0x400000)
+set *0x400004 = *0x400004 & 0xFFFFFFFE
+mon reg pc=(0x400004)
+info reg
+
+# end of 'reset' command
+end
diff --git a/firmware/libboard/common/resources/sam3s_ek_sram.gdb b/firmware/libboard/common/resources/sam3s_ek_sram.gdb
new file mode 100644
index 0000000..019bd0a
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s_ek_sram.gdb
@@ -0,0 +1,27 @@
+#*************************************************
+#
+# Connect to J-Link and debug application in sram on SAM3S
+#
+# Note:
+# First, users should modify Step1 and Step2 according to their project,
+# then do Step3.
+
+# Step1: Connect to the J-Link gdb server
+define reset
+target remote localhost:2331
+monitor reset
+
+# Step2: Load file(eg. getting-started project)
+load
+
+# Step3: Reset peripheral (RSTC_CR)
+set *0x400e1400 = 0xA5000004
+
+# Step4: Initializing PC and stack pointer
+# Modify pc value to even before writing pc register
+mon reg sp=(0x20000000)
+set *0x20000004 = *0x20000004 & 0xFFFFFFFE
+mon reg pc=(0x20000004)
+info reg
+
+end
diff --git a/firmware/libboard/common/resources/sam3s_vb_sram.gdb b/firmware/libboard/common/resources/sam3s_vb_sram.gdb
new file mode 100644
index 0000000..019bd0a
--- /dev/null
+++ b/firmware/libboard/common/resources/sam3s_vb_sram.gdb
@@ -0,0 +1,27 @@
+#*************************************************
+#
+# Connect to J-Link and debug application in sram on SAM3S
+#
+# Note:
+# First, users should modify Step1 and Step2 according to their project,
+# then do Step3.
+
+# Step1: Connect to the J-Link gdb server
+define reset
+target remote localhost:2331
+monitor reset
+
+# Step2: Load file(eg. getting-started project)
+load
+
+# Step3: Reset peripheral (RSTC_CR)
+set *0x400e1400 = 0xA5000004
+
+# Step4: Initializing PC and stack pointer
+# Modify pc value to even before writing pc register
+mon reg sp=(0x20000000)
+set *0x20000004 = *0x20000004 & 0xFFFFFFFE
+mon reg pc=(0x20000004)
+info reg
+
+end
diff --git a/firmware/src_board/board_cstartup_gnu.c b/firmware/libboard/common/source/board_cstartup_gnu.c
index 4255646..4255646 100644
--- a/firmware/src_board/board_cstartup_gnu.c
+++ b/firmware/libboard/common/source/board_cstartup_gnu.c
diff --git a/firmware/src_board/board_lowlevel.c b/firmware/libboard/common/source/board_lowlevel.c
index 625160e..625160e 100644
--- a/firmware/src_board/board_lowlevel.c
+++ b/firmware/libboard/common/source/board_lowlevel.c
diff --git a/firmware/src_board/boardver_adc.c b/firmware/libboard/common/source/boardver_adc.c
index ca3d1fe..ca3d1fe 100644
--- a/firmware/src_board/boardver_adc.c
+++ b/firmware/libboard/common/source/boardver_adc.c
diff --git a/firmware/src_board/led.c b/firmware/libboard/common/source/led.c
index 1a88e45..1a88e45 100644
--- a/firmware/src_board/led.c
+++ b/firmware/libboard/common/source/led.c
diff --git a/firmware/src_board/uart_console.c b/firmware/libboard/common/source/uart_console.c
index e6be514..e6be514 100644
--- a/firmware/src_board/uart_console.c
+++ b/firmware/libboard/common/source/uart_console.c
diff --git a/firmware/include_board/owhw/board.h b/firmware/libboard/owhw/include/board.h
index c5e67d1..c5e67d1 100644
--- a/firmware/include_board/owhw/board.h
+++ b/firmware/libboard/owhw/include/board.h
diff --git a/firmware/src_board/owhw.c b/firmware/libboard/owhw/source/owhw.c
index c020d64..c020d64 100644
--- a/firmware/src_board/owhw.c
+++ b/firmware/libboard/owhw/source/owhw.c
diff --git a/firmware/include_board/qmod/board.h b/firmware/libboard/qmod/include/board.h
index 16a38a8..16a38a8 100644
--- a/firmware/include_board/qmod/board.h
+++ b/firmware/libboard/qmod/include/board.h
diff --git a/firmware/src_simtrace/i2c.h b/firmware/libboard/qmod/include/i2c.h
index 15e4b37..15e4b37 100644
--- a/firmware/src_simtrace/i2c.h
+++ b/firmware/libboard/qmod/include/i2c.h
diff --git a/firmware/src_simtrace/wwan_led.h b/firmware/libboard/qmod/include/wwan_led.h
index 7ba72ea..7ba72ea 100644
--- a/firmware/src_simtrace/wwan_led.h
+++ b/firmware/libboard/qmod/include/wwan_led.h
diff --git a/firmware/src_simtrace/wwan_perst.h b/firmware/libboard/qmod/include/wwan_perst.h
index 8997a52..8997a52 100644
--- a/firmware/src_simtrace/wwan_perst.h
+++ b/firmware/libboard/qmod/include/wwan_perst.h
diff --git a/firmware/src_simtrace/i2c.c b/firmware/libboard/qmod/source/i2c.c
index 0549da1..0549da1 100644
--- a/firmware/src_simtrace/i2c.c
+++ b/firmware/libboard/qmod/source/i2c.c
diff --git a/firmware/src_simtrace/wwan_led.c b/firmware/libboard/qmod/source/wwan_led.c
index 3bae0ff..3bae0ff 100644
--- a/firmware/src_simtrace/wwan_led.c
+++ b/firmware/libboard/qmod/source/wwan_led.c
diff --git a/firmware/src_simtrace/wwan_perst.c b/firmware/libboard/qmod/source/wwan_perst.c
index 365acd2..365acd2 100644
--- a/firmware/src_simtrace/wwan_perst.c
+++ b/firmware/libboard/qmod/source/wwan_perst.c
diff --git a/firmware/include_board/simtrace/board.h b/firmware/libboard/simtrace/include/board.h
index 6d11dae..6d11dae 100644
--- a/firmware/include_board/simtrace/board.h
+++ b/firmware/libboard/simtrace/include/board.h
diff --git a/firmware/src_simtrace/iso7816_fidi.h b/firmware/libcommon/include/iso7816_fidi.h
index e4690a5..e4690a5 100644
--- a/firmware/src_simtrace/iso7816_fidi.h
+++ b/firmware/libcommon/include/iso7816_fidi.h
diff --git a/firmware/src_simtrace/llist_irqsafe.h b/firmware/libcommon/include/llist_irqsafe.h
index 9a59d3d..9a59d3d 100644
--- a/firmware/src_simtrace/llist_irqsafe.h
+++ b/firmware/libcommon/include/llist_irqsafe.h
diff --git a/firmware/src_simtrace/req_ctx.h b/firmware/libcommon/include/req_ctx.h
index 41ad84d..41ad84d 100644
--- a/firmware/src_simtrace/req_ctx.h
+++ b/firmware/libcommon/include/req_ctx.h
diff --git a/firmware/src_simtrace/ringbuffer.h b/firmware/libcommon/include/ringbuffer.h
index 801e96b..801e96b 100644
--- a/firmware/src_simtrace/ringbuffer.h
+++ b/firmware/libcommon/include/ringbuffer.h
diff --git a/firmware/include_board/syscalls.h b/firmware/libcommon/include/syscalls.h
index 34f37b8..34f37b8 100644
--- a/firmware/include_board/syscalls.h
+++ b/firmware/libcommon/include/syscalls.h
diff --git a/firmware/src_simtrace/utils.h b/firmware/libcommon/include/utils.h
index b9af1f6..b9af1f6 100644
--- a/firmware/src_simtrace/utils.h
+++ b/firmware/libcommon/include/utils.h
diff --git a/firmware/src_simtrace/iso7816_fidi.c b/firmware/libcommon/source/iso7816_fidi.c
index b35f068..b35f068 100644
--- a/firmware/src_simtrace/iso7816_fidi.c
+++ b/firmware/libcommon/source/iso7816_fidi.c
diff --git a/firmware/src_simtrace/req_ctx.c b/firmware/libcommon/source/req_ctx.c
index a4ecee2..a4ecee2 100644
--- a/firmware/src_simtrace/req_ctx.c
+++ b/firmware/libcommon/source/req_ctx.c
diff --git a/firmware/src_simtrace/ringbuffer.c b/firmware/libcommon/source/ringbuffer.c
index 71fe4ed..71fe4ed 100644
--- a/firmware/src_simtrace/ringbuffer.c
+++ b/firmware/libcommon/source/ringbuffer.c
diff --git a/firmware/src_board/syscalls.c b/firmware/libcommon/source/syscalls.c
index 71cc69a..71cc69a 100644
--- a/firmware/src_board/syscalls.c
+++ b/firmware/libcommon/source/syscalls.c
diff --git a/firmware/include_libosmocore/osmocom/core/linuxlist.h b/firmware/libosmocore/include/osmocom/core/linuxlist.h
index affa827..affa827 100644
--- a/firmware/include_libosmocore/osmocom/core/linuxlist.h
+++ b/firmware/libosmocore/include/osmocom/core/linuxlist.h
diff --git a/firmware/include_libosmocore/osmocom/core/linuxrbtree.h b/firmware/libosmocore/include/osmocom/core/linuxrbtree.h
index d3f9fd1..d3f9fd1 100644
--- a/firmware/include_libosmocore/osmocom/core/linuxrbtree.h
+++ b/firmware/libosmocore/include/osmocom/core/linuxrbtree.h
diff --git a/firmware/include_libosmocore/osmocom/core/timer.h b/firmware/libosmocore/include/osmocom/core/timer.h
index c6d46e1..c6d46e1 100644
--- a/firmware/include_libosmocore/osmocom/core/timer.h
+++ b/firmware/libosmocore/include/osmocom/core/timer.h
diff --git a/firmware/src_simtrace/rbtree.c b/firmware/libosmocore/source/rbtree.c
index f0ebb8c..f0ebb8c 100644
--- a/firmware/src_simtrace/rbtree.c
+++ b/firmware/libosmocore/source/rbtree.c
diff --git a/firmware/src_libosmocore/timer.c b/firmware/libosmocore/source/timer.c
index e045441..e045441 100644
--- a/firmware/src_libosmocore/timer.c
+++ b/firmware/libosmocore/source/timer.c