[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r7154 - in usrp2/trunk/firmware: apps lib,
eb <=