commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r5525 - gnuradio/branches/developers/eb/u2f/firmware


From: eb
Subject: [Commit-gnuradio] r5525 - gnuradio/branches/developers/eb/u2f/firmware
Date: Tue, 22 May 2007 23:47:52 -0600 (MDT)

Author: eb
Date: 2007-05-22 23:47:52 -0600 (Tue, 22 May 2007)
New Revision: 5525

Modified:
   gnuradio/branches/developers/eb/u2f/firmware/Makefile
   gnuradio/branches/developers/eb/u2f/firmware/bootstrap.c
   gnuradio/branches/developers/eb/u2f/firmware/memory_map.h
Log:
work-in-progress on u2 firmware

Modified: gnuradio/branches/developers/eb/u2f/firmware/Makefile
===================================================================
--- gnuradio/branches/developers/eb/u2f/firmware/Makefile       2007-05-23 
05:35:02 UTC (rev 5524)
+++ gnuradio/branches/developers/eb/u2f/firmware/Makefile       2007-05-23 
05:47:52 UTC (rev 5525)
@@ -23,3 +23,9 @@
 
 install-sim: all
        cp -a *.rom ../top/u2_sim
+
+# dependencies
+bootstrap.o: memory_map.h spi.h sim_io.h bootstrap.c
+oldbootstrap.o: memory_map.h spi.h sim_io.h oldbootstrap.c
+spi.o: memory_map.h spi.h spi.c
+sim_io.o: sim_io.h

Modified: gnuradio/branches/developers/eb/u2f/firmware/bootstrap.c
===================================================================
--- gnuradio/branches/developers/eb/u2f/firmware/bootstrap.c    2007-05-23 
05:35:02 UTC (rev 5524)
+++ gnuradio/branches/developers/eb/u2f/firmware/bootstrap.c    2007-05-23 
05:47:52 UTC (rev 5525)
@@ -3,6 +3,7 @@
 #include "spi.h"
 #include "sim_io.h"
 
+
 int main() {
 
   sim_puthex_nl(0);
@@ -25,25 +26,16 @@
   spi_wait();
 
   // Allow for clock switchover
-  char clock_controls = (char)0x1C;
-  volatile char *p = (char *) OUTPUTS_BASE + OUTPUTS_CLK;
-  *p = clock_controls;
+  output_regs->clk_ctrl = 0x1C;
 
   // Set GPIOs to outputs
-  volatile unsigned short *gpio_ddr_rx = (unsigned short *)(GPIO_BASE + 
GPIO_DDR + GPIO_RX);
-  volatile unsigned short *gpio_ddr_tx = (unsigned short *)(GPIO_BASE + 
GPIO_DDR + GPIO_TX);
-  volatile unsigned short *gpio_io_rx = (unsigned short *)(GPIO_BASE + GPIO_IO 
+ GPIO_RX);
-  volatile unsigned short *gpio_io_tx = (unsigned short *)(GPIO_BASE + GPIO_IO 
+ GPIO_TX);
-  
-  *gpio_ddr_rx = 0xffff;
-  *gpio_ddr_tx = 0xffff;
-  
-  *gpio_io_rx = (short) 0xDEAD;
-  *gpio_io_tx = (short) 0xBEEF;
+  gpio_base->ddr_rx = 0xffff;
+  gpio_base->ddr_tx = 0xffff;
+  gpio_base->io_rx  = 0xDEAD;
+  gpio_base->io_tx  = 0xBEEF;
 
   // Enable ADCs
-  p = (char *)(OUTPUTS_BASE + OUTPUTS_ADC);
-  *p = 0;  // Power up and enable outputs
+  output_regs->adc_ctrl = 0; // Power up and enable outputs
   
   // Enable clock to ADCs and DACs
   spi_transact(SPI_TXONLY, SPI_SS_AD9510, 0x00003F80, 24, 0); // Turn on 
output 3 (DAC CLK), normal levels
@@ -57,23 +49,17 @@
   //spi_transact(SPI_TXONLY, SPI_SS_AD9777, 0x00000301, 16, 0);  // PLL = 
   //spi_transact(SPI_TXONLY, SPI_SS_AD9777, 0x00000480, 16, 0);  // PLL on, 
automatic
 
-  volatile short *dsp_i = (short *)(DSP_BASE+DSP_IAMP);
-  volatile short *dsp_q = (short *)(DSP_BASE+DSP_QAMP);
-  volatile int *dsp_freq = (int *)(DSP_BASE+DSP_FREQ);
-  volatile short *dsp_scale_i = (short *)(DSP_BASE+DSP_ISCALE);
-  volatile short *dsp_scale_q = (short *)(DSP_BASE+DSP_QSCALE);
 
-  *dsp_i = (short) 0x7FFF;
-  *dsp_q = (short) 0x7FFF;
-  *dsp_freq = 0x12345678;
-  *dsp_scale_i = (short) 512;
-  *dsp_scale_q = (short) 123;
+  // write DSP registers...
+  dsp_regs->i = 0x7FFF;
+  dsp_regs->q = 0x7FFF;
+  dsp_regs->freq = 0x12345678;
+  dsp_regs->scale_i = 512;
+  dsp_regs->scale_q = 123;
 
   // Set up serdes
   //char serdes_controls = (char)(SERDES_ENABLE | SERDES_LOOPEN | SERDES_RXEN);
-  char serdes_controls = (char)(SERDES_ENABLE | SERDES_RXEN);
-  volatile char *serdes = (char *) OUTPUTS_BASE + OUTPUTS_SERDES;
-  *serdes = serdes_controls;
+  output_regs->serdes_ctrl = (SERDES_ENABLE | SERDES_RXEN);
 
 
   // Set up DAC
@@ -86,16 +72,15 @@
   }
 
   // Control LEDs
