Newer Chopstx
authorNIIBE Yutaka <gniibe@fsij.org>
Wed, 19 Jun 2013 04:03:53 +0000 (13:03 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Wed, 19 Jun 2013 04:03:53 +0000 (13:03 +0900)
ChangeLog
chopstx
src/Makefile.in
src/configure
src/main.c
src/usb_stm32f103.c

index d3c65c2..5fdd6ef 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-06-19  Niibe Yutaka  <gniibe@fsij.org>
+
+       * src/main.c (usb_intr): Avoid interrupt masking by application.
+
 2013-06-18  Niibe Yutaka  <gniibe@fsij.org>
 
        * src/random.c: Update for Chopstx.
@@ -39,7 +43,7 @@
        * chibios: Remove.
        * src/Makefile.in: Update for Chopstx.
 
-       * src/usb_stm32f103.c (TRUE, FALSE, NULL): Defined here.
+       * src/usb_stm32f103.c (TRUE, FALSE): Defined here.
 
 2013-03-15  Niibe Yutaka  <gniibe@fsij.org>
 
diff --git a/chopstx b/chopstx
index 7f2415f..d77204c 160000 (submodule)
--- a/chopstx
+++ b/chopstx
@@ -1 +1 @@
-Subproject commit 7f2415f3a2c7aa49468d8f9195f3d31c5653b769
+Subproject commit d77204c7d536806f66d3ad0e477e8039ff441681
index 6277d82..a61bf2d 100644 (file)
@@ -20,7 +20,7 @@ OBJCOPY   = $(CROSS)objcopy
 MCU   = cortex-m3
 CWARN = -Wall -Wextra -Wstrict-prototypes
 # DEFS: Add  
-DEFS  = -DFREE_STANDING @HAVE_SYS_H@
+DEFS  = @HAVE_SYS_H@
 OPT   = -O3 -Os -g
 LIBS  =
 
index db42593..ae33837 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # This file is *NOT* generated by GNU Autoconf, but written by NIIBE Yutaka
 #
-# Copyright (C) 2010, 2011, 2012 Free Software Initiative of Japan
+# Copyright (C) 2010, 2011, 2012, 2013 Free Software Initiative of Japan
 #
 # This file is a part of NeuG, a Random Number Generator implementation.
 #
index 8476eb5..f3248c4 100644 (file)
@@ -591,12 +591,9 @@ usb_intr (void *arg)
   chopstx_intr_t interrupt;
 
   (void)arg;
-  asm volatile ("cpsid   i" : : : "memory");
-  /* Disable because usb_lld_init assumes interrupt handler.  */
   usb_lld_init (vcom_configuration_desc[7]);
   chopstx_claim_irq (&interrupt, INTR_REQ_USB);
-  /* Enable */
-  asm volatile ("cpsie   i" : : : "memory");
+  usb_interrupt_handler ();
 
   while (1)
     {
@@ -787,7 +784,6 @@ main (int argc, char **argv)
   adc_init ();
 
   event_flag_init (&led_event);
-
   
   led_thread = chopstx_create (PRIO_LED, __stackaddr_led, __stacksize_led,
                               led_blinker, NULL);
index 887d69f..b75dfdb 100644 (file)
@@ -1,16 +1,9 @@
-#ifdef FREE_STANDING
 #include <stdint.h>
 #include <stdlib.h>
+
 #define TRUE  1
 #define FALSE 0
 
-#define NULL  0
-
-#define     __IO    volatile
-#else
-#include "ch.h"
-#include "hal.h"
-#endif
 #include "sys.h"
 #include "usb_lld.h"
 
@@ -90,15 +83,15 @@ static struct DATA_INFO *const data_p = &data_info;
 #define PMA_ADDR  (0x40006000UL) /* USB_IP Packet Memory Area base address   */
 
 /* Control register */
-#define CNTR    ((__IO uint16_t *)(REG_BASE + 0x40))
+#define CNTR    ((volatile uint16_t *)(REG_BASE + 0x40))
 /* Interrupt status register */
-#define ISTR    ((__IO uint16_t *)(REG_BASE + 0x44))
+#define ISTR    ((volatile uint16_t *)(REG_BASE + 0x44))
 /* Frame number register */
-#define FNR     ((__IO uint16_t *)(REG_BASE + 0x48))
+#define FNR     ((volatile uint16_t *)(REG_BASE + 0x48))
 /* Device address register */
-#define DADDR   ((__IO uint16_t *)(REG_BASE + 0x4C))
+#define DADDR   ((volatile uint16_t *)(REG_BASE + 0x4C))
 /* Buffer Table address register */
-#define BTABLE  ((__IO uint16_t *)(REG_BASE + 0x50))
+#define BTABLE  ((volatile uint16_t *)(REG_BASE + 0x50))
 
 #define ISTR_CTR    (0x8000) /* Correct TRansfer (clear-only bit) */
 #define ISTR_DOVR   (0x4000) /* DMA OVeR/underrun (clear-only bit) */