aboutsummaryrefslogtreecommitdiff
path: root/mcu/sys-mkl27z.h
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2016-05-30 14:39:02 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2016-05-30 14:39:02 +0900
commitb90e58f763bd277b7a5285601a34818f44f2b01c (patch)
tree4535e6abc8b77d58215796c240489e7dbf499b44 /mcu/sys-mkl27z.h
parent8209f3875510d1990142a367c8bab6164c2f82cc (diff)
Move CHIP specific things to mcu/
Diffstat (limited to 'mcu/sys-mkl27z.h')
-rw-r--r--mcu/sys-mkl27z.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/mcu/sys-mkl27z.h b/mcu/sys-mkl27z.h
new file mode 100644
index 0000000..eed5d92
--- /dev/null
+++ b/mcu/sys-mkl27z.h
@@ -0,0 +1,41 @@
+extern const uint8_t sys_version[8];
+extern const uint32_t sys_board_id;
+extern const char *const sys_board_name;
+
+typedef void (*handler)(void);
+extern handler sys_vector[16];
+
+/*
+ * Users can override INLINE by 'attribute((used))' to have an
+ * implementation defined.
+ */
+#if !defined(INLINE)
+#define INLINE __inline__
+#endif
+
+static INLINE void
+clock_init (void)
+{
+ (*sys_vector[0]) ();
+}
+
+static INLINE void
+gpio_init (void)
+{
+ (*sys_vector[1]) ();
+}
+
+static inline void
+set_led (int on)
+{
+ void (*func) (int) = (void (*)(int))sys_vector[2];
+
+ return (*func) (on);
+}
+
+void crc32_init (unsigned int *);
+void crc32_u8 (unsigned int *, unsigned char);
+void crc32_u32 (unsigned int *, unsigned int);
+
+int flash_erase_page (uint32_t addr);
+int flash_program_word (uint32_t addr, uint32_t word);