]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/arm/edb7xxx/v2_0/misc/lcd_test.c
Initial revision
[karo-tx-redboot.git] / packages / hal / arm / edb7xxx / v2_0 / misc / lcd_test.c
1 //==========================================================================
2 //
3 //        lcd_test.c
4 //
5 //        Cirrus EDB7XXX eval board LCD test code
6 //
7 //==========================================================================
8 //####ECOSGPLCOPYRIGHTBEGIN####
9 // -------------------------------------------
10 // This file is part of eCos, the Embedded Configurable Operating System.
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12 //
13 // eCos is free software; you can redistribute it and/or modify it under
14 // the terms of the GNU General Public License as published by the Free
15 // Software Foundation; either version 2 or (at your option) any later version.
16 //
17 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20 // for more details.
21 //
22 // You should have received a copy of the GNU General Public License along
23 // with eCos; if not, write to the Free Software Foundation, Inc.,
24 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25 //
26 // As a special exception, if other files instantiate templates or use macros
27 // or inline functions from this file, or you compile this file and link it
28 // with other works to produce a work based on this file, this file does not
29 // by itself cause the resulting work to be covered by the GNU General Public
30 // License. However the source code for this file must still be made available
31 // in accordance with section (3) of the GNU General Public License.
32 //
33 // This exception does not invalidate any other reasons why a work based on
34 // this file might be covered by the GNU General Public License.
35 //
36 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37 // at http://sources.redhat.com/ecos/ecos-license/
38 // -------------------------------------------
39 //####ECOSGPLCOPYRIGHTEND####
40 //==========================================================================
41 //#####DESCRIPTIONBEGIN####
42 //
43 // Author(s):     gthomas
44 // Contributors:  gthomas
45 // Date:          1999-09-01
46 // Description:   Tool used to test LCD controller
47 //####DESCRIPTIONEND####
48
49 #include <pkgconf/kernel.h>   // Configuration header
50 #include <cyg/kernel/kapi.h>
51 #include <cyg/infra/diag.h>
52
53 #include <cyg/hal/hal_edb7xxx.h>  // Board definitions
54
55 #ifndef FALSE
56 #define FALSE 0
57 #define TRUE  1
58 #endif
59
60 #define STACK_SIZE 4096
61 static char stack[STACK_SIZE];
62 static cyg_thread thread_data;
63 static cyg_handle_t thread_handle;
64
65 #include "lcd_support.c"
66
67 // FUNCTIONS
68
69 static void
70 cyg_test_exit(void)
71 {
72     while (TRUE) ;
73 }
74
75 static void
76 lcd_test(int depth)
77 {
78     int i, j;
79     diag_printf("Set depth %d\n", depth);
80     lcd_on(depth);
81     lcd_clear();
82     for (j = 0;  j < 5;  j++) {
83         for (i = 0;  i < width;  i++) {
84             lcd_putc('A');
85         }
86     }
87     lcd_putc('\n');
88     lcd_putc('\n');
89     cyg_thread_delay(5*100);
90     for (j = 0;  j < 5;  j++) {
91         for (i = FIRST_CHAR;  i <= LAST_CHAR;  i++) {
92             lcd_putc(i);
93         }
94     }
95     cyg_thread_delay(5*100);
96 }
97
98 static void
99 lcd_exercise(cyg_addrword_t p)
100 {
101     diag_printf("LCD test here!\n");
102
103 //    lcd_test(1);
104 //    lcd_test(2);
105     lcd_test(4);
106
107     diag_printf("All done!\n");
108     cyg_test_exit();
109 }
110
111 externC void
112 cyg_start( void )
113 {
114     // Create a main thread, so we can run the scheduler and have time 'pass'
115     cyg_thread_create(10,                // Priority - just a number
116                       lcd_exercise,      // entry
117                       0,                 // entry parameter
118                       "LCD_test_thread", // Name
119                       &stack[0],         // Stack
120                       STACK_SIZE,        // Size
121                       &thread_handle,    // Handle
122                       &thread_data       // Thread data structure
123             );
124     cyg_thread_resume(thread_handle);  // Start it
125     cyg_scheduler_start();
126 } // cyg_package_start()
127