From 430e7eb03892bea70bb93f8cd8b2edcef38f71c2 Mon Sep 17 00:00:00 2001 From: matt Date: Sun, 21 Sep 2008 17:52:01 +0000 Subject: [PATCH] new app to test the ram git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9634 221aa14e-8319-0410-a670-987f0aec2ac5 --- usrp2/firmware/apps/Makefile.am | 1 + usrp2/firmware/apps/test_ram.c | 75 +++++++++++++++++++++++++++++++++ usrp2/firmware/lib/memory_map.h | 10 +++++ 3 files changed, 86 insertions(+) create mode 100644 usrp2/firmware/apps/test_ram.c diff --git a/usrp2/firmware/apps/Makefile.am b/usrp2/firmware/apps/Makefile.am index 319c80c1..b37c0f29 100644 --- a/usrp2/firmware/apps/Makefile.am +++ b/usrp2/firmware/apps/Makefile.am @@ -38,6 +38,7 @@ noinst_PROGRAMS = \ test_db_spi \ test_i2c \ test_sd \ + test_ram \ test_phy_comm \ test_lsadc \ test_lsdac \ diff --git a/usrp2/firmware/apps/test_ram.c b/usrp2/firmware/apps/test_ram.c new file mode 100644 index 00000000..b9946f72 --- /dev/null +++ b/usrp2/firmware/apps/test_ram.c @@ -0,0 +1,75 @@ +/* + * Copyright 2007 Free Software Foundation, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include /* FIXME */ +#include +#include +#include +#include +#include + +#define ASSERT_TRUE(x) \ + do { \ + if (!(x)){ \ + printf("ASSERT_TRUE failed on line %d\n", __LINE__); \ + nerrors++; \ + } \ + } while(0) + +#define ASSERT_FALSE(x) \ + do { \ + if (x){ \ + printf("ASSERT_FALSE failed on line %d\n", __LINE__); \ + nerrors++; \ + } \ + } while(0) + + +#define BUFSIZE 128 + +int +main(void) +{ + int i,j,k; + unsigned char buf[512]; + + u2_init(); + //hal_uart_init(); + //puts("\ntest_ram\n"); + + output_regs->ram_page = 0; + + //puts("r[0]=DEADBEEF\n"); + extram[0] = 0xDEADBEEF; + extram[1] = 0xF00D1234; + extram[7] = 0x76543210; + puts("RD\n"); + i = extram[0]; + k = extram[1]; + j = extram[7]; + //puts("r0="); + + puthex32_nl(i); + puthex32_nl(k); + puthex32_nl(j); + puts("Done"); + hal_finish(); + return 0; +} + diff --git a/usrp2/firmware/lib/memory_map.h b/usrp2/firmware/lib/memory_map.h index 88efcb9a..10672474 100644 --- a/usrp2/firmware/lib/memory_map.h +++ b/usrp2/firmware/lib/memory_map.h @@ -353,6 +353,7 @@ typedef struct { volatile uint32_t leds; volatile uint32_t phy_ctrl; // LSB is reset line to eth phy volatile uint32_t debug_mux_ctrl; + volatile uint32_t ram_page; // FIXME should go somewhere else... } output_regs_t; #define SERDES_ENABLE 8 @@ -577,6 +578,15 @@ typedef struct { #define sdspi_regs ((sdspi_regs_t *) SDSPI_BASE) +/////////////////////////////////////////////////// +// External RAM interface, Slave 14 +// Pages are 1K. Page is 10 bits, set by a control register +// output_regs->ram_page + +#define EXTRAM_BASE 0xF000 +#define extram ((volatile uint32_t *) EXTRAM_BASE) + + /////////////////////////////////////////////////// #endif -- 2.30.2