OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [software/] [leon3/] [hpi_new.c] - Rev 2

Compare with Previous | Blame | View Log

#include <stdio.h>
#include "hpi_defs.h"
#include "hpi_functions.h"
 
#define SIMULATION
 
#ifdef SIMULATION
 
//#define printf //
#define MSIZE 32
#define LOOPS 1
#define START 0x0000
#define DATA  ((USHORT)~(2*i))
//#define DATA  0xC53A//0xffff//
 
#else
 
#define MSIZE 512
#define LOOPS 4
#define START 0x0500 //0x0000
#define DATA  ((USHORT)~(2*i))
 
#endif
 
int main(int argc,char *argv[], char *envp[])
{
 
  USHORT const size = (USHORT) MSIZE;
  USHORT tmp, j, i, error=0;
  USHORT start = (USHORT) START;
  USHORT data1[size];
 
  CTRL_REG * pctrl = (CTRL_REG *) HPI_CTRL;
 
  pctrl->RESERVED = 0;
  pctrl->AtoCSlow = 1;
  pctrl->CStoCTRLlow = 2;
  pctrl->CTRLlowDvalid = 2;
  pctrl->CTRLlow = 3;
  pctrl->CTRLhighCShigh = 1;
  pctrl->CShighREC = 1;
 
  tmp = pctrl->reg;
 
  printf("\n\nHPI_NEW: Test for the LEON HPI bus interface\n\n");
  printf("Writing %d words from 0x%04x to 0x%04x\n", size, start, start+(size-1)*2);
  printf("AHB2HPI CTRL register: 0x%04x\n\n", tmp);
  printf("Start reading and writing data\n\n");
 
  for (j=0; j<LOOPS; j++) {
    for(i=0; i<size; i++) {
      lcd_hpi_write_word(start+i*2, DATA);
      tmp = lcd_hpi_read_word(start+i*2);
      if (tmp != DATA) {
        printf("R/W error #%d:\n", ++error);
        printf("Cycle #%d:\n", i);
        printf("Expected:\t0x%x\n", DATA);
        printf("Read:\t\t0x%x\n", tmp);
        printf("Address:\t0x%x\n\n", start+i*2);
      }
    }
  }
 
  /*
#ifdef SIMULATION
#undef SIMULATION
#endif
  */
 
  if(error == 0)
    printf("**** FINISHED without errors ****\n");
  else
    printf("**** ERRORS: %d ****\n", error);
 
  return error;
}
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.