-  volatile char *leds = (char *) OUTPUTS_BASE + OUTPUTS_MISC;
   while(1) {
-    *leds = (char) 0x00;
-    *leds = (char) 0x01;
-    *leds = (char) 0x00;
-    *leds = (char) 0x01;
-    *leds = (char) 0x01;
-    *leds = (char) 0x01;
-    *leds = (char) 0x03;
-    *leds = (char) 0x02;
+    output_regs->leds = 0x00;
+    output_regs->leds = 0x01;
+    output_regs->leds = 0x00;
+    output_regs->leds = 0x01;
+    output_regs->leds = 0x01;
+    output_regs->leds = 0x01;
+    output_regs->leds = 0x03;
+    output_regs->leds = 0x02;
   }
-    
+
 }

Modified: gnuradio/branches/developers/eb/u2f/firmware/memory_map.h
===================================================================
--- gnuradio/branches/developers/eb/u2f/firmware/memory_map.h   2007-05-23 
05:35:02 UTC (rev 5524)
+++ gnuradio/branches/developers/eb/u2f/firmware/memory_map.h   2007-05-23 
05:47:52 UTC (rev 5525)
@@ -60,7 +60,15 @@
 #define GPIO_RX 0
 #define GPIO_TX 2
 
+typedef struct {
+  volatile unsigned short      ddr_rx;
+  volatile unsigned short      ddr_tx;
+  volatile unsigned short      io_rx;
+  volatile unsigned short      io_tx;
+} gpio_regs_t;
 
+#define gpio_base ((gpio_regs_t *) GPIO_BASE)
+
 ///////////////////////////////////////////////////
 // Basic Outputs, Slave 5
 #define OUTPUTS_BASE 0xB000
@@ -75,6 +83,16 @@
 #define SERDES_LOOPEN 2
 #define SERDES_RXEN 1
 
+typedef struct {
+  volatile unsigned char       clk_ctrl;
+  volatile unsigned char       serdes_ctrl;
+  volatile unsigned char       adc_ctrl;
+  volatile unsigned char       leds;           // misc?
+} output_regs_t;
+
+#define output_regs ((output_regs_t *) OUTPUTS_BASE)
+
+
 ///////////////////////////////////////////////////
 // DSP Core, Slave 6
 #define DSP_BASE 0xC000
@@ -85,6 +103,16 @@
 #define DSP_ISCALE 8
 #define DSP_QSCALE 10
 
+typedef struct {
+  volatile short       i;
+  volatile short       q;
+  volatile int         freq;
+  volatile short       scale_i;
+  volatile short       scale_q;
+} dsp_regs_t;
+  
+#define dsp_regs ((dsp_regs_t *) DSP_BASE)
+
 ////////////////////////////////////////////////////
 // Settings Bus, Slave #7
 #define SLAVE7_BASE 0xD000





reply via email to

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