diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2017-09-04 15:16:36 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2017-09-04 15:23:02 +0900 |
commit | e73d14ca27cffc7694ced85ef35850abb40bd838 (patch) | |
tree | 0968638aa779025cd9a9d8c1f4dee13390092d17 | |
parent | d8df82badf671fef49d5eae2e5a2f1b5ae46bf99 (diff) |
Add muc/sys-gnu-linux.*.
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | mcu/sys-gnu-linux.c | 95 | ||||
-rw-r--r-- | mcu/sys-gnu-linux.h | 41 | ||||
-rw-r--r-- | sys.h | 4 |
4 files changed, 146 insertions, 1 deletions
@@ -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); @@ -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" |