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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [examples/] [serial.c] - Blame information for rev 636

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 28 unneback
/*
2
 * Written 1999-03-19 by Jonathan Larmour, Cygnus Solutions
3
 * This file is in the public domain and may be used for any purpose
4
 */
5
 
6
/* CONFIGURATION CHECKS */
7
 
8
#include <pkgconf/system.h>     /* which packages are enabled/disabled */
9
#ifdef CYGPKG_KERNEL
10
# include <pkgconf/kernel.h>
11
#endif
12
#ifdef CYGPKG_LIBC
13
# include <pkgconf/libc.h>
14
#endif
15
#ifdef CYGPKG_IO_SERIAL
16
# include <pkgconf/io_serial.h>
17
#endif
18
 
19
#ifndef CYGFUN_KERNEL_API_C
20
# error Kernel API must be enabled to build this example
21
#endif
22
 
23
#ifndef CYGPKG_LIBC_STDIO
24
# error C library standard I/O must be enabled to build this example
25
#endif
26
 
27
#ifndef CYGPKG_IO_SERIAL_HALDIAG
28
# error I/O HALDIAG pseudo-device driver must be enabled to build this example
29
#endif
30
 
31
/* INCLUDES */
32
 
33
#include <stdio.h>                      /* printf */
34
#include <string.h>                     /* strlen */
35
#include <cyg/kernel/kapi.h>            /* All the kernel specific stuff */
36
#include <cyg/io/io.h>                  /* I/O functions */
37
#include <cyg/hal/hal_arch.h>           /* CYGNUM_HAL_STACK_SIZE_TYPICAL */
38
 
39
 
40
 
41
/* DEFINES */
42
 
43
#define NTHREADS 1
44
#define STACKSIZE ( CYGNUM_HAL_STACK_SIZE_TYPICAL + 4096 )
45
 
46
/* STATICS */
47
 
48
static cyg_handle_t thread[NTHREADS];
49
static cyg_thread thread_obj[NTHREADS];
50
static char stack[NTHREADS][STACKSIZE];
51
 
52
/* FUNCTIONS */
53
 
54
static void simple_prog(CYG_ADDRESS data)
55
{
56
    cyg_io_handle_t handle;
57
    Cyg_ErrNo err;
58
    const char test_string[] = "serial example is working correctly!\n";
59
    cyg_uint32 len = strlen(test_string);
60
 
61
    printf("Starting serial example\n");
62
 
63
    err = cyg_io_lookup( "/dev/haldiag", &handle );
64
 
65
    if (ENOERR == err) {
66
        printf("Found /dev/haldiag. Writing string....\n");
67
        err = cyg_io_write( handle, test_string, &len );
68
    }
69
 
70
    if (ENOERR == err) {
71
        printf("I think I wrote the string. Did you see it?\n");
72
    }
73
 
74
    printf("Serial example finished\n");
75
 
76
}
77
 
78
void cyg_user_start(void)
79
{
80
    cyg_thread_create(4, simple_prog, (cyg_addrword_t) 0, "serial",
81
                      (void *)stack[0], STACKSIZE, &thread[0], &thread_obj[0]);
82
    cyg_thread_resume(thread[0]);
83
}

powered by: WebSVN 2.1.0

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