summaryrefslogtreecommitdiffstats
path: root/s3estarter
diff options
context:
space:
mode:
authorBert Lange <b.lange@fzd.de>2010-12-02 16:48:29 +0100
committerBert Lange <b.lange@fzd.de>2010-12-02 16:48:29 +0100
commit0d8f6ba02506c51cef38533e093452ffe5156502 (patch)
treeb26bbbffdac712b8983bb40325166f4c0899bc0b /s3estarter
parent17449ef9bccb5f71662c42260ea9990d5afaca52 (diff)
downloadzpu-0d8f6ba02506c51cef38533e093452ffe5156502.zip
zpu-0d8f6ba02506c51cef38533e093452ffe5156502.tar.gz
change: put putchar (and debug_putchar) to better place
change: puthex without 0x
Diffstat (limited to 's3estarter')
-rw-r--r--s3estarter/software/include/common.h6
-rw-r--r--s3estarter/software/include/peripherie.h4
-rw-r--r--s3estarter/software/libhal/common.c11
-rw-r--r--s3estarter/software/libhal/hw.c12
4 files changed, 23 insertions, 10 deletions
diff --git a/s3estarter/software/include/common.h b/s3estarter/software/include/common.h
index 5e8e9d7..d2871bf 100644
--- a/s3estarter/software/include/common.h
+++ b/s3estarter/software/include/common.h
@@ -1,16 +1,14 @@
#ifndef COMMON_H
#define COMMON_H
-// function pointer for putchar
-extern char (* putchar_fp) ();
-
////////////////////////////////////////
// specific stuff
+char putchar( char c);
void putstr(const char *s);
void putbin(unsigned char dataType, unsigned long data);
void puthex(unsigned char dataType, unsigned long data);
void itoa( int z, char* Buffer );
-void putint(uint32_t data);
+void putint(unsigned long data);
#endif // COMMON_H
diff --git a/s3estarter/software/include/peripherie.h b/s3estarter/software/include/peripherie.h
index e9a4cd5..3e3a163 100644
--- a/s3estarter/software/include/peripherie.h
+++ b/s3estarter/software/include/peripherie.h
@@ -227,8 +227,12 @@ typedef struct {
} dcm_ctrl_t;
+char debug_putchar( char c);
+// function pointer for putchar
+extern char (* putchar_fp) ( char);
+
////////////////////
// hardware units
diff --git a/s3estarter/software/libhal/common.c b/s3estarter/software/libhal/common.c
index 7e3f4de..f3257d9 100644
--- a/s3estarter/software/libhal/common.c
+++ b/s3estarter/software/libhal/common.c
@@ -1,10 +1,11 @@
-char (* putchar_fp) (char c);
+#include "peripherie.h"
////////////////////////////////////////
// common stuff
+
char putchar( char c)
{
return putchar_fp( c);
@@ -39,7 +40,7 @@ void puthex( unsigned char dataType, unsigned long data)
unsigned char count = 8; // number of chars
unsigned char i;
unsigned char temp;
- char dataString[] = "0x ";
+ char dataString[] = " ";
// dataType = bit width
if (dataType == 8) count = 2;
@@ -48,12 +49,12 @@ void puthex( unsigned char dataType, unsigned long data)
for(i=count; i>0; i--)
{
temp = data % 16;
- if (temp<10) dataString [i+1] = temp + 0x30;
- else dataString [i+1] = (temp - 10) + 0x41;
+ if (temp<10) dataString [i-1] = temp + 0x30;
+ else dataString [i-1] = (temp - 10) + 0x41;
data = data/16;
}
- dataString[count+2] = '\0';
+ dataString[count] = '\0';
putstr( dataString);
}
diff --git a/s3estarter/software/libhal/hw.c b/s3estarter/software/libhal/hw.c
index 2d4e1c4..cb454b8 100644
--- a/s3estarter/software/libhal/hw.c
+++ b/s3estarter/software/libhal/hw.c
@@ -5,7 +5,17 @@ gptimer_t *timer0 = (gptimer_t *) 0x80000200;
apbvga_t *vga0 = (apbvga_t *) 0x80000600;
grgpio_t *gpio0 = (grgpio_t *) 0x80000800;
greth_t *ether0 = (greth_t *) 0x80000c00;
-volatile uint32_t *debug_con0 = (char *) 0x80000d00;
+volatile uint32_t *debug_con0 = (uint32_t *) 0x80000d00;
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 (* putchar_fp) (char);// = debug_putchar;
+
+
OpenPOWER on IntegriCloud