Fix regnual for new Chopstx
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 2 Jun 2016 02:03:59 +0000 (11:03 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 2 Jun 2016 02:03:59 +0000 (11:03 +0900)
ChangeLog
chopstx
regnual/Makefile
regnual/regnual.c
regnual/reset.c [new file with mode: 0644]
regnual/sys.c [deleted file]

index 520f81d..0fe540f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-06-02  Niibe Yutaka  <gniibe@fsij.org>
+
+       * regnual/regnual.c (usb_cb_tx_done): Follow the change of USB
+       API.
+
+       * regnual/reset.c: Rename from sys.c.
+
 2016-06-01  Niibe Yutaka  <gniibe@fsij.org>
 
        * tool/stlinkv2.py (stlinkv2.__init__): Don't
diff --git a/chopstx b/chopstx
index c79a418..78718e5 160000 (submodule)
--- a/chopstx
+++ b/chopstx
@@ -1 +1 @@
-Subproject commit c79a41870a9d473947adb1d2fbc6687b59b9c31b
+Subproject commit 78718e57df6f55c0670cdb6b70337204dd045dba
index 9fb59c8..48447d5 100644 (file)
@@ -2,7 +2,7 @@
 
 PROJECT = regnual
 
-OBJS = regnual.o usb_stm32f103.o sys.o
+OBJS = regnual.o usb-stm32f103.o reset.o
 LDSCRIPT= regnual.ld
 
 ###################################
@@ -23,7 +23,7 @@ DEFS = -DFREE_STANDING
 
 CFLAGS = -O2 -g
 CFLAGS += -Wa,-alms=$(notdir $(<:.c=.lst)) -fpie
-CFLAGS += $(CWARN) -I . -I ../src -fno-common $(MCFLAGS) $(TOPT) $(DEFS)
+CFLAGS += $(CWARN) -I . -I ../chopstx -fno-common $(MCFLAGS) $(TOPT) $(DEFS)
 
 LDFLAGS = -T$(LDSCRIPT) -nostartfiles $(MCFLAGS) $(TOPT)
 
@@ -32,19 +32,19 @@ LDFLAGS = -T$(LDSCRIPT) -nostartfiles $(MCFLAGS) $(TOPT)
 
 all: regnual.hex
 
-regnual.o: regnual.c ../src/sys.h ../src/usb_lld.h
+regnual.o: regnual.c ../chopstx/sys.h ../chopstx/usb_lld.h
 
 regnual.hex: regnual.elf
        $(OBJCOPY) -Obinary regnual.elf regnual.bin
        $(OBJCOPY) -Oihex regnual.elf regnual.hex
 
-usb_stm32f103.o: ../src/usb_stm32f103.c
-       $(CC) $(CFLAGS) -c -o usb_stm32f103.o ../src/usb_stm32f103.c
+usb-stm32f103.o: ../chopstx/mcu/usb-stm32f103.c
+       $(CC) $(CFLAGS) -c -o usb-stm32f103.o ../chopstx/mcu/usb-stm32f103.c
 
 regnual.elf: $(OBJS) $(LDSCRIPT)
        $(CC) $(LDFLAGS) -o regnual.elf $(OBJS)
 
 clean:
-       -rm -f $(OBJS) regnual.elf regnual.hex regnual.bin
+       -rm -f $(OBJS) regnual.elf regnual.hex regnual.bin *.lst
 
 distclean: clean
index 85db14c..01cea34 100644 (file)
@@ -318,9 +318,10 @@ void usb_cb_rx_ready (uint8_t ep_num)
   (void)ep_num;
 }
 
-void usb_cb_tx_done (uint8_t ep_num)
+void usb_cb_tx_done (uint8_t ep_num, uint32_t len)
 {
   (void)ep_num;
+  (void)len;
 }
 
 static void wait (int count)
