summaryrefslogtreecommitdiffstats
path: root/mig_test/software/libhal
diff options
context:
space:
mode:
Diffstat (limited to 'mig_test/software/libhal')
-rw-r--r--mig_test/software/libhal/Makefile31
-rw-r--r--mig_test/software/libhal/common.c203
-rw-r--r--mig_test/software/libhal/hw.c28
-rw-r--r--mig_test/software/libhal/include.mak16
-rw-r--r--mig_test/software/libhal/timer.c132
-rw-r--r--mig_test/software/libhal/uart.c56
-rw-r--r--mig_test/software/libhal/vga.c67
7 files changed, 0 insertions, 533 deletions
diff --git a/mig_test/software/libhal/Makefile b/mig_test/software/libhal/Makefile
deleted file mode 100644
index fe149c1..0000000
--- a/mig_test/software/libhal/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/libhal/Makefile $
-# $Date$
-# $Author$
-# $Revision$
-#
-
-DIR=..
-include include.mak
-
-
-C_FILES=hw.c common.c timer.c uart.c vga.c
-OBJECTS=hw.o common.o timer.o uart.o vga.o
-INCLUDES=../include/peripherie.h
-
-
-all: libhal.a
-
-
-libhal.a: $(OBJECTS) $(INCLUDES)
- $(AR) clr libhal.a $(OBJECTS)
- $(RANLIB) libhal.a
-
-
-%.o: %.c $(INCLUDES)
- $(CC) -c -o $@ $< $(CFLAGS)
-
-
-clean:
- rm -f *.o
- rm -f libhal.a
diff --git a/mig_test/software/libhal/common.c b/mig_test/software/libhal/common.c
deleted file mode 100644
index 941c7e4..0000000
--- a/mig_test/software/libhal/common.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWF_Internals/FPGA/hw_sp605/bsp_zpuahb/software/libhal/common.c $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#include <peripherie.h>
-#include <stdlib.h> // utoa, dtostrf (actually not implemented)
-
-////////////////////////////////////////
-// common stuff
-
-
-// libgloss/zpu/syscalls.c work with inbyte and outbyte
-char putchar( char c)
-{
- return stdout( c);
-}
-
-
-
-void putstr(const char *s)
-{
- while (*s)
- putchar( *s++);
-}
-
-
-/*
- print data in binary format
- prepend 0b
- parameter: dataType - number of bits
-*/
-void putbin( unsigned char dataType, unsigned long data)
-{
- unsigned char i, temp;
- char dataString[] = "0b ";
-
- for(i=dataType; i>0; i--)
- {
- temp = data % 2;
- dataString [i+1] = temp + 0x30;
- data = data/2;
- }
- putstr( dataString);
-}
-
-
-// http://asalt-vehicle.googlecode.com/svn› trunk› src› uart.c
-unsigned char puthex( unsigned char dataType, unsigned long data)
-{
- unsigned char count = 8; // number of chars
- unsigned char i;
- unsigned char temp;
- char dataString[] = " ";
-
- // dataType = bit width
- if (dataType == 4) count = 1;
- if (dataType == 8) count = 2;
- if (dataType == 16) count = 4;
-
- for(i=count; i>0; i--)
- {
- temp = data % 16;
- if (temp<10) dataString [i-1] = temp + 0x30;
- else dataString [i-1] = (temp - 10) + 0x41;
-
- data = data/16;
- }
- dataString[count] = '\0';
- putstr( dataString);
-
- return count; // return length
-}
-
-
-
-// http://www.mikrocontroller.net/articles/FAQ#itoa.28.29
-unsigned char itoa( long z, char* Buffer )
-{
- int i = 0;
- int j;
- char tmp;
- unsigned u; // In u bearbeiten wir den Absolutbetrag von z.
-
- // ist die Zahl negativ?
- // gleich mal ein - hinterlassen und die Zahl positiv machen
- if( z < 0 ) {
- Buffer[0] = '-';
- Buffer++;
- // -INT_MIN ist idR. größer als INT_MAX und nicht mehr
- // als int darstellbar! Man muss daher bei der Bildung
- // des Absolutbetrages aufpassen.
- u = ( (unsigned)-(z+1) ) + 1;
- }
- else {
- u = (unsigned)z;
- }
- // die einzelnen Stellen der Zahl berechnen
- do {
- Buffer[i++] = '0' + u % 10;
- u /= 10;
- } while( u > 0 );
-
- // den String in sich spiegeln
- for( j = 0; j < i / 2; ++j ) {
- tmp = Buffer[j];
- Buffer[j] = Buffer[i-j-1];
- Buffer[i-j-1] = tmp;
- }
- Buffer[i] = '\0';
- // Laengenkorrektur wg. Vorzeichen
- if (z < 0)
- i++;
- return i; // BLa: Laenge des Buffers zurueckgeben
-}
-
-unsigned char utoa( unsigned long i, char *p)
-{
- unsigned char length;
-
- length = 0;
- do {
- *--p = '0' + i % 10;
- i /= 10;
- length++;
- } while (i > 0);
- return length;
-}
-
-
-unsigned char putuint( unsigned long data)
-{
- char str[20];
- unsigned char length;
-
- length = utoa( data, str);
- putstr( str);
- return length;
-}
-
-
-unsigned char putint( long data)
-{
- char str[20];
- unsigned char length;
-
- length = itoa( data, str);
- putstr( str);
- return length;
-}
-/*
- putint( 1000); putchar('\n'); // ok
- putint( 10000); putchar('\n'); // ok
- putint( 100000); putchar('\n'); // ok
- putint( 1000000); putchar('\n'); // ok
- putint( 10000000); putchar('\n'); // ok
- putint( 100000000); putchar('\n'); // ok
- putint( 200000000); putchar('\n'); // ok
- putint( 400000000); putchar('\n'); // ok
- putint( 800000000); putchar('\n'); // ok
- putint( 1000000000); putchar('\n'); // ok
- putint( 2000000000); putchar('\n'); // ok
- putint( 4000000000); putchar('\n'); // -294967296 warning: this decimal constant is unsigned only in ISO C90
- putint( 8000000000); putchar('\n'); // -589934592 warning: integer constant is too large for "long" type
-*/
-
-unsigned char putfloat( float data)
-{
- char str[20];
- unsigned char length;
-
- length = dtostrf( data, 2, 1, str);
- putstr( str);
- return length;
-}
-
-
-// p means pseudo float
-// (an integer with 3 significant digits after the point)
-void putpfloat( unsigned long data)
-{
- putint( data/1000);
- putchar( '.');
- putint( data%1000 );
-}
-
-
-unsigned char putbool( int data)
-{
- if (data)
- {
- putstr( "yes");
- }
- else
- {
- putstr( "no");
- }
- return 0;
-}
-
diff --git a/mig_test/software/libhal/hw.c b/mig_test/software/libhal/hw.c
deleted file mode 100644
index 8401010..0000000
--- a/mig_test/software/libhal/hw.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "peripherie.h"
-
-volatile uint32_t *debug_con0 = (uint32_t *) 0x80000000;
-volatile uint32_t *reset_reg = (uint32_t *) 0x80000004;
-apbuart_t *uart0 = (apbuart_t *) 0x80000100;
-gptimer_t *timer0 = (gptimer_t *) 0x80000200;
-irqmp_t *irqmp0 = (irqmp_t *) 0x80000300;
-grgpio_t *gpio0 = (grgpio_t *) 0x80000400;
-apbvga_t *vga0 = (apbvga_t *) 0x80000600;
-i2cmst_t *i2c_dvi = (i2cmst_t *) 0x80000700;
-i2cmst_t *i2c_fmc = (i2cmst_t *) 0x80000a00;
-
-mctrl_t *mctrl0 = (mctrl_t *) 0x80000f00;
-/*
-greth_t *ether0 = (greth_t *) 0x80000c00;
-dcm_ctrl_t *dcm_ctrl0 = (dcm_ctrl_t *) 0x80000e00;
-ddrspa_t *ddr0 = (ddrspa_t *) 0xfff00000;
-*/
-
-char debug_putchar( char c)
-{
- *debug_con0 = (uint32_t) c;
- return 0;
-}
-
-char (* stdout) (char) = debug_putchar;
-
-
diff --git a/mig_test/software/libhal/include.mak b/mig_test/software/libhal/include.mak
deleted file mode 100644
index 226ca66..0000000
--- a/mig_test/software/libhal/include.mak
+++ /dev/null
@@ -1,16 +0,0 @@
-AS=zpu-elf-as
-CC=zpu-elf-gcc
-LD=zpu-elf-ld
-OBJCOPY=zpu-elf-objcopy
-OBJDUMP=zpu-elf-objdump
-AR=zpu-elf-ar
-RANLIB=zpu-elf-ranlib
-SIZE=zpu-elf-size
-
-ROMGEN=$(DIR)/support/zpuromgen
-
-INLCUDES=-I$(DIR)/include
-ASFLAGS=-adhls -g $(INLCUDES)
-CFLAGS=-O3 -phi -Wall -ffunction-sections -fdata-sections $(INLCUDES)
-LDFLAGS=--relax --gc-sections
-OBJCOPYFLAGS=--strip-debug --discard-locals
diff --git a/mig_test/software/libhal/timer.c b/mig_test/software/libhal/timer.c
deleted file mode 100644
index 789c565..0000000
--- a/mig_test/software/libhal/timer.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "peripherie.h"
-
-#include "timer.h"
-
-////////////////////////////////////////
-// timer functions
-// timer 0.0 is used for usleep
-// timer 0.0 is used for msleep
-// timer 0.0 is used for sleep (via msleep)
-//
-// timer 0.0 ticks with milliseconds
-// timer 0.1 ticks with seconds
-
-
-// wait for a given time in micro seconds
-void usleep(uint32_t usec)
-{
- uint32_t tcr;
-
- // 1 usec = 6
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/1000000)*usec;
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_LOAD;
-
- do
- {
- tcr = timer0->e[0].ctrl;
- } while ( (tcr & TIMER_ENABLE));
-}
-
-
-// wait for given time in milli seconds
-void msleep(uint32_t msec)
-{
- uint32_t tcr;
-
- // some values for 50MHz @ Spartan 3e
- // 1 msec = 6250
- // 167 msec = 2**20 (20 bit counter) 391 slices
- // 2684 msec = 2**24 (24 bit counter) 450 slices
- // = 2**32 (32 bit counter) 572 slices
- // some values for 52MHz @ Spartan 6
- // 1 msec = 6500
- // 161 msec = 2**20 (20 bit counter)
- // 2581 msec = 2**24 (24 bit counter) 450 slices
- // 660 sec = 2**32 (32 bit counter) 572 slices
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/1000)*msec;
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_LOAD;
-
- do
- {
- tcr = timer0->e[0].ctrl;
- } while ( (tcr & TIMER_ENABLE));
-}
-
-
-// wait for given time in seconds
-void sleep(uint32_t sec)
-{
- uint32_t timer;
-
- for (timer=0; timer<sec; timer++)
- {
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- }
-}
-
-
-
-// deliver the milliseconds from timer 0.0
-uint32_t msecs( void)
-{
- return( timer0->e[0].value);
-}
-
-
-// deliver the seconds from timer 0.1
-uint32_t seconds( void)
-{
- return( timer0->e[1].value);
-}
-
-
-// deliver the time (in seconds and fraction) from timer
-uint32_t get_time( void)
-{
- uint32_t value;
-
- TIMER_STOP;
-
- // combine values (seconds.milliseconds)
- value = timer0->e[1].value * 1000 + timer0->e[0].value;
-
- TIMER_RUN;
-
- return( value);
-}
-
-
-// just a loop
-void wait( uint32_t value)
-{
- uint32_t i;
-
- for (i=0; i<value; i++) {}
-}
-
-
-// initialisation for the timer
-void timer_init( void)
-{
- timer0->scaler_reload = TIMER_PRESCALER-1; // set prescaler
-
- // set timer 0.1 in chain mode to timer 0.0
- // so it counts in seconds
- timer0->e[1].reload = 0xffffffff;
- timer0->e[1].ctrl = TIMER_ENABLE | TIMER_RESTART | TIMER_LOAD | TIMER_CHAIN;
-
- // set timer 0.0 to free running in msec
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/CLOCKS_PER_SECOND);
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_RESTART | TIMER_LOAD;
-}
-
-
diff --git a/mig_test/software/libhal/uart.c b/mig_test/software/libhal/uart.c
deleted file mode 100644
index d1290b5..0000000
--- a/mig_test/software/libhal/uart.c
+++ /dev/null
@@ -1,56 +0,0 @@
-//#include <stdio.h>
-
-#include "peripherie.h"
-
-////////////////////////////////////////
-// common defines
-
-#define bit_is_set(mem, bv) (mem & bv)
-#define bit_is_clear(mem, bv) (!(mem & bv))
-#define loop_until_bit_is_set(mem, bv) do {} while( bit_is_clear(mem, bv))
-#define loop_until_bit_is_clear(mem, bv) do {} while( bit_is_set(mem, bv))
-
-
-////////////////////////////////////////
-// uart functions
-
-
-void uart_init( void)
-{
- uart0->scaler = UART_SCALER;
- uart0->ctrl = UART_CONTROL_TX_ENABLE | UART_CONTROL_RX_ENABLE;
-}
-
-
-unsigned int uart_check_receiver()
-{
- return ( bit_is_set( uart0->status, UART_STATUS_DATA_READY) != 0);
-}
-
-
-char uart_getchar()
-{
- loop_until_bit_is_set(uart0->status, UART_STATUS_DATA_READY);
- return uart0->data;
-}
-
-
-void uart_putchar_raw( char c)
-{
- #if UART_FIFOSIZE==1 || !defined(UART_FIFOSIZE)
- loop_until_bit_is_set( uart0->status, UART_STATUS_TX_REG_EMPTY);
- #else
- loop_until_bit_is_clear( uart0->status, UART_STATUS_TX_FIFO_FULL);
- #endif
- uart0->data = c;
-}
-
-
-char uart_putchar( char c)
-{
- if (c == '\n')
- uart_putchar_raw( '\r');
- uart_putchar_raw( c);
- return 0;
-}
-
diff --git a/mig_test/software/libhal/vga.c b/mig_test/software/libhal/vga.c
deleted file mode 100644
index 8cc55b9..0000000
--- a/mig_test/software/libhal/vga.c
+++ /dev/null
@@ -1,67 +0,0 @@
-//#include <stdio.h>
-
-#include "peripherie.h"
-
-
-////////////////////////////////////////
-// common defines
-
-#define bit_is_set(mem, bv) (mem & bv)
-#define bit_is_clear(mem, bv) (!(mem & bv))
-#define loop_until_bit_is_set(mem, bv) do {} while( bit_is_clear(mem, bv))
-#define loop_until_bit_is_clear(mem, bv) do {} while( bit_is_set(mem, bv))
-
-
-
-
-uint8_t vga_line;
-uint8_t vga_column;
-
-void vga_init( void)
-{
- vga0->background_color = 0x00000000;
- vga0->foreground_color = 0x0000ff00;
- vga_line = 0;
- vga_column = 0;
-}
-
-
-
-void vga_clear( void)
-{
- uint32_t count;
- uint32_t count_max = 37*80;
-
- for(count = 0; count< count_max; count++)
- vga0->data = count<<8;
-
- vga_line = 0;
- vga_column = 0;
-}
-
-
-void vga_putchar( char c)
-{
-
- vga0->data = (( vga_line * 80 + vga_column)<<8) | c;
- if ( (c == '\n') || (vga_column == 79) ) // line feed (+ carrige return)
- {
- if (vga_line<36)
- vga_line++;
- else
- vga_line = 0;
-
- vga_column = 0;
- }
- else if (c == '\f') // form feed
- {
- vga_clear();
- }
- else
- {
- vga_column++;
- }
-
-}
-
-
OpenPOWER on IntegriCloud