Author: jaguarondi
Date: 2008-08-27 17:48:55 +0200 (Wed, 27 Aug 2008)
New Revision: 1617

Modified:
   firmware/fuxusb/branches/new_rf/src/spi_task.c
   firmware/fuxusb/branches/new_rf/src/spi_task.h
   firmware/fuxusb/branches/new_rf/src/usb_commands.c
Log:
* Added debug status for AFH.


Modified: firmware/fuxusb/branches/new_rf/src/spi_task.c
===================================================================
--- firmware/fuxusb/branches/new_rf/src/spi_task.c      2008-08-27 14:52:00 UTC 
(rev 1616)
+++ firmware/fuxusb/branches/new_rf/src/spi_task.c      2008-08-27 15:48:55 UTC 
(rev 1617)
@@ -168,6 +168,11 @@
     P3_7 = 0; /* XXX debug */
 }
 
+#if defined(AFH_DEBUG)
+static bit AFH_toggle;
+static uint8_t AFH_data[AFH_SIZE];
+#endif
+
 /**
  * \brief SPI task main function.
  * The SPI protocol must be refactored soon. So, I don't change this function 
ATM.
@@ -206,6 +211,7 @@
     }
     else if (spi_idx >= SPI_SIZE)
     {
+        /* SPI transfer done */
         uint8_t config_in = 0;
         static uint8_t config_out = 0;
 
@@ -230,7 +236,16 @@
                 FIFO_MIC_put_n(&spi_in[SPI_AUDIO_OFFSET], AUDIO_MIC_SIZE);
             }
         }
-
+#if defined(AFH_DEBUG)
+        if ((AFH_toggle==1 && spi_in[SPI_AUDIO_OFFSET + AFH_SIZE - 1]) ||
+            (AFH_toggle==0 && !spi_in[SPI_AUDIO_OFFSET + AFH_SIZE - 1]))
+        {
+            for (i=0; i<AFH_SIZE; i++)
+            {
+                AFH_data[i] = spi_in[i+SPI_AUDIO_OFFSET];
+            }
+        }
+#endif
         /* Outgoing data, add commands and/or audio. */
         spi_out[SPI_IDX_OFFSET] = frame_out_idx++;
         if ((!(config_out & CFG_DATA_MK)) == (!(config_in & CFG_ACK_MK)) &&
@@ -256,3 +271,18 @@
     }
     P3_6 = 0; /* XXX debug */
 }
+
+#if defined(AFH_DEBUG)
+void add_afh_debug_info(void)
+{
+    uint8_t i;
+    /* 26 bytes + AFH_toggle flag */
+    for (i=0; i<AFH_SIZE; i++)
+    {
+        Usb_write_byte(AFH_data[i]);
+    }
+    AFH_toggle = !AFH_toggle;
+    /* Mark buffer as without data in case it's not overwritten */
+    AFH_data[AFH_SIZE-1] = 2;
+}
+#endif

Modified: firmware/fuxusb/branches/new_rf/src/spi_task.h
===================================================================
--- firmware/fuxusb/branches/new_rf/src/spi_task.h      2008-08-27 14:52:00 UTC 
(rev 1616)
+++ firmware/fuxusb/branches/new_rf/src/spi_task.h      2008-08-27 15:48:55 UTC 
(rev 1617)
@@ -29,6 +29,8 @@
 
 #define SPI_START P3_4
 #define SPI_DREADY P3_2
+/* Necessary to debug AFH */
+#define AFH_DEBUG
 
 /* Variables */
 extern uint8_t RF_Status;
@@ -39,4 +41,13 @@
 void spi_task(void);
 void spi_task_reset(void);
 
+#if defined(AFH_DEBUG)
+#include "lib_mcu/usb/usb_drv.h"
+#define AFH_RANGE 13
+#define AFH_SIZE (2*AFH_RANGE+1)
+void add_afh_debug_info(void);
+#else
+#define AFH_SIZE 0
+#endif
+
 #endif /* _SPITASK_H_ */

Modified: firmware/fuxusb/branches/new_rf/src/usb_commands.c
===================================================================
--- firmware/fuxusb/branches/new_rf/src/usb_commands.c  2008-08-27 14:52:00 UTC 
(rev 1616)
+++ firmware/fuxusb/branches/new_rf/src/usb_commands.c  2008-08-27 15:48:55 UTC 
(rev 1617)
@@ -102,15 +102,28 @@
         Usb_write_byte(0);
         Usb_write_byte(RF_ONLINE ? 1 : 0);
         Usb_write_byte(RF_Status);
+
+        i = 0;
+#if defined(AFH_DEBUG)
+        {
+            uint8_t data size = FifoIn_STT_Idx / CMD_SIZE;
+            if (size > 8)
+                size = 8;
+            Usb_write_byte(size);
+        }
+        add_afh_debug_info();
+        i += AFH_SIZE;
+#else
         Usb_write_byte(FifoIn_STT_Idx ? (FifoIn_STT_Idx / CMD_SIZE) : 0);
+#endif
 
         /* Write statuses */
-        for(i=0;i<FifoIn_STT_Idx;i++)
+        for(;i<(FifoIn_STT_Idx+AFH_SIZE) && i<60;i++)
         {
             Usb_write_byte(FIFO_STT_get());
         }
         /* And finish with 0 to completly fill the EP fifo */
-        for(i=FifoIn_STT_Idx;i<60;i++)
+        for(;i<60;i++)
         {
             Usb_write_byte(0);
         }


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to