Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/m32c/sample.c')
-rw-r--r--libgloss/m32c/sample.c159
1 files changed, 0 insertions, 159 deletions
diff --git a/libgloss/m32c/sample.c b/libgloss/m32c/sample.c
deleted file mode 100644
index 0b7c66528..000000000
--- a/libgloss/m32c/sample.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
-
-Copyright (c) 2008 Red Hat Incorporated.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- The name of Red Hat Incorporated may not be used to endorse
- or promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-/* This is a sample program that shows how to use a few of the
- features of the M32C port of GCC, Binutils, and Newlib. */
-
-#include <varvects.h>
-
-typedef unsigned char byte;
-typedef unsigned short word;
-
-#define prcr (*(volatile byte *)0x000a)
-#define cm0 (*(volatile byte *)0x0006)
-#define cm1 (*(volatile byte *)0x0007)
-#define ocd (*(volatile byte *)0x000c)
-
-#ifdef __r8c_cpu__
-/* These are for the R8C/20 with LEDs on port P2 */
-
-#define tracr (*(volatile byte *)0x0100)
-#define traioc (*(volatile byte *)0x0101)
-#define tramr (*(volatile byte *)0x0102)
-#define trapre (*(volatile byte *)0x0103)
-#define tra (*(volatile byte *)0x0104)
-#define traic (*(volatile byte *)0x0056)
-
-#define pd2 (*(volatile byte *)0x00e6)
-#define p2 (*(volatile byte *)0x00e4)
-
-#define ivec_timer_ra 22
-#endif
-
-#ifdef __m32c_cpu__
-/* These are for the M32C/83 with LEDs on port P0 and P1 */
-
-#define ta0 (*(volatile word *)0x0346)
-#define ta0mr (*(volatile byte *)0x0356)
-#define tabsr (*(volatile byte *)0x0340)
-#define ta0ic (*(volatile byte *)0x006c)
-
-#define pd0 (*(volatile byte *)0x03e2)
-#define pd1 (*(volatile byte *)0x03e3)
-#define p0 (*(volatile byte *)0x03e0)
-#define p1 (*(volatile byte *)0x03e1)
-
-#define ivec_timer_a0 12
-#endif
-
-/* Newlib's exit() pulls in lots of other things. Main() should never
- exit, but if it did, you could hard-reset the chip here. */
-void
-exit(int rv)
-{
- while (1)
- asm volatile ("");
-}
-
-#ifdef __r8c_cpu__
-/* The "constructor" attribute causes the startup code to call this
- sometime before main() is called. */
-__attribute__((constructor))
-void
-fast_clock(void)
-{
- asm("fclr I");
- prcr = 1;
- cm0 = 0x08;
- cm1 = 0x38;
- asm("nop");
- asm("nop");
- asm("nop");
- asm("nop");
- ocd = 0;
- prcr = 0;
- asm("fset I");
-}
-#endif
-
-/* We mark this volatile in case a non-interrupt function wants to
- read it, else gcc may optimize away extra reads. */
-static volatile int tc = 1;
-
-/* The "interrupt" attribute changes the function entry/exit to
- properly preserve any changed registers. */
-static void __attribute__((interrupt))
-timer_ra_interrupt()
-{
- tc ++;
-#ifdef __r8c_cpu__
- p2 = tc >> 4;
-#else
- p1 = tc;
- p0 = tc >> 8;
-#endif
-}
-
-main()
-{
-#ifdef __r8c_cpu__
- pd2 = 0xff;
-
- /* TIMER RA */
- tracr = 0x00;
- traioc = 0x00;
- tramr = 0x00; /* timer mode, f1 */
- trapre = 255; /* prescaler */
- tra = 255; /* cycle count */
-
- _set_var_vect (timer_ra_interrupt, ivec_timer_ra);
- traic = 5;
- tracr = 1;
-#endif
-
-#ifdef __m32c_cpu__
- pd0 = 0xff;
- pd1 = 0xff;
-
- /* TIMER A0 */
- ta0mr = 0x00; /* Timer A0 mode register */
- ta0 = 65535; /* Timer A0 register */
-
- _set_var_vect (timer_ra_interrupt, ivec_timer_a0);
- ta0ic = 5;
- tabsr = 0xff;
-#endif
-
- /* main() must never return. */
- while (1)
- ;
-}