aboutsummaryrefslogtreecommitdiffstats
path: root/os/common/startup/ARM
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2017-06-19 17:40:19 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2017-06-19 17:40:19 +0000
commit0e546f8e46684ebc9d0081c9d19919c93a403058 (patch)
treed9d3e7c9abc898d7f866fac70f18fcb700e17dd3 /os/common/startup/ARM
parent550121c234f4552c4357a6511584e3c64501ecc3 (diff)
downloadChibiOS-0e546f8e46684ebc9d0081c9d19919c93a403058.tar.gz
ChibiOS-0e546f8e46684ebc9d0081c9d19919c93a403058.tar.bz2
ChibiOS-0e546f8e46684ebc9d0081c9d19919c93a403058.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10261 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common/startup/ARM')
-rwxr-xr-xos/common/startup/ARM/compilers/GCC/ld/SAMA5D2-T.ld43
-rwxr-xr-xos/common/startup/ARM/compilers/GCC/mk/startup_sama5d2.mk9
-rwxr-xr-xos/common/startup/ARM/devices/SAMA5D2/armparams.h62
3 files changed, 114 insertions, 0 deletions
diff --git a/os/common/startup/ARM/compilers/GCC/ld/SAMA5D2-T.ld b/os/common/startup/ARM/compilers/GCC/ld/SAMA5D2-T.ld
new file mode 100755
index 000000000..aacf3aa5c
--- /dev/null
+++ b/os/common/startup/ARM/compilers/GCC/ld/SAMA5D2-T.ld
@@ -0,0 +1,43 @@
+/*
+ ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/*
+ * SAMA5D2 memory setup in trusted mode.
+ */
+MEMORY
+{
+ flash : org = 0x00200000, len = 64k
+ ram0 : org = 0x00210000, len = 64k
+ ram1 : org = 0x00000000, len = 0
+ ram2 : org = 0x00000000, len = 0
+ ram3 : org = 0x00000000, len = 0
+ ram4 : org = 0x00000000, len = 0
+ ram5 : org = 0x00000000, len = 0
+ ram6 : org = 0x00000000, len = 0
+ ram7 : org = 0x00000000, len = 0
+}
+
+/* RAM region to be used for stacks. This stack accommodates the processing
+ of all exceptions and interrupts*/
+REGION_ALIAS("STACKS_RAM", ram0);
+
+/* RAM region to be used for data segment.*/
+REGION_ALIAS("DATA_RAM", ram0);
+
+/* RAM region to be used for BSS segment.*/
+REGION_ALIAS("BSS_RAM", ram0);
+
+INCLUDE rules.ld
diff --git a/os/common/startup/ARM/compilers/GCC/mk/startup_sama5d2.mk b/os/common/startup/ARM/compilers/GCC/mk/startup_sama5d2.mk
new file mode 100755
index 000000000..f9c953b91
--- /dev/null
+++ b/os/common/startup/ARM/compilers/GCC/mk/startup_sama5d2.mk
@@ -0,0 +1,9 @@
+# List of the ChibiOS generic LPC214x file.
+STARTUPSRC = $(CHIBIOS)/os/common/startup/ARM/compilers/GCC/crt1.c
+
+STARTUPASM = $(CHIBIOS)/os/common/startup/ARM/compilers/GCC/vectors.S \
+ $(CHIBIOS)/os/common/startup/ARM/compilers/GCC/crt0.S
+
+STARTUPINC = ${CHIBIOS}/os/common/startup/ARM/devices/SAMA5D2
+
+STARTUPLD = ${CHIBIOS}/os/common/startup/ARM/compilers/GCC/ld
diff --git a/os/common/startup/ARM/devices/SAMA5D2/armparams.h b/os/common/startup/ARM/devices/SAMA5D2/armparams.h
new file mode 100755
index 000000000..f54dfd6ca
--- /dev/null
+++ b/os/common/startup/ARM/devices/SAMA5D2/armparams.h
@@ -0,0 +1,62 @@
+/*
+ ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file LPC214x/armparams.h
+ * @brief ARM parameters for the LPC214x.
+ *
+ * @defgroup ARM_LPC214x LPC214x Specific Parameters
+ * @ingroup ARM_SPECIFIC
+ * @details This file contains the ARM specific parameters for the
+ * LPC214x platform.
+ * @{
+ */
+
+#ifndef ARMPARAMS_H
+#define ARMPARAMS_H
+
+/**
+ * @brief ARM core model.
+ */
+#define ARM_CORE ARM_CORE_ARM9
+
+/**
+ * @brief Thumb-capable.
+ */
+#define ARM_SUPPORTS_THUMB 1
+
+/**
+ * @brief Thumb2-capable.
+ */
+#define ARM_SUPPORTS_THUMB2 1
+
+/**
+ * @brief Implementation of the wait-for-interrupt state enter.
+ */
+#define ARM_WFI_IMPL asm volatile ("wfi")
+
+#if !defined(_FROM_ASM_) || defined(__DOXYGEN__)
+/**
+ * @brief Address of the IRQ vector register in the interrupt controller.
+ */
+#define ARM_IRQ_VECTOR_REG 0xF803C014U
+#else
+#define ARM_IRQ_VECTOR_REG 0xF803C014
+#endif
+
+#endif /* ARMPARAMS_H */
+
+/** @} */