commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r7154 - in usrp2/trunk/firmware: apps lib


From: eb
Subject: [Commit-gnuradio] r7154 - in usrp2/trunk/firmware: apps lib
Date: Thu, 13 Dec 2007 13:47:27 -0700 (MST)

Author: eb
Date: 2007-12-13 13:47:25 -0700 (Thu, 13 Dec 2007)
New Revision: 7154

Modified:
   usrp2/trunk/firmware/apps/rx_only.c
   usrp2/trunk/firmware/lib/dbsm.c
   usrp2/trunk/firmware/lib/u2_init.c
Log:
work-in-progress: simulate me

Modified: usrp2/trunk/firmware/apps/rx_only.c
===================================================================
--- usrp2/trunk/firmware/apps/rx_only.c 2007-12-13 20:02:12 UTC (rev 7153)
+++ usrp2/trunk/firmware/apps/rx_only.c 2007-12-13 20:47:25 UTC (rev 7154)
@@ -100,10 +100,30 @@
   hal_set_timeout(timer_delta);        // schedule next timeout
 }
 
+// Tx DSP underrun
+void
+underrun_irq_handler(unsigned irq)
+{
+  putstr("\nirq: underrun\n");
+  dsp_tx_regs->clear_state = 1;
+  // FIXME anything else?
+}
 
+// Rx DSP overrun
+void
+overrun_irq_handler(unsigned irq)
+{
+  putstr("\nirq: overrun\n");
+  dsp_rx_regs->clear_state = 1;
+  // FIXME anything else?
+}
+
+
 static void
 start_rx_cmd(const u2_mac_addr_t *host)
 {
+  printf("start_rx_cmd\n");
+
   hal_toggle_leds(0x2);
 
   host_mac_addr = *host;       // remember who we're sending to
@@ -128,13 +148,17 @@
   dsp_rx_regs->scale_iq = (1 << 16) | 1;
   dsp_rx_regs->decim_rate = 24;                // register gets N - 1
 
-  dsp_rx_regs->rx_command =
-    MK_RX_CMD(10000 * DSP_RX_SAMPLES_PER_FRAME, DSP_RX_SAMPLES_PER_FRAME);
+  uint32_t cmd = MK_RX_CMD(1 * DSP_RX_SAMPLES_PER_FRAME, 
DSP_RX_SAMPLES_PER_FRAME);
+  printf("rx_command = "); puthex32_nl(cmd);
+  
+  dsp_rx_regs->rx_command = cmd;
+  // dsp_rx_regs->rx_time = T_NOW;             // start NOW!
+  dsp_rx_regs->rx_time = 1; // timer_regs->time + 10000;
 
   // kick off the state machine
   dbsm_start(&dsp_rx_sm);
 
-  dsp_rx_regs->rx_time = T_NOW;                // start NOW!
+  printf("end start_rx_cmd\n");
 
   // FIXME need to arrange to add additional stuff to cmd queue
 }
@@ -250,6 +274,10 @@
 {
   uint32_t  status = buffer_pool_status->status;
 
+  putstr("irq: ");
+  puthex32(status);
+  putchar('\n');
+
   if (status & BPS_ERROR_ALL){
     // FIXME rare path, handle error conditions
   }
@@ -275,15 +303,17 @@
   u2_init();
 
   // setup tx gpio bits for GPIOM_FPGA_1 -- fpga debug output
-  hal_gpio_set_tx_mode(15, 0, GPIOM_FPGA_0);
-  hal_gpio_set_rx_mode(15, 0, GPIOM_FPGA_0);   // no printing...
+  hal_gpio_set_tx_mode(15, 0, GPIOM_FPGA_1);
+  hal_gpio_set_rx_mode(15, 0, GPIOM_FPGA_1);   // no printing...
 
   putstr("\nrx_only\n");
   
   // Control LEDs
   hal_set_leds(0x0, 0x3);
 
-  pic_register_handler(IRQ_BUFFER, buffer_irq_handler);
+  pic_register_handler(IRQ_BUFFER,   buffer_irq_handler);
+  pic_register_handler(IRQ_OVERRUN,  overrun_irq_handler);
+  pic_register_handler(IRQ_UNDERRUN, underrun_irq_handler);
 
   //pic_register_handler(IRQ_TIMER, timer_irq_handler);
   //hal_set_timeout(timer_delta);
@@ -300,6 +330,10 @@
   // setup receive from ETH
   bp_receive_to_buf(CPU_RX_BUF, PORT_ETH, 1, 0, 255);
 
+  // FIXME fake that we got a start command
+  u2_mac_addr_t host = {{ 0x00, 0x0A, 0xE4, 0x3E, 0xD2, 0xD5 }};
+  start_rx_cmd(&host);
+
   while(1){
     // FIXME perhaps handle low-pri stuff here
   }
@@ -347,5 +381,6 @@
   // hal_set_leds(link_is_up ? 0x2 : 0x0, 0x2);
 
   putstr("\neth link changed: speed = ");
-  puthex16_nl(speed);
+  //puthex16_nl(speed);
+  printf("%d\n", speed);
 }

Modified: usrp2/trunk/firmware/lib/dbsm.c
===================================================================
--- usrp2/trunk/firmware/lib/dbsm.c     2007-12-13 20:02:12 UTC (rev 7153)
+++ usrp2/trunk/firmware/lib/dbsm.c     2007-12-13 20:47:25 UTC (rev 7154)
@@ -24,6 +24,7 @@
 #include "memory_map.h"
 #include "buffer_pool.h"
 #include "bool.h"
+#include "nonstdio.h"
 #include <stdlib.h>
 
 typedef enum {
@@ -59,6 +60,8 @@
 void
 dbsm_start(dbsm_t *sm)
 {
+  printf("dbsm_start: buf0 = %d, recv_port = %d\n", sm->buf0, 
sm->recv_args.port);
+
   sm->running = true;
 
   buffer_state[sm->buf0] = BS_EMPTY;
@@ -72,6 +75,7 @@
   bp_receive_to_buf(sm->buf0, sm->recv_args.port, 1,
                    sm->recv_args.first_line, sm->recv_args.last_line);
   buffer_state[sm->buf0] = BS_FILLING;
+
 }
 
 

Modified: usrp2/trunk/firmware/lib/u2_init.c
===================================================================
--- usrp2/trunk/firmware/lib/u2_init.c  2007-12-13 20:02:12 UTC (rev 7153)
+++ usrp2/trunk/firmware/lib/u2_init.c  2007-12-13 20:47:25 UTC (rev 7154)
@@ -57,7 +57,7 @@
 
 #if 1
   // Enable ADCs
-  output_regs->adc_ctrl = 0; // Power up and enable outputs
+  output_regs->adc_ctrl = 0x0A; // Power up and enable outputs
 #endif
   
   // Enable clock to ADCs and DACs





reply via email to

[Prev in Thread] Current Thread [Next in Thread]