]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/erc32/examples/hello.c
* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[thirdparty/binutils-gdb.git] / sim / erc32 / examples / hello.c
1 /* A small test program to demonstrate use of UARTs and clock */
2
3
4 #define RXADATA (int *) 0x01F800E0
5 #define RXBDATA (int *) 0x01F800E4
6 #define RXSTAT (int *) 0x01F800E8
7
8 int write (fd, buf, nbyte)
9 int fd;
10 char *buf;
11 int nbyte;
12 {
13
14 int *rxadata;
15 int rxmask;
16 int nsave;
17 volatile *rxstat;
18
19 nsave = nbyte;
20
21 switch (fd) {
22 case 0 :
23 rxadata = RXADATA;
24 rxmask = 6;
25 break;
26 case 1 :
27 rxadata = RXBDATA;
28 rxmask = 0x60000;
29 break;
30 default:
31 return (-1);
32 }
33 rxstat = RXSTAT;
34 while (nbyte > 0) {
35 while ((*rxstat & rxmask) == 0);
36 *rxadata = *buf;
37 buf++;
38 nbyte--;
39 }
40 return (nsave);
41 }
42
43 int read (fd, buf, nbyte)
44 int fd;
45 char *buf;
46 int nbyte;
47 {
48
49 int rxmask,*rxadata;
50 int nsave;
51 volatile *rxstat;
52
53 nsave = nbyte;
54 switch (fd) {
55 case 0 :
56 rxadata = RXADATA;
57 rxmask = 1;
58 break;
59 case 1 :
60 rxadata = RXBDATA;
61 rxmask = 0x10000;
62 break;
63 default:
64 return (-1);
65 }
66 rxstat = RXSTAT;
67 while (nbyte > 0) {
68 while ((*rxstat & rxmask) == 0);
69 *buf = *rxadata;
70 buf++;
71 nbyte--;
72 }
73 return (nsave);
74 }
75
76 char *
77 puts(s)
78 char *s;
79 {
80 while (*s) write(0,s++,1);
81 }
82
83 main()
84 {
85 puts("Hello world!\n");
86 }
87