aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2017-09-04 15:16:36 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2017-09-04 15:23:02 +0900
commite73d14ca27cffc7694ced85ef35850abb40bd838 (patch)
tree0968638aa779025cd9a9d8c1f4dee13390092d17
parentd8df82badf671fef49d5eae2e5a2f1b5ae46bf99 (diff)
Add muc/sys-gnu-linux.*.
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
-rw-r--r--ChangeLog7
-rw-r--r--mcu/sys-gnu-linux.c95
-rw-r--r--mcu/sys-gnu-linux.h41
-rw-r--r--sys.h4
4 files changed, 146 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 88aea13..70985f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-09-04 NIIBE Yutaka <gniibe@fsij.org>
+
+ * sys.h: Add mcu/sys-gnu-linux.h.
+
+ * mcu/sys-gnu-linux.c: New.
+ * mcu/sys-gnu-linux.h: New.
+
2017-08-11 NIIBE Yutaka <gniibe@fsij.org>
* VERSION: 1.4.
diff --git a/mcu/sys-gnu-linux.c b/mcu/sys-gnu-linux.c
new file mode 100644
index 0000000..f7f51b0
--- /dev/null
+++ b/mcu/sys-gnu-linux.c
@@ -0,0 +1,95 @@
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "board.h"
+
+const uint8_t sys_version[8] = {
+ 3*2+2, /* bLength */
+ 0x03, /* bDescriptorType = USB_STRING_DESCRIPTOR_TYPE */
+ /* sys version: "3.0" */
+ '3', 0, '.', 0, '0', 0,
+};
+
+const uint32_t sys_board_id = BOARD_ID;
+const uint8_t sys_board_name[] = BOARD_NAME;
+
+void
+set_led (int on)
+{
+ puts (on ? "*": "");
+}
+
+void
+flash_unlock (void)
+{
+}
+
+int
+flash_program_halfword (uint32_t addr, uint16_t data)
+{
+ fprintf (stderr, "flash_program_halfword: addr=%08x, data=%04x\n", addr, data);
+ return 0;
+}
+
+int
+flash_erase_page (uint32_t addr)
+{
+ fprintf (stderr, "flash_erase_page: addr=%08x\n", addr);
+ return 0;
+}
+
+int
+flash_check_blank (const uint8_t *p_start, size_t size)
+{
+ fprintf (stderr, "flash_check_blank: addr=%p, size=%zd\n", p_start, size);
+ return 0;
+}
+
+int
+flash_write (uint32_t dst_addr, const uint8_t *src, size_t len)
+{
+ fprintf (stderr, "flash_write: addr=%08x, %p, %zd\n", dst_addr, src, len);
+ return 0;
+}
+
+int
+flash_protect (void)
+{
+ fprintf (stderr, "flash_protect\n");
+ return 0;
+}
+
+void __attribute__((noreturn))
+flash_erase_all_and_exec (void (*entry)(void))
+{
+ (void)entry;
+ exit (1);
+}
+
+void
+usb_lld_sys_init (void)
+{
+}
+
+void
+usb_lld_sys_shutdown (void)
+{
+}
+
+
+void __attribute__((noreturn))
+nvic_system_reset (void)
+{
+ exit (0);
+}
+
+
+void
+clock_init (void)
+{
+}
+
+void
+gpio_init (void)
+{
+}
diff --git a/mcu/sys-gnu-linux.h b/mcu/sys-gnu-linux.h
new file mode 100644
index 0000000..2955ad6
--- /dev/null
+++ b/mcu/sys-gnu-linux.h
@@ -0,0 +1,41 @@
+extern const uint8_t sys_version[8];
+#if defined(USE_SYS3) || defined(USE_SYS_BOARD_ID)
+extern const uint32_t sys_board_id;
+extern const uint8_t sys_board_name[];
+# define SYS_BOARD_ID sys_board_id
+#else
+# define SYS_BOARD_ID BOARD_ID
+#endif
+
+static inline const uint8_t *
+unique_device_id (void)
+{
+ /* STM32F103 has 96-bit unique device identifier */
+
+ static const uint8_t id[] = { /* My RSA fingerprint */
+ 0x12, 0x41, 0x24, 0xBD, 0x3B, 0x48, 0x62, 0xAF,
+ 0x7A, 0x0A, 0x42, 0xF1, 0x00, 0xB4, 0x5E, 0xBD,
+ 0x4C, 0xA7, 0xBA, 0xBE
+ };
+
+ return id;
+}
+
+void set_led (int on);
+void flash_unlock (void);
+int flash_program_halfword (uint32_t addr, uint16_t data);
+int flash_erase_page (uint32_t addr);
+int flash_check_blank (const uint8_t *p_start, size_t size);
+int flash_write (uint32_t dst_addr, const uint8_t *src, size_t len);
+int flash_protect (void);
+void __attribute__((noreturn))
+flash_erase_all_and_exec (void (*entry)(void));
+
+void usb_lld_sys_init (void);
+void usb_lld_sys_shutdown (void);
+
+void __attribute__((noreturn))
+nvic_system_reset (void);
+
+void clock_init (void);
+void gpio_init (void);
diff --git a/sys.h b/sys.h
index a546371..38a69c9 100644
--- a/sys.h
+++ b/sys.h
@@ -1,4 +1,6 @@
-#if defined(MCU_KINETIS_L)
+#if defined(GNU_LINUX_EMULATION)
+#include "mcu/sys-gnu-linux.h"
+#elif defined(MCU_KINETIS_L)
#include "mcu/sys-mkl27z.h"
#elif defined(MCU_STM32F0)
#include "mcu/sys-stm32f0.h"