diff --git a/regnual/reset.c b/regnual/reset.c
new file mode 100644 (file)
index 0000000..f88f054
--- /dev/null
@@ -0,0 +1,92 @@
+#include "types.h"
+
+static void fatal (void)
+{
+  for (;;);
+}
+
+static void none (void)
+{
+}
+
+/*
+ * Note: the address of this routine 'entry' will be in the vectors as
+ * RESET, but this will be called from application.  It's not RESET
+ * state, then.
+ *
+ * This routine doesn't change PSP and MSP.  Application should
+ * prepare those stack pointers.
+ */
+static __attribute__ ((naked,section(".text.entry")))
+void entry (void)
+{
+  asm volatile ("mov   r0, pc\n\t"
+               "bic    r0, r0, #255\n\t" /* R0 := vector_table address    */
+               "mov    r1, #0x90\n\t"    /* R1 := numbers of entries * 4  */
+               "ldr    r3, .L01\n"       /* R3 := -0x20001400 fixed addr  */
+       "0:\n\t"
+               "ldr    r2, [r0, r1]\n\t"
+               "add    r2, r0\n\t" /* Relocate: R0 - 0x20001400 */
+               "add    r2, r3\n\t"
+               "str    r2, [r0, r1]\n\t"
+               "subs   r1, r1, #4\n\t"
+               "bne    0b\n\t"
+               /* Relocation done. */
+               "add    r0, r3\n\t"
+               "ldr    r3, .L00\n"
+       ".LPIC00:\n\t"
+               "add    r3, pc\n\t" /* R3 := @_GLOBAL_OFFSET_TABLE_ */
+               /* Compute the address of BSS.  */
+               "ldr    r4, .L00+4\n\t"
+               "ldr    r1, [r3, r4]\n\t"
+               "add    r1, r0\n\t" /* relocate bss_start */
+               "ldr    r4, .L00+8\n\t"
+               "ldr    r2, [r3, r4]\n"
+               "add    r2, r0\n\t" /* relocate bss_end */
+               /* Clear BSS.  */
+               "mov    r0, #0\n\t"
+       "0:\n\t"
+               "str    r0, [r1], #4\n\t"
+               "cmp    r2, r1\n\t"
+               "bhi    0b\n\t"
+               "cpsie  i\n\t"  /* Enable interrupts */
+               "mov    r0, #0\n\t"
+               "mov    r1, r0\n\t"
+               "bl     main\n"
+       "1:\n\t"
+               "b      1b\n\t"
+               ".align 2\n"
+       ".L01:\n\t"
+               ".word  -0x20001400\n"
+       ".L00:\n\t"
+               ".word  _GLOBAL_OFFSET_TABLE_-(.LPIC00+4)\n\t"
+               ".word  _bss_start(GOT)\n\t"
+               ".word  _bss_end(GOT)"
+               : /* no output */ : /* no input */ : "memory");
+}
+
+typedef void (*handler)(void);
+extern uint8_t __ram_end__;
+extern void usb_interrupt_handler (void);
+
+handler vector_table[] __attribute__ ((section(".vectors"))) = {
+  (handler)&__ram_end__,
+  entry,
+  fatal,               /* nmi */
+  fatal,               /* hard fault */
+  /* 10 */
+  fatal,               /* mem manage */
+  fatal,               /* bus fault */
+  fatal,               /* usage fault */
+  none,
+  /* 20 */
+  none, none, none, none,  none, none, none, none,
+  /* 40 */
+  none, none, none, none,  none, none, none, none,
+  /* 60 */
+  none, none, none, none,  none, none, none, none,
+  /* 80 */
+  none, none, none, none,
+  /* 90 */
+  usb_interrupt_handler,
+};
diff --git a/regnual/sys.c b/regnual/sys.c
deleted file mode 100644 (file)
index f88f054..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#include "types.h"
-
-static void fatal (void)
-{
-  for (;;);
-}
-
-static void none (void)
-{
-}
-
-/*
- * Note: the address of this routine 'entry' will be in the vectors as
- * RESET, but this will be called from application.  It's not RESET
- * state, then.
- *
- * This routine doesn't change PSP and MSP.  Application should
- * prepare those stack pointers.
- */
-static __attribute__ ((naked,section(".text.entry")))
-void entry (void)
-{
-  asm volatile ("mov   r0, pc\n\t"
-               "bic    r0, r0, #255\n\t" /* R0 := vector_table address    */
-               "mov    r1, #0x90\n\t"    /* R1 := numbers of entries * 4  */
-               "ldr    r3, .L01\n"       /* R3 := -0x20001400 fixed addr  */
-       "0:\n\t"
-               "ldr    r2, [r0, r1]\n\t"
-               "add    r2, r0\n\t" /* Relocate: R0 - 0x20001400 */
-               "add    r2, r3\n\t"
-               "str    r2, [r0, r1]\n\t"
-               "subs   r1, r1, #4\n\t"
-               "bne    0b\n\t"
-               /* Relocation done. */
-               "add    r0, r3\n\t"
-               "ldr    r3, .L00\n"
-       ".LPIC00:\n\t"
-               "add    r3, pc\n\t" /* R3 := @_GLOBAL_OFFSET_TABLE_ */
-               /* Compute the address of BSS.  */
-               "ldr    r4, .L00+4\n\t"
-               "ldr    r1, [r3, r4]\n\t"
-               "add    r1, r0\n\t" /* relocate bss_start */
-               "ldr    r4, .L00+8\n\t"
-               "ldr    r2, [r3, r4]\n"
-               "add    r2, r0\n\t" /* relocate bss_end */
-               /* Clear BSS.  */
-               "mov    r0, #0\n\t"
-       "0:\n\t"
-               "str    r0, [r1], #4\n\t"
-               "cmp    r2, r1\n\t"
-               "bhi    0b\n\t"
-               "cpsie  i\n\t"  /* Enable interrupts */
-               "mov    r0, #0\n\t"
-               "mov    r1, r0\n\t"
-               "bl     main\n"
-       "1:\n\t"
-               "b      1b\n\t"
-               ".align 2\n"
-       ".L01:\n\t"
-               ".word  -0x20001400\n"
-       ".L00:\n\t"
-               ".word  _GLOBAL_OFFSET_TABLE_-(.LPIC00+4)\n\t"
-               ".word  _bss_start(GOT)\n\t"
-               ".word  _bss_end(GOT)"
-               : /* no output */ : /* no input */ : "memory");
-}
-
-typedef void (*handler)(void);
-extern uint8_t __ram_end__;
-extern void usb_interrupt_handler (void);
-
-handler vector_table[] __attribute__ ((section(".vectors"))) = {
-  (handler)&__ram_end__,
-  entry,
-  fatal,               /* nmi */
-  fatal,               /* hard fault */
-  /* 10 */
-  fatal,               /* mem manage */
-  fatal,               /* bus fault */
-  fatal,               /* usage fault */
-  none,
-  /* 20 */
-  none, none, none, none,  none, none, none, none,
-  /* 40 */
-  none, none, none, none,  none, none, none, none,
-  /* 60 */
-  none, none, none, none,  none, none, none, none,
-  /* 80 */
-  none, none, none, none,
-  /* 90 */
-  usb_interrupt_handler,
-};