aboutsummaryrefslogtreecommitdiffstats
path: root/lib/samd21/samd21a/gcc/system_samd21.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-07-27 14:24:01 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-08-06 23:36:05 -0400
commit5633e6c249270f6c2361a754e8c330c88c014ecf (patch)
tree414270945157a025033a7c82e98e506bf403e181 /lib/samd21/samd21a/gcc/system_samd21.c
parent50142cc1b34c1c414910cffc5bb42930874ca3d0 (diff)
downloadkutter-5633e6c249270f6c2361a754e8c330c88c014ecf.tar.gz
kutter-5633e6c249270f6c2361a754e8c330c88c014ecf.tar.xz
kutter-5633e6c249270f6c2361a754e8c330c88c014ecf.zip
lib: Add Atmel SAMD21 cmsis headers
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'lib/samd21/samd21a/gcc/system_samd21.c')
-rw-r--r--lib/samd21/samd21a/gcc/system_samd21.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/lib/samd21/samd21a/gcc/system_samd21.c b/lib/samd21/samd21a/gcc/system_samd21.c
new file mode 100644
index 00000000..05a18f9c
--- /dev/null
+++ b/lib/samd21/samd21a/gcc/system_samd21.c
@@ -0,0 +1,64 @@
+/**
+ * \file
+ *
+ * \brief Low-level initialization functions called upon chip startup.
+ *
+ * Copyright (c) 2018 Microchip Technology Inc.
+ *
+ * \asf_license_start
+ *
+ * \page License
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * 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 Licence 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.
+ *
+ * \asf_license_stop
+ *
+ */
+
+#include "samd21.h"
+
+/**
+ * Initial system clock frequency. The System RC Oscillator (RCSYS) provides
+ * the source for the main clock at chip startup.
+ */
+#define __SYSTEM_CLOCK (1000000)
+
+uint32_t SystemCoreClock = __SYSTEM_CLOCK;/*!< System Clock Frequency (Core Clock)*/
+
+/**
+ * Initialize the system
+ *
+ * @brief Setup the microcontroller system.
+ * Initialize the System and update the SystemCoreClock variable.
+ */
+void SystemInit(void)
+{
+ // Keep the default device state after reset
+ SystemCoreClock = __SYSTEM_CLOCK;
+ return;
+}
+
+/**
+ * Update SystemCoreClock variable
+ *
+ * @brief Updates the SystemCoreClock with current core Clock
+ * retrieved from cpu registers.
+ */
+void SystemCoreClockUpdate(void)
+{
+ // Not implemented
+ SystemCoreClock = __SYSTEM_CLOCK;
+ return;
+}