altos/stmf0: Initialize UART RTS/CTS before turning it on
[fw/altos] / src / stm / ao_usb_stm.c
index 2abaf10fddefe415a2c4d5d25eeda6606facb2a4..595bddac29c0618f35e8063c5a29dff2530314c7 100644 (file)
@@ -598,7 +598,7 @@ ao_usb_ep0_in_start(uint16_t max)
        ao_usb_ep0_flush();
 }
 
-static struct ao_usb_line_coding ao_usb_line_coding = {115200, 0, 0, 8};
+struct ao_usb_line_coding ao_usb_line_coding = {115200, 0, 0, 8};
 
 /* Walk through the list of descriptors and find a match
  */
@@ -1109,7 +1109,7 @@ struct ao_usb_dbg {
        int             line;
        char            *msg;
        uint32_t        value;
-       uint32_t        primask;
+       uint32_t        prival;
 #if TX_DBG
        uint16_t        in_count;
        uint32_t        in_epr;
@@ -1125,19 +1125,23 @@ struct ao_usb_dbg {
 #endif
 };
 
-#define NUM_USB_DBG    128
+#define NUM_USB_DBG    16
 
-static struct ao_usb_dbg dbg[128];
+static struct ao_usb_dbg dbg[NUM_USB_DBG];
 static int dbg_i;
 
 static void _dbg(int line, char *msg, uint32_t value)
 {
-       uint32_t        primask;
+       uint32_t        prival;
        dbg[dbg_i].line = line;
        dbg[dbg_i].msg = msg;
        dbg[dbg_i].value = value;
-       asm("mrs %0,primask" : "=&r" (primask));
-       dbg[dbg_i].primask = primask;
+#if AO_NONMASK_INTERRUPT
+       asm("mrs %0,basepri" : "=&r" (prival));
+#else
+       asm("mrs %0,primask" : "=&r" (prival));
+#endif
+       dbg[dbg_i].prival = prival;
 #if TX_DBG
        dbg[dbg_i].in_count = in_count;
        dbg[dbg_i].in_epr = stm_usb.epr[AO_USB_IN_EPR];