]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - 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
CommitLineData
f4d2ff34
RS
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
8int write (fd, buf, nbyte)
9int fd;
10char *buf;
11int 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
43int read (fd, buf, nbyte)
44int fd;
45char *buf;
46int 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
76char *
77puts(s)
78char *s;
79{
80 while (*s) write(0,s++,1);
81}
82
83main()
84{
85 puts("Hello world!\n");
86}
87