[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5525 - gnuradio/branches/developers/eb/u2f/firmware,
eb <=