From 3f1b39099b19fbf01ea40f803b1bf7d5856aa979 Mon Sep 17 00:00:00 2001 From: Leon Wilzer Date: Mon, 21 Nov 2022 21:38:08 +0100 Subject: [PATCH] Initial Commit --- .../Bin/GNU/GNU_ARM/arm-elf/include/_ansi.h | 99 +++ .../arm-elf/include/machine/_default_types.h | 121 +++ .../GNU_ARM/arm-elf/include/machine/_types.h | 8 + .../GNU_ARM/arm-elf/include/machine/ieeefp.h | 333 +++++++ Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/math.h | 483 ++++++++++ .../Bin/GNU/GNU_ARM/arm-elf/include/newlib.h | 162 ++++ .../GNU/GNU_ARM/arm-elf/include/sys/_types.h | 87 ++ .../GNU/GNU_ARM/arm-elf/include/sys/config.h | 213 +++++ .../GNU/GNU_ARM/arm-elf/include/sys/lock.h | 24 + .../GNU/GNU_ARM/arm-elf/include/sys/reent.h | 837 ++++++++++++++++++ Demo_C/Bin/GNU/GNU_ARM/bin/arm-elf-gccbug | 558 ++++++++++++ .../lib/gcc/arm-elf/4.4.1/include/stddef.h | 416 +++++++++ Demo_C/Bin/GNU/Tools/copying.txt | 340 +++++++ Demo_C/Bin/GNU/Tools/source.txt | 29 + Demo_C/Bin/GNU/YAGARTO/binutils.url | 2 + Demo_C/Bin/GNU/YAGARTO/copying.newlib.txt | 640 +++++++++++++ Demo_C/Bin/GNU/YAGARTO/copying.txt | 340 +++++++ Demo_C/Bin/GNU/YAGARTO/copying3.txt | 674 ++++++++++++++ Demo_C/Bin/GNU/YAGARTO/gcc.url | 2 + Demo_C/Bin/GNU/YAGARTO/gdb.url | 2 + Demo_C/Bin/GNU/YAGARTO/gnu.url | 2 + Demo_C/Bin/GNU/YAGARTO/newlib.url | 7 + Demo_C/Bin/GNU/YAGARTO/source.txt | 6 + Demo_C/Bin/GNU/YAGARTO/version.txt | 12 + Demo_C/Bin/GNU/YAGARTO/yagarto.url | 7 + Demo_C/Bin/GNU/YAGARTO/yagarto_newlib.txt | 37 + Demo_C/Bin/_exec_cmd.bat | 24 + Demo_C/Bin/_load_flash.bat | 25 + Demo_C/Bin/_load_ramdisk.bat | 25 + Demo_C/Bin/_start.bat | 20 + Demo_C/Bin/set_port.bat | 6 + Demo_C/Common/Makefile | 120 +++ Demo_C/Common/ROBO_TX_FW.h | 576 ++++++++++++ Demo_C/Common/ROBO_TX_PRG.h | 126 +++ Demo_C/Common/ld.lcf | 171 ++++ Demo_C/Common/prg_bt.c | 142 +++ Demo_C/Common/prg_bt_addr.c | 20 + Demo_C/Common/prg_disp.c | 51 ++ Demo_C/Demo/I2cTemp/I2cTemp.c | 199 +++++ Demo_C/Demo/I2cTemp/clean.bat | 6 + Demo_C/Demo/I2cTemp/load_flash.bat | 2 + Demo_C/Demo/I2cTemp/load_ramdisk.bat | 2 + Demo_C/Demo/I2cTemp/load_ramdisk_bt.bat | 2 + Demo_C/Demo/I2cTemp/make.bat | 11 + Demo_C/Demo/I2cTemp/param.mk | 2 + Demo_C/Demo/I2cTemp/run.bat | 2 + Demo_C/Demo/I2cTemp/stop.bat | 2 + Demo_C/Demo/I2cTpa81/I2cTpa81.c | 234 +++++ Demo_C/Demo/I2cTpa81/clean.bat | 6 + Demo_C/Demo/I2cTpa81/load_flash.bat | 2 + Demo_C/Demo/I2cTpa81/load_ramdisk.bat | 2 + Demo_C/Demo/I2cTpa81/load_ramdisk_bt.bat | 2 + Demo_C/Demo/I2cTpa81/make.bat | 11 + Demo_C/Demo/I2cTpa81/param.mk | 2 + Demo_C/Demo/I2cTpa81/run.bat | 2 + Demo_C/Demo/I2cTpa81/stop.bat | 2 + Demo_C/Demo/LED/LED.c | 180 ++++ Demo_C/Demo/LED/clean.bat | 6 + Demo_C/Demo/LED/load_flash.bat | 2 + Demo_C/Demo/LED/load_ramdisk.bat | 2 + Demo_C/Demo/LED/make.bat | 12 + Demo_C/Demo/LED/param.mk | 2 + Demo_C/Demo/LED/run.bat | 2 + Demo_C/Demo/LED/stop.bat | 2 + Demo_C/Demo/LightRun/LightRun.c | 180 ++++ Demo_C/Demo/LightRun/clean.bat | 6 + Demo_C/Demo/LightRun/load_flash.bat | 2 + Demo_C/Demo/LightRun/load_ramdisk.bat | 2 + Demo_C/Demo/LightRun/make.bat | 12 + Demo_C/Demo/LightRun/param.mk | 2 + Demo_C/Demo/LightRun/run.bat | 2 + Demo_C/Demo/LightRun/stop.bat | 2 + .../MotorEx_2M_Master/MotorEx_2M_Master.c | 114 +++ Demo_C/Demo/MotorEx_2M_Master/clean.bat | 6 + Demo_C/Demo/MotorEx_2M_Master/load_flash.bat | 2 + .../Demo/MotorEx_2M_Master/load_ramdisk.bat | 2 + Demo_C/Demo/MotorEx_2M_Master/make.bat | 11 + Demo_C/Demo/MotorEx_2M_Master/param.mk | 2 + Demo_C/Demo/MotorEx_2M_Master/run.bat | 2 + Demo_C/Demo/MotorEx_2M_Master/stop.bat | 2 + Demo_C/Demo/MotorEx_Ext1/MotorEx_Ext1.c | 95 ++ Demo_C/Demo/MotorEx_Ext1/clean.bat | 6 + Demo_C/Demo/MotorEx_Ext1/load_flash.bat | 2 + Demo_C/Demo/MotorEx_Ext1/load_ramdisk.bat | 2 + Demo_C/Demo/MotorEx_Ext1/make.bat | 11 + Demo_C/Demo/MotorEx_Ext1/param.mk | 2 + Demo_C/Demo/MotorEx_Ext1/run.bat | 2 + Demo_C/Demo/MotorEx_Ext1/stop.bat | 2 + Demo_C/Demo/MotorRun/MotorRun.c | 160 ++++ Demo_C/Demo/MotorRun/clean.bat | 6 + Demo_C/Demo/MotorRun/load_flash.bat | 2 + Demo_C/Demo/MotorRun/load_ramdisk.bat | 2 + Demo_C/Demo/MotorRun/make.bat | 11 + Demo_C/Demo/MotorRun/param.mk | 2 + Demo_C/Demo/MotorRun/run.bat | 2 + Demo_C/Demo/MotorRun/stop.bat | 2 + Demo_C/Demo/StopGo/StopGo.c | 123 +++ Demo_C/Demo/StopGo/clean.bat | 6 + Demo_C/Demo/StopGo/load_flash.bat | 2 + Demo_C/Demo/StopGo/load_ramdisk.bat | 2 + Demo_C/Demo/StopGo/make.bat | 11 + Demo_C/Demo/StopGo/param.mk | 2 + Demo_C/Demo/StopGo/run.bat | 2 + Demo_C/Demo/StopGo/stop.bat | 2 + .../StopGoBtButtonPart/StopGoBtButtonPart.c | 337 +++++++ Demo_C/Demo/StopGoBtButtonPart/clean.bat | 6 + Demo_C/Demo/StopGoBtButtonPart/load_flash.bat | 2 + .../Demo/StopGoBtButtonPart/load_ramdisk.bat | 2 + .../StopGoBtButtonPart/load_ramdisk_bt.bat | 2 + Demo_C/Demo/StopGoBtButtonPart/make.bat | 11 + Demo_C/Demo/StopGoBtButtonPart/param.mk | 2 + Demo_C/Demo/StopGoBtButtonPart/run.bat | 2 + Demo_C/Demo/StopGoBtButtonPart/stop.bat | 2 + .../StopGoBtMotorPart/StopGoBtMotorPart.c | 323 +++++++ Demo_C/Demo/StopGoBtMotorPart/clean.bat | 6 + Demo_C/Demo/StopGoBtMotorPart/load_flash.bat | 2 + .../Demo/StopGoBtMotorPart/load_ramdisk.bat | 2 + .../StopGoBtMotorPart/load_ramdisk_bt.bat | 2 + Demo_C/Demo/StopGoBtMotorPart/make.bat | 11 + Demo_C/Demo/StopGoBtMotorPart/param.mk | 2 + Demo_C/Demo/StopGoBtMotorPart/run.bat | 2 + Demo_C/Demo/StopGoBtMotorPart/stop.bat | 2 + Demo_C/Demo/WarningLight/WarningLight.c | 132 +++ Demo_C/Demo/WarningLight/clean.bat | 6 + Demo_C/Demo/WarningLight/load_flash.bat | 2 + Demo_C/Demo/WarningLight/load_ramdisk.bat | 2 + Demo_C/Demo/WarningLight/make.bat | 11 + Demo_C/Demo/WarningLight/param.mk | 2 + Demo_C/Demo/WarningLight/run.bat | 2 + Demo_C/Demo/WarningLight/stop.bat | 2 + Doc/C_Compiler_RoboTXC-deutsch.pdf | Bin 0 -> 438869 bytes Doc/C_Compiler_RoboTXC_english_V1-2.pdf | Bin 0 -> 434905 bytes Driver/ROBO_TX_Controller.inf | 141 +++ Driver/Readme.txt | 8 + 134 files changed, 9280 insertions(+) create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/_ansi.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_default_types.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_types.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/ieeefp.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/math.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/newlib.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/_types.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/config.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/lock.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/reent.h create mode 100644 Demo_C/Bin/GNU/GNU_ARM/bin/arm-elf-gccbug create mode 100644 Demo_C/Bin/GNU/GNU_ARM/lib/gcc/arm-elf/4.4.1/include/stddef.h create mode 100644 Demo_C/Bin/GNU/Tools/copying.txt create mode 100644 Demo_C/Bin/GNU/Tools/source.txt create mode 100644 Demo_C/Bin/GNU/YAGARTO/binutils.url create mode 100644 Demo_C/Bin/GNU/YAGARTO/copying.newlib.txt create mode 100644 Demo_C/Bin/GNU/YAGARTO/copying.txt create mode 100644 Demo_C/Bin/GNU/YAGARTO/copying3.txt create mode 100644 Demo_C/Bin/GNU/YAGARTO/gcc.url create mode 100644 Demo_C/Bin/GNU/YAGARTO/gdb.url create mode 100644 Demo_C/Bin/GNU/YAGARTO/gnu.url create mode 100644 Demo_C/Bin/GNU/YAGARTO/newlib.url create mode 100644 Demo_C/Bin/GNU/YAGARTO/source.txt create mode 100644 Demo_C/Bin/GNU/YAGARTO/version.txt create mode 100644 Demo_C/Bin/GNU/YAGARTO/yagarto.url create mode 100644 Demo_C/Bin/GNU/YAGARTO/yagarto_newlib.txt create mode 100644 Demo_C/Bin/_exec_cmd.bat create mode 100644 Demo_C/Bin/_load_flash.bat create mode 100644 Demo_C/Bin/_load_ramdisk.bat create mode 100644 Demo_C/Bin/_start.bat create mode 100644 Demo_C/Bin/set_port.bat create mode 100644 Demo_C/Common/Makefile create mode 100644 Demo_C/Common/ROBO_TX_FW.h create mode 100644 Demo_C/Common/ROBO_TX_PRG.h create mode 100644 Demo_C/Common/ld.lcf create mode 100644 Demo_C/Common/prg_bt.c create mode 100644 Demo_C/Common/prg_bt_addr.c create mode 100644 Demo_C/Common/prg_disp.c create mode 100644 Demo_C/Demo/I2cTemp/I2cTemp.c create mode 100644 Demo_C/Demo/I2cTemp/clean.bat create mode 100644 Demo_C/Demo/I2cTemp/load_flash.bat create mode 100644 Demo_C/Demo/I2cTemp/load_ramdisk.bat create mode 100644 Demo_C/Demo/I2cTemp/load_ramdisk_bt.bat create mode 100644 Demo_C/Demo/I2cTemp/make.bat create mode 100644 Demo_C/Demo/I2cTemp/param.mk create mode 100644 Demo_C/Demo/I2cTemp/run.bat create mode 100644 Demo_C/Demo/I2cTemp/stop.bat create mode 100644 Demo_C/Demo/I2cTpa81/I2cTpa81.c create mode 100644 Demo_C/Demo/I2cTpa81/clean.bat create mode 100644 Demo_C/Demo/I2cTpa81/load_flash.bat create mode 100644 Demo_C/Demo/I2cTpa81/load_ramdisk.bat create mode 100644 Demo_C/Demo/I2cTpa81/load_ramdisk_bt.bat create mode 100644 Demo_C/Demo/I2cTpa81/make.bat create mode 100644 Demo_C/Demo/I2cTpa81/param.mk create mode 100644 Demo_C/Demo/I2cTpa81/run.bat create mode 100644 Demo_C/Demo/I2cTpa81/stop.bat create mode 100644 Demo_C/Demo/LED/LED.c create mode 100644 Demo_C/Demo/LED/clean.bat create mode 100644 Demo_C/Demo/LED/load_flash.bat create mode 100644 Demo_C/Demo/LED/load_ramdisk.bat create mode 100644 Demo_C/Demo/LED/make.bat create mode 100644 Demo_C/Demo/LED/param.mk create mode 100644 Demo_C/Demo/LED/run.bat create mode 100644 Demo_C/Demo/LED/stop.bat create mode 100644 Demo_C/Demo/LightRun/LightRun.c create mode 100644 Demo_C/Demo/LightRun/clean.bat create mode 100644 Demo_C/Demo/LightRun/load_flash.bat create mode 100644 Demo_C/Demo/LightRun/load_ramdisk.bat create mode 100644 Demo_C/Demo/LightRun/make.bat create mode 100644 Demo_C/Demo/LightRun/param.mk create mode 100644 Demo_C/Demo/LightRun/run.bat create mode 100644 Demo_C/Demo/LightRun/stop.bat create mode 100644 Demo_C/Demo/MotorEx_2M_Master/MotorEx_2M_Master.c create mode 100644 Demo_C/Demo/MotorEx_2M_Master/clean.bat create mode 100644 Demo_C/Demo/MotorEx_2M_Master/load_flash.bat create mode 100644 Demo_C/Demo/MotorEx_2M_Master/load_ramdisk.bat create mode 100644 Demo_C/Demo/MotorEx_2M_Master/make.bat create mode 100644 Demo_C/Demo/MotorEx_2M_Master/param.mk create mode 100644 Demo_C/Demo/MotorEx_2M_Master/run.bat create mode 100644 Demo_C/Demo/MotorEx_2M_Master/stop.bat create mode 100644 Demo_C/Demo/MotorEx_Ext1/MotorEx_Ext1.c create mode 100644 Demo_C/Demo/MotorEx_Ext1/clean.bat create mode 100644 Demo_C/Demo/MotorEx_Ext1/load_flash.bat create mode 100644 Demo_C/Demo/MotorEx_Ext1/load_ramdisk.bat create mode 100644 Demo_C/Demo/MotorEx_Ext1/make.bat create mode 100644 Demo_C/Demo/MotorEx_Ext1/param.mk create mode 100644 Demo_C/Demo/MotorEx_Ext1/run.bat create mode 100644 Demo_C/Demo/MotorEx_Ext1/stop.bat create mode 100644 Demo_C/Demo/MotorRun/MotorRun.c create mode 100644 Demo_C/Demo/MotorRun/clean.bat create mode 100644 Demo_C/Demo/MotorRun/load_flash.bat create mode 100644 Demo_C/Demo/MotorRun/load_ramdisk.bat create mode 100644 Demo_C/Demo/MotorRun/make.bat create mode 100644 Demo_C/Demo/MotorRun/param.mk create mode 100644 Demo_C/Demo/MotorRun/run.bat create mode 100644 Demo_C/Demo/MotorRun/stop.bat create mode 100644 Demo_C/Demo/StopGo/StopGo.c create mode 100644 Demo_C/Demo/StopGo/clean.bat create mode 100644 Demo_C/Demo/StopGo/load_flash.bat create mode 100644 Demo_C/Demo/StopGo/load_ramdisk.bat create mode 100644 Demo_C/Demo/StopGo/make.bat create mode 100644 Demo_C/Demo/StopGo/param.mk create mode 100644 Demo_C/Demo/StopGo/run.bat create mode 100644 Demo_C/Demo/StopGo/stop.bat create mode 100644 Demo_C/Demo/StopGoBtButtonPart/StopGoBtButtonPart.c create mode 100644 Demo_C/Demo/StopGoBtButtonPart/clean.bat create mode 100644 Demo_C/Demo/StopGoBtButtonPart/load_flash.bat create mode 100644 Demo_C/Demo/StopGoBtButtonPart/load_ramdisk.bat create mode 100644 Demo_C/Demo/StopGoBtButtonPart/load_ramdisk_bt.bat create mode 100644 Demo_C/Demo/StopGoBtButtonPart/make.bat create mode 100644 Demo_C/Demo/StopGoBtButtonPart/param.mk create mode 100644 Demo_C/Demo/StopGoBtButtonPart/run.bat create mode 100644 Demo_C/Demo/StopGoBtButtonPart/stop.bat create mode 100644 Demo_C/Demo/StopGoBtMotorPart/StopGoBtMotorPart.c create mode 100644 Demo_C/Demo/StopGoBtMotorPart/clean.bat create mode 100644 Demo_C/Demo/StopGoBtMotorPart/load_flash.bat create mode 100644 Demo_C/Demo/StopGoBtMotorPart/load_ramdisk.bat create mode 100644 Demo_C/Demo/StopGoBtMotorPart/load_ramdisk_bt.bat create mode 100644 Demo_C/Demo/StopGoBtMotorPart/make.bat create mode 100644 Demo_C/Demo/StopGoBtMotorPart/param.mk create mode 100644 Demo_C/Demo/StopGoBtMotorPart/run.bat create mode 100644 Demo_C/Demo/StopGoBtMotorPart/stop.bat create mode 100644 Demo_C/Demo/WarningLight/WarningLight.c create mode 100644 Demo_C/Demo/WarningLight/clean.bat create mode 100644 Demo_C/Demo/WarningLight/load_flash.bat create mode 100644 Demo_C/Demo/WarningLight/load_ramdisk.bat create mode 100644 Demo_C/Demo/WarningLight/make.bat create mode 100644 Demo_C/Demo/WarningLight/param.mk create mode 100644 Demo_C/Demo/WarningLight/run.bat create mode 100644 Demo_C/Demo/WarningLight/stop.bat create mode 100644 Doc/C_Compiler_RoboTXC-deutsch.pdf create mode 100644 Doc/C_Compiler_RoboTXC_english_V1-2.pdf create mode 100644 Driver/ROBO_TX_Controller.inf create mode 100644 Driver/Readme.txt diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/_ansi.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/_ansi.h new file mode 100644 index 0000000..a3f0334 --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/_ansi.h @@ -0,0 +1,99 @@ +/* Provide support for both ANSI and non-ANSI environments. */ + +/* Some ANSI environments are "broken" in the sense that __STDC__ cannot be + relied upon to have it's intended meaning. Therefore we must use our own + concoction: _HAVE_STDC. Always use _HAVE_STDC instead of __STDC__ in newlib + sources! + + To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will + "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header + files aren't affected). */ + +#ifndef _ANSIDECL_H_ +#define _ANSIDECL_H_ + +#include +#include + +/* First try to figure out whether we really are in an ANSI C environment. */ +/* FIXME: This probably needs some work. Perhaps sys/config.h can be + prevailed upon to give us a clue. */ + +#ifdef __STDC__ +#define _HAVE_STDC +#endif + +#ifdef _HAVE_STDC +#define _PTR void * +#define _AND , +#define _NOARGS void +#define _CONST const +#define _VOLATILE volatile +#define _SIGNED signed +#define _DOTS , ... +#define _VOID void +#ifdef __CYGWIN__ +#define _EXFUN(name, proto) __cdecl name proto +#define _EXPARM(name, proto) (* __cdecl name) proto +#else +#define _EXFUN(name, proto) name proto +#define _EXPARM(name, proto) (* name) proto +#endif +#define _DEFUN(name, arglist, args) name(args) +#define _DEFUN_VOID(name) name(_NOARGS) +#define _CAST_VOID (void) +#ifndef _LONG_DOUBLE +#define _LONG_DOUBLE long double +#endif +#ifndef _LONG_LONG_TYPE +#define _LONG_LONG_TYPE long long +#endif +#ifndef _PARAMS +#define _PARAMS(paramlist) paramlist +#endif +#else +#define _PTR char * +#define _AND ; +#define _NOARGS +#define _CONST +#define _VOLATILE +#define _SIGNED +#define _DOTS +#define _VOID void +#define _EXFUN(name, proto) name() +#define _DEFUN(name, arglist, args) name arglist args; +#define _DEFUN_VOID(name) name() +#define _CAST_VOID +#define _LONG_DOUBLE double +#define _LONG_LONG_TYPE long +#ifndef _PARAMS +#define _PARAMS(paramlist) () +#endif +#endif + +/* Support gcc's __attribute__ facility. */ + +#ifdef __GNUC__ +#define _ATTRIBUTE(attrs) __attribute__ (attrs) +#else +#define _ATTRIBUTE(attrs) +#endif + +/* ISO C++. */ + +#ifdef __cplusplus +#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C)) +#ifdef _HAVE_STD_CXX +#define _BEGIN_STD_C namespace std { extern "C" { +#define _END_STD_C } } +#else +#define _BEGIN_STD_C extern "C" { +#define _END_STD_C } +#endif +#endif +#else +#define _BEGIN_STD_C +#define _END_STD_C +#endif + +#endif /* _ANSIDECL_H_ */ diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_default_types.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_default_types.h new file mode 100644 index 0000000..9a5fc8d --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_default_types.h @@ -0,0 +1,121 @@ +/* + * $Id: _default_types.h,v 1.2 2008/06/11 22:14:54 jjohnstn Exp $ + */ + +#ifndef _MACHINE__DEFAULT_TYPES_H +#define _MACHINE__DEFAULT_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Guess on types by examining *_MIN / *_MAX defines. + */ +#if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ >= 3 ) \ + && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 )) +/* GCC >= 3.3.0 has ____ implicitly defined. */ +#define __EXP(x) __##x##__ +#else +/* Fall back to POSIX versions from */ +#define __EXP(x) x +#include +#endif + +#if __EXP(SCHAR_MAX) == 0x7f +typedef signed char __int8_t ; +typedef unsigned char __uint8_t ; +#define ___int8_t_defined 1 +#endif + +#if __EXP(INT_MAX) == 0x7fff +typedef signed int __int16_t; +typedef unsigned int __uint16_t; +#define ___int16_t_defined 1 +#elif __EXP(SHRT_MAX) == 0x7fff +typedef signed short __int16_t; +typedef unsigned short __uint16_t; +#define ___int16_t_defined 1 +#elif __EXP(SCHAR_MAX) == 0x7fff +typedef signed char __int16_t; +typedef unsigned char __uint16_t; +#define ___int16_t_defined 1 +#endif + +#if ___int16_t_defined +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +#define ___int_least16_t_defined 1 + +#if !___int8_t_defined +typedef __int16_t __int_least8_t; +typedef __uint16_t __uint_least8_t; +#define ___int_least8_t_defined 1 +#endif +#endif + +#if __EXP(INT_MAX) == 0x7fffffffL +typedef signed int __int32_t; +typedef unsigned int __uint32_t; +#define ___int32_t_defined 1 +#elif __EXP(LONG_MAX) == 0x7fffffffL +typedef signed long __int32_t; +typedef unsigned long __uint32_t; +#define ___int32_t_defined 1 +#elif __EXP(SHRT_MAX) == 0x7fffffffL +typedef signed short __int32_t; +typedef unsigned short __uint32_t; +#define ___int32_t_defined 1 +#elif __EXP(SCHAR_MAX) == 0x7fffffffL +typedef signed char __int32_t; +typedef unsigned char __uint32_t; +#define ___int32_t_defined 1 +#endif + +#if ___int32_t_defined +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +#define ___int_least32_t_defined 1 + +#if !___int8_t_defined +typedef __int32_t __int_least8_t; +typedef __uint32_t __uint_least8_t; +#define ___int_least8_t_defined 1 +#endif +#if !___int16_t_defined +typedef __int32_t __int_least16_t; +typedef __uint32_t __uint_least16_t; +#define ___int_least16_t_defined 1 +#endif +#endif + +#if __EXP(LONG_MAX) > 0x7fffffff +typedef signed long __int64_t; +typedef unsigned long __uint64_t; +#define ___int64_t_defined 1 + +/* GCC has __LONG_LONG_MAX__ */ +#elif defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff) +typedef signed long long __int64_t; +typedef unsigned long long __uint64_t; +#define ___int64_t_defined 1 + +/* POSIX mandates LLONG_MAX in */ +#elif defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) +typedef signed long long __int64_t; +typedef unsigned long long __uint64_t; +#define ___int64_t_defined 1 + +#elif __EXP(INT_MAX) > 0x7fffffff +typedef signed int __int64_t; +typedef unsigned int __uint64_t; +#define ___int64_t_defined 1 +#endif + +#undef __EXP + +#ifdef __cplusplus +} +#endif + +#endif /* _MACHINE__DEFAULT_TYPES_H */ diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_types.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_types.h new file mode 100644 index 0000000..18f96d5 --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/_types.h @@ -0,0 +1,8 @@ +/* + * $Id: _types.h,v 1.3 2007/09/07 21:16:25 jjohnstn Exp $ + */ + +#ifndef _MACHINE__TYPES_H +#define _MACHINE__TYPES_H +#include +#endif diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/ieeefp.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/ieeefp.h new file mode 100644 index 0000000..b3c7937 --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/machine/ieeefp.h @@ -0,0 +1,333 @@ +#ifndef __IEEE_BIG_ENDIAN +#ifndef __IEEE_LITTLE_ENDIAN + +/* This file can define macros to choose variations of the IEEE float + format: + + _FLT_LARGEST_EXPONENT_IS_NORMAL + + Defined if the float format uses the largest exponent for finite + numbers rather than NaN and infinity representations. Such a + format cannot represent NaNs or infinities at all, but it's FLT_MAX + is twice the IEEE value. + + _FLT_NO_DENORMALS + + Defined if the float format does not support IEEE denormals. Every + float with a zero exponent is taken to be a zero representation. + + ??? At the moment, there are no equivalent macros above for doubles and + the macros are not fully supported by --enable-newlib-hw-fp. + + __IEEE_BIG_ENDIAN + + Defined if the float format is big endian. This is mutually exclusive + with __IEEE_LITTLE_ENDIAN. + + __IEEE_LITTLE_ENDIAN + + Defined if the float format is little endian. This is mutually exclusive + with __IEEE_BIG_ENDIAN. + + Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a + platform or error will occur. + + __IEEE_BYTES_LITTLE_ENDIAN + + This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation + whereby multiple words of an IEEE floating point are in big endian order, but the + words themselves are little endian with respect to the bytes. + + _DOUBLE_IS_32BITS + + This is used on platforms that support double by using the 32-bit IEEE + float type. + + _FLOAT_ARG + + This represents what type a float arg is passed as. It is used when the type is + not promoted to double. + +*/ + +#if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__) +/* ARM traditionally used big-endian words; and within those words the + byte ordering was big or little endian depending upon the target. + Modern floating-point formats are naturally ordered; in this case + __VFP_FP__ will be defined, even if soft-float. */ +#ifdef __VFP_FP__ +# ifdef __ARMEL__ +# define __IEEE_LITTLE_ENDIAN +# else +# define __IEEE_BIG_ENDIAN +# endif +#else +# define __IEEE_BIG_ENDIAN +# ifdef __ARMEL__ +# define __IEEE_BYTES_LITTLE_ENDIAN +# endif +#endif +#endif + +#ifdef __hppa__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __SPU__ +#define __IEEE_BIG_ENDIAN + +#define isfinite(y) \ + (__extension__ ({__typeof__(y) __y = (y); \ + (sizeof (__y) == sizeof (float)) ? (1) : \ + fpclassify(__y) != FP_INFINITE && fpclassify(__y) != FP_NAN;})) +#define isinf(x) \ + (__extension__ ({__typeof__(x) __x = (x); \ + (sizeof (__x) == sizeof (float)) ? (0) : __isinfd(__x);})) +#define isnan(x) \ + (__extension__ ({__typeof__(x) __x = (x); \ + (sizeof (__x) == sizeof (float)) ? (0) : __isnand(__x);})) + +/* + * Macros for use in ieeefp.h. We can't just define the real ones here + * (like those above) as we have name space issues when this is *not* + * included via generic the ieeefp.h. + */ +#define __ieeefp_isnanf(x) 0 +#define __ieeefp_isinff(x) 0 +#define __ieeefp_finitef(x) 1 +#endif + +#ifdef __sparc__ +#ifdef __LITTLE_ENDIAN_DATA__ +#define __IEEE_LITTLE_ENDIAN +#else +#define __IEEE_BIG_ENDIAN +#endif +#endif + +#if defined(__m68k__) || defined(__mc68000__) +#define __IEEE_BIG_ENDIAN +#endif + +#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) +#define __IEEE_BIG_ENDIAN +#ifdef __HAVE_SHORT_DOUBLE__ +# define _DOUBLE_IS_32BITS +#endif +#endif + +#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) || defined (__H8500__) || defined (__H8300SX__) +#define __IEEE_BIG_ENDIAN +#define _FLOAT_ARG float +#define _DOUBLE_IS_32BITS +#endif + +#ifdef __sh__ +#ifdef __LITTLE_ENDIAN__ +#define __IEEE_LITTLE_ENDIAN +#else +#define __IEEE_BIG_ENDIAN +#endif +#if defined(__SH2E__) || defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A_SINGLE_ONLY__) +#define _DOUBLE_IS_32BITS +#endif +#endif + +#ifdef _AM29K +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef _WIN32 +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __i386__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __i960__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __lm32__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __M32R__ +#define __IEEE_BIG_ENDIAN +#endif + +#if defined(_C4x) || defined(_C3x) +#define __IEEE_BIG_ENDIAN +#define _DOUBLE_IS_32BITS +#endif + +#ifdef __TIC80__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __MIPSEL__ +#define __IEEE_LITTLE_ENDIAN +#endif +#ifdef __MIPSEB__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __MMIX__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __D30V__ +#define __IEEE_BIG_ENDIAN +#endif + +/* necv70 was __IEEE_LITTLE_ENDIAN. */ + +#ifdef __W65__ +#define __IEEE_LITTLE_ENDIAN +#define _DOUBLE_IS_32BITS +#endif + +#if defined(__Z8001__) || defined(__Z8002__) +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __m88k__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __mn10300__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __mn10200__ +#define __IEEE_LITTLE_ENDIAN +#define _DOUBLE_IS_32BITS +#endif + +#ifdef __v800 +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __v850 +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __D10V__ +#define __IEEE_BIG_ENDIAN +#if __DOUBLE__ == 32 +#define _DOUBLE_IS_32BITS +#endif +#endif + +#ifdef __PPC__ +#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) +#define __IEEE_BIG_ENDIAN +#else +#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32) +#define __IEEE_LITTLE_ENDIAN +#endif +#endif +#endif + +#ifdef __xstormy16__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __arc__ +#ifdef __big_endian__ +#define __IEEE_BIG_ENDIAN +#else +#define __IEEE_LITTLE_ENDIAN +#endif +#endif + +#ifdef __CRX__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __fr30__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __mcore__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __mt__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __frv__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __ia64__ +#ifdef __BIG_ENDIAN__ +#define __IEEE_BIG_ENDIAN +#else +#define __IEEE_LITTLE_ENDIAN +#endif +#endif + +#ifdef __AVR__ +#define __IEEE_LITTLE_ENDIAN +#define _DOUBLE_IS_32BITS +#endif + +#if defined(__or32__) || defined(__or1k__) || defined(__or16__) +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __IP2K__ +#define __IEEE_BIG_ENDIAN +#define __SMALL_BITFIELDS +#define _DOUBLE_IS_32BITS +#endif + +#ifdef __iq2000__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __MAVERICK__ +#ifdef __ARMEL__ +# define __IEEE_LITTLE_ENDIAN +#else /* must be __ARMEB__ */ +# define __IEEE_BIG_ENDIAN +#endif /* __ARMEL__ */ +#endif /* __MAVERICK__ */ + +#ifdef __m32c__ +#define __IEEE_LITTLE_ENDIAN +#define __SMALL_BITFIELDS +#endif + +#ifdef __CRIS__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __BFIN__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __x86_64__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __mep__ +#ifdef __LITTLE_ENDIAN__ +#define __IEEE_LITTLE_ENDIAN +#else +#define __IEEE_BIG_ENDIAN +#endif +#endif + +#ifndef __IEEE_BIG_ENDIAN +#ifndef __IEEE_LITTLE_ENDIAN +#error Endianess not declared!! +#endif /* not __IEEE_LITTLE_ENDIAN */ +#endif /* not __IEEE_BIG_ENDIAN */ + +#endif /* not __IEEE_LITTLE_ENDIAN */ +#endif /* not __IEEE_BIG_ENDIAN */ + diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/math.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/math.h new file mode 100644 index 0000000..ce72631 --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/math.h @@ -0,0 +1,483 @@ +#ifndef _MATH_H_ + +#define _MATH_H_ + +#include +#include +#include "_ansi.h" + +_BEGIN_STD_C + +union __dmath +{ + __ULong i[2]; + double d; +}; + +union __fmath +{ + __ULong i[1]; + float f; +}; + +union __ldmath +{ + __ULong i[4]; + _LONG_DOUBLE ld; +}; + +/* Natural log of 2 */ +#define _M_LOG2_E 0.693147180559945309417 + +#if defined(__GNUC__) && \ + ( (__GNUC__ >= 4) || \ + ( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 3) ) ) + + /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values. */ + +# ifndef HUGE_VAL +# define HUGE_VAL (__builtin_huge_val()) +# endif + +# ifndef HUGE_VALF +# define HUGE_VALF (__builtin_huge_valf()) +# endif + +# ifndef HUGE_VALL +# define HUGE_VALL (__builtin_huge_vall()) +# endif + +# ifndef INFINITY +# define INFINITY (__builtin_inff()) +# endif + +# ifndef NAN +# define NAN (__builtin_nanf("")) +# endif + +#else /* !gcc >= 3.3 */ + + /* No builtins. Use floating-point unions instead. Declare as an array + without bounds so no matter what small data support a port and/or + library has, the reference will be via the general method for accessing + globals. */ + + #ifndef HUGE_VAL + extern __IMPORT const union __dmath __infinity[]; + #define HUGE_VAL (__infinity[0].d) + #endif + + #ifndef HUGE_VALF + extern __IMPORT const union __fmath __infinityf[]; + #define HUGE_VALF (__infinityf[0].f) + #endif + + #ifndef HUGE_VALL + extern __IMPORT const union __ldmath __infinityld[]; + #define HUGE_VALL (__infinityld[0].ld) + #endif + +#endif /* !gcc >= 3.3 */ + +/* Reentrant ANSI C functions. */ + +#ifndef __math_68881 +extern double atan _PARAMS((double)); +extern double cos _PARAMS((double)); +extern double sin _PARAMS((double)); +extern double tan _PARAMS((double)); +extern double tanh _PARAMS((double)); +extern double frexp _PARAMS((double, int *)); +extern double modf _PARAMS((double, double *)); +extern double ceil _PARAMS((double)); +extern double fabs _PARAMS((double)); +extern double floor _PARAMS((double)); +#endif /* ! defined (__math_68881) */ + +/* Non reentrant ANSI C functions. */ + +#ifndef _REENT_ONLY +#ifndef __math_6881 +extern double acos _PARAMS((double)); +extern double asin _PARAMS((double)); +extern double atan2 _PARAMS((double, double)); +extern double cosh _PARAMS((double)); +extern double sinh _PARAMS((double)); +extern double exp _PARAMS((double)); +extern double ldexp _PARAMS((double, int)); +extern double log _PARAMS((double)); +extern double log10 _PARAMS((double)); +extern double pow _PARAMS((double, double)); +extern double sqrt _PARAMS((double)); +extern double fmod _PARAMS((double, double)); +#endif /* ! defined (__math_68881) */ +#endif /* ! defined (_REENT_ONLY) */ + +#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L + +/* ISO C99 types and macros. */ + +#ifndef FLT_EVAL_METHOD +#define FLT_EVAL_METHOD 0 +typedef float float_t; +typedef double double_t; +#endif /* FLT_EVAL_METHOD */ + +#define FP_NAN 0 +#define FP_INFINITE 1 +#define FP_ZERO 2 +#define FP_SUBNORMAL 3 +#define FP_NORMAL 4 + +#ifndef FP_ILOGB0 +# define FP_ILOGB0 (-INT_MAX) +#endif +#ifndef FP_ILOGBNAN +# define FP_ILOGBNAN INT_MAX +#endif + +#ifndef MATH_ERRNO +# define MATH_ERRNO 1 +#endif +#ifndef MATH_ERREXCEPT +# define MATH_ERREXCEPT 2 +#endif +#ifndef math_errhandling +# define math_errhandling MATH_ERRNO +#endif + +extern int __isinff (float x); +extern int __isinfd (double x); +extern int __isnanf (float x); +extern int __isnand (double x); +extern int __fpclassifyf (float x); +extern int __fpclassifyd (double x); +extern int __signbitf (float x); +extern int __signbitd (double x); + +#define fpclassify(x) \ + (__extension__ ({__typeof__(x) __x = (x); \ + (sizeof (__x) == sizeof (float)) ? __fpclassifyf(__x) : __fpclassifyd(__x);})) + +#ifndef isfinite +#define isfinite(y) \ + (__extension__ ({__typeof__(y) __y = (y); \ + fpclassify(__y) != FP_INFINITE && fpclassify(__y) != FP_NAN;})) +#endif + +/* Note: isinf and isnan were once functions in newlib that took double + * arguments. C99 specifies that these names are reserved for macros + * supporting multiple floating point types. Thus, they are + * now defined as macros. Implementations of the old functions + * taking double arguments still exist for compatibility purposes. */ +#ifndef isinf +#define isinf(x) \ + (__extension__ ({__typeof__(x) __x = (x); \ + (sizeof (__x) == sizeof (float)) ? __isinff(__x) : __isinfd(__x);})) +#endif + +#ifndef isnan +#define isnan(x) \ + (__extension__ ({__typeof__(x) __x = (x); \ + (sizeof (__x) == sizeof (float)) ? __isnanf(__x) : __isnand(__x);})) +#endif + +#define isnormal(y) (fpclassify(y) == FP_NORMAL) +#define signbit(x) \ + (__extension__ ({__typeof__(x) __x = (x); \ + (sizeof(__x) == sizeof(float)) ? __signbitf(__x) : __signbitd(__x);})) + +#define isgreater(x,y) \ + (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ + !isunordered(__x,__y) && (__x > __y);})) +#define isgreaterequal(x,y) \ + (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ + !isunordered(__x,__y) && (__x >= __y);})) +#define isless(x,y) \ + (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ + !isunordered(__x,__y) && (__x < __y);})) +#define islessequal(x,y) \ + (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ + !isunordered(__x,__y) && (__x <= __y);})) +#define islessgreater(x,y) \ + (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ + !isunordered(__x,__y) && (__x < __y || __x > __y);})) + +#define isunordered(a,b) \ + (__extension__ ({__typeof__(a) __a = (a); __typeof__(b) __b = (b); \ + fpclassify(__a) == FP_NAN || fpclassify(__b) == FP_NAN;})) + +/* Non ANSI double precision functions. */ + +extern double infinity _PARAMS((void)); +extern double nan _PARAMS((const char *)); +extern int finite _PARAMS((double)); +extern double copysign _PARAMS((double, double)); +extern int ilogb _PARAMS((double)); + +extern double asinh _PARAMS((double)); +extern double cbrt _PARAMS((double)); +extern double nextafter _PARAMS((double, double)); +extern double rint _PARAMS((double)); +extern double scalbn _PARAMS((double, int)); + +extern double exp2 _PARAMS((double)); +extern double scalbln _PARAMS((double, long int)); +extern double tgamma _PARAMS((double)); +extern double nearbyint _PARAMS((double)); +extern long int lrint _PARAMS((double)); +extern _LONG_LONG_TYPE int llrint _PARAMS((double)); +extern double round _PARAMS((double)); +extern long int lround _PARAMS((double)); +extern double trunc _PARAMS((double)); +extern double remquo _PARAMS((double, double, int *)); +extern double copysign _PARAMS((double, double)); +extern double fdim _PARAMS((double, double)); +extern double fmax _PARAMS((double, double)); +extern double fmin _PARAMS((double, double)); +extern double fma _PARAMS((double, double, double)); + +#ifndef __math_68881 +extern double log1p _PARAMS((double)); +extern double expm1 _PARAMS((double)); +#endif /* ! defined (__math_68881) */ + +#ifndef _REENT_ONLY +extern double acosh _PARAMS((double)); +extern double atanh _PARAMS((double)); +extern double remainder _PARAMS((double, double)); +extern double gamma _PARAMS((double)); +extern double lgamma _PARAMS((double)); +extern double erf _PARAMS((double)); +extern double erfc _PARAMS((double)); +#define log2(x) (log (x) / _M_LOG2_E) + +#ifndef __math_68881 +extern double hypot _PARAMS((double, double)); +#endif + +#endif /* ! defined (_REENT_ONLY) */ + +/* Single precision versions of ANSI functions. */ + +extern float atanf _PARAMS((float)); +extern float cosf _PARAMS((float)); +extern float sinf _PARAMS((float)); +extern float tanf _PARAMS((float)); +extern float tanhf _PARAMS((float)); +extern float frexpf _PARAMS((float, int *)); +extern float modff _PARAMS((float, float *)); +extern float ceilf _PARAMS((float)); +extern float fabsf _PARAMS((float)); +extern float floorf _PARAMS((float)); + +#ifndef _REENT_ONLY +extern float acosf _PARAMS((float)); +extern float asinf _PARAMS((float)); +extern float atan2f _PARAMS((float, float)); +extern float coshf _PARAMS((float)); +extern float sinhf _PARAMS((float)); +extern float expf _PARAMS((float)); +extern float ldexpf _PARAMS((float, int)); +extern float logf _PARAMS((float)); +extern float log10f _PARAMS((float)); +extern float powf _PARAMS((float, float)); +extern float sqrtf _PARAMS((float)); +extern float fmodf _PARAMS((float, float)); +#endif /* ! defined (_REENT_ONLY) */ + +/* Other single precision functions. */ + +extern float exp2f _PARAMS((float)); +extern float scalblnf _PARAMS((float, long int)); +extern float tgammaf _PARAMS((float)); +extern float nearbyintf _PARAMS((float)); +extern long int lrintf _PARAMS((float)); +extern _LONG_LONG_TYPE llrintf _PARAMS((float)); +extern float roundf _PARAMS((float)); +extern long int lroundf _PARAMS((float)); +extern float truncf _PARAMS((float)); +extern float remquof _PARAMS((float, float, int *)); +extern float copysignf _PARAMS((float, float)); +extern float fdimf _PARAMS((float, float)); +extern float fmaxf _PARAMS((float, float)); +extern float fminf _PARAMS((float, float)); +extern float fmaf _PARAMS((float, float, float)); + +extern float infinityf _PARAMS((void)); +extern float nanf _PARAMS((const char *)); +extern int isnanf _PARAMS((float)); +extern int isinff _PARAMS((float)); +extern int finitef _PARAMS((float)); +extern float copysignf _PARAMS((float, float)); +extern int ilogbf _PARAMS((float)); + +extern float asinhf _PARAMS((float)); +extern float cbrtf _PARAMS((float)); +extern float nextafterf _PARAMS((float, float)); +extern float rintf _PARAMS((float)); +extern float scalbnf _PARAMS((float, int)); +extern float log1pf _PARAMS((float)); +extern float expm1f _PARAMS((float)); + +#ifndef _REENT_ONLY +extern float acoshf _PARAMS((float)); +extern float atanhf _PARAMS((float)); +extern float remainderf _PARAMS((float, float)); +extern float gammaf _PARAMS((float)); +extern float lgammaf _PARAMS((float)); +extern float erff _PARAMS((float)); +extern float erfcf _PARAMS((float)); +#define log2f(x) (logf (x) / (float) _M_LOG2_E) +extern float hypotf _PARAMS((float, float)); +#endif /* ! defined (_REENT_ONLY) */ + +/* Other long double precision functions. */ +extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE)); +extern long int lrintl _PARAMS((_LONG_DOUBLE)); +extern _LONG_LONG_TYPE llrintl _PARAMS((_LONG_DOUBLE)); + +#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L */ + +#if !defined (__STRICT_ANSI__) || defined(__cplusplus) + +extern double cabs(); +extern double drem _PARAMS((double, double)); +extern void sincos _PARAMS((double, double *, double *)); +extern double gamma_r _PARAMS((double, int *)); +extern double lgamma_r _PARAMS((double, int *)); + +extern double y0 _PARAMS((double)); +extern double y1 _PARAMS((double)); +extern double yn _PARAMS((int, double)); +extern double j0 _PARAMS((double)); +extern double j1 _PARAMS((double)); +extern double jn _PARAMS((int, double)); + +extern float cabsf(); +extern float dremf _PARAMS((float, float)); +extern void sincosf _PARAMS((float, float *, float *)); +extern float gammaf_r _PARAMS((float, int *)); +extern float lgammaf_r _PARAMS((float, int *)); + +extern float y0f _PARAMS((float)); +extern float y1f _PARAMS((float)); +extern float ynf _PARAMS((int, float)); +extern float j0f _PARAMS((float)); +extern float j1f _PARAMS((float)); +extern float jnf _PARAMS((int, float)); + +/* GNU extensions */ +# ifndef exp10 +extern double exp10 _PARAMS((double)); +# endif +# ifndef pow10 +extern double pow10 _PARAMS((double)); +# endif +# ifndef exp10f +extern float exp10f _PARAMS((float)); +# endif +# ifndef pow10f +extern float pow10f _PARAMS((float)); +# endif + +#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) */ + +#ifndef __STRICT_ANSI__ + +/* The gamma functions use a global variable, signgam. */ +#ifndef _REENT_ONLY +#define signgam (*__signgam()) +extern int *__signgam _PARAMS((void)); +#endif /* ! defined (_REENT_ONLY) */ + +#define __signgam_r(ptr) _REENT_SIGNGAM(ptr) + +/* The exception structure passed to the matherr routine. */ +/* We have a problem when using C++ since `exception' is a reserved + name in C++. */ +#ifdef __cplusplus +struct __exception +#else +struct exception +#endif +{ + int type; + char *name; + double arg1; + double arg2; + double retval; + int err; +}; + +#ifdef __cplusplus +extern int matherr _PARAMS((struct __exception *e)); +#else +extern int matherr _PARAMS((struct exception *e)); +#endif + +/* Values for the type field of struct exception. */ + +#define DOMAIN 1 +#define SING 2 +#define OVERFLOW 3 +#define UNDERFLOW 4 +#define TLOSS 5 +#define PLOSS 6 + +/* Useful constants. */ + +#define MAXFLOAT 3.40282347e+38F + +#define M_E 2.7182818284590452354 +#define M_LOG2E 1.4426950408889634074 +#define M_LOG10E 0.43429448190325182765 +#define M_LN2 0.69314718055994530942 +#define M_LN10 2.30258509299404568402 +#define M_PI 3.14159265358979323846 +#define M_TWOPI (M_PI * 2.0) +#define M_PI_2 1.57079632679489661923 +#define M_PI_4 0.78539816339744830962 +#define M_3PI_4 2.3561944901923448370E0 +#define M_SQRTPI 1.77245385090551602792981 +#define M_1_PI 0.31830988618379067154 +#define M_2_PI 0.63661977236758134308 +#define M_2_SQRTPI 1.12837916709551257390 +#define M_SQRT2 1.41421356237309504880 +#define M_SQRT1_2 0.70710678118654752440 +#define M_LN2LO 1.9082149292705877000E-10 +#define M_LN2HI 6.9314718036912381649E-1 +#define M_SQRT3 1.73205080756887719000 +#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */ +#define M_LOG2_E _M_LOG2_E +#define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */ + +/* Global control over fdlibm error handling. */ + +enum __fdlibm_version +{ + __fdlibm_ieee = -1, + __fdlibm_svid, + __fdlibm_xopen, + __fdlibm_posix +}; + +#define _LIB_VERSION_TYPE enum __fdlibm_version +#define _LIB_VERSION __fdlib_version + +extern __IMPORT _LIB_VERSION_TYPE _LIB_VERSION; + +#define _IEEE_ __fdlibm_ieee +#define _SVID_ __fdlibm_svid +#define _XOPEN_ __fdlibm_xopen +#define _POSIX_ __fdlibm_posix + +#endif /* ! defined (__STRICT_ANSI__) */ + +_END_STD_C + +#ifdef __FAST_MATH__ +#include +#endif + +#endif /* _MATH_H_ */ diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/newlib.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/newlib.h new file mode 100644 index 0000000..068ebcd --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/newlib.h @@ -0,0 +1,162 @@ +/* newlib.h. Generated by configure. */ +/* newlib.hin. Generated from configure.in by autoheader. */ +#ifndef __NEWLIB_H__ + +#define __NEWLIB_H__ 1 + +/* EL/IX level */ +/* #undef _ELIX_LEVEL */ + +/* Newlib version */ +#define _NEWLIB_VERSION "1.17.0" + +/* C99 formats support (such as %a, %zu, ...) in IO functions like + * printf/scanf enabled */ +/* #undef _WANT_IO_C99_FORMATS */ + +/* long long type support in IO functions like printf/scanf enabled */ +/* #undef _WANT_IO_LONG_LONG */ + +/* long double type support in IO functions like printf/scanf enabled */ +/* #undef _WANT_IO_LONG_DOUBLE */ + +/* Positional argument support in printf functions enabled. */ +/* #undef _WANT_IO_POS_ARGS */ + +/* Optional reentrant struct support. Used mostly on platforms with + very restricted storage. */ +/* #undef _WANT_REENT_SMALL */ + +/* Multibyte supported */ +/* #undef _MB_CAPABLE */ + +/* MB_LEN_MAX */ +#define _MB_LEN_MAX 1 + +/* ICONV enabled */ +/* #undef _ICONV_ENABLED */ + +/* Enable ICONV external CCS files loading capabilities */ +/* #undef _ICONV_ENABLE_EXTERNAL_CCS */ + +/* Define if the linker supports .preinit_array/.init_array/.fini_array + * sections. */ +#define HAVE_INITFINI_ARRAY 1 + +/* True if atexit() may dynamically allocate space for cleanup + functions. */ +#define _ATEXIT_DYNAMIC_ALLOC 1 + +/* Define if the compiler supports aliasing an array to an address. */ +/* #undef _HAVE_ARRAY_ALIASING */ + +/* + * Iconv encodings enabled ("to" direction) + */ +/* #undef _ICONV_TO_ENCODING_BIG5 */ +/* #undef _ICONV_TO_ENCODING_CP775 */ +/* #undef _ICONV_TO_ENCODING_CP850 */ +/* #undef _ICONV_TO_ENCODING_CP852 */ +/* #undef _ICONV_TO_ENCODING_CP855 */ +/* #undef _ICONV_TO_ENCODING_CP866 */ +/* #undef _ICONV_TO_ENCODING_EUC_JP */ +/* #undef _ICONV_TO_ENCODING_EUC_TW */ +/* #undef _ICONV_TO_ENCODING_EUC_KR */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_1 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_10 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_11 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_13 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_14 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_15 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_2 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_3 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_4 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_5 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_6 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_7 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_8 */ +/* #undef _ICONV_TO_ENCODING_ISO_8859_9 */ +/* #undef _ICONV_TO_ENCODING_ISO_IR_111 */ +/* #undef _ICONV_TO_ENCODING_KOI8_R */ +/* #undef _ICONV_TO_ENCODING_KOI8_RU */ +/* #undef _ICONV_TO_ENCODING_KOI8_U */ +/* #undef _ICONV_TO_ENCODING_KOI8_UNI */ +/* #undef _ICONV_TO_ENCODING_UCS_2 */ +/* #undef _ICONV_TO_ENCODING_UCS_2_INTERNAL */ +/* #undef _ICONV_TO_ENCODING_UCS_2BE */ +/* #undef _ICONV_TO_ENCODING_UCS_2LE */ +/* #undef _ICONV_TO_ENCODING_UCS_4 */ +/* #undef _ICONV_TO_ENCODING_UCS_4_INTERNAL */ +/* #undef _ICONV_TO_ENCODING_UCS_4BE */ +/* #undef _ICONV_TO_ENCODING_UCS_4LE */ +/* #undef _ICONV_TO_ENCODING_US_ASCII */ +/* #undef _ICONV_TO_ENCODING_UTF_16 */ +/* #undef _ICONV_TO_ENCODING_UTF_16BE */ +/* #undef _ICONV_TO_ENCODING_UTF_16LE */ +/* #undef _ICONV_TO_ENCODING_UTF_8 */ +/* #undef _ICONV_TO_ENCODING_WIN_1250 */ +/* #undef _ICONV_TO_ENCODING_WIN_1251 */ +/* #undef _ICONV_TO_ENCODING_WIN_1252 */ +/* #undef _ICONV_TO_ENCODING_WIN_1253 */ +/* #undef _ICONV_TO_ENCODING_WIN_1254 */ +/* #undef _ICONV_TO_ENCODING_WIN_1255 */ +/* #undef _ICONV_TO_ENCODING_WIN_1256 */ +/* #undef _ICONV_TO_ENCODING_WIN_1257 */ +/* #undef _ICONV_TO_ENCODING_WIN_1258 */ + +/* + * Iconv encodings enabled ("from" direction) + */ +/* #undef _ICONV_FROM_ENCODING_BIG5 */ +/* #undef _ICONV_FROM_ENCODING_CP775 */ +/* #undef _ICONV_FROM_ENCODING_CP850 */ +/* #undef _ICONV_FROM_ENCODING_CP852 */ +/* #undef _ICONV_FROM_ENCODING_CP855 */ +/* #undef _ICONV_FROM_ENCODING_CP866 */ +/* #undef _ICONV_FROM_ENCODING_EUC_JP */ +/* #undef _ICONV_FROM_ENCODING_EUC_TW */ +/* #undef _ICONV_FROM_ENCODING_EUC_KR */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_1 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_10 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_11 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_13 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_14 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_15 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_2 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_3 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_4 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_5 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_6 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_7 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_8 */ +/* #undef _ICONV_FROM_ENCODING_ISO_8859_9 */ +/* #undef _ICONV_FROM_ENCODING_ISO_IR_111 */ +/* #undef _ICONV_FROM_ENCODING_KOI8_R */ +/* #undef _ICONV_FROM_ENCODING_KOI8_RU */ +/* #undef _ICONV_FROM_ENCODING_KOI8_U */ +/* #undef _ICONV_FROM_ENCODING_KOI8_UNI */ +/* #undef _ICONV_FROM_ENCODING_UCS_2 */ +/* #undef _ICONV_FROM_ENCODING_UCS_2_INTERNAL */ +/* #undef _ICONV_FROM_ENCODING_UCS_2BE */ +/* #undef _ICONV_FROM_ENCODING_UCS_2LE */ +/* #undef _ICONV_FROM_ENCODING_UCS_4 */ +/* #undef _ICONV_FROM_ENCODING_UCS_4_INTERNAL */ +/* #undef _ICONV_FROM_ENCODING_UCS_4BE */ +/* #undef _ICONV_FROM_ENCODING_UCS_4LE */ +/* #undef _ICONV_FROM_ENCODING_US_ASCII */ +/* #undef _ICONV_FROM_ENCODING_UTF_16 */ +/* #undef _ICONV_FROM_ENCODING_UTF_16BE */ +/* #undef _ICONV_FROM_ENCODING_UTF_16LE */ +/* #undef _ICONV_FROM_ENCODING_UTF_8 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1250 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1251 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1252 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1253 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1254 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1255 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1256 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1257 */ +/* #undef _ICONV_FROM_ENCODING_WIN_1258 */ + +#endif /* !__NEWLIB_H__ */ + diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/_types.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/_types.h new file mode 100644 index 0000000..25252ed --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/_types.h @@ -0,0 +1,87 @@ +/* ANSI C namespace clean utility typedefs */ + +/* This file defines various typedefs needed by the system calls that support + the C library. Basically, they're just the POSIX versions with an '_' + prepended. This file lives in the `sys' directory so targets can provide + their own if desired (or they can put target dependant conditionals here). +*/ + +#ifndef _SYS__TYPES_H +#define _SYS__TYPES_H + +#include +#include + +#ifndef __off_t_defined +typedef long _off_t; +#endif + +#if defined(__rtems__) +/* device numbers are 32-bit major and and 32-bit minor */ +typedef unsigned long long __dev_t; +#else +#ifndef __dev_t_defined +typedef short __dev_t; +#endif +#endif + +#ifndef __uid_t_defined +typedef unsigned short __uid_t; +#endif +#ifndef __gid_t_defined +typedef unsigned short __gid_t; +#endif + +#ifndef __off64_t_defined +__extension__ typedef long long _off64_t; +#endif + +/* + * We need fpos_t for the following, but it doesn't have a leading "_", + * so we use _fpos_t instead. + */ +#ifndef __fpos_t_defined +typedef long _fpos_t; /* XXX must match off_t in */ + /* (and must be `long' for now) */ +#endif + +#ifdef __LARGE64_FILES +#ifndef __fpos64_t_defined +typedef _off64_t _fpos64_t; +#endif +#endif + +#ifndef __ssize_t_defined +#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 +typedef int _ssize_t; +#else +typedef long _ssize_t; +#endif +#endif + +#define __need_wint_t +#include + +#ifndef __mbstate_t_defined +/* Conversion state information. */ +typedef struct +{ + int __count; + union + { + wint_t __wch; + unsigned char __wchb[4]; + } __value; /* Value so far. */ +} _mbstate_t; +#endif + +#ifndef __flock_t_defined +typedef _LOCK_RECURSIVE_T _flock_t; +#endif + +#ifndef __iconv_t_defined +/* Iconv descriptor type */ +typedef void *_iconv_t; +#endif + +#endif /* _SYS__TYPES_H */ diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/config.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/config.h new file mode 100644 index 0000000..3084193 --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/config.h @@ -0,0 +1,213 @@ +#ifndef __SYS_CONFIG_H__ +#define __SYS_CONFIG_H__ + +#include /* floating point macros */ + +/* exceptions first */ +#if defined(__H8500__) || defined(__W65__) +#define __SMALL_BITFIELDS +/* ??? This conditional is true for the h8500 and the w65, defining H8300 + in those cases probably isn't the right thing to do. */ +#define H8300 1 +#endif + +/* 16 bit integer machines */ +#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__) + +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX 32767 +#define UINT_MAX 65535 +#endif + +#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__) +#define __SMALL_BITFIELDS +#define H8300 1 +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX __INT_MAX__ +#define UINT_MAX (__INT_MAX__ * 2U + 1) +#endif + +#ifdef __W65__ +#define __SMALL_BITFIELDS +#endif + +#if defined(__D10V__) +#define __SMALL_BITFIELDS +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX __INT_MAX__ +#define UINT_MAX (__INT_MAX__ * 2U + 1) +#define _POINTER_INT short +#endif + +#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX __INT_MAX__ +#define UINT_MAX (__INT_MAX__ * 2U + 1) +#define _POINTER_INT short +#endif + +#ifdef ___AM29K__ +#define _FLOAT_RET double +#endif + +#ifdef __i386__ +#ifndef __unix__ +/* in other words, go32 */ +#define _FLOAT_RET double +#endif +#if defined(__linux__) || defined(__RDOS__) +/* we want the reentrancy structure to be returned by a function */ +#define __DYNAMIC_REENT__ +#define HAVE_GETDATE +#define _HAVE_SYSTYPES +#define _READ_WRITE_RETURN_TYPE _ssize_t +#define __LARGE64_FILES 1 +/* we use some glibc header files so turn on glibc large file feature */ +#define _LARGEFILE64_SOURCE 1 +#endif +#endif + +#ifdef __mn10200__ +#define __SMALL_BITFIELDS +#endif + +#ifdef __AVR__ +#define __SMALL_BITFIELDS +#define _POINTER_INT short +#endif + +#ifdef __v850 +#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__)) +#endif + +/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */ +#if defined(__PPC__) +#if defined(_CALL_SYSV) +#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) +#endif +#ifdef __SPE__ +#define _LONG_DOUBLE double +#endif +#endif + +#if defined(__mips__) && !defined(__rtems__) +#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) +#endif + +#ifdef __xstormy16__ +#define __SMALL_BITFIELDS +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX __INT_MAX__ +#define UINT_MAX (__INT_MAX__ * 2U + 1) +#define MALLOC_ALIGNMENT 8 +#define _POINTER_INT short +#define __BUFSIZ__ 16 +#define _REENT_SMALL +#endif +#ifdef __m32c__ +#define __SMALL_BITFIELDS +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX __INT_MAX__ +#define UINT_MAX (__INT_MAX__ * 2U + 1) +#define MALLOC_ALIGNMENT 8 +#if defined(__r8c_cpu__) || defined(__m16c_cpu__) +#define _POINTER_INT short +#else +#define _POINTER_INT long +#endif +#define __BUFSIZ__ 16 +#define _REENT_SMALL +#endif /* __m32c__ */ + +#ifdef __thumb2__ +/* Thumb-2 based ARMv7M devices are really small. */ +#define _REENT_SMALL +#endif + +#ifdef __SPU__ +#define MALLOC_ALIGNMENT 16 +#define __CUSTOM_FILE_IO__ +#endif + +/* This block should be kept in sync with GCC's limits.h. The point + of having these definitions here is to not include limits.h, which + would pollute the user namespace, while still using types of the + the correct widths when deciding how to define __int32_t and + __int64_t. */ +#ifndef __INT_MAX__ +# ifdef INT_MAX +# define __INT_MAX__ INT_MAX +# else +# define __INT_MAX__ 2147483647 +# endif +#endif + +#ifndef __LONG_MAX__ +# ifdef LONG_MAX +# define __LONG_MAX__ LONG_MAX +# else +# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \ + || defined (__sparcv9) +# define __LONG_MAX__ 9223372036854775807L +# else +# define __LONG_MAX__ 2147483647L +# endif /* __alpha__ || sparc64 */ +# endif +#endif +/* End of block that should be kept in sync with GCC's limits.h. */ + +#ifndef _POINTER_INT +#define _POINTER_INT long +#endif + +#ifdef __frv__ +#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) +#endif +#undef __RAND_MAX +#if __INT_MAX__ == 32767 +#define __RAND_MAX 32767 +#else +#define __RAND_MAX 0x7fffffff +#endif + +#if defined(__CYGWIN__) +#include +#endif + +#if defined(__rtems__) +#define __FILENAME_MAX__ 255 +#define _READ_WRITE_RETURN_TYPE _ssize_t +#endif + +#ifndef __IMPORT +#define __IMPORT +#endif + +/* Define return type of read/write routines. In POSIX, the return type + for read()/write() is "ssize_t" but legacy newlib code has been using + "int" for some time. If not specified, "int" is defaulted. */ +#ifndef _READ_WRITE_RETURN_TYPE +#define _READ_WRITE_RETURN_TYPE int +#endif + +#ifndef __WCHAR_MAX__ +#if __INT_MAX__ == 32767 || defined (_WIN32) +#define __WCHAR_MAX__ 0xffffu +#endif +#endif + +/* See if small reent asked for at configuration time and + is not chosen by the platform by default. */ +#ifdef _WANT_REENT_SMALL +#ifndef _REENT_SMALL +#define _REENT_SMALL +#endif +#endif + +#endif /* __SYS_CONFIG_H__ */ diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/lock.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/lock.h new file mode 100644 index 0000000..9075e35 --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/lock.h @@ -0,0 +1,24 @@ +#ifndef __SYS_LOCK_H__ +#define __SYS_LOCK_H__ + +/* dummy lock routines for single-threaded aps */ + +typedef int _LOCK_T; +typedef int _LOCK_RECURSIVE_T; + +#include <_ansi.h> + +#define __LOCK_INIT(class,lock) static int lock = 0; +#define __LOCK_INIT_RECURSIVE(class,lock) static int lock = 0; +#define __lock_init(lock) (_CAST_VOID 0) +#define __lock_init_recursive(lock) (_CAST_VOID 0) +#define __lock_close(lock) (_CAST_VOID 0) +#define __lock_close_recursive(lock) (_CAST_VOID 0) +#define __lock_acquire(lock) (_CAST_VOID 0) +#define __lock_acquire_recursive(lock) (_CAST_VOID 0) +#define __lock_try_acquire(lock) (_CAST_VOID 0) +#define __lock_try_acquire_recursive(lock) (_CAST_VOID 0) +#define __lock_release(lock) (_CAST_VOID 0) +#define __lock_release_recursive(lock) (_CAST_VOID 0) + +#endif /* __SYS_LOCK_H__ */ diff --git a/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/reent.h b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/reent.h new file mode 100644 index 0000000..55fb9ff --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/arm-elf/include/sys/reent.h @@ -0,0 +1,837 @@ +/* This header file provides the reentrancy. */ + +/* WARNING: All identifiers here must begin with an underscore. This file is + included by stdio.h and others and we therefore must only use identifiers + in the namespace allotted to us. */ + +#ifndef _SYS_REENT_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _SYS_REENT_H_ + +#include <_ansi.h> +#include + +#define _NULL 0 + +#ifndef __Long +#if __LONG_MAX__ == 2147483647L +#define __Long long +typedef unsigned __Long __ULong; +#elif __INT_MAX__ == 2147483647 +#define __Long int +typedef unsigned __Long __ULong; +#endif +#endif + +#if !defined( __Long) +#include +#endif + +#ifndef __Long +#define __Long __int32_t +typedef __uint32_t __ULong; +#endif + +struct _reent; + +/* + * If _REENT_SMALL is defined, we make struct _reent as small as possible, + * by having nearly everything possible allocated at first use. + */ + +struct _Bigint +{ + struct _Bigint *_next; + int _k, _maxwds, _sign, _wds; + __ULong _x[1]; +}; + +/* needed by reentrant structure */ +struct __tm +{ + int __tm_sec; + int __tm_min; + int __tm_hour; + int __tm_mday; + int __tm_mon; + int __tm_year; + int __tm_wday; + int __tm_yday; + int __tm_isdst; +}; + +/* + * atexit() support. + */ + +#define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */ + +struct _on_exit_args { + void * _fnargs[_ATEXIT_SIZE]; /* user fn args */ + void * _dso_handle[_ATEXIT_SIZE]; + /* Bitmask is set if user function takes arguments. */ + __ULong _fntypes; /* type of exit routine - + Must have at least _ATEXIT_SIZE bits */ + /* Bitmask is set if function was registered via __cxa_atexit. */ + __ULong _is_cxa; +}; + +#ifdef _REENT_SMALL +struct _atexit { + struct _atexit *_next; /* next in list */ + int _ind; /* next index in this table */ + void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ + struct _on_exit_args * _on_exit_args_ptr; +}; +#else +struct _atexit { + struct _atexit *_next; /* next in list */ + int _ind; /* next index in this table */ + /* Some entries may already have been called, and will be NULL. */ + void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ + struct _on_exit_args _on_exit_args; +}; +#endif + +/* + * Stdio buffers. + * + * This and __FILE are defined here because we need them for struct _reent, + * but we don't want stdio.h included when stdlib.h is. + */ + +struct __sbuf { + unsigned char *_base; + int _size; +}; + +/* + * Stdio state variables. + * + * The following always hold: + * + * if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), + * _lbfsize is -_bf._size, else _lbfsize is 0 + * if _flags&__SRD, _w is 0 + * if _flags&__SWR, _r is 0 + * + * This ensures that the getc and putc macros (or inline functions) never + * try to write or read from a file that is in `read' or `write' mode. + * (Moreover, they can, and do, automatically switch from read mode to + * write mode, and back, on "r+" and "w+" files.) + * + * _lbfsize is used only to make the inline line-buffered output stream + * code as compact as possible. + * + * _ub, _up, and _ur are used when ungetc() pushes back more characters + * than fit in the current _bf, or when ungetc() pushes back a character + * that does not match the previous one in _bf. When this happens, + * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff + * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. + */ + +#ifdef _REENT_SMALL +/* + * struct __sFILE_fake is the start of a struct __sFILE, with only the + * minimal fields allocated. In __sinit() we really allocate the 3 + * standard streams, etc., and point away from this fake. + */ +struct __sFILE_fake { + unsigned char *_p; /* current position in (some) buffer */ + int _r; /* read space left for getc() */ + int _w; /* write space left for putc() */ + short _flags; /* flags, below; this FILE is free if 0 */ + short _file; /* fileno, if Unix descriptor, else -1 */ + struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ + int _lbfsize; /* 0 or -_bf._size, for inline putc */ + + struct _reent *_data; +}; + +/* Following is needed both in libc/stdio and libc/stdlib so we put it + * here instead of libc/stdio/local.h where it was previously. */ + +extern _VOID _EXFUN(__sinit,(struct _reent *)); + +# define _REENT_SMALL_CHECK_INIT(ptr) \ + do \ + { \ + if ((ptr) && !(ptr)->__sdidinit) \ + __sinit (ptr); \ + } \ + while (0) +#else +# define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */ +#endif + +struct __sFILE { + unsigned char *_p; /* current position in (some) buffer */ + int _r; /* read space left for getc() */ + int _w; /* write space left for putc() */ + short _flags; /* flags, below; this FILE is free if 0 */ + short _file; /* fileno, if Unix descriptor, else -1 */ + struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ + int _lbfsize; /* 0 or -_bf._size, for inline putc */ + +#ifdef _REENT_SMALL + struct _reent *_data; +#endif + + /* operations */ + _PTR _cookie; /* cookie passed to io functions */ + + _READ_WRITE_RETURN_TYPE _EXFUN((*_read),(struct _reent *, _PTR, + char *, int)); + _READ_WRITE_RETURN_TYPE _EXFUN((*_write),(struct _reent *, _PTR, + const char *, int)); + _fpos_t _EXFUN((*_seek),(struct _reent *, _PTR, _fpos_t, int)); + int _EXFUN((*_close),(struct _reent *, _PTR)); + + /* separate buffer for long sequences of ungetc() */ + struct __sbuf _ub; /* ungetc buffer */ + unsigned char *_up; /* saved _p when _p is doing ungetc data */ + int _ur; /* saved _r when _r is counting ungetc data */ + + /* tricks to meet minimum requirements even when malloc() fails */ + unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ + unsigned char _nbuf[1]; /* guarantee a getc() buffer */ + + /* separate buffer for fgetline() when line crosses buffer boundary */ + struct __sbuf _lb; /* buffer for fgetline() */ + + /* Unix stdio files get aligned to block boundaries on fseek() */ + int _blksize; /* stat.st_blksize (may be != _bf._size) */ + int _offset; /* current lseek offset */ + +#ifndef _REENT_SMALL + struct _reent *_data; /* Here for binary compatibility? Remove? */ +#endif + +#ifndef __SINGLE_THREAD__ + _flock_t _lock; /* for thread-safety locking */ +#endif + _mbstate_t _mbstate; /* for wide char stdio functions. */ + int _flags2; /* for future use */ +}; + +#ifdef __CUSTOM_FILE_IO__ + +/* Get custom _FILE definition. */ +#include + +#else /* !__CUSTOM_FILE_IO__ */ +#ifdef __LARGE64_FILES +struct __sFILE64 { + unsigned char *_p; /* current position in (some) buffer */ + int _r; /* read space left for getc() */ + int _w; /* write space left for putc() */ + short _flags; /* flags, below; this FILE is free if 0 */ + short _file; /* fileno, if Unix descriptor, else -1 */ + struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ + int _lbfsize; /* 0 or -_bf._size, for inline putc */ + + struct _reent *_data; + + /* operations */ + _PTR _cookie; /* cookie passed to io functions */ + + _READ_WRITE_RETURN_TYPE _EXFUN((*_read),(struct _reent *, _PTR, + char *, int)); + _READ_WRITE_RETURN_TYPE _EXFUN((*_write),(struct _reent *, _PTR, + const char *, int)); + _fpos_t _EXFUN((*_seek),(struct _reent *, _PTR, _fpos_t, int)); + int _EXFUN((*_close),(struct _reent *, _PTR)); + + /* separate buffer for long sequences of ungetc() */ + struct __sbuf _ub; /* ungetc buffer */ + unsigned char *_up; /* saved _p when _p is doing ungetc data */ + int _ur; /* saved _r when _r is counting ungetc data */ + + /* tricks to meet minimum requirements even when malloc() fails */ + unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ + unsigned char _nbuf[1]; /* guarantee a getc() buffer */ + + /* separate buffer for fgetline() when line crosses buffer boundary */ + struct __sbuf _lb; /* buffer for fgetline() */ + + /* Unix stdio files get aligned to block boundaries on fseek() */ + int _blksize; /* stat.st_blksize (may be != _bf._size) */ + int _flags2; /* for future use */ + + _off64_t _offset; /* current lseek offset */ + _fpos64_t _EXFUN((*_seek64),(struct _reent *, _PTR, _fpos64_t, int)); + +#ifndef __SINGLE_THREAD__ + _flock_t _lock; /* for thread-safety locking */ +#endif + _mbstate_t _mbstate; /* for wide char stdio functions. */ +}; +typedef struct __sFILE64 __FILE; +#else +typedef struct __sFILE __FILE; +#endif /* __LARGE64_FILES */ +#endif /* !__CUSTOM_FILE_IO__ */ + +struct _glue +{ + struct _glue *_next; + int _niobs; + __FILE *_iobs; +}; + +/* + * rand48 family support + * + * Copyright (c) 1993 Martin Birgmeier + * All rights reserved. + * + * You may redistribute unmodified or modified versions of this source + * code provided that the above copyright notice and this and the + * following conditions are retained. + * + * This software is provided ``as is'', and comes with no warranties + * of any kind. I shall in no event be liable for anything that happens + * to anyone/anything when using this software. + */ +#define _RAND48_SEED_0 (0x330e) +#define _RAND48_SEED_1 (0xabcd) +#define _RAND48_SEED_2 (0x1234) +#define _RAND48_MULT_0 (0xe66d) +#define _RAND48_MULT_1 (0xdeec) +#define _RAND48_MULT_2 (0x0005) +#define _RAND48_ADD (0x000b) +struct _rand48 { + unsigned short _seed[3]; + unsigned short _mult[3]; + unsigned short _add; +#ifdef _REENT_SMALL + /* Put this in here as well, for good luck. */ + __extension__ unsigned long long _rand_next; +#endif +}; + +/* How big the some arrays are. */ +#define _REENT_EMERGENCY_SIZE 25 +#define _REENT_ASCTIME_SIZE 26 +#define _REENT_SIGNAL_SIZE 24 + +/* + * struct _reent + * + * This structure contains *all* globals needed by the library. + * It's raison d'etre is to facilitate threads by making all library routines + * reentrant. IE: All state information is contained here. + */ + +#ifdef _REENT_SMALL + +struct _mprec +{ + /* used by mprec routines */ + struct _Bigint *_result; + int _result_k; + struct _Bigint *_p5s; + struct _Bigint **_freelist; +}; + + +struct _misc_reent +{ + /* miscellaneous reentrant data */ + char *_strtok_last; + _mbstate_t _mblen_state; + _mbstate_t _wctomb_state; + _mbstate_t _mbtowc_state; + char _l64a_buf[8]; + int _getdate_err; + _mbstate_t _mbrlen_state; + _mbstate_t _mbrtowc_state; + _mbstate_t _mbsrtowcs_state; + _mbstate_t _wcrtomb_state; + _mbstate_t _wcsrtombs_state; +}; + +/* This version of _reent is layed our with "int"s in pairs, to help + * ports with 16-bit int's but 32-bit pointers, align nicely. */ +struct _reent +{ + + /* FILE is a big struct and may change over time. To try to achieve binary + compatibility with future versions, put stdin,stdout,stderr here. + These are pointers into member __sf defined below. */ + __FILE *_stdin, *_stdout, *_stderr; /* XXX */ + + int _errno; /* local copy of errno */ + + int _inc; /* used by tmpnam */ + + char *_emergency; + + int __sdidinit; /* 1 means stdio has been init'd */ + + int _current_category; /* used by setlocale */ + _CONST char *_current_locale; + + struct _mprec *_mp; + + void _EXFUN((*__cleanup),(struct _reent *)); + + int _gamma_signgam; + + /* used by some fp conversion routines */ + int _cvtlen; /* should be size_t */ + char *_cvtbuf; + + struct _rand48 *_r48; + struct __tm *_localtime_buf; + char *_asctime_buf; + + /* signal info */ + void (**(_sig_func))(int); + + /* atexit stuff */ + struct _atexit *_atexit; + struct _atexit _atexit0; + + struct _glue __sglue; /* root of glue chain */ + __FILE *__sf; /* file descriptors */ + struct _misc_reent *_misc; /* strtok, multibyte states */ + char *_signal_buf; /* strsignal */ +}; + +extern const struct __sFILE_fake __sf_fake_stdin; +extern const struct __sFILE_fake __sf_fake_stdout; +extern const struct __sFILE_fake __sf_fake_stderr; + +#define _REENT_INIT(var) \ + { (__FILE *)&__sf_fake_stdin, \ + (__FILE *)&__sf_fake_stdout, \ + (__FILE *)&__sf_fake_stderr, \ + 0, \ + 0, \ + _NULL, \ + 0, \ + 0, \ + "C", \ + _NULL, \ + _NULL, \ + 0, \ + 0, \ + _NULL, \ + _NULL, \ + _NULL, \ + _NULL, \ + _NULL, \ + _NULL, \ + {_NULL, 0, {_NULL}, _NULL}, \ + {_NULL, 0, _NULL}, \ + _NULL, \ + _NULL, \ + _NULL \ + } + +#define _REENT_INIT_PTR(var) \ + { (var)->_stdin = (__FILE *)&__sf_fake_stdin; \ + (var)->_stdout = (__FILE *)&__sf_fake_stdout; \ + (var)->_stderr = (__FILE *)&__sf_fake_stderr; \ + (var)->_errno = 0; \ + (var)->_inc = 0; \ + (var)->_emergency = _NULL; \ + (var)->__sdidinit = 0; \ + (var)->_current_category = 0; \ + (var)->_current_locale = "C"; \ + (var)->_mp = _NULL; \ + (var)->__cleanup = _NULL; \ + (var)->_gamma_signgam = 0; \ + (var)->_cvtlen = 0; \ + (var)->_cvtbuf = _NULL; \ + (var)->_r48 = _NULL; \ + (var)->_localtime_buf = _NULL; \ + (var)->_asctime_buf = _NULL; \ + (var)->_sig_func = _NULL; \ + (var)->_atexit = _NULL; \ + (var)->_atexit0._next = _NULL; \ + (var)->_atexit0._ind = 0; \ + (var)->_atexit0._fns[0] = _NULL; \ + (var)->_atexit0._on_exit_args_ptr = _NULL; \ + (var)->__sglue._next = _NULL; \ + (var)->__sglue._niobs = 0; \ + (var)->__sglue._iobs = _NULL; \ + (var)->__sf = 0; \ + (var)->_misc = _NULL; \ + (var)->_signal_buf = _NULL; \ + } + +/* Only built the assert() calls if we are built with debugging. */ +#if DEBUG +#include +#define __reent_assert(x) assert(x) +#else +#define __reent_assert(x) ((void)0) +#endif + +#ifdef __CUSTOM_FILE_IO__ +#error Custom FILE I/O and _REENT_SMALL not currently supported. +#endif + +/* Generic _REENT check macro. */ +#define _REENT_CHECK(var, what, type, size, init) do { \ + struct _reent *_r = (var); \ + if (_r->what == NULL) { \ + _r->what = (type)malloc(size); \ + __reent_assert(_r->what); \ + init; \ + } \ +} while (0) + +#define _REENT_CHECK_TM(var) \ + _REENT_CHECK(var, _localtime_buf, struct __tm *, sizeof *((var)->_localtime_buf), \ + /* nothing */) + +#define _REENT_CHECK_ASCTIME_BUF(var) \ + _REENT_CHECK(var, _asctime_buf, char *, _REENT_ASCTIME_SIZE, \ + memset((var)->_asctime_buf, 0, _REENT_ASCTIME_SIZE)) + +/* Handle the dynamically allocated rand48 structure. */ +#define _REENT_INIT_RAND48(var) do { \ + struct _reent *_r = (var); \ + _r->_r48->_seed[0] = _RAND48_SEED_0; \ + _r->_r48->_seed[1] = _RAND48_SEED_1; \ + _r->_r48->_seed[2] = _RAND48_SEED_2; \ + _r->_r48->_mult[0] = _RAND48_MULT_0; \ + _r->_r48->_mult[1] = _RAND48_MULT_1; \ + _r->_r48->_mult[2] = _RAND48_MULT_2; \ + _r->_r48->_add = _RAND48_ADD; \ + _r->_r48->_rand_next = 1; \ +} while (0) +#define _REENT_CHECK_RAND48(var) \ + _REENT_CHECK(var, _r48, struct _rand48 *, sizeof *((var)->_r48), _REENT_INIT_RAND48((var))) + +#define _REENT_INIT_MP(var) do { \ + struct _reent *_r = (var); \ + _r->_mp->_result_k = 0; \ + _r->_mp->_result = _r->_mp->_p5s = _NULL; \ + _r->_mp->_freelist = _NULL; \ +} while (0) +#define _REENT_CHECK_MP(var) \ + _REENT_CHECK(var, _mp, struct _mprec *, sizeof *((var)->_mp), _REENT_INIT_MP(var)) + +#define _REENT_CHECK_EMERGENCY(var) \ + _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */) + +#define _REENT_INIT_MISC(var) do { \ + struct _reent *_r = (var); \ + _r->_misc->_strtok_last = _NULL; \ + _r->_misc->_mblen_state.__count = 0; \ + _r->_misc->_mblen_state.__value.__wch = 0; \ + _r->_misc->_wctomb_state.__count = 0; \ + _r->_misc->_wctomb_state.__value.__wch = 0; \ + _r->_misc->_mbtowc_state.__count = 0; \ + _r->_misc->_mbtowc_state.__value.__wch = 0; \ + _r->_misc->_mbrlen_state.__count = 0; \ + _r->_misc->_mbrlen_state.__value.__wch = 0; \ + _r->_misc->_mbrtowc_state.__count = 0; \ + _r->_misc->_mbrtowc_state.__value.__wch = 0; \ + _r->_misc->_mbsrtowcs_state.__count = 0; \ + _r->_misc->_mbsrtowcs_state.__value.__wch = 0; \ + _r->_misc->_wcrtomb_state.__count = 0; \ + _r->_misc->_wcrtomb_state.__value.__wch = 0; \ + _r->_misc->_wcsrtombs_state.__count = 0; \ + _r->_misc->_wcsrtombs_state.__value.__wch = 0; \ + _r->_misc->_l64a_buf[0] = '\0'; \ + _r->_misc->_getdate_err = 0; \ +} while (0) +#define _REENT_CHECK_MISC(var) \ + _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var)) + +#define _REENT_CHECK_SIGNAL_BUF(var) \ + _REENT_CHECK(var, _signal_buf, char *, _REENT_SIGNAL_SIZE, /* nothing */) + +#define _REENT_SIGNGAM(ptr) ((ptr)->_gamma_signgam) +#define _REENT_RAND_NEXT(ptr) ((ptr)->_r48->_rand_next) +#define _REENT_RAND48_SEED(ptr) ((ptr)->_r48->_seed) +#define _REENT_RAND48_MULT(ptr) ((ptr)->_r48->_mult) +#define _REENT_RAND48_ADD(ptr) ((ptr)->_r48->_add) +#define _REENT_MP_RESULT(ptr) ((ptr)->_mp->_result) +#define _REENT_MP_RESULT_K(ptr) ((ptr)->_mp->_result_k) +#define _REENT_MP_P5S(ptr) ((ptr)->_mp->_p5s) +#define _REENT_MP_FREELIST(ptr) ((ptr)->_mp->_freelist) +#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_asctime_buf) +#define _REENT_TM(ptr) ((ptr)->_localtime_buf) +#define _REENT_EMERGENCY(ptr) ((ptr)->_emergency) +#define _REENT_STRTOK_LAST(ptr) ((ptr)->_misc->_strtok_last) +#define _REENT_MBLEN_STATE(ptr) ((ptr)->_misc->_mblen_state) +#define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state) +#define _REENT_WCTOMB_STATE(ptr)((ptr)->_misc->_wctomb_state) +#define _REENT_MBRLEN_STATE(ptr) ((ptr)->_misc->_mbrlen_state) +#define _REENT_MBRTOWC_STATE(ptr) ((ptr)->_misc->_mbrtowc_state) +#define _REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_misc->_mbsrtowcs_state) +#define _REENT_WCRTOMB_STATE(ptr) ((ptr)->_misc->_wcrtomb_state) +#define _REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_misc->_wcsrtombs_state) +#define _REENT_L64A_BUF(ptr) ((ptr)->_misc->_l64a_buf) +#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_misc->_getdate_err)) +#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_signal_buf) + +#else /* !_REENT_SMALL */ + +struct _reent +{ + int _errno; /* local copy of errno */ + + /* FILE is a big struct and may change over time. To try to achieve binary + compatibility with future versions, put stdin,stdout,stderr here. + These are pointers into member __sf defined below. */ + __FILE *_stdin, *_stdout, *_stderr; + + int _inc; /* used by tmpnam */ + char _emergency[_REENT_EMERGENCY_SIZE]; + + int _current_category; /* used by setlocale */ + _CONST char *_current_locale; + + int __sdidinit; /* 1 means stdio has been init'd */ + + void _EXFUN((*__cleanup),(struct _reent *)); + + /* used by mprec routines */ + struct _Bigint *_result; + int _result_k; + struct _Bigint *_p5s; + struct _Bigint **_freelist; + + /* used by some fp conversion routines */ + int _cvtlen; /* should be size_t */ + char *_cvtbuf; + + union + { + struct + { + unsigned int _unused_rand; + char * _strtok_last; + char _asctime_buf[_REENT_ASCTIME_SIZE]; + struct __tm _localtime_buf; + int _gamma_signgam; + __extension__ unsigned long long _rand_next; + struct _rand48 _r48; + _mbstate_t _mblen_state; + _mbstate_t _mbtowc_state; + _mbstate_t _wctomb_state; + char _l64a_buf[8]; + char _signal_buf[_REENT_SIGNAL_SIZE]; + int _getdate_err; + _mbstate_t _mbrlen_state; + _mbstate_t _mbrtowc_state; + _mbstate_t _mbsrtowcs_state; + _mbstate_t _wcrtomb_state; + _mbstate_t _wcsrtombs_state; + int _h_errno; + } _reent; + /* Two next two fields were once used by malloc. They are no longer + used. They are used to preserve the space used before so as to + allow addition of new reent fields and keep binary compatibility. */ + struct + { +#define _N_LISTS 30 + unsigned char * _nextf[_N_LISTS]; + unsigned int _nmalloc[_N_LISTS]; + } _unused; + } _new; + + /* atexit stuff */ + struct _atexit *_atexit; /* points to head of LIFO stack */ + struct _atexit _atexit0; /* one guaranteed table, required by ANSI */ + + /* signal info */ + void (**(_sig_func))(int); + + /* These are here last so that __FILE can grow without changing the offsets + of the above members (on the off chance that future binary compatibility + would be broken otherwise). */ + struct _glue __sglue; /* root of glue chain */ + __FILE __sf[3]; /* first three file descriptors */ +}; + +#define _REENT_INIT(var) \ + { 0, \ + &(var).__sf[0], \ + &(var).__sf[1], \ + &(var).__sf[2], \ + 0, \ + "", \ + 0, \ + "C", \ + 0, \ + _NULL, \ + _NULL, \ + 0, \ + _NULL, \ + _NULL, \ + 0, \ + _NULL, \ + { \ + { \ + 0, \ + _NULL, \ + "", \ + {0, 0, 0, 0, 0, 0, 0, 0, 0}, \ + 0, \ + 1, \ + { \ + {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, \ + {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, \ + _RAND48_ADD \ + }, \ + {0, {0}}, \ + {0, {0}}, \ + {0, {0}}, \ + "", \ + "", \ + 0, \ + {0, {0}}, \ + {0, {0}}, \ + {0, {0}}, \ + {0, {0}}, \ + {0, {0}} \ + } \ + }, \ + _NULL, \ + {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}}, \ + _NULL, \ + {_NULL, 0, _NULL} \ + } + +#define _REENT_INIT_PTR(var) \ + { (var)->_errno = 0; \ + (var)->_stdin = &(var)->__sf[0]; \ + (var)->_stdout = &(var)->__sf[1]; \ + (var)->_stderr = &(var)->__sf[2]; \ + (var)->_inc = 0; \ + memset(&(var)->_emergency, 0, sizeof((var)->_emergency)); \ + (var)->_current_category = 0; \ + (var)->_current_locale = "C"; \ + (var)->__sdidinit = 0; \ + (var)->__cleanup = _NULL; \ + (var)->_result = _NULL; \ + (var)->_result_k = 0; \ + (var)->_p5s = _NULL; \ + (var)->_freelist = _NULL; \ + (var)->_cvtlen = 0; \ + (var)->_cvtbuf = _NULL; \ + (var)->_new._reent._unused_rand = 0; \ + (var)->_new._reent._strtok_last = _NULL; \ + (var)->_new._reent._asctime_buf[0] = 0; \ + memset(&(var)->_new._reent._localtime_buf, 0, sizeof((var)->_new._reent._localtime_buf)); \ + (var)->_new._reent._gamma_signgam = 0; \ + (var)->_new._reent._rand_next = 1; \ + (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \ + (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \ + (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; \ + (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; \ + (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; \ + (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; \ + (var)->_new._reent._r48._add = _RAND48_ADD; \ + (var)->_new._reent._mblen_state.__count = 0; \ + (var)->_new._reent._mblen_state.__value.__wch = 0; \ + (var)->_new._reent._mbtowc_state.__count = 0; \ + (var)->_new._reent._mbtowc_state.__value.__wch = 0; \ + (var)->_new._reent._wctomb_state.__count = 0; \ + (var)->_new._reent._wctomb_state.__value.__wch = 0; \ + (var)->_new._reent._mbrlen_state.__count = 0; \ + (var)->_new._reent._mbrlen_state.__value.__wch = 0; \ + (var)->_new._reent._mbrtowc_state.__count = 0; \ + (var)->_new._reent._mbrtowc_state.__value.__wch = 0; \ + (var)->_new._reent._mbsrtowcs_state.__count = 0; \ + (var)->_new._reent._mbsrtowcs_state.__value.__wch = 0; \ + (var)->_new._reent._wcrtomb_state.__count = 0; \ + (var)->_new._reent._wcrtomb_state.__value.__wch = 0; \ + (var)->_new._reent._wcsrtombs_state.__count = 0; \ + (var)->_new._reent._wcsrtombs_state.__value.__wch = 0; \ + (var)->_new._reent._l64a_buf[0] = '\0'; \ + (var)->_new._reent._signal_buf[0] = '\0'; \ + (var)->_new._reent._getdate_err = 0; \ + (var)->_atexit = _NULL; \ + (var)->_atexit0._next = _NULL; \ + (var)->_atexit0._ind = 0; \ + (var)->_atexit0._fns[0] = _NULL; \ + (var)->_atexit0._on_exit_args._fntypes = 0; \ + (var)->_atexit0._on_exit_args._fnargs[0] = _NULL; \ + (var)->_sig_func = _NULL; \ + (var)->__sglue._next = _NULL; \ + (var)->__sglue._niobs = 0; \ + (var)->__sglue._iobs = _NULL; \ + memset(&(var)->__sf, 0, sizeof((var)->__sf)); \ + } + +#define _REENT_CHECK_RAND48(ptr) /* nothing */ +#define _REENT_CHECK_MP(ptr) /* nothing */ +#define _REENT_CHECK_TM(ptr) /* nothing */ +#define _REENT_CHECK_ASCTIME_BUF(ptr) /* nothing */ +#define _REENT_CHECK_EMERGENCY(ptr) /* nothing */ +#define _REENT_CHECK_MISC(ptr) /* nothing */ +#define _REENT_CHECK_SIGNAL_BUF(ptr) /* nothing */ + +#define _REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam) +#define _REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next) +#define _REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed) +#define _REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult) +#define _REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add) +#define _REENT_MP_RESULT(ptr) ((ptr)->_result) +#define _REENT_MP_RESULT_K(ptr) ((ptr)->_result_k) +#define _REENT_MP_P5S(ptr) ((ptr)->_p5s) +#define _REENT_MP_FREELIST(ptr) ((ptr)->_freelist) +#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf) +#define _REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf) +#define _REENT_EMERGENCY(ptr) ((ptr)->_emergency) +#define _REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last) +#define _REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state) +#define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state) +#define _REENT_WCTOMB_STATE(ptr)((ptr)->_new._reent._wctomb_state) +#define _REENT_MBRLEN_STATE(ptr)((ptr)->_new._reent._mbrlen_state) +#define _REENT_MBRTOWC_STATE(ptr)((ptr)->_new._reent._mbrtowc_state) +#define _REENT_MBSRTOWCS_STATE(ptr)((ptr)->_new._reent._mbsrtowcs_state) +#define _REENT_WCRTOMB_STATE(ptr)((ptr)->_new._reent._wcrtomb_state) +#define _REENT_WCSRTOMBS_STATE(ptr)((ptr)->_new._reent._wcsrtombs_state) +#define _REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf) +#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf) +#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err)) + +#endif /* !_REENT_SMALL */ + +/* + * All references to struct _reent are via this pointer. + * Internally, newlib routines that need to reference it should use _REENT. + */ + +#ifndef __ATTRIBUTE_IMPURE_PTR__ +#define __ATTRIBUTE_IMPURE_PTR__ +#endif + +extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__; +extern struct _reent *_CONST _global_impure_ptr __ATTRIBUTE_IMPURE_PTR__; + +void _reclaim_reent _PARAMS ((struct _reent *)); + +/* #define _REENT_ONLY define this to get only reentrant routines */ + +#ifndef _REENT_ONLY + +#if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__) +#ifndef __getreent + struct _reent * _EXFUN(__getreent, (void)); +#endif +# define _REENT (__getreent()) +#else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ +# define _REENT _impure_ptr +#endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ + +#endif /* !_REENT_ONLY */ + +#define _GLOBAL_REENT _global_impure_ptr + +#ifdef __cplusplus +} +#endif +#endif /* _SYS_REENT_H_ */ diff --git a/Demo_C/Bin/GNU/GNU_ARM/bin/arm-elf-gccbug b/Demo_C/Bin/GNU/GNU_ARM/bin/arm-elf-gccbug new file mode 100644 index 0000000..54592ca --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/bin/arm-elf-gccbug @@ -0,0 +1,558 @@ +#!/bin/sh +# Submit a problem report to a GNATS site. +# Copyright (C) 1993, 2000, 2001, 2002, 2003, 2007 Free Software Foundation, Inc. +# Contributed by Brendan Kehoe (brendan@cygnus.com), based on a +# version written by Heinz G. Seidl (hgs@cygnus.com). +# +# This file is part of GNU GNATS. +# +# GNU GNATS is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU GNATS is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU GNATS; see the file COPYING3. If not see +# . + +# The version of this send-pr. +VERSION=3.113 + +# The submitter-id for your site. +SUBMITTER=net + +# The default mail address for PR submissions. +GNATS_ADDR=gcc-gnats@gcc.gnu.org + +# The default release for this host. +# We have to guess at what program_transform_name might have done. +# "sed 1q" because neither "head -1" nor "head -n 1" is universal, argh. + +DEFAULT_GCC="`echo $0 | sed -e 's/bug//'`" +DEFAULT_RELEASE="`$DEFAULT_GCC --version | sed 1q`" + +# The default organization. +DEFAULT_ORGANIZATION= + +# What mailer to use. This must come after the config file, since it is +# host-dependent. +# Copied from cvsbug +if [ -f /usr/sbin/sendmail ]; then + MAIL_AGENT="/usr/sbin/sendmail -oi -t" +else + MAIL_AGENT="/usr/lib/sendmail -oi -t" +fi +MAILER=`echo $MAIL_AGENT | sed -e 's, .*,,'` +if [ ! -f "$MAILER" ] ; then + echo "$COMMAND: Cannot file mail program \"$MAILER\"." + echo "$COMMAND: Please fix the MAIL_AGENT entry in the $COMMAND file." + exit 1 +fi + + +# How to read the passwd database. +PASSWD="cat /etc/passwd" + +ECHON=bsd + +if [ $ECHON = bsd ] ; then + ECHON1="echo -n" + ECHON2= +elif [ $ECHON = sysv ] ; then + ECHON1=echo + ECHON2='\c' +else + ECHON1=echo + ECHON2= +fi + +# + +if [ -z "$TMPDIR" ]; then + TMPDIR=/tmp +else + if [ "`echo $TMPDIR | grep '/$'`" != "" ]; then + TMPDIR="`echo $TMPDIR | sed -e 's,/$,,'`" + fi +fi + +if [ no = yes ]; then + TEMP0=`mktemp $TMPDIR/poXXXXXX` || exit 1 + TEMP=`mktemp $TMPDIR/pXXXXXX` || exit 1 + BAD=`mktemp $TMPDIR/pbadXXXXXX` || exit 1 + REF=`mktemp $TMPDIR/pfXXXXXX` || exit 1 + REMOVE_TEMP="rm -f $TEMP0 $TEMP $BAD $REF" +else + TEMPD=$TMPDIR/pd$$ + TEMP0=$TEMPD/po$$ + TEMP=$TEMPD/p$$ + BAD=$TEMPD/pbad$$ + REF=$TEMPD/pf$$ + mkdir $TEMPD || exit 1 + REMOVE_TEMP="rm -rf $TEMPD" +fi + +# find a user name +if [ "$LOGNAME" = "" ]; then + if [ "$USER" != "" ]; then + LOGNAME="$USER" + else + LOGNAME="UNKNOWN" + fi +fi + +FROM="$LOGNAME" +REPLY_TO="${REPLY_TO:-${REPLYTO:-$LOGNAME}}" + +# Find out the name of the originator of this PR. +if [ -n "$NAME" ]; then + ORIGINATOR="$NAME" +elif [ -f $HOME/.fullname ]; then + ORIGINATOR="`sed -e '1q' $HOME/.fullname`" +else + # Must use temp file due to incompatibilities in quoting behavior + # and to protect shell metacharacters in the expansion of $LOGNAME + $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP0 + ORIGINATOR="`cat $TEMP0`" + rm -f $TEMP0 +fi + +if [ -n "$ORGANIZATION" ]; then + if [ -f "$ORGANIZATION" ]; then + ORGANIZATION="`cat $ORGANIZATION`" + fi +else + if [ -n "$DEFAULT_ORGANIZATION" ]; then + ORGANIZATION="$DEFAULT_ORGANIZATION" + elif [ -f $HOME/.organization ]; then + ORGANIZATION="`cat $HOME/.organization`" + fi +fi + +# If they don't have a preferred editor set, then use +if [ -z "$VISUAL" ]; then + if [ -z "$EDITOR" ]; then + EDIT=vi + else + EDIT="$EDITOR" + fi +else + EDIT="$VISUAL" +fi + +# Find out some information. +SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \ + ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""` +ARCH=`[ -f /bin/arch ] && /bin/arch` +MACHINE=`[ -f /bin/machine ] && /bin/machine` + +COMMAND=`echo $0 | sed -e 's,.*/,,'` +USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [-s severity] + [-c address] [--request-id] [--version]" +REMOVE= +BATCH= +CC= +SEVERITY_C= + +while [ $# -gt 0 ]; do + case "$1" in + -r) ;; # Ignore for backward compat. + -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; GNATS_ADDR="$1" + EXPLICIT_GNATS_ADDR=true + ;; + -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; IN_FILE="$1" + if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then + echo "$COMMAND: cannot read $IN_FILE" + $REMOVE_TEMP + exit 1 + fi + ;; + -b | --batch) BATCH=true ;; + -c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; CC="$1" + ;; + -s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi + shift ; SEVERITY_C="$1" + ;; + -p | -P | --print) PRINT=true ;; + -L | --list) FORMAT=norm ;; + -l | -CL | --lisp) FORMAT=lisp ;; + --request-id) REQUEST_ID=true ;; + -h | --help) echo "$USAGE"; $REMOVE_TEMP; exit 0 ;; + -V | --version) cat < max) { max = length($0); } } + END {print max + 1;}'` + c=`expr 70 / $l` + if [ $c -eq 0 ]; then c=1; fi + echo "$CATEGORIES" | \ + awk 'BEGIN {print "Known categories:"; i = 0 } + { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } } + END { print ""; }' + $REMOVE_TEMP + exit 0 + ;; +esac + +ORIGINATOR_C='' +ORGANIZATION_C='' +SYNOPSIS_C='' +if [ -z "$SEVERITY_C" ]; then + SEVERITY_C='<[ non-critical | serious | critical ] (one line)>' +fi +PRIORITY_C='<[ low | medium ] (one line)>' +CATEGORY_C='' +RELEASE_C='' +ENVIRONMENT_C='' +DESCRIPTION_C='' +HOW_TO_REPEAT_C='' +FIX_C='' + +# Catch some signals. ($xs kludge needed by Sun /bin/sh) +xs=0 +trap '$REMOVE_TEMP; exit $xs' 0 +trap 'echo "$COMMAND: Aborting ..."; $REMOVE_TEMP; xs=1; exit' 1 3 13 15 + +# If they told us to use a specific file, then do so. +if [ -n "$IN_FILE" ]; then + if [ "$IN_FILE" = "-" ]; then + # The PR is coming from the standard input. + if [ -n "$EXPLICIT_GNATS_ADDR" ]; then + sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP + else + cat > $TEMP + fi + else + # Use the file they named. + if [ -n "$EXPLICIT_GNATS_ADDR" ]; then + sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP + else + cat $IN_FILE > $TEMP + fi + fi +else + + if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then + # If their PR_FORM points to a bogus entry, then bail. + if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then + echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM" + sleep 1 + PRINT_INTERN=bad_prform + fi + fi + + if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then + cp $PR_FORM $TEMP || + ( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit ) + else + for file in $TEMP $REF ; do + cat > $file << '__EOF__' +SEND-PR: -*- send-pr -*- +SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as +SEND-PR: will all comments (text enclosed in `<' and `>'). +SEND-PR: +SEND-PR: Please consult the GCC manual if you are not sure how to +SEND-PR: fill out a problem report. +SEND-PR: Note that the Synopsis field is mandatory. The Subject (for +SEND-PR: the mail) will be made the same as Synopsis unless explicitly +SEND-PR: changed. +SEND-PR: +SEND-PR: Choose from the following categories: +SEND-PR: +__EOF__ + + # Format the categories so they fit onto lines. + l=`echo "$CATEGORIES" | \ + awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } } + END {print max + 1;}'` + c=`expr 61 / $l` + if [ $c -eq 0 ]; then c=1; fi + echo "$CATEGORIES" | \ + awk 'BEGIN {printf "SEND-PR: "; i = 0 } + { printf ("%-'$l'.'$l's", $0); + if ((++i % '$c') == 0) { printf "\nSEND-PR: " } } + END { printf "\nSEND-PR:\n"; }' >> $file + + cat >> $file << __EOF__ +To: $GNATS_ADDR +Subject: +From: $FROM +Reply-To: $REPLYTO +Cc: $CC +X-send-pr-version: $VERSION +X-GNATS-Notify: + + +>Submitter-Id: $SUBMITTER +>Originator: $ORIGINATOR +>Organization: ${ORGANIZATION-$ORGANIZATION_C} +>Confidential: no +SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public. +>Synopsis: $SYNOPSIS_C +>Severity: $SEVERITY_C +SEND-PR: critical GCC is completely not operational; no work-around known. +SEND-PR: serious GCC is not working properly; a work-around is possible. +SEND-PR: non-critical Report indicates minor problem. +>Priority: $PRIORITY_C +SEND-PR: medium The problem should be solved in the next release. +SEND-PR: low The problem should be solve in a future release. +>Category: $CATEGORY_C +>Class: <[ doc-bug | accepts-illegal | rejects-legal | wrong-code | ice-on-legal-code| ice-on-illegal-code | pessimizes-code | sw-bug | change-request | support ] (one line)> +SEND-PR: doc-bug The documentation is incorrect. +SEND-PR: accepts-illegal GCC fails to reject erroneous code. +SEND-PR: rejects-legal GCC gives an error message for correct code. +SEND-PR: wrong-code The machine code generated by gcc is incorrect. +SEND-PR: ice-on-legal-code GCC gives an Internal Compiler Error (ICE) +SEND-PR: for correct code +SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error +SEND-PR: pessimizes-code GCC misses an important optimization opportunity +SEND-PR: sw-bug Software bug of some other class than above +SEND-PR: change-request A feature in GCC is missing. +SEND-PR: support I need help with gcc. +>Release: ${DEFAULT_RELEASE-$RELEASE_C} +>Environment: +`[ -n "$SYSTEM" ] && echo System: $SYSTEM` +`[ -n "$ARCH" ] && echo Architecture: $ARCH` +`[ -n "$MACHINE" ] && echo Machine: $MACHINE` + $ENVIRONMENT_C +host: i686-pc-mingw32 +build: i686-pc-mingw32 +target: arm-unknown-elf +__EOF__ + cat >> $file << \__EOF__ +configured with: ../gcc-4.4.1/configure --target=arm-elf --prefix=/home/yagarto/install --disable-nls --disable-shared --disable-threads --with-gcc --with-gnu-ld --with-gnu-as --with-dwarf2 --enable-languages=c,c++ --enable-interwork --enable-multilib --with-newlib --with-headers=../newlib-1.17.0/newlib/libc/include --disable-libssp --disable-libstdcxx-pch --disable-libmudflap --disable-libgomp -v +__EOF__ + cat >> $file << __EOF__ +>Description: + $DESCRIPTION_C +>How-To-Repeat: + $HOW_TO_REPEAT_C +>Fix: + $FIX_C +__EOF__ + done + fi + + if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then + cat $TEMP + xs=0; exit + fi + + chmod u+w $TEMP + if [ -z "$REQUEST_ID" ]; then + eval $EDIT $TEMP + else + ed -s $TEMP << '__EOF__' +/^Subject/s/^Subject:.*/Subject: request for a customer id/ +/^>Category/s/^>Category:.*/>Category: send-pr/ +w +q +__EOF__ + fi + + if cmp -s $REF $TEMP ; then + echo "$COMMAND: problem report not filled out, therefore not sent" + xs=1; exit + fi +fi + +# +# Check the enumeration fields + +# This is a "sed-subroutine" with one keyword parameter +# (with workaround for Sun sed bug) +# +SED_CMD=' +/$PATTERN/{ +s||| +s|<.*>|| +s|^[ ]*|| +s|[ ]*$|| +p +q +}' + + +while [ -z "$REQUEST_ID" ]; do + CNT=0 + + # 1) Confidential + # + PATTERN=">Confidential:" + CONFIDENTIAL=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$CONFIDENTIAL" in + no) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;; + esac + # + # 2) Severity + # + PATTERN=">Severity:" + SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$SEVERITY" in + ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'." + esac + # + # 3) Priority + # + PATTERN=">Priority:" + PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$PRIORITY" in + ""|low|medium) CNT=`expr $CNT + 1` ;; + high) echo "$COMMAND: \`Priority: high' is reserved for GCC maintainers." ;; + *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'." + esac + # + # 4) Category + # + PATTERN=">Category:" + CATEGORY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + FOUND= + for C in $CATEGORIES + do + if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi + done + if [ -n "$FOUND" ]; then + CNT=`expr $CNT + 1` + else + if [ -z "$CATEGORY" ]; then + echo "$COMMAND: you must include a Category: field in your report." + else + echo "$COMMAND: \`$CATEGORY' is not a known category." + fi + fi + # + # 5) Class + # + PATTERN=">Class:" + CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$CLASS" in + ""|doc-bug|accepts-illegal|rejects-legal|wrong-code|ice-on-legal-code|ice-on-illegal-code|pessimizes-code|sw-bug|change-request|support) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." + esac + # + # 6) Check that synopsis is not empty + # + if grep "^>Synopsis:[ ]*${SYNOPSIS_C}\$" $TEMP > /dev/null + then + echo "$COMMAND: Synopsis must not be empty." + else + CNT=`expr $CNT + 1` + fi + + [ $CNT -lt 6 -a -z "$BATCH" ] && + echo "Errors were found with the problem report." + + while true; do + if [ -z "$BATCH" ]; then + $ECHON1 "a)bort, e)dit or s)end? $ECHON2" + read input + else + if [ $CNT -eq 6 ]; then + input=s + else + input=a + fi + fi + case "$input" in + a*) + if [ -z "$BATCH" ]; then + echo "$COMMAND: the problem report remains in $BAD and is not sent." + REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" + mv $TEMP $BAD + else + echo "$COMMAND: the problem report is not sent." + fi + xs=1; exit + ;; + e*) + eval $EDIT $TEMP + continue 2 + ;; + s*) + break 2 + ;; + esac + done +done + +# +# Make sure the mail has got a Subject. If not, use the same as +# in Synopsis. +# + +if grep '^Subject:[ ]*$' $TEMP > /dev/null +then + SYNOPSIS=`grep '^>Synopsis:' $TEMP | sed -e 's/^>Synopsis:[ ]*//'` + ed -s $TEMP << __EOF__ +/^Subject:/s/:.*\$/: $SYNOPSIS/ +w +q +__EOF__ +fi + +# +# Remove comments and send the problem report +# (we have to use patterns, where the comment contains regex chars) +# +# /^>Originator:/s;$ORIGINATOR;; +sed -e " +/^SEND-PR:/d +/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; +/^>Confidential:/s;<.*>;; +/^>Synopsis:/s;$SYNOPSIS_C;; +/^>Severity:/s;<.*>;; +/^>Priority:/s;<.*>;; +/^>Category:/s;$CATEGORY_C;; +/^>Class:/s;<.*>;; +/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; +/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; +/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; +/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; +/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; +" $TEMP > $REF + +if $MAIL_AGENT < $REF; then + echo "$COMMAND: problem report sent" + xs=0; exit +else + echo "$COMMAND: mysterious mail failure." + if [ -z "$BATCH" ]; then + echo "$COMMAND: the problem report remains in $BAD and is not sent." + REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" + mv $REF $BAD + else + echo "$COMMAND: the problem report is not sent." + fi + xs=1; exit +fi diff --git a/Demo_C/Bin/GNU/GNU_ARM/lib/gcc/arm-elf/4.4.1/include/stddef.h b/Demo_C/Bin/GNU/GNU_ARM/lib/gcc/arm-elf/4.4.1/include/stddef.h new file mode 100644 index 0000000..89e5b2e --- /dev/null +++ b/Demo_C/Bin/GNU/GNU_ARM/lib/gcc/arm-elf/4.4.1/include/stddef.h @@ -0,0 +1,416 @@ +/* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009 + Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +. */ + +/* + * ISO C Standard: 7.17 Common definitions + */ +#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \ + && !defined(__STDDEF_H__)) \ + || defined(__need_wchar_t) || defined(__need_size_t) \ + || defined(__need_ptrdiff_t) || defined(__need_NULL) \ + || defined(__need_wint_t) + +/* Any one of these symbols __need_* means that GNU libc + wants us just to define one data type. So don't define + the symbols that indicate this file's entire job has been done. */ +#if (!defined(__need_wchar_t) && !defined(__need_size_t) \ + && !defined(__need_ptrdiff_t) && !defined(__need_NULL) \ + && !defined(__need_wint_t)) +#define _STDDEF_H +#define _STDDEF_H_ +/* snaroff@next.com says the NeXT needs this. */ +#define _ANSI_STDDEF_H +/* Irix 5.1 needs this. */ +#define __STDDEF_H__ +#endif + +#ifndef __sys_stdtypes_h +/* This avoids lossage on SunOS but only if stdtypes.h comes first. + There's no way to win with the other order! Sun lossage. */ + +/* On 4.3bsd-net2, make sure ansi.h is included, so we have + one less case to deal with in the following. */ +#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__) +#include +#endif +/* On FreeBSD 5, machine/ansi.h does not exist anymore... */ +#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) +#include +#endif + +/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are + defined if the corresponding type is *not* defined. + FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_ */ +#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) +#if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_) +#define _SIZE_T +#endif +#if !defined(_PTRDIFF_T_) && !defined(_BSD_PTRDIFF_T_) +#define _PTRDIFF_T +#endif +/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ + instead of _WCHAR_T_. */ +#if !defined(_WCHAR_T_) && !defined(_BSD_WCHAR_T_) +#ifndef _BSD_WCHAR_T_ +#define _WCHAR_T +#endif +#endif +/* Undef _FOO_T_ if we are supposed to define foo_t. */ +#if defined (__need_ptrdiff_t) || defined (_STDDEF_H_) +#undef _PTRDIFF_T_ +#undef _BSD_PTRDIFF_T_ +#endif +#if defined (__need_size_t) || defined (_STDDEF_H_) +#undef _SIZE_T_ +#undef _BSD_SIZE_T_ +#endif +#if defined (__need_wchar_t) || defined (_STDDEF_H_) +#undef _WCHAR_T_ +#undef _BSD_WCHAR_T_ +#endif +#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) */ + +/* Sequent's header files use _PTRDIFF_T_ in some conflicting way. + Just ignore it. */ +#if defined (__sequent__) && defined (_PTRDIFF_T_) +#undef _PTRDIFF_T_ +#endif + +/* On VxWorks, may have defined macros like + _TYPE_size_t which will typedef size_t. fixincludes patched the + vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is + not defined, and so that defining this macro defines _GCC_SIZE_T. + If we find that the macros are still defined at this point, we must + invoke them so that the type is defined as expected. */ +#if defined (_TYPE_ptrdiff_t) && (defined (__need_ptrdiff_t) || defined (_STDDEF_H_)) +_TYPE_ptrdiff_t; +#undef _TYPE_ptrdiff_t +#endif +#if defined (_TYPE_size_t) && (defined (__need_size_t) || defined (_STDDEF_H_)) +_TYPE_size_t; +#undef _TYPE_size_t +#endif +#if defined (_TYPE_wchar_t) && (defined (__need_wchar_t) || defined (_STDDEF_H_)) +_TYPE_wchar_t; +#undef _TYPE_wchar_t +#endif + +/* In case nobody has defined these types, but we aren't running under + GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and + __WCHAR_TYPE__ have reasonable values. This can happen if the + parts of GCC is compiled by an older compiler, that actually + include gstddef.h, such as collect2. */ + +/* Signed type of difference of two pointers. */ + +/* Define this type if we are doing the whole job, + or if we want this type in particular. */ +#if defined (_STDDEF_H) || defined (__need_ptrdiff_t) +#ifndef _PTRDIFF_T /* in case has defined it. */ +#ifndef _T_PTRDIFF_ +#ifndef _T_PTRDIFF +#ifndef __PTRDIFF_T +#ifndef _PTRDIFF_T_ +#ifndef _BSD_PTRDIFF_T_ +#ifndef ___int_ptrdiff_t_h +#ifndef _GCC_PTRDIFF_T +#define _PTRDIFF_T +#define _T_PTRDIFF_ +#define _T_PTRDIFF +#define __PTRDIFF_T +#define _PTRDIFF_T_ +#define _BSD_PTRDIFF_T_ +#define ___int_ptrdiff_t_h +#define _GCC_PTRDIFF_T +#ifndef __PTRDIFF_TYPE__ +#define __PTRDIFF_TYPE__ long int +#endif +typedef __PTRDIFF_TYPE__ ptrdiff_t; +#endif /* _GCC_PTRDIFF_T */ +#endif /* ___int_ptrdiff_t_h */ +#endif /* _BSD_PTRDIFF_T_ */ +#endif /* _PTRDIFF_T_ */ +#endif /* __PTRDIFF_T */ +#endif /* _T_PTRDIFF */ +#endif /* _T_PTRDIFF_ */ +#endif /* _PTRDIFF_T */ + +/* If this symbol has done its job, get rid of it. */ +#undef __need_ptrdiff_t + +#endif /* _STDDEF_H or __need_ptrdiff_t. */ + +/* Unsigned type of `sizeof' something. */ + +/* Define this type if we are doing the whole job, + or if we want this type in particular. */ +#if defined (_STDDEF_H) || defined (__need_size_t) +#ifndef __size_t__ /* BeOS */ +#ifndef __SIZE_T__ /* Cray Unicos/Mk */ +#ifndef _SIZE_T /* in case has defined it. */ +#ifndef _SYS_SIZE_T_H +#ifndef _T_SIZE_ +#ifndef _T_SIZE +#ifndef __SIZE_T +#ifndef _SIZE_T_ +#ifndef _BSD_SIZE_T_ +#ifndef _SIZE_T_DEFINED_ +#ifndef _SIZE_T_DEFINED +#ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */ +#ifndef _SIZE_T_DECLARED /* FreeBSD 5 */ +#ifndef ___int_size_t_h +#ifndef _GCC_SIZE_T +#ifndef _SIZET_ +#ifndef __size_t +#define __size_t__ /* BeOS */ +#define __SIZE_T__ /* Cray Unicos/Mk */ +#define _SIZE_T +#define _SYS_SIZE_T_H +#define _T_SIZE_ +#define _T_SIZE +#define __SIZE_T +#define _SIZE_T_ +#define _BSD_SIZE_T_ +#define _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED +#define _BSD_SIZE_T_DEFINED_ /* Darwin */ +#define _SIZE_T_DECLARED /* FreeBSD 5 */ +#define ___int_size_t_h +#define _GCC_SIZE_T +#define _SIZET_ +#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) +/* __size_t is a typedef on FreeBSD 5!, must not trash it. */ +#else +#define __size_t +#endif +#ifndef __SIZE_TYPE__ +#define __SIZE_TYPE__ long unsigned int +#endif +#if !(defined (__GNUG__) && defined (size_t)) +typedef __SIZE_TYPE__ size_t; +#ifdef __BEOS__ +typedef long ssize_t; +#endif /* __BEOS__ */ +#endif /* !(defined (__GNUG__) && defined (size_t)) */ +#endif /* __size_t */ +#endif /* _SIZET_ */ +#endif /* _GCC_SIZE_T */ +#endif /* ___int_size_t_h */ +#endif /* _SIZE_T_DECLARED */ +#endif /* _BSD_SIZE_T_DEFINED_ */ +#endif /* _SIZE_T_DEFINED */ +#endif /* _SIZE_T_DEFINED_ */ +#endif /* _BSD_SIZE_T_ */ +#endif /* _SIZE_T_ */ +#endif /* __SIZE_T */ +#endif /* _T_SIZE */ +#endif /* _T_SIZE_ */ +#endif /* _SYS_SIZE_T_H */ +#endif /* _SIZE_T */ +#endif /* __SIZE_T__ */ +#endif /* __size_t__ */ +#undef __need_size_t +#endif /* _STDDEF_H or __need_size_t. */ + + +/* Wide character type. + Locale-writers should change this as necessary to + be big enough to hold unique values not between 0 and 127, + and not (wchar_t) -1, for each defined multibyte character. */ + +/* Define this type if we are doing the whole job, + or if we want this type in particular. */ +#if defined (_STDDEF_H) || defined (__need_wchar_t) +#ifndef __wchar_t__ /* BeOS */ +#ifndef __WCHAR_T__ /* Cray Unicos/Mk */ +#ifndef _WCHAR_T +#ifndef _T_WCHAR_ +#ifndef _T_WCHAR +#ifndef __WCHAR_T +#ifndef _WCHAR_T_ +#ifndef _BSD_WCHAR_T_ +#ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */ +#ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */ +#ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */ +#ifndef _WCHAR_T_DEFINED_ +#ifndef _WCHAR_T_DEFINED +#ifndef _WCHAR_T_H +#ifndef ___int_wchar_t_h +#ifndef __INT_WCHAR_T_H +#ifndef _GCC_WCHAR_T +#define __wchar_t__ /* BeOS */ +#define __WCHAR_T__ /* Cray Unicos/Mk */ +#define _WCHAR_T +#define _T_WCHAR_ +#define _T_WCHAR +#define __WCHAR_T +#define _WCHAR_T_ +#define _BSD_WCHAR_T_ +#define _WCHAR_T_DEFINED_ +#define _WCHAR_T_DEFINED +#define _WCHAR_T_H +#define ___int_wchar_t_h +#define __INT_WCHAR_T_H +#define _GCC_WCHAR_T +#define _WCHAR_T_DECLARED + +/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ + instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other + symbols in the _FOO_T_ family, stays defined even after its + corresponding type is defined). If we define wchar_t, then we + must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if + we undef _WCHAR_T_, then we must also define rune_t, since + headers like runetype.h assume that if machine/ansi.h is included, + and _BSD_WCHAR_T_ is not defined, then rune_t is available. + machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of + the same type." */ +#ifdef _BSD_WCHAR_T_ +#undef _BSD_WCHAR_T_ +#ifdef _BSD_RUNE_T_ +#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) +typedef _BSD_RUNE_T_ rune_t; +#define _BSD_WCHAR_T_DEFINED_ +#define _BSD_RUNE_T_DEFINED_ /* Darwin */ +#if defined (__FreeBSD__) && (__FreeBSD__ < 5) +/* Why is this file so hard to maintain properly? In contrast to + the comment above regarding BSD/386 1.1, on FreeBSD for as long + as the symbol has existed, _BSD_RUNE_T_ must not stay defined or + redundant typedefs will occur when stdlib.h is included after this file. */ +#undef _BSD_RUNE_T_ +#endif +#endif +#endif +#endif +/* FreeBSD 5 can't be handled well using "traditional" logic above + since it no longer defines _BSD_RUNE_T_ yet still desires to export + rune_t in some cases... */ +#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) +#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) +#if __BSD_VISIBLE +#ifndef _RUNE_T_DECLARED +typedef __rune_t rune_t; +#define _RUNE_T_DECLARED +#endif +#endif +#endif +#endif + +#ifndef __WCHAR_TYPE__ +#define __WCHAR_TYPE__ int +#endif +#ifndef __cplusplus +typedef __WCHAR_TYPE__ wchar_t; +#endif +#endif +#endif +#endif +#endif +#endif +#endif +#endif /* _WCHAR_T_DECLARED */ +#endif /* _BSD_RUNE_T_DEFINED_ */ +#endif +#endif +#endif +#endif +#endif +#endif +#endif +#endif /* __WCHAR_T__ */ +#endif /* __wchar_t__ */ +#undef __need_wchar_t +#endif /* _STDDEF_H or __need_wchar_t. */ + +#if defined (__need_wint_t) +#ifndef _WINT_T +#define _WINT_T + +#ifndef __WINT_TYPE__ +#define __WINT_TYPE__ unsigned int +#endif +typedef __WINT_TYPE__ wint_t; +#endif +#undef __need_wint_t +#endif + +/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc. + are already defined. */ +/* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */ +#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) +/* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_ + are probably typos and should be removed before 2.8 is released. */ +#ifdef _GCC_PTRDIFF_T_ +#undef _PTRDIFF_T_ +#undef _BSD_PTRDIFF_T_ +#endif +#ifdef _GCC_SIZE_T_ +#undef _SIZE_T_ +#undef _BSD_SIZE_T_ +#endif +#ifdef _GCC_WCHAR_T_ +#undef _WCHAR_T_ +#undef _BSD_WCHAR_T_ +#endif +/* The following ones are the real ones. */ +#ifdef _GCC_PTRDIFF_T +#undef _PTRDIFF_T_ +#undef _BSD_PTRDIFF_T_ +#endif +#ifdef _GCC_SIZE_T +#undef _SIZE_T_ +#undef _BSD_SIZE_T_ +#endif +#ifdef _GCC_WCHAR_T +#undef _WCHAR_T_ +#undef _BSD_WCHAR_T_ +#endif +#endif /* _ANSI_H_ || _MACHINE_ANSI_H_ */ + +#endif /* __sys_stdtypes_h */ + +/* A null pointer constant. */ + +#if defined (_STDDEF_H) || defined (__need_NULL) +#undef NULL /* in case has defined it. */ +#ifdef __GNUG__ +#define NULL __null +#else /* G++ */ +#ifndef __cplusplus +#define NULL ((void *)0) +#else /* C++ */ +#define NULL 0 +#endif /* C++ */ +#endif /* G++ */ +#endif /* NULL not defined and or need NULL. */ +#undef __need_NULL + +#ifdef _STDDEF_H + +/* Offset of member MEMBER in a struct of type TYPE. */ +#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER) + +#endif /* _STDDEF_H was defined this time */ + +#endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__ + || __need_XXX was not defined before */ diff --git a/Demo_C/Bin/GNU/Tools/copying.txt b/Demo_C/Bin/GNU/Tools/copying.txt new file mode 100644 index 0000000..5b6e7c6 --- /dev/null +++ b/Demo_C/Bin/GNU/Tools/copying.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Demo_C/Bin/GNU/Tools/source.txt b/Demo_C/Bin/GNU/Tools/source.txt new file mode 100644 index 0000000..ad9b86c --- /dev/null +++ b/Demo_C/Bin/GNU/Tools/source.txt @@ -0,0 +1,29 @@ + +make +===== + +The make program is the original version which was taken from +"mingw32-make-3.81-1", you can find the package here: + +http://prdownloads.sourceforge.net/mingw/mingw32-make-3.81-1.tar.gz + +Also the source can be found here: + +http://prdownloads.sourceforge.net/mingw/mingw32-make-3.81-1-src.tar.gz + + +sh, msys-1.0, echo, touch, and some of the fileutils +===================================================== + +The tools are original version which was taken from "msys-1.0.8.exe". +You can find the "msys-1.0.8" package here: + +http://prdownloads.sourceforge.net/mingw/MSYS-1.0.8.exe + + +And the source here: + +http://prdownloads.sourceforge.net/mingw/msys-1.0.8-src.tar.bz2 + + + diff --git a/Demo_C/Bin/GNU/YAGARTO/binutils.url b/Demo_C/Bin/GNU/YAGARTO/binutils.url new file mode 100644 index 0000000..6f9c758 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/binutils.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://www.gnu.org/software/binutils/ \ No newline at end of file diff --git a/Demo_C/Bin/GNU/YAGARTO/copying.newlib.txt b/Demo_C/Bin/GNU/YAGARTO/copying.newlib.txt new file mode 100644 index 0000000..24c34cb --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/copying.newlib.txt @@ -0,0 +1,640 @@ +The newlib subdirectory is a collection of software from several sources. + +Each file may have its own copyright/license that is embedded in the source +file. Unless otherwise noted in the body of the source file(s), the following copyright +notices will apply to the contents of the newlib subdirectory: + +(1) Red Hat Incorporated + +Copyright (c) 1994-2007 Red Hat, Inc. All rights reserved. + +This copyrighted material is made available to anyone wishing to use, +modify, copy, or redistribute it subject to the terms and conditions +of the BSD License. This program is distributed in the hope that +it will be useful, but WITHOUT ANY WARRANTY expressed or implied, +including the implied warranties of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. A copy of this license is available at +http://www.opensource.org/licenses. Any Red Hat trademarks that are +incorporated in the source code or documentation are not subject to +the BSD License and may only be used or replicated with the express +permission of Red Hat, Inc. + +(2) University of California, Berkeley + +Copyright (c) 1981-2000 The Regents of the University of California. +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. + * Neither the name of the University nor the names of its contributors + may 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 THE COPYRIGHT OWNER OR CONTRIBUTORS 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. + +(3) David M. Gay (AT&T 1991, Lucent 1998) + +The author of this software is David M. Gay. + +Copyright (c) 1991 by AT&T. + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY +OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +------------------------------------------------------------------- + +The author of this software is David M. Gay. + +Copyright (C) 1998-2001 by Lucent Technologies +All Rights Reserved + +Permission to use, copy, modify, and distribute this software and +its documentation for any purpose and without fee is hereby +granted, provided that the above copyright notice appear in all +copies and that both that the copyright notice and this +permission notice and warranty disclaimer appear in supporting +documentation, and that the name of Lucent or any of its entities +not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. +IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + + +(4) Advanced Micro Devices + +Copyright 1989, 1990 Advanced Micro Devices, Inc. + +This software is the property of Advanced Micro Devices, Inc (AMD) which +specifically grants the user the right to modify, use and distribute this +software provided this notice is not removed or altered. All other rights +are reserved by AMD. + +AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the 29K Technical Support Center at +800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. + +Advanced Micro Devices, Inc. +29K Support Products +Mail Stop 573 +5900 E. Ben White Blvd. +Austin, TX 78741 +800-292-9263 + +(5) C.W. Sandmann + +Copyright (C) 1993 C.W. Sandmann + +This file may be freely distributed as long as the author's name remains. + +(6) Eric Backus + +(C) Copyright 1992 Eric Backus + +This software may be used freely so long as this copyright notice is +left intact. There is no warrantee on this software. + +(7) Sun Microsystems + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice is preserved. + +(8) Hewlett Packard + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(9) Hans-Peter Nilsson + +Copyright (C) 2001 Hans-Peter Nilsson + +Permission to use, copy, modify, and distribute this software is +freely granted, provided that the above copyright notice, this notice +and the following disclaimer are preserved with no changes. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +(10) Stephane Carrez (m68hc11-elf/m68hc12-elf targets only) + +Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +(11) Christopher G. Demetriou + +Copyright (c) 2001 Christopher G. Demetriou +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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. + +(12) SuperH, Inc. + +Copyright 2002 SuperH, Inc. All rights reserved + +This software is the property of SuperH, Inc (SuperH) which specifically +grants the user the right to modify, use and distribute this software +provided this notice is not removed or altered. All other rights are +reserved by SuperH. + +SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO +THIS SOFTWARE. IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM +THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the SuperH Support Center via +e-mail at softwaresupport@superh.com . + +SuperH, Inc. +405 River Oaks Parkway +San Jose +CA 95134 +USA + +(13) Royal Institute of Technology + +Copyright (c) 1999 Kungliga Tekniska Högskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of KTH nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY KTH AND ITS 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 KTH OR ITS CONTRIBUTORS 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. + +(14) Alexey Zelkin + +Copyright (c) 2000, 2001 Alexey Zelkin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR OR CONTRIBUTORS 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. + +(15) Andrey A. Chernov + +Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE REGENTS OR CONTRIBUTORS 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. + +(16) FreeBSD + +Copyright (c) 1997-2002 FreeBSD Project. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR OR CONTRIBUTORS 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. + +(17) S. L. Moshier + +Author: S. L. Moshier. + +Copyright (c) 1984,2000 S.L. Moshier + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(18) Citrus Project + +Copyright (c)1999 Citrus Project, +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR OR CONTRIBUTORS 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. + +(19) Todd C. Miller + +Copyright (c) 1998 Todd C. Miller +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``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 +THE AUTHOR 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. + +(20) DJ Delorie (i386) +Copyright (C) 1991 DJ Delorie +All rights reserved. + +Redistribution and use in source and binary forms is permitted +provided that the above copyright notice and following paragraph are +duplicated in all such forms. + +This file is distributed WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +(21) Free Software Foundation LGPL License (*-linux* targets only) + + Copyright (C) 1990-1999, 2000, 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Mark Kettenis , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. + +(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only) + +Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Library General Public License for more details. + +(23) Intel (i960) + +Copyright (c) 1993 Intel Corporation + +Intel hereby grants you permission to copy, modify, and distribute this +software and its documentation. Intel grants this permission provided +that the above copyright notice appears in all copies and that both the +copyright notice and this permission notice appear in supporting +documentation. In addition, Intel grants this permission provided that +you prominently mark as "not part of the original" any modifications +made to this software or documentation, and that the name of Intel +Corporation not be used in advertising or publicity pertaining to +distribution of the software or the documentation without specific, +written prior permission. + +Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR +IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or +representations regarding the use of, or the results of the use of, +the software and documentation in terms of correctness, accuracy, +reliability, currentness, or otherwise; and you rely on the software, +documentation and results solely at your own risk. + +IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, +LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES +OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM +PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + +(24) Hewlett-Packard (hppa targets only) + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(25) Henry Spencer (only *-linux targets) + +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + +(26) Mike Barcroft + +Copyright (c) 2001 Mike Barcroft +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR OR CONTRIBUTORS 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. + +(27) Konstantin Chuguev (--enable-newlib-iconv) + +Copyright (c) 1999, 2000 + Konstantin Chuguev. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR OR CONTRIBUTORS 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. + + iconv (Charset Conversion Library) v2.0 + +(28) Artem Bityuckiy (--enable-newlib-iconv) + +Copyright (c) 2003, Artem B. Bityuckiy, SoftMine Corporation. +Rights transferred to Franklin Electronic Publishers. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. 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. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR OR CONTRIBUTORS 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. + +(29) IBM, Sony, Toshiba (only spu-* targets) + + (C) Copyright 2001,2006, + International Business Machines Corporation, + Sony Computer Entertainment, Incorporated, + Toshiba Corporation, + + 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. + * Neither the names of the copyright holders nor the names of their + contributors may 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 THE COPYRIGHT OWNER OR CONTRIBUTORS 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. + + diff --git a/Demo_C/Bin/GNU/YAGARTO/copying.txt b/Demo_C/Bin/GNU/YAGARTO/copying.txt new file mode 100644 index 0000000..623b625 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/copying.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Demo_C/Bin/GNU/YAGARTO/copying3.txt b/Demo_C/Bin/GNU/YAGARTO/copying3.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/copying3.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Demo_C/Bin/GNU/YAGARTO/gcc.url b/Demo_C/Bin/GNU/YAGARTO/gcc.url new file mode 100644 index 0000000..cec7d66 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/gcc.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://gcc.gnu.org/ \ No newline at end of file diff --git a/Demo_C/Bin/GNU/YAGARTO/gdb.url b/Demo_C/Bin/GNU/YAGARTO/gdb.url new file mode 100644 index 0000000..d10c08e --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/gdb.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://www.gnu.org/software/gdb/ \ No newline at end of file diff --git a/Demo_C/Bin/GNU/YAGARTO/gnu.url b/Demo_C/Bin/GNU/YAGARTO/gnu.url new file mode 100644 index 0000000..cdada16 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/gnu.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://www.gnu.org/ \ No newline at end of file diff --git a/Demo_C/Bin/GNU/YAGARTO/newlib.url b/Demo_C/Bin/GNU/YAGARTO/newlib.url new file mode 100644 index 0000000..d294c32 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/newlib.url @@ -0,0 +1,7 @@ +[InternetShortcut] +URL=http://sources.redhat.com/newlib/ +IDList= +IconFile=http://sources.redhat.com/favicon.ico +IconIndex=1 +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,2 diff --git a/Demo_C/Bin/GNU/YAGARTO/source.txt b/Demo_C/Bin/GNU/YAGARTO/source.txt new file mode 100644 index 0000000..f4456a2 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/source.txt @@ -0,0 +1,6 @@ + +The source for the YAGARTO toolchain can be found here: + +www.yagarto.de/source + +(17.08.2009, mifi) diff --git a/Demo_C/Bin/GNU/YAGARTO/version.txt b/Demo_C/Bin/GNU/YAGARTO/version.txt new file mode 100644 index 0000000..c45f816 --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/version.txt @@ -0,0 +1,12 @@ + +This build of yagarto use the following versions: + +binutils: 2.19.1 +gcc: 4.4.1 +newlib: 1.17.0 +gdb: 6.8.50-20080308-cvs + +And was built to support newlib with reentrant stubs. +For more information take a look in the yagarto_newlib.txt + +(17.08.2009, mifi) \ No newline at end of file diff --git a/Demo_C/Bin/GNU/YAGARTO/yagarto.url b/Demo_C/Bin/GNU/YAGARTO/yagarto.url new file mode 100644 index 0000000..9a1284c --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/yagarto.url @@ -0,0 +1,7 @@ +[InternetShortcut] +URL=http://www.yagarto.de/ +IDList= +IconFile=http://www.yagarto.de/favicon.ico +IconIndex=1 +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,2 diff --git a/Demo_C/Bin/GNU/YAGARTO/yagarto_newlib.txt b/Demo_C/Bin/GNU/YAGARTO/yagarto_newlib.txt new file mode 100644 index 0000000..fad291c --- /dev/null +++ b/Demo_C/Bin/GNU/YAGARTO/yagarto_newlib.txt @@ -0,0 +1,37 @@ + +!!! This version of YAGARTO was built to support newlib with reentrant stubs !!! + +Therefore it is possible that you will get some undefined references from the +linker in case you use the printf function for example. + +The undefined references could be: + + _sbrk_r, _fstat_r, _isatty_r, _close_r, _lseek_r, _write_r, _read_r + +To use functions from stdio (like printf) in own projects, the interface functions +for the newlib have to be provided. For more information take a look in chapter 13 +from the "Red Hat newlib C Library" documentation. +(ftp://sources.redhat.com/pub/newlib/index.html) + +You can find a good source about "Porting and Using Newlib in Embedded Systems" +on the page from Bill Gatliff (http://neptune.billgatliff.com/newlib.html). + +The YAGARTO version of newlib was built with the following options: + + -DREENTRANT_SYSCALLS_PROVIDED + --disable-newlib-supplied-syscalls + +To make your life easier, an example "syscalls.c" can be find here: + +http://www.yagarto.de/download/yagarto/syscalls.c + +(29.03.2009, mifi) + + + + + + + + + diff --git a/Demo_C/Bin/_exec_cmd.bat b/Demo_C/Bin/_exec_cmd.bat new file mode 100644 index 0000000..619805b --- /dev/null +++ b/Demo_C/Bin/_exec_cmd.bat @@ -0,0 +1,24 @@ +@echo off +if "%1"/ == ""/ exit +if "%ROOT_BATCH%"/ == ""/ %1\_start go %0 %1 %2 %3 + +set PATH=%1;%PATH% +set COM_PORT=%3 +if "%3"/ == ""/ call set_port + +4cmd_ft %2 %COM_PORT% +if errorlevel 1 goto end +goto exit + +:end +echo. +echo ***** **** **** *** **** +echo * * * * * * * * * +echo *** **** **** * * **** +echo * * * * * * * * * +echo ***** * * * * *** * * +echo. + +:exit +if exist "%1\ftlib.log" del "%1\ftlib.log" +if exist "%1\ftlib.bak" del "%1\ftlib.bak" diff --git a/Demo_C/Bin/_load_flash.bat b/Demo_C/Bin/_load_flash.bat new file mode 100644 index 0000000..86c71de --- /dev/null +++ b/Demo_C/Bin/_load_flash.bat @@ -0,0 +1,25 @@ +@echo off +if "%1"/ == ""/ exit +if "%ROOT_BATCH%"/ == ""/ %1\_start go %0 %1 %2 + +set PATH=%1;%PATH% +set COM_PORT=%2 +if "%2"/ == ""/ call set_port + +echo Loading program file ... +4load_ft *.bin flash %COM_PORT% +if errorlevel 1 goto end +goto exit + +:end +echo. +echo ***** **** **** *** **** +echo * * * * * * * * * +echo *** **** **** * * **** +echo * * * * * * * * * +echo ***** * * * * *** * * +echo. + +:exit +if exist "%1\ftlib.log" del "%1\ftlib.log" +if exist "%1\ftlib.bak" del "%1\ftlib.bak" diff --git a/Demo_C/Bin/_load_ramdisk.bat b/Demo_C/Bin/_load_ramdisk.bat new file mode 100644 index 0000000..5aef5ee --- /dev/null +++ b/Demo_C/Bin/_load_ramdisk.bat @@ -0,0 +1,25 @@ +@echo off +if "%1"/ == ""/ exit +if "%ROOT_BATCH%"/ == ""/ %1\_start go %0 %1 %2 + +set PATH=%1;%PATH% +set COM_PORT=%2 +if "%2"/ == ""/ call set_port + +echo Loading program file ... +4load_ft *.bin %COM_PORT% +if errorlevel 1 goto end +goto exit + +:end +echo. +echo ***** **** **** *** **** +echo * * * * * * * * * +echo *** **** **** * * **** +echo * * * * * * * * * +echo ***** * * * * *** * * +echo. + +:exit +if exist "%1\ftlib.log" del "%1\ftlib.log" +if exist "%1\ftlib.bak" del "%1\ftlib.bak" diff --git a/Demo_C/Bin/_start.bat b/Demo_C/Bin/_start.bat new file mode 100644 index 0000000..ca525dc --- /dev/null +++ b/Demo_C/Bin/_start.bat @@ -0,0 +1,20 @@ +@echo off +if "%1"/ == ""/ exit +if "%1"/ == "begin"/ goto start +if "%OS%"/ == "Windows_NT"/ goto start + +rem start second command shell to avoid problems +rem with environment size, then start batch again +rem with additional first parameter 'begin', goto +rem begin, readjust parameter list and proceed + +command.com /E:4096 /C %0 begin %2 %3 %4 %5 +exit + +:start +set ROOT_BATCH=RUNNING +set START_PATH=%PATH% +call %2 %3 %4 %5 +set ROOT_BATCH= + +if "%OS%"/ == "Windows_NT"/ pause diff --git a/Demo_C/Bin/set_port.bat b/Demo_C/Bin/set_port.bat new file mode 100644 index 0000000..90d4163 --- /dev/null +++ b/Demo_C/Bin/set_port.bat @@ -0,0 +1,6 @@ +rem Default COM port, through which PC communicates with a ROBO TX Controller, +rem for example "set COM_PORT=COM6". +rem If no default port is set, i.e. "set COM_PORT=", then the virtual USB COM port, +rem to which ROBO TX Controller is connected, is used. + +set COM_PORT= diff --git a/Demo_C/Common/Makefile b/Demo_C/Common/Makefile new file mode 100644 index 0000000..d6dfaa1 --- /dev/null +++ b/Demo_C/Common/Makefile @@ -0,0 +1,120 @@ +include param.mk + +COMMON_PATH = ../../Common + +COMMON_OBJS = $(COMMON_PATH)/prg_bt.o $(COMMON_PATH)/prg_bt_addr.o +COMMON_LIB = $(COMMON_PATH)/libcommon.a +STARTUP_OBJS = $(COMMON_PATH)/prg_disp.o +PROJ_OBJS = $(STARTUP_OBJS) $(OBJS) + +BIN_PATH = ../../Bin +GCC_PATH = $(BIN_PATH)/GNU/GNU_ARM +BIN_GCC_PATH = $(GCC_PATH)/bin +LIB_GCC_PATH = $(GCC_PATH)/lib/gcc/arm-elf +LIB_PATH = $(GCC_PATH)/arm-elf/lib + +LD_SCRIPT = $(COMMON_PATH)/ld.lcf + +TARGET_BIN = $(PROJ).bin +PROJ_ELF = $(PROJ).elf +PROJ_MAP = $(PROJ).map + +CROSS_COMPILE = arm-elf +CROSS_COMPILE_PRE = $(CROSS_COMPILE)- +BIN_GCC_PATH_CROSS = $(CROSS_COMPILE_PRE) + +CC = $(BIN_GCC_PATH_CROSS)gcc +AS_CPP = $(BIN_GCC_PATH_CROSS)gcc +AS = $(BIN_GCC_PATH_CROSS)as +AR = $(BIN_GCC_PATH_CROSS)ar +LD = $(BIN_GCC_PATH_CROSS)ld +OC = $(BIN_GCC_PATH_CROSS)objcopy + +RM = $(BIN_PATH)/GNU/Tools/rm + +O_LANG := -x c + +GNU_ARM_M_ARCH := -mcpu=arm9e +GNU_ARM_L_ARCH := --architecture=armv5tej + +O_OPTIM := -O3 + +C_INCL := . $(COMMON_PATH) + +P_DEFS_GLOBAL := -DENDIAN_LITTLE + +O_GDB := -gdwarf-2 -fno-dwarf2-cfi-asm + +M_FLAGS_GLOBAL := $(GNU_ARM_M_ARCH) +__FLAGS_GLOBAL := $(M_FLAGS_GLOBAL) $(P_DEFS_GLOBAL) $(O_OPTIM) $(O_GDB) + +C_FLAGS_GLOBAL := -S $(__FLAGS_GLOBAL) -fno-builtin $(O_LANG) -Wall + +AS_CPP_FLAGS_GLOBAL := -c $(__FLAGS_GLOBAL) -Wa,-EL -x assembler-with-cpp -D __ASSEMBLY__ -Wall -Wa + +A_FLAGS_GLOBAL := -EL + +A_LST := -almns= + +ARFLAGS := -rcuv + +CFLAGS = \ + -c \ + $(addprefix -I,$(C_INCL)) + +LFLAGS = \ + --cref \ + --oformat elf32-littlearm \ + --trace \ + --nmagic \ + $(GNU_ARM_L_ARCH) + +S_INC = $(addprefix -I,$(C_INCL)) + +A_LST = -almns= + +%.o : %.c + $(CC) $(C_FLAGS_GLOBAL) $(CFLAGS) -C -E $< > $(basename $@).p + $(CC) $(C_FLAGS_GLOBAL) $(CFLAGS) -o $(basename $@).asm $< + $(AS) $(A_FLAGS_GLOBAL) $(A_LST)$(basename $@).lst -o $@ $(basename $@).asm + +%.o : %.S + $(AS_CPP) $(AS_CPP_FLAGS_GLOBAL) $(S_INC) -o $(basename $@).o -Wa,$(A_LST)$(basename $@).lst $< + +$(COMMON_LIB): $(COMMON_OBJS) + $(AR) $(ARFLAGS) $(COMMON_LIB) $(COMMON_OBJS) + +$(PROJ_ELF): $(PROJ_OBJS) $(LD_SCRIPT) + $(LD) $(LFLAGS) \ + --library-path=$(COMMON_PATH) \ + --library-path=$(LIB_PATH) \ + --library-path=$(LIB_GCC_PATH) \ + --script=$(LD_SCRIPT) \ + $(PROJ_OBJS) \ + --library=common \ + --library=m \ + --library=c \ + --library=gcc \ + -Map $(PROJ_MAP) \ + -o $(PROJ_ELF) + +$(TARGET_BIN): $(COMMON_LIB) $(PROJ_ELF) + $(OC) --output-target=binary $(PROJ_ELF) $(TARGET_BIN) + +.PHONY: all +all: $(TARGET_BIN) + +clean: + $(RM) -f \ + $(PROJ_OBJS) \ + $(PROJ_OBJS:.o=.lst) \ + $(PROJ_OBJS:.o=.p) \ + $(PROJ_OBJS:.o=.asm) \ + $(COMMON_OBJS) \ + $(COMMON_OBJS:.o=.lst) \ + $(COMMON_OBJS:.o=.p) \ + $(COMMON_OBJS:.o=.asm) \ + $(COMMON_LIB) \ + $(PROJ_MAP) \ + $(PROJ_ELF) \ + $(TARGET_BIN) diff --git a/Demo_C/Common/ROBO_TX_FW.h b/Demo_C/Common/ROBO_TX_FW.h new file mode 100644 index 0000000..1072c43 --- /dev/null +++ b/Demo_C/Common/ROBO_TX_FW.h @@ -0,0 +1,576 @@ +//============================================================================= +// Header file with definition of the software interface to the +// ROBO TX Controller firmware. +// Can be used for building C-programs which can run under control +// of the ROBO TX Controller firmware in download (local) mode or +// for building PC-programs which can communicate with the +// ROBO TX Controller firmware in online mode. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#ifndef __ROBO_TX_FW_H__ +#define __ROBO_TX_FW_H__ + + +#define N_CNT 4 // Number of counters +#define N_PWM_CHAN 8 // Number of PWM channels +#define N_MOTOR 4 // Number of motors +#define N_UNI 8 // Number of universal inputs + +// 5kOhm range +#define R_MIN 10 // [Ohm] +#define R_MAX 4999 // [Ohm] +#define R_OVR 5000 // [Ohm] overload + +// 10V range +#define U_MIN 0 // [mV] +#define U_MAX 9999 // [mV] +#define U_OVR 10000 // [mV] overload + +// Ultrasonic Sensor range +#define ULTRASONIC_MIN 2 // [cm] +#define ULTRASONIC_MAX 1023 // [cm] +#define ULTRASONIC_OVR 1024 // [cm] overload +#define NO_ULTRASONIC 4096 // Not present + +// Motor outputs PWM values range +#define DUTY_MIN 0 +#define DUTY_MAX 512 + +// Length of strings +#define DEV_NAME_LEN_MAX 16 // "ROBO TX-xxxxxxxx" +#define BT_ADDR_STR_LEN 17 // "xx:xx:xx:xx:xx:xx" +#define DISPL_MSG_LEN_MAX 98 // Max. length of a pop-up display message + +// Number of Bluetooth channels +#define BT_CNT_MAX 8 + +// Allowed values for channel index are 1...8 +#define BT_CHAN_IDX_MIN 1 +#define BT_CHAN_IDX_MAX 8 + +#define BT_ADDR_LEN 6 // Bluetooth address length +#define BT_MSG_LEN 16 // Max. Bluetooth message length + + +// Bluetooth connection states +enum BtConnState +{ + BT_STATE_IDLE = 0, // BT channel is disconnected + BT_STATE_CONN_ONGOING, // BT channel is being connected + BT_STATE_CONNECTED, // BT channel is connected + BT_STATE_DISC_ONGOING // BT channel is being disconnected +}; + + +// Status of Bluetooth inquiry scan +enum BtInquiryScanStatus +{ + BT_INQUIRY_SCAN_NOT_POSSIBLE = 0, + BT_INQUIRY_SCAN_START, + BT_INQUIRY_SCAN_RESULT, + BT_INQUIRY_SCAN_BUSY, + BT_INQUIRY_SCAN_TIMEOUT, + BT_INQUIRY_SCAN_END +}; + + +// Status codes for status field in Bluetooth callback functions +enum CB_BtStatus +{ + /* 0 */ BT_SUCCESS = 0, // Successful end of command + /* 1 */ BT_CON_EXIST, // Already connected + /* 2 */ BT_CON_SETUP, // Establishing of connection is ongoing + /* 3 */ BT_SWITCHED_OFF, // Cannot connect/listen, Bluetooth is set to off + /* 4 */ BT_ALL_CHAN_BUSY, // Cannot connect, no more free Bluetooth channels + /* 5 */ BT_NOT_ROBOTX, // Cannot connect/listen, device is not a ROBO TX Controller + /* 6 */ BT_CON_TIMEOUT, // Cannot connect, timeout, no device with such a BT address + /* 7 */ BT_CON_INVALID, // Connection does not exist + /* 8 */ BT_CON_RELEASE, // Disconnecting is ongoing + /* 9 */ BT_LISTEN_ACTIVE, // Listen is already active + /* 10 */ BT_RECEIVE_ACTIVE, // Receive is already active + /* 11 */ BT_CON_INDICATION, // Passive connection establishment (incoming connection) + /* 12 */ BT_DISCON_INDICATION, // Passive disconnection (initiated by remote end) + /* 13 */ BT_MSG_INDICATION, // Received data (incoming message) + /* 14 */ BT_CHANNEL_BUSY, // No connect command is allowed when listen is active or + // no listen command is allowed when connected + /* 15 */ BT_BTADDR_BUSY, // BT address is already used by another channel + /* 16 */ BT_NO_LISTEN_ACTIVE // Cannot connect, no active listen on remote end +}; + + +// Identifiers of the Transfer Area +enum ta_id_e +{ + TA_LOCAL = 0, // Transfer Area for local Controller. Corresponds to the Controller + // on which program is currently running in download (local) mode or + // to the remotely controlled Controller (seen from controlled device, + // not from controlling device) in online mode. + TA_EXT_1, // Transfer Area for Extension 1 Controller + TA_EXT_2, // Transfer Area for Extension 2 Controller + TA_EXT_3, // Transfer Area for Extension 3 Controller + TA_EXT_4, // Transfer Area for Extension 4 Controller + TA_EXT_5, // Transfer Area for Extension 5 Controller + TA_EXT_6, // Transfer Area for Extension 6 Controller + TA_EXT_7, // Transfer Area for Extension 7 Controller + TA_EXT_8, // Transfer Area for Extension 8 Controller + TA_COUNT // Number of Transfer Areas in array = 9 +}; + +#define N_EXT (TA_COUNT - 1) // Number of extension Controllers = 8 + + +// Device (Controller) functioning modes +enum dev_mode_e +{ + DEV_MODE_LOCAL = 0, + DEV_MODE_ONLINE, + DEV_MODE_INVALID +}; + + +// State of connection to an extension device (Controller) +enum ext_dev_connect_state_e +{ + EXT_DEV_OFFLINE = 0, + EXT_DEV_ONLINE, + EXT_DEV_INVALID +}; + + +// Modes of universal inputs +enum input_mode_e +{ + MODE_U = 0, + MODE_R = 1, + MODE_ULTRASONIC = 3, + MODE_INVALID +}; + + +// Program states +enum pgm_state_e +{ + PGM_STATE_INVALID = 0, + PGM_STATE_RUN, + PGM_STATE_STOP +}; + + +// Timer units for GetSystemTime hook function +enum TimerUnit +{ + TIMER_UNIT_INVALID = 0, + TIMER_UNIT_SECONDS = 2, + TIMER_UNIT_MILLISECONDS = 3, + TIMER_UNIT_MICROSECONDS = 4 +}; + + +// Bluetooth inquiry scan status +typedef struct bt_scan_status_s +{ + UINT16 status; // Status code, see enum BtInquiryScanStatus + + // Bluetooth device info, valid only when status == BT_INQUIRY_SCAN_RESULT + UCHAR8 bt_addr[BT_ADDR_LEN]; + char dummy_1[2]; + char bt_name[DEV_NAME_LEN_MAX + 1]; + char dummy_2[3]; +} BT_SCAN_STATUS; + + +// Structure for Bluetooth callback functions (other than receive) +typedef struct bt_cb_s +{ + UINT16 chan_idx; // Channel index + UINT16 status; // Status code, see enum CB_BtStatus +} BT_CB; + + +// Structure for Bluetooth receive callback function +typedef struct bt_receive_cb_s +{ + UINT16 chan_idx; // Channel index + UINT16 status; // Status code, see enum CB_BtStatus + UINT16 msg_len; // Bluetooth message length + UCHAR8 msg[BT_MSG_LEN];// Bluetooth message +} BT_RECV_CB; + + +// Status codes for status field in I2C callback functions +enum CB_I2cStatus +{ + /* 0 */ I2C_SUCCESS = 0, // Successful end of command + /* 1 */ I2C_READ_ERROR, // read error + /* 2 */ I2C_WRITE_ERROR // write error +}; + +// Structure for I2C callback functions +typedef struct i2c_cb_s +{ + UINT16 value; // read/write value + UINT16 status; // status code, see enum CB_I2Status +} I2C_CB; + +struct ta_s; + +// Pointer to the Bluetooth callback function (other than receive) +typedef void (*P_CB_FUNC)(struct ta_s *, BT_CB *); + +// Pointer to the Bluetooth receive callback function +typedef void (*P_RECV_CB_FUNC)(struct ta_s *, BT_RECV_CB *); + +// Pointer to the I2C callback function +typedef void (*P_I2C_CB_FUNC)(struct ta_s *, I2C_CB *); + +//============================================================================= +// Structures for Transfer Area (TA) +//============================================================================= + + +// Bluetooth connection status structure, 8 bytes +typedef struct btstatus_s +{ + UINT16 conn_state; // See enum BtConnState + BOOL16 is_listen; // If TRUE - BT channel is waiting for incoming connection (listening) + BOOL16 is_receive; // If TRUE - BT channel is ready to receive incoming messages + UINT16 link_quality; // 0...31, 0 - the worst, 31 - the best signal quality +} BT_STATUS; + + +// Program information, 8 bytes +typedef struct +{ + char * name; // Name of a program with a full path, for example, "/ramdisk/Program_1" + UINT8 state; // See enum pgm_state_e + char reserved[3]; +} PGM_INFO; + + +// Display message, 128 bytes. Used to show pop-up message box on the boards display +typedef struct +{ + UINT8 id; // Should be increased by 1 each time a new pop-up message is to be shown + char text[DISPL_MSG_LEN_MAX + 1]; +} DISPLAY_MSG; + + +// Display frame, 8 bytes. Used to refresh boards display with a bitmap image frame +typedef struct +{ + UCHAR8 * frame; // Contents of a frame as a 128x64 pixels bitmap + UINT16 id; // Should be increased by 1 each time a new display frame is to be shown + BOOL16 is_pgm_master_of_display; // ++ if program wants to have control over display, + // i.e. image frame is displayed over firmware menus; + // -- if program wants to return control over display + // to the firmware menus +} DISPLAY_FRAME; + + +// Version structure definition, 4 bytes +typedef union +{ + UINT32 abcd; + struct + { + UCHAR8 a; + UCHAR8 b; + UCHAR8 c; + UCHAR8 d; + } part; +} FT_VER; + + +// Versions of hardware and firmware components, 16 bytes +typedef struct +{ + FT_VER hardware; // Version of hardware (hardware.part.a = 'A' or 'B' or 'C') + FT_VER firmware; // Version of firmware ("V %d.%02d, DLL %d", firmware.part.c, + // firmware.part.d, firmware.part.b) + FT_VER ta; // Version of transfer area ("V %d.%02d", ta.part.c, ta.part.d) + char reserved[4]; +} FT_VERSION; + + +// Info structure, 64 bytes +typedef struct +{ + char device_name[DEV_NAME_LEN_MAX + 1]; // Controller name + char bt_addr[BT_ADDR_STR_LEN + 1]; // Bluetooth address as a string + char reserved; + UINT32 ta_array_start_addr; + UINT32 pgm_area_start_addr; + UINT32 pgm_area_size; + FT_VERSION version; +} TA_INFO; + + +// State structure, 100 bytes +typedef struct +{ + // Used by local program + BOOL8 pgm_initialized; + char reserved_1[7]; + + // Public state info + BOOL8 dev_mode; // See enum dev_mode_e + UINT8 id; // Should be increased by 1 each time something (except id fields and btstatus) + // is changed in this state structure + UINT8 info_id; // Should be increased by 1 each time something is changed in info structure + UINT8 config_id; // Should be increased by 1 each time something is changed in config structure + BOOL8 ext_dev_connect_state[N_EXT]; // See enum ext_dev_connect_state_e + BT_STATUS btstatus[BT_CNT_MAX]; // Status of Bluetooth connections + char reserved_2[8]; + PGM_INFO local_pgm; // Corresponds to the program currently being in the program memory +} TA_STATE; + + +// Universal inputs configuration, 4 bytes +typedef struct +{ + UINT8 mode; // See enum input_mode_e + BOOL8 digital; // FALSE = analog input, TRUE = digital input + char reserved[2]; +} UNI_CONFIG; + + +// Counter inputs configuration, 4 bytes +typedef struct +{ + UINT8 mode; // 0 = normal counter mode (change 0 -> 1 is counted) + // 1 = inverse counter mode (change 1 -> 0 is counted) + char reserved[3]; +} CNT_CONFIG; + + +// Config structure, 88 bytes +typedef struct +{ + UINT8 pgm_state_req; // See enum pgm_state_e, program state change request + char reserved_1[3]; + BOOL8 motor[N_MOTOR]; // TRUE = corresponding outputs are used as a pair of motor outputs M1...M4, + // FALSE = corresponding outputs are used as a pair of separate digital + // PWM outputs O1...O8 + UNI_CONFIG uni[N_UNI]; + CNT_CONFIG cnt[N_CNT]; + char reserved_2[32]; +} TA_CONFIG; + + +// Input structure, 68 bytes +typedef struct +{ + INT16 uni[N_UNI]; // Current values of the universal inputs + INT16 cnt_in[N_CNT]; // Current levels (0 or 1) on the counter inputs according + // to their configuration (normal or inverse) + INT16 counter[N_CNT]; // Current values of the counter inputs + INT16 display_button_left; // Number of milliseconds during which the left display button + // is being kept pressed + INT16 display_button_right; // Number of milliseconds during which the right display button + // is being kept pressed + BOOL16 cnt_resetted[N_CNT]; // Set to 1 when last requested counter reset was fulfilled + BOOL16 motor_pos_reached[N_MOTOR]; // Set to 1 by motor control if target position + // (distance from output structure) is reached + char reserved[16]; +} TA_INPUT; + + +// Output structure, 44 bytes +typedef struct +{ + UINT16 cnt_reset_cmd_id[N_CNT]; // Counter reset requests (should be increased by 1 each time + // counter reset is needed) + UINT8 master[N_MOTOR]; // If not 0, synchronize this channel with the given channel + // (1:channel 0, ...) + INT16 duty[N_PWM_CHAN]; // Selected motor outputs PWM values + UINT16 distance[N_MOTOR]; // Selected distance (counter value) at which motor shall stop + UINT16 motor_ex_cmd_id[N_MOTOR]; // Should be increased by 1 each time settings for extended + // motor control mode (duty and/or distance) are changed +} TA_OUTPUT; + + +// Display structure, 108 bytes +typedef struct +{ + DISPLAY_MSG display_msg; + DISPLAY_FRAME display_frame; +} TA_DISPLAY; + + +// Status of Transfer Area (valid only for ftMscLib), 4 bytes +typedef struct +{ + UINT8 status; // Status of transfer area + // TA_STATUS_STOP = 0 - Transfer Area is not running, + // TA_STATUS_RUN = 1 - Transfer Area is running, + // TA_STATUS_SYNC = 2 - Transfer Area is being synchronized + UINT8 iostatus; // Status of I/O communication + // SE_REMIO_REQ = 0 - Remote I/O Request was sent, + // SE_CONFIG_REQ = 1 - Set Configuration Request was sent + UINT16 ComErr; // System error code by COM port connection error +} TA_STATUS; + + +// Change structure (valid only for ftMscLib), 8 bytes +typedef struct +{ + char reserved_1[2]; + UINT8 ChangeStatus; // TRUE = there was a change in any of the following fields + UINT8 ChangeUni; // There was a change of the input value (bit 0 = I1, bit 1 = I2, ...) + UINT8 ChangeCntIn; // There was a change of the counter level (bit 0 = C1, bit 1 = C2, ...) + UINT8 ChangeCounter; // There was a change of the counter value (bit 0 = C1, bit 1 = C2, ...) + char reserved_2[2]; +} TA_CHANGE; + + +// 16-bit timers, 12 bytes +typedef struct +{ + UINT16 Timer1ms; + UINT16 Timer10ms; + UINT16 Timer100ms; + UINT16 Timer1s; + UINT16 Timer10s; + UINT16 Timer1min; +} TA_TIMER; + + +// Hook table with pointers to the firmware functions, +// that can be called by local program, 132 bytes +typedef struct +{ + // Informs the calling program if it can still run (return TRUE) or should + // immediately return to the firmware in order not to destroy the multitasking + // mechanism of the firmware (return FALSE). + BOOL32 (*IsRunAllowed) (void); + + // Returns system time in seconds, milliseconds or microseconds depending on the + // parameter unit. + UINT32 (*GetSystemTime) (enum TimerUnit unit); + + // Display pop-up message on the display of the ROBO TX Controller. If p_msg + // is NULL, then all pop-up messages are removed from the display and its cache, + // and the main frame is displayed. + void (*DisplayMsg) (struct ta_s * p_ta, char * p_msg); + + // Returns TRUE if display is currently being refreshed. A program should in such a + // case wait until the display finishes its refreshing before sending new output to it. + BOOL32 (*IsDisplayBeingRefreshed) (struct ta_s * p_ta); + + // Connect to the Bluetooth device with the given Bluetooth address through the given + // channel (1...8). If p_cb_func (pointer to the callback function) is not NULL, then the + // callback function is called to inform about the result of this command. + void (*BtConnect) (UINT32 channel, UCHAR8 * btaddr, P_CB_FUNC p_cb_func); + + // Disconnect from the Bluetooth device on the given channel (1...8). If p_cb_func + // (pointer to the callback function) is not NULL, then the callback function is called + // to inform about the result of this command. + void (*BtDisconnect) (UINT32 channel, P_CB_FUNC p_cb_func); + + // Send a message (max 255 characters) through the given Bluetooth channel (1...8). + // If p_cb_func (pointer to the callback function) is not NULL, then the callback function is called + // to inform about the result of this command. + void (*BtSend) (UINT32 channel, UINT32 len, UCHAR8 * p_msg, P_CB_FUNC p_cb_func); + + // Start wait for incoming messages on the given Bluetooth channel (1...8). If p_cb_func + // (pointer to the callback function) is not NULL, then the callback function is called + // to inform about the result of this command and about arrival of a Bluetooth message. + void (*BtStartReceive) (UINT32 channel, P_RECV_CB_FUNC p_cb_func); + + // Stop wait for incoming messages on the given Bluetooth channel (1...8). If p_cb_func + // (pointer to the callback function) is not NULL, then the callback function is called + // to inform about the result of this command. + void (*BtStopReceive) (UINT32 channel, P_RECV_CB_FUNC p_cb_func); + + // Start wait for incoming connection (i.e. listen) from the Bluetooth device with the given + // Bluetooth address on the given channel (1...8). If p_cb_func (pointer to the callback function) + // is not NULL, then the callback function is called to inform about the result of this command. + void (*BtStartListen) (UINT32 channel, UCHAR8 * btaddr, P_CB_FUNC p_cb_func); + + // Stop wait for incoming connection (i.e. listen) on the given Bluetooth channel (1...8). + // If p_cb_func (pointer to the callback function) is not NULL, then the callback function is called + // to inform about the result of this command. + void (*BtStopListen) (UINT32 channel, P_CB_FUNC p_cb_func); + + // Convert a Bluetooth address (6 bytes) to the string with the format "xx:xx:xx:xx:xx:xx". + // Returns pointer to the string with converted btaddr (same pointer as str parameter). + char *(*BtAddrToStr) (UCHAR8 * btaddr, char * str); + + // Interface to I2C API functions + UINT32 (*I2cRead) (UCHAR8 devaddr, UINT32 offset, UCHAR8 protocol, P_I2C_CB_FUNC p_cb_func); + UINT32 (*I2cWrite) (UCHAR8 devaddr, UINT32 offset, UINT16 data, UCHAR8 protocol, P_I2C_CB_FUNC p_cb_func); + + // Interface to some runtime library functions. + INT32 (*sprintf) (char * s, const char * format, ...); + INT32 (*memcmp) (const void * s1, const void * s2, UINT32 n); + void *(*memcpy) (void * s1, const void * s2, UINT32 n); + void *(*memmove) (void * s1, const void * s2, UINT32 n); + void *(*memset) (void * s, INT32 c, UINT32 n); + char *(*strcat) (char * s1, const char * s2); + char *(*strncat) (char * s1, const char * s2, UINT32 n); + char *(*strchr) (const char * s, INT32 c); + char *(*strrchr) (const char * s, INT32 c); + INT32 (*strcmp) (const char * s1, const char * s2); + INT32 (*strncmp) (const char * s1, const char * s2, UINT32 n); + INT32 (*stricmp) (const char * s1, const char * s2); + INT32 (*strnicmp) (const char * s1, const char * s2, UINT32 n); + char *(*strcpy) (char * s1, const char * s2); + char *(*strncpy) (char * s1, const char * s2, UINT32 n); + UINT32 (*strlen) (const char * s); + char *(*strstr) (const char * s1, const char * s2); + char *(*strtok) (char * s1, const char * s2); + char *(*strupr) (char * s); + char *(*strlwr) (char * s); + INT32 (*atoi) (const char * nptr); +} TA_HOOK_TABLE; + + + +// ============================================================================ +// Transfer Area (TA) of ROBO TX Controller (one element of TA array) +// ============================================================================ +#define RESERVED_1_SIZE 28 +#define RESERVED_2_SIZE \ + (1024 - ( \ + sizeof(TA_INFO) + \ + sizeof(TA_STATE) + \ + sizeof(TA_CONFIG) + \ + sizeof(TA_INPUT) + \ + sizeof(TA_OUTPUT) + \ + sizeof(TA_DISPLAY) + \ + sizeof(TA_STATUS) + \ + sizeof(TA_CHANGE) + \ + sizeof(TA_TIMER) + \ + RESERVED_1_SIZE + \ + sizeof(TA_HOOK_TABLE) \ + )) + + +typedef struct ta_s +{ + TA_INFO info; // info structure + TA_STATE state; // state structure + TA_CONFIG config; // config structure + TA_INPUT input; // input structure + TA_OUTPUT output; // output structure + TA_DISPLAY display; // display structure + TA_STATUS status; // status structure + TA_CHANGE change; // change structure + TA_TIMER timer; // 16-bit timers + + char reserved_1[RESERVED_1_SIZE]; + + TA_HOOK_TABLE hook_table; // hook table with functions pointers + + char reserved_2[RESERVED_2_SIZE]; +} TA; + + +#endif // __ROBO_TX_FW_H__ diff --git a/Demo_C/Common/ROBO_TX_PRG.h b/Demo_C/Common/ROBO_TX_PRG.h new file mode 100644 index 0000000..a5ae875 --- /dev/null +++ b/Demo_C/Common/ROBO_TX_PRG.h @@ -0,0 +1,126 @@ +//============================================================================= +// Header file with definition of the software interface to the +// ROBO TX Controller program. +// Can be used for building C-programs which can run under control +// of the ROBO TX Controller firmware in download (local) mode. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#ifndef __ROBO_TX_PRG_H__ +#define __ROBO_TX_PRG_H__ + +#include + +#define CALL_CYCLE_MS 1 // firmware calls program each millisecond + +#define MIN(a, b) ((a <= b) ? a : b) +#define MAX(a, b) ((a >= b) ? a : b) + +#define TA_VERSION 0x08010101 // Transfer Area version. Is used by firmware to check if format of the + // Transfer Area used in program is the same as the one used in firmware. + +#define PRG_MEM_START 0x30700000 // start address of the program memory +#define PRG_MEM_SIZE 0x000D0000 // size of the program memory + +#define PRG_MAGIC 0x336699AA + +#define MAX_FRAME_SIZE 1024 // maximum size of displayable frame (display buffer size) + +#if defined(__cplusplus) + #define NULL 0L +#else + #define NULL ((void *)0) +#endif + +#undef TRUE +#define TRUE (1 == 1) + +#undef FALSE +#define FALSE (!TRUE) + +#ifndef __cplusplus +typedef enum +{ + false = FALSE, + true = TRUE +} bool; +#endif // __cplusplus + +typedef signed char CHAR8; +typedef unsigned char UCHAR8; + +typedef unsigned char BOOL8; // boolean variable (should be TRUE or FALSE) +typedef unsigned short BOOL16; // boolean variable (should be TRUE or FALSE) +typedef unsigned long BOOL32; // boolean variable (should be TRUE or FALSE) + +typedef signed char INT8; +typedef signed short INT16; +typedef signed int INT32; + +typedef unsigned char UINT8; +typedef unsigned short UINT16; +typedef unsigned long UINT32; + +#include "ROBO_TX_FW.h" + +enum bt_commands_e +{ + CMD_NO_CMD, + CMD_CONNECT, + CMD_DISCONNECT, + CMD_START_LISTEN, + CMD_STOP_LISTEN, + CMD_START_RECEIVE, + CMD_STOP_RECEIVE, + CMD_SEND +}; + +extern UCHAR8 bt_address_table[BT_CNT_MAX][BT_ADDR_LEN]; + +// At the beginning of the program code should be this structure +struct prg_code_intro_s +{ + unsigned long magic; // PRG_MAGIC + FT_VER ta_version; // TA_VERSION + unsigned long entry; // entry point of the program, usually address of + // the program dispatcher (PrgDisp) function +}; + + +// This function is called only once by the program dispatcher (PrgDisp) at the very first call +// of the program dispatcher by the firmware +void PrgInit +( + TA * p_ta, // pointer to the array of transfer area parts + int n_ta // number of transfer area parts in array (equal to TA_COUNT) +); + + +// This function is called periodically by the program dispatcher (PrgDisp) with the period +// of CALL_CYCLE_MS +int PrgTic +( + TA * p_ta, // pointer to the array of transfer area parts + int n_ta // number of transfer area parts in array (equal to TA_COUNT) +); + + +// This function converts the status of the executed Bluetooth command to a string +// and displays this string on the display of a ROBO TX Controller +BOOL32 BtDisplayCommandStatus +( + TA * p_ta, + UCHAR8 * bt_address, + UINT32 channel, + enum bt_commands_e command, + CHAR8 command_status +); + + +#endif // __ROBO_TX_PRG_H__ diff --git a/Demo_C/Common/ld.lcf b/Demo_C/Common/ld.lcf new file mode 100644 index 0000000..3befb1e --- /dev/null +++ b/Demo_C/Common/ld.lcf @@ -0,0 +1,171 @@ +PLC_APP_SIZE = 0x000D0000; +PLC_APP_PA_START = 0x20700000; +PLC_APP_VA_START = 0x30700000; + +PLC_APP_PA_END = PLC_APP_PA_START + PLC_APP_SIZE; +PLC_APP_VA_END = PLC_APP_VA_START + PLC_APP_SIZE; + + +MEMORY +{ + plc_app_area_pa (RXA) : ORIGIN = 0x20700000, LENGTH = 832K + plc_app_area_va (RXA) : ORIGIN = 0x30700000, LENGTH = 832K +} + + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") + + +OUTPUT_ARCH(arm) + + +PHDRS +{ + code PT_LOAD ; /* segment containing all sections to load in program memory */ + debug PT_LOAD ; /* segment containing all sections for gdb debug */ +} + + +SECTIONS +{ + /* ******************** code ******************** */ + /* Code RO */ + + . = ALIGN(4); + + .code : + { + _code_start = .; + + *(.intro) + *(.code) + *(.text*) + *(.glue_7t) + *(.glue_7) + *(.vfp11_veneer) + *(.v4_bx) + + . = ALIGN(4); + + _code_end = .; + + } >plc_app_area_va AT>plc_app_area_pa :code + + + /* ******************** const data ******************** */ + /* Data RO */ + + . = ALIGN(4); + + .data_const : + { + _rodata_start = .; + + *(.rodata*) /* C-compiler output .read only data */ + *(.eh_frame) + + . = ALIGN(4); + + _rodata_end = .; + + } >plc_app_area_va AT>plc_app_area_pa :code + + + /* ******************** initialized data ******************** */ + /* Data RW */ + + . = ALIGN(4); + + .data_initialized : + { + _data_initialized_start = .; + + *(.data) /* C-compiler output .data */ + + _data_initialized_end = .; + + . = ALIGN(4); + + } >plc_app_area_va AT>plc_app_area_pa :code + + + /* ******************** zero data ******************** */ + /* Data RW */ + + . = ALIGN(4); + + .data_zero : + { + . = ALIGN(4); + + _data_zero_start = .; + + *(.data_zero) + *(COMMON) + *(.dynbss) /* bss "Block Started by Symbol" */ + *(.bss .bss.* .gnu.linkonce.b.*) + + _data_zero_end = .; + + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(4); + + } >plc_app_area_va :NONE + + . = ALIGN(4); + + + /* ******************** .comment ******************** */ + + /DISCARD/ : + { + *(.comment) + + } :NONE + + + /* ******************** gdb debug ******************** */ + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } :debug + .stabstr 0 : { *(.stabstr) } :debug + .stab.excl 0 : { *(.stab.excl) } :debug + .stab.exclstr 0 : { *(.stab.exclstr) } :debug + .stab.index 0 : { *(.stab.index) } :debug + .stab.indexstr 0 : { *(.stab.indexstr) } :debug + .comment 0 : { *(.comment) } :debug + + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + + /* DWARF 1 */ + .debug 0 : { *(.debug) } :debug + .line 0 : { *(.line) } :debug + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } :debug + .debug_sfnames 0 : { *(.debug_sfnames) } :debug + + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } :debug + .debug_pubnames 0 : { *(.debug_pubnames) } :debug + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } :debug + .debug_abbrev 0 : { *(.debug_abbrev) } :debug + .debug_line 0 : { *(.debug_line) } :debug + .debug_frame 0 : { *(.debug_frame) } :debug + .debug_str 0 : { *(.debug_str) } :debug + .debug_loc 0 : { *(.debug_loc) } :debug + .debug_macinfo 0 : { *(.debug_macinfo) } :debug + + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } :debug + .debug_funcnames 0 : { *(.debug_funcnames) } :debug + .debug_typenames 0 : { *(.debug_typenames) } :debug + .debug_varnames 0 : { *(.debug_varnames) } :debug +} + diff --git a/Demo_C/Common/prg_bt.c b/Demo_C/Common/prg_bt.c new file mode 100644 index 0000000..ef3bfdd --- /dev/null +++ b/Demo_C/Common/prg_bt.c @@ -0,0 +1,142 @@ +//============================================================================= +// Helper functions for the programs which use Bluetooth. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.H" + +static char str[128]; + + +/*----------------------------------------------------------------------------- + * Function Name : BtCommandStatusToString + * + * Converts the status of the executed Bluetooth command to a string. + *-----------------------------------------------------------------------------*/ +static char * BtCommandStatusToString +( + enum bt_commands_e command, + CHAR8 command_status +) +{ + char * str = ""; + + switch (command_status) + { + case BT_SUCCESS: // Successful end of command + switch (command) + { + case CMD_CONNECT: + str = "Connected"; + break; + case CMD_DISCONNECT: + str = "Disconnected"; + break; + case CMD_START_LISTEN: + str = "Started listening"; + break; + case CMD_STOP_LISTEN: + str = "Stopped listening"; + break; + case CMD_START_RECEIVE: + str = "Started receiving"; + break; + case CMD_STOP_RECEIVE: + str = "Stopped receiving"; + break; + case CMD_SEND: + str = "Message sent"; + break; + default: + break; + } + break; + case BT_CON_EXIST: + str = "Already connected"; + break; + case BT_CON_SETUP: + str = "Establishing of connection is ongoing"; + break; + case BT_SWITCHED_OFF: + str = "Cannot connect/listen, Bluetooth is set to off"; + break; + case BT_ALL_CHAN_BUSY: + str = "Cannot connect, no more free Bluetooth channels"; + break; + case BT_NOT_ROBOTX: + str = "Cannot connect/listen, device is not a ROBO TX Controller"; + break; + case BT_CON_TIMEOUT: + str = "Cannot connect, timeout, no device with such a BT address"; + break; + case BT_CON_INVALID: + str = "Connection does not exist"; + break; + case BT_CON_RELEASE: + str = "Disconnecting is ongoing"; + break; + case BT_LISTEN_ACTIVE: + str = "Listen is already active"; + break; + case BT_RECEIVE_ACTIVE: + str = "Receive is already active"; + break; + case BT_CON_INDICATION: + str = "Passive connection establishment (incoming connection)"; + break; + case BT_DISCON_INDICATION: + str = "Passive disconnection (initiated by remote end)"; + break; + case BT_MSG_INDICATION: + str = "Received data (incoming message)"; + break; + case BT_CHANNEL_BUSY: + str = "BT channel is busy"; + break; + case BT_BTADDR_BUSY: + str = "BT address is already used by another channel"; + break; + case BT_NO_LISTEN_ACTIVE: + str = "Cannot connect, no active listen on remote end"; + break; + default: + break; + } + return str; +} + + +/*----------------------------------------------------------------------------- + * Function Name : BtDisplayCommandStatus + * + * Converts the status of the executed Bluetooth command to a string + * and displays this string on the display of a ROBO TX Controller. + *-----------------------------------------------------------------------------*/ +BOOL32 BtDisplayCommandStatus +( + TA * p_ta, + UCHAR8 * bt_address, + UINT32 channel, + enum bt_commands_e command, + CHAR8 command_status +) +{ + BOOL32 rc = FALSE; + char bt_addr_str[BT_ADDR_STR_LEN + 1]; + + if (!p_ta->hook_table.IsDisplayBeingRefreshed(p_ta)) // wait until display is refreshed + { + p_ta->hook_table.sprintf(str, "Ch %u, %s\n%s", channel, + p_ta->hook_table.BtAddrToStr(bt_address, bt_addr_str), + BtCommandStatusToString(command, command_status)); + p_ta->hook_table.DisplayMsg(p_ta, str); + rc = TRUE; + } + return rc; +} diff --git a/Demo_C/Common/prg_bt_addr.c b/Demo_C/Common/prg_bt_addr.c new file mode 100644 index 0000000..3aee79b --- /dev/null +++ b/Demo_C/Common/prg_bt_addr.c @@ -0,0 +1,20 @@ +//============================================================================= +// Table of Bluetooth addresses of all ROBO TX Controllers which are used +// for Bluetooth communicating programs. It should be adjusted to the concrete +// set of ROBO TX Controllers, planned to be used for Bluetooth communication. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.H" + +UCHAR8 bt_address_table[BT_CNT_MAX][BT_ADDR_LEN] = +{ + {0x00, 0x13, 0x7B, 0x53, 0x10, 0xE7}, // Bluetooth-Adresse von ROBO TX 1 (MASTER) + {0x00, 0x13, 0x7B, 0x52, 0xB2, 0x11} // Bluetooth-Adresse von ROBO TX 2 (SLAVE) +}; diff --git a/Demo_C/Common/prg_disp.c b/Demo_C/Common/prg_disp.c new file mode 100644 index 0000000..1986bb4 --- /dev/null +++ b/Demo_C/Common/prg_disp.c @@ -0,0 +1,51 @@ +//============================================================================= +// Program dispatcher. +// This function is an entry point to any ROBO TX Controller +// program. It is called periodically by the ROBO TX Controller +// firmware in download (local) mode. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.H" + + +static int PrgDisp +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +); + + +const struct prg_code_intro_s prg_code_intro __attribute__ ((section (".intro"))) = +{ + /* magic */ PRG_MAGIC, + /* ta_version */ {TA_VERSION}, + /* entry */ (unsigned long) PrgDisp +}; + + +// This function is called periodically by the ROBO TX Controller firmware with the period +// of CALL_CYCLE_MS +static int PrgDisp +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_LOCAL]; + + if (!p_ta->state.pgm_initialized) + { + PrgInit(p_ta_array, ta_count); + + p_ta->state.pgm_initialized = TRUE; + } + + return PrgTic(p_ta_array, ta_count); +} diff --git a/Demo_C/Demo/I2cTemp/I2cTemp.c b/Demo_C/Demo/I2cTemp/I2cTemp.c new file mode 100644 index 0000000..f0aea5b --- /dev/null +++ b/Demo_C/Demo/I2cTemp/I2cTemp.c @@ -0,0 +1,199 @@ +//============================================================================= +// Demo program I2cTemp.c +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// This example shows how to sense the temperature with the I2C temperature +// sensor DS1631. After writing some initialisation bytes the program enters +// a loop updating the measured value for the temperature every 1000ms. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define LIGHT_ON DUTY_MAX +#define LIGHT_OFF 0 + +static enum +{ + INIT_1, + WAIT_1, + INIT_2, + WAIT_2, + INIT_3, + WAIT_3, + INIT_4, + WAIT_4, + LOOP_WRITE, + LOOP_WRITE_WAIT, + LOOP_READ, + LOOP_READ_WAIT, + LOOP_CLEAR_PREV_SCREEN, + LOOP_DISP_RESULT, + LOOP_WAIT_NEXT_ACTION +} stage; + +unsigned int ticks; +unsigned int next_action=0; +UINT16 status=0; +UINT16 value=0; + +/*----------------------------------------------------------------------------- + * Function Name : I2cCallback + * + * This callback function is called to inform the program about result (status) + * of execution of any I2c command. + *-----------------------------------------------------------------------------*/ +static void I2cCallback +( + TA * p_ta_array, + I2C_CB * p_data +) +{ + //TA * p_ta = &p_ta_array[TA_LOCAL]; + + status = p_data->status; + value = p_data->value; + + stage++; +} + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + //TA * p_ta = &p_ta_array[TA_LOCAL]; + + ticks = 0; + stage = INIT_1; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_LOCAL]; + + char str[64]; + int fraction=0; + unsigned char temp=0; + char sign = ' '; + + ticks++; + + while(1) + { + switch(stage) + { + case INIT_1: + p_ta->hook_table.I2cWrite (0x4F, 0xAC, 0x02, 0x85, I2cCallback); + stage++; + return rc; + + case WAIT_1: + case WAIT_2: + case WAIT_3: + case WAIT_4: + // waiting for callback + return rc; + + case INIT_2: + p_ta->hook_table.I2cWrite (0x4F, 0xA1, 0x2800, 0x89, I2cCallback); + stage++; + return rc; + + case INIT_3: + p_ta->hook_table.I2cWrite (0x4F, 0xA2, 0x0A00, 0x89, I2cCallback); + stage++; + return rc; + + case INIT_4: + p_ta->hook_table.I2cWrite (0x4F, 0x00, 0x51, 0x84, I2cCallback); + stage++; + return rc; + + case LOOP_WRITE: + p_ta->hook_table.I2cWrite (0x4F, 0x00, 0xAA, 0x84, I2cCallback); + stage++; + return rc; + + case LOOP_WRITE_WAIT: + // waiting for callback + return rc; + + case LOOP_READ: + p_ta->hook_table.I2cRead (0x4F, 0x00, 0x88, I2cCallback); + stage++; + return rc; + + case LOOP_READ_WAIT: + // waiting for callback + return rc; + + case LOOP_CLEAR_PREV_SCREEN: + p_ta->hook_table.DisplayMsg(p_ta, NULL); // clear previous Msg output + next_action = ticks + 20; + stage++; + return rc; + + case LOOP_DISP_RESULT: + if(ticks >= next_action) // wait for previous Msg output to be cleared + { + if(value & 0x0080) fraction = 5; + else fraction = 0; + if(value & 0x8000) + { + sign = '-'; + temp = value >> 8; + temp = ~temp; + } + else + { + sign = '+'; + temp = value >> 8; + } + p_ta->hook_table.sprintf(str, "Temperature: %c%d,%d C", sign, temp, fraction); + p_ta->hook_table.DisplayMsg(p_ta, str); + next_action = ticks + 1000; + stage++; + } + return rc; + + case LOOP_WAIT_NEXT_ACTION: + if(ticks >= next_action) + { + stage = LOOP_WRITE; + } + return rc; + } + } + + return rc; +} diff --git a/Demo_C/Demo/I2cTemp/clean.bat b/Demo_C/Demo/I2cTemp/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/I2cTemp/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/I2cTemp/load_flash.bat b/Demo_C/Demo/I2cTemp/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/I2cTemp/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/I2cTemp/load_ramdisk.bat b/Demo_C/Demo/I2cTemp/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/I2cTemp/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/I2cTemp/load_ramdisk_bt.bat b/Demo_C/Demo/I2cTemp/load_ramdisk_bt.bat new file mode 100644 index 0000000..302e3e3 --- /dev/null +++ b/Demo_C/Demo/I2cTemp/load_ramdisk_bt.bat @@ -0,0 +1,2 @@ +@echo off +call load_ramdisk.bat COM14 diff --git a/Demo_C/Demo/I2cTemp/make.bat b/Demo_C/Demo/I2cTemp/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/I2cTemp/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/I2cTemp/param.mk b/Demo_C/Demo/I2cTemp/param.mk new file mode 100644 index 0000000..ad92ac1 --- /dev/null +++ b/Demo_C/Demo/I2cTemp/param.mk @@ -0,0 +1,2 @@ +PROJ = I2CTEMP +OBJS = I2CTEMP.o diff --git a/Demo_C/Demo/I2cTemp/run.bat b/Demo_C/Demo/I2cTemp/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/I2cTemp/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/I2cTemp/stop.bat b/Demo_C/Demo/I2cTemp/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/I2cTemp/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/I2cTpa81/I2cTpa81.c b/Demo_C/Demo/I2cTpa81/I2cTpa81.c new file mode 100644 index 0000000..cdf9b55 --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/I2cTpa81.c @@ -0,0 +1,234 @@ +//============================================================================= +// Demo program "I2cTpa81.c". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// This example shows how to sense the temperature sensor array (thermopile) of +// the I2C thermopile sensor TPA81. After some initialisation the program enters +// a loop updating the measured values for the sensors every 1000ms. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define LIGHT_ON DUTY_MAX +#define LIGHT_OFF 0 + +static enum +{ + INIT_1, + WAIT_1, + LOOP_READ_AMB, + LOOP_READ_AMB_WAIT, + LOOP_READ_P1, + LOOP_READ_P1_WAIT, + LOOP_READ_P2, + LOOP_READ_P2_WAIT, + LOOP_READ_P3, + LOOP_READ_P3_WAIT, + LOOP_READ_P4, + LOOP_READ_P4_WAIT, + LOOP_READ_P5, + LOOP_READ_P5_WAIT, + LOOP_READ_P6, + LOOP_READ_P6_WAIT, + LOOP_READ_P7, + LOOP_READ_P7_WAIT, + LOOP_READ_P8, + LOOP_READ_P8_WAIT, + LOOP_CLEAR_PREV_SCREEN, + LOOP_DISP_RESULT, + LOOP_WAIT_NEXT_ACTION +} stage; + +unsigned int ticks; +unsigned int next_action=0; +UINT16 status=0; +UINT16 value=0; +unsigned char amb=0; +unsigned char p[8]={0,0,0,0,0,0,0,0}; +unsigned char pidx=255; + +/*----------------------------------------------------------------------------- + * Function Name : I2cCallback + * + * This callback function is called to inform the program about result (status) + * of execution of any I2c command. + *-----------------------------------------------------------------------------*/ +static void I2cCallback +( + TA * p_ta_array, + I2C_CB * p_data +) +{ + //TA * p_ta = &p_ta_array[TA_LOCAL]; + + status = p_data->status; + value = p_data->value; + + if(pidx == 128) + { + amb = (unsigned char)value; + } + else if(pidx != 255) + { + p[pidx] = (unsigned char)value; + } + + stage++; +} + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + //TA * p_ta = &p_ta_array[TA_LOCAL]; + + ticks = 0; + stage = INIT_1; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_LOCAL]; + + char str[64]; + + ticks++; + + while(1) + { + switch(stage) + { + case INIT_1: + p_ta->hook_table.I2cRead (0x68, 0x00, 0xA5, I2cCallback); + stage++; + return rc; + + case WAIT_1: + // waiting for callback + return rc; + + case LOOP_READ_AMB: + p_ta->hook_table.I2cRead (0x68, 0x01, 0xA5, I2cCallback); + pidx = 128; + stage++; + return rc; + + case LOOP_READ_P1: + p_ta->hook_table.I2cRead (0x68, 0x02, 0xA5, I2cCallback); + pidx = 0; + stage++; + return rc; + + case LOOP_READ_P2: + p_ta->hook_table.I2cRead (0x68, 0x03, 0xA5, I2cCallback); + pidx = 1; + stage++; + return rc; + + case LOOP_READ_P3: + p_ta->hook_table.I2cRead (0x68, 0x04, 0xA5, I2cCallback); + pidx = 2; + stage++; + return rc; + + case LOOP_READ_P4: + p_ta->hook_table.I2cRead (0x68, 0x05, 0xA5, I2cCallback); + pidx = 3; + stage++; + return rc; + + case LOOP_READ_P5: + p_ta->hook_table.I2cRead (0x68, 0x06, 0xA5, I2cCallback); + pidx = 4; + stage++; + return rc; + + case LOOP_READ_P6: + p_ta->hook_table.I2cRead (0x68, 0x07, 0xA5, I2cCallback); + pidx = 5; + stage++; + return rc; + + case LOOP_READ_P7: + p_ta->hook_table.I2cRead (0x68, 0x08, 0xA5, I2cCallback); + pidx = 6; + stage++; + return rc; + + case LOOP_READ_P8: + p_ta->hook_table.I2cRead (0x68, 0x09, 0xA5, I2cCallback); + pidx = 7; + stage++; + return rc; + + case LOOP_READ_AMB_WAIT: + case LOOP_READ_P1_WAIT: + case LOOP_READ_P2_WAIT: + case LOOP_READ_P3_WAIT: + case LOOP_READ_P4_WAIT: + case LOOP_READ_P5_WAIT: + case LOOP_READ_P6_WAIT: + case LOOP_READ_P7_WAIT: + case LOOP_READ_P8_WAIT: + // waiting for callback + return rc; + + case LOOP_CLEAR_PREV_SCREEN: + p_ta->hook_table.DisplayMsg(p_ta, NULL); // clear previous Msg output + next_action = ticks + 20; + stage++; + return rc; + + case LOOP_DISP_RESULT: + if(ticks >= next_action) // wait for previous Msg output to be cleared + { + p_ta->hook_table.sprintf(str, "Amb.Temp.: %d C\n%d, %d, %d, %d\n%d, %d, %d, %d", + amb, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]); + p_ta->hook_table.DisplayMsg(p_ta, str); + next_action = ticks + 1000; + stage++; + } + return rc; + + case LOOP_WAIT_NEXT_ACTION: + if(ticks >= next_action) + { + stage = LOOP_READ_AMB; + } + return rc; + } + } + + return rc; +} diff --git a/Demo_C/Demo/I2cTpa81/clean.bat b/Demo_C/Demo/I2cTpa81/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/I2cTpa81/load_flash.bat b/Demo_C/Demo/I2cTpa81/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/I2cTpa81/load_ramdisk.bat b/Demo_C/Demo/I2cTpa81/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/I2cTpa81/load_ramdisk_bt.bat b/Demo_C/Demo/I2cTpa81/load_ramdisk_bt.bat new file mode 100644 index 0000000..302e3e3 --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/load_ramdisk_bt.bat @@ -0,0 +1,2 @@ +@echo off +call load_ramdisk.bat COM14 diff --git a/Demo_C/Demo/I2cTpa81/make.bat b/Demo_C/Demo/I2cTpa81/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/I2cTpa81/param.mk b/Demo_C/Demo/I2cTpa81/param.mk new file mode 100644 index 0000000..7e48d3e --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/param.mk @@ -0,0 +1,2 @@ +PROJ = I2CTPA81 +OBJS = I2CTPA81.o diff --git a/Demo_C/Demo/I2cTpa81/run.bat b/Demo_C/Demo/I2cTpa81/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/I2cTpa81/stop.bat b/Demo_C/Demo/I2cTpa81/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/I2cTpa81/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/LED/LED.c b/Demo_C/Demo/LED/LED.c new file mode 100644 index 0000000..2b8beea --- /dev/null +++ b/Demo_C/Demo/LED/LED.c @@ -0,0 +1,180 @@ +//============================================================================= +// Demo program "Light run". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Switches one after another six lamps connected to the outputs O1...O6. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define LIGHT_ON DUTY_MAX +#define LIGHT_OFF 0 + +#define BEG_LAMP_IDX 0 +#define END_LAMP_IDX 0 + +static unsigned long cur_time; +static unsigned long prev_time; +static enum {ON_1, PAUSE_1, ON_2, PAUSE_2} stage; +static int lamp_idx; +static int n_loops; +static int wait; + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + prev_time = 0; + stage = ON_2; + lamp_idx = BEG_LAMP_IDX; + n_loops = 10; + wait = 1000; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_LOCAL]; + + // Get the current value of the system time + cur_time = p_ta->hook_table.GetSystemTime(TIMER_UNIT_MILLISECONDS); + + while (1) + { + switch (stage) + { + case ON_1: + if (prev_time == 0) + { + // Switch the current lamp on + p_ta->output.duty[lamp_idx] = LIGHT_ON; + + // Store the current value of the system time + prev_time = cur_time; + } + else + { + // The lamp should be on for the number of milliseconds from the variable "wait" + if (cur_time - prev_time >= wait) + { + // Switch the current lamp off + p_ta->output.duty[lamp_idx] = LIGHT_OFF; + + if (lamp_idx + 1 <= END_LAMP_IDX) + { + prev_time = 0; + lamp_idx++; // switch to the next lamp + continue; + } + else + { + // Store the current value of the system time + prev_time = cur_time; + + stage = PAUSE_1; + } + } + } + return rc; + + case PAUSE_1: + // All lamps should be off for the number of milliseconds from the variable "wait" + if (cur_time - prev_time >= wait) + { + prev_time = 0; + stage = ON_2; + } + else + { + return rc; + } + + case ON_2: + if (prev_time == 0) + { + // Switch the current lamp on + p_ta->output.duty[lamp_idx] = LIGHT_ON; + + // Store the current value of the system time + prev_time = cur_time; + } + else + { + // The lamp should be on for the number of milliseconds from the variable "wait" + if (cur_time - prev_time >= wait) + { + // Switch the current lamp off + p_ta->output.duty[lamp_idx] = LIGHT_OFF; + + if (lamp_idx - 1 >= BEG_LAMP_IDX) + { + prev_time = 0; + lamp_idx--; // switch to the previous lamp + continue; + } + else + { + // Store the current value of the system time + prev_time = cur_time; + + stage = PAUSE_2; + } + } + } + return rc; + + case PAUSE_2: + // All lamps should be off for 1 second + if (cur_time - prev_time >= 1000) + { + if (--n_loops <= 0) + { + rc = 0; // stop program + } + else + { + wait /= 2; + prev_time = 0; + stage = ON_1; + continue; + } + } + return rc; + + default: + return rc; + } + } + return rc; +} diff --git a/Demo_C/Demo/LED/clean.bat b/Demo_C/Demo/LED/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/LED/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/LED/load_flash.bat b/Demo_C/Demo/LED/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/LED/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/LED/load_ramdisk.bat b/Demo_C/Demo/LED/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/LED/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/LED/make.bat b/Demo_C/Demo/LED/make.bat new file mode 100644 index 0000000..aa17c1c --- /dev/null +++ b/Demo_C/Demo/LED/make.bat @@ -0,0 +1,12 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +::set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/LED/param.mk b/Demo_C/Demo/LED/param.mk new file mode 100644 index 0000000..2dbab29 --- /dev/null +++ b/Demo_C/Demo/LED/param.mk @@ -0,0 +1,2 @@ +PROJ = LightRun +OBJS = LightRun.o diff --git a/Demo_C/Demo/LED/run.bat b/Demo_C/Demo/LED/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/LED/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/LED/stop.bat b/Demo_C/Demo/LED/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/LED/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/LightRun/LightRun.c b/Demo_C/Demo/LightRun/LightRun.c new file mode 100644 index 0000000..2b8beea --- /dev/null +++ b/Demo_C/Demo/LightRun/LightRun.c @@ -0,0 +1,180 @@ +//============================================================================= +// Demo program "Light run". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Switches one after another six lamps connected to the outputs O1...O6. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define LIGHT_ON DUTY_MAX +#define LIGHT_OFF 0 + +#define BEG_LAMP_IDX 0 +#define END_LAMP_IDX 0 + +static unsigned long cur_time; +static unsigned long prev_time; +static enum {ON_1, PAUSE_1, ON_2, PAUSE_2} stage; +static int lamp_idx; +static int n_loops; +static int wait; + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + prev_time = 0; + stage = ON_2; + lamp_idx = BEG_LAMP_IDX; + n_loops = 10; + wait = 1000; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_LOCAL]; + + // Get the current value of the system time + cur_time = p_ta->hook_table.GetSystemTime(TIMER_UNIT_MILLISECONDS); + + while (1) + { + switch (stage) + { + case ON_1: + if (prev_time == 0) + { + // Switch the current lamp on + p_ta->output.duty[lamp_idx] = LIGHT_ON; + + // Store the current value of the system time + prev_time = cur_time; + } + else + { + // The lamp should be on for the number of milliseconds from the variable "wait" + if (cur_time - prev_time >= wait) + { + // Switch the current lamp off + p_ta->output.duty[lamp_idx] = LIGHT_OFF; + + if (lamp_idx + 1 <= END_LAMP_IDX) + { + prev_time = 0; + lamp_idx++; // switch to the next lamp + continue; + } + else + { + // Store the current value of the system time + prev_time = cur_time; + + stage = PAUSE_1; + } + } + } + return rc; + + case PAUSE_1: + // All lamps should be off for the number of milliseconds from the variable "wait" + if (cur_time - prev_time >= wait) + { + prev_time = 0; + stage = ON_2; + } + else + { + return rc; + } + + case ON_2: + if (prev_time == 0) + { + // Switch the current lamp on + p_ta->output.duty[lamp_idx] = LIGHT_ON; + + // Store the current value of the system time + prev_time = cur_time; + } + else + { + // The lamp should be on for the number of milliseconds from the variable "wait" + if (cur_time - prev_time >= wait) + { + // Switch the current lamp off + p_ta->output.duty[lamp_idx] = LIGHT_OFF; + + if (lamp_idx - 1 >= BEG_LAMP_IDX) + { + prev_time = 0; + lamp_idx--; // switch to the previous lamp + continue; + } + else + { + // Store the current value of the system time + prev_time = cur_time; + + stage = PAUSE_2; + } + } + } + return rc; + + case PAUSE_2: + // All lamps should be off for 1 second + if (cur_time - prev_time >= 1000) + { + if (--n_loops <= 0) + { + rc = 0; // stop program + } + else + { + wait /= 2; + prev_time = 0; + stage = ON_1; + continue; + } + } + return rc; + + default: + return rc; + } + } + return rc; +} diff --git a/Demo_C/Demo/LightRun/clean.bat b/Demo_C/Demo/LightRun/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/LightRun/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/LightRun/load_flash.bat b/Demo_C/Demo/LightRun/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/LightRun/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/LightRun/load_ramdisk.bat b/Demo_C/Demo/LightRun/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/LightRun/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/LightRun/make.bat b/Demo_C/Demo/LightRun/make.bat new file mode 100644 index 0000000..aa17c1c --- /dev/null +++ b/Demo_C/Demo/LightRun/make.bat @@ -0,0 +1,12 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +::set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/LightRun/param.mk b/Demo_C/Demo/LightRun/param.mk new file mode 100644 index 0000000..2dbab29 --- /dev/null +++ b/Demo_C/Demo/LightRun/param.mk @@ -0,0 +1,2 @@ +PROJ = LightRun +OBJS = LightRun.o diff --git a/Demo_C/Demo/LightRun/run.bat b/Demo_C/Demo/LightRun/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/LightRun/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/LightRun/stop.bat b/Demo_C/Demo/LightRun/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/LightRun/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/MotorEx_2M_Master/MotorEx_2M_Master.c b/Demo_C/Demo/MotorEx_2M_Master/MotorEx_2M_Master.c new file mode 100644 index 0000000..8d82065 --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/MotorEx_2M_Master.c @@ -0,0 +1,114 @@ +//============================================================================= +// Demo program "Extended motor control mode with two motors on Master". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Continuously starts two synchronized motors with changing rotation directions. +// Motors are connected to outputs M1 and M2. Pulses from the motors are +// calculated by the counters C1 and C2. The motors are stopped and rotation +// direction is changed after both counters reach the value of 200. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define TA_IDX TA_LOCAL +#define MASTER_MOTOR_NUMBER 1 +#define MASTER_MOTOR_IDX (MASTER_MOTOR_NUMBER - 1) +#define SLAVE_MOTOR_NUMBER 2 +#define SLAVE_MOTOR_IDX (SLAVE_MOTOR_NUMBER - 1) + +static BOOL32 rotation_direction; +static BOOL32 prev_rotation_direction; + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_IDX]; + + // Configure master motor output to be used as a motor output + p_ta->config.motor[MASTER_MOTOR_IDX] = TRUE; + + // Configure slave motor output to be used as a motor output + p_ta->config.motor[SLAVE_MOTOR_IDX] = TRUE; + + // Inform firmware that configuration was changed + p_ta->state.config_id += 1; + + rotation_direction = FALSE; + prev_rotation_direction = !rotation_direction; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_IDX]; + + if (rotation_direction != prev_rotation_direction) + { + // Set master motor duty depending on rotation_direction + p_ta->output.duty[2 * MASTER_MOTOR_IDX + 0] = (rotation_direction) ? DUTY_MAX : 0; + p_ta->output.duty[2 * MASTER_MOTOR_IDX + 1] = (rotation_direction) ? 0 : DUTY_MAX; + + // Set slave motor duty depending on rotation_direction + p_ta->output.duty[2 * SLAVE_MOTOR_IDX + 0] = (rotation_direction) ? DUTY_MAX : 0; + p_ta->output.duty[2 * SLAVE_MOTOR_IDX + 1] = (rotation_direction) ? 0 : DUTY_MAX; + + // Master motor should run until counter reaches 200 + p_ta->output.distance[MASTER_MOTOR_IDX] = 200; + + // Slave motor should run until counter reaches 200 + p_ta->output.distance[SLAVE_MOTOR_IDX] = 200; + + // Link slave motor to master motor + p_ta->output.master[SLAVE_MOTOR_IDX] = MASTER_MOTOR_IDX + 1; + + p_ta->input.motor_pos_reached[MASTER_MOTOR_IDX] = FALSE; + p_ta->input.motor_pos_reached[SLAVE_MOTOR_IDX] = FALSE; + + // Start extended motor control command for master motor + p_ta->output.motor_ex_cmd_id[MASTER_MOTOR_IDX]++; + + // Start extended motor control command for slave motor + p_ta->output.motor_ex_cmd_id[SLAVE_MOTOR_IDX]++; + + prev_rotation_direction = rotation_direction; + } + + if (p_ta->input.motor_pos_reached[MASTER_MOTOR_IDX] && p_ta->input.motor_pos_reached[SLAVE_MOTOR_IDX]) + { + rotation_direction = !rotation_direction; + } + + return rc; +} diff --git a/Demo_C/Demo/MotorEx_2M_Master/clean.bat b/Demo_C/Demo/MotorEx_2M_Master/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/MotorEx_2M_Master/load_flash.bat b/Demo_C/Demo/MotorEx_2M_Master/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/MotorEx_2M_Master/load_ramdisk.bat b/Demo_C/Demo/MotorEx_2M_Master/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/MotorEx_2M_Master/make.bat b/Demo_C/Demo/MotorEx_2M_Master/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/MotorEx_2M_Master/param.mk b/Demo_C/Demo/MotorEx_2M_Master/param.mk new file mode 100644 index 0000000..2457f1c --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/param.mk @@ -0,0 +1,2 @@ +PROJ = MotorEx_2M_Master +OBJS = MotorEx_2M_Master.o diff --git a/Demo_C/Demo/MotorEx_2M_Master/run.bat b/Demo_C/Demo/MotorEx_2M_Master/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/MotorEx_2M_Master/stop.bat b/Demo_C/Demo/MotorEx_2M_Master/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/MotorEx_2M_Master/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/MotorEx_Ext1/MotorEx_Ext1.c b/Demo_C/Demo/MotorEx_Ext1/MotorEx_Ext1.c new file mode 100644 index 0000000..176e5e3 --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/MotorEx_Ext1.c @@ -0,0 +1,95 @@ +//============================================================================= +// Demo program "Extended motor control mode on Extension 1". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Continuously starts a motor with changing rotation directions. +// Motor is connected to outputs M1. Pulses from the motor are +// calculated by the counter C1. The motor is stopped and rotation +// direction is changed after the counter reaches the value of 200. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define TA_IDX TA_EXT_1 +#define MOTOR_NUMBER 1 +#define MOTOR_IDX (MOTOR_NUMBER - 1) + +static BOOL32 rotation_direction; +static BOOL32 prev_rotation_direction; + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_IDX]; + + // Configure motor output to be used as a motor output + p_ta->config.motor[MOTOR_IDX] = TRUE; + + // Inform firmware that configuration was changed + p_ta->state.config_id += 1; + + rotation_direction = FALSE; + prev_rotation_direction = !rotation_direction; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_IDX]; + + if (rotation_direction != prev_rotation_direction) + { + // Set motor duty depending on rotation_direction + p_ta->output.duty[2 * MOTOR_IDX + 0] = (rotation_direction) ? DUTY_MAX : 0; + p_ta->output.duty[2 * MOTOR_IDX + 1] = (rotation_direction) ? 0 : DUTY_MAX; + + // Motor should run until counter reaches 200 + p_ta->output.distance[MOTOR_IDX] = 200; + + p_ta->input.motor_pos_reached[MOTOR_IDX] = FALSE; + + // Start extended motor control command + p_ta->output.motor_ex_cmd_id[MOTOR_IDX]++; + + prev_rotation_direction = rotation_direction; + } + + if (p_ta->input.motor_pos_reached[MOTOR_IDX]) + { + rotation_direction = !rotation_direction; + } + + return rc; +} diff --git a/Demo_C/Demo/MotorEx_Ext1/clean.bat b/Demo_C/Demo/MotorEx_Ext1/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/MotorEx_Ext1/load_flash.bat b/Demo_C/Demo/MotorEx_Ext1/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/MotorEx_Ext1/load_ramdisk.bat b/Demo_C/Demo/MotorEx_Ext1/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/MotorEx_Ext1/make.bat b/Demo_C/Demo/MotorEx_Ext1/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/MotorEx_Ext1/param.mk b/Demo_C/Demo/MotorEx_Ext1/param.mk new file mode 100644 index 0000000..e3a94fc --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/param.mk @@ -0,0 +1,2 @@ +PROJ = MotorEx_Ext1 +OBJS = MotorEx_Ext1.o diff --git a/Demo_C/Demo/MotorEx_Ext1/run.bat b/Demo_C/Demo/MotorEx_Ext1/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/MotorEx_Ext1/stop.bat b/Demo_C/Demo/MotorEx_Ext1/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/MotorEx_Ext1/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/MotorRun/MotorRun.c b/Demo_C/Demo/MotorRun/MotorRun.c new file mode 100644 index 0000000..8ca75c8 --- /dev/null +++ b/Demo_C/Demo/MotorRun/MotorRun.c @@ -0,0 +1,160 @@ +//============================================================================= +// Demo program "Motor run". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Controls motor connected to outputs M1 with different +// speeds and in different rotation directions. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define TA_IDX TA_LOCAL +#define MOTOR_NUMBER 1 +#define MOTOR_IDX (MOTOR_NUMBER - 1) + +static unsigned long timer; +static enum {DIRECTION_1, PAUSE, DIRECTION_2, OFF} stage; +static int duty; + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_IDX]; + + // Configure motor output to be used as a motor output + p_ta->config.motor[MOTOR_IDX] = TRUE; + + // Inform firmware that configuration was changed + p_ta->state.config_id += 1; + + // Switch motor off + p_ta->output.duty[2 * MOTOR_IDX + 0] = 0; + p_ta->output.duty[2 * MOTOR_IDX + 1] = 0; + + timer = 0; + stage = DIRECTION_1; // motor should start to rotate in the first direction + duty = 0; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_IDX]; + + while (1) + { + switch (stage) + { + case DIRECTION_1: + if (timer == 0) + { + // Switch motor on in the first direction with the speed from the duty value + duty += DUTY_MAX / 4; + p_ta->output.duty[2 * MOTOR_IDX + 0] = duty; + p_ta->output.duty[2 * MOTOR_IDX + 1] = 0; + } + if (++timer >= 2000) // motor should rotate with such a speed for 2 seconds + { + timer = 0; + if (duty >= DUTY_MAX) + { + stage = PAUSE; + } + else + { + continue; + } + } + else + { + return rc; + } + + case PAUSE: + if (timer == 0) + { + // Switch motor off + p_ta->output.duty[2 * MOTOR_IDX + 0] = 0; + p_ta->output.duty[2 * MOTOR_IDX + 1] = 0; + } + if (++timer >= 2000) // motor should be stopped for 2 seconds + { + stage = DIRECTION_2; + timer = 0; + } + else + { + return rc; + } + + case DIRECTION_2: + if (timer == 0) + { + // Switch motor on in the second direction with the speed from the duty value + p_ta->output.duty[2 * MOTOR_IDX + 0] = 0; + p_ta->output.duty[2 * MOTOR_IDX + 1] = duty; + } + if (++timer >= 2000) // motor should rotate with such a speed for 2 seconds + { + duty -= DUTY_MAX / 4; + if (duty <= 0) + { + stage = OFF; + } + else + { + timer = 0; + continue; + } + } + else + { + return rc; + } + + case OFF: + // Switch motor off + p_ta->output.duty[2 * MOTOR_IDX + 0] = 0; + p_ta->output.duty[2 * MOTOR_IDX + 1] = 0; + + rc = 0; // stop program + return rc; + + default: + return rc; + } + } + return rc; +} diff --git a/Demo_C/Demo/MotorRun/clean.bat b/Demo_C/Demo/MotorRun/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/MotorRun/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/MotorRun/load_flash.bat b/Demo_C/Demo/MotorRun/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/MotorRun/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/MotorRun/load_ramdisk.bat b/Demo_C/Demo/MotorRun/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/MotorRun/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/MotorRun/make.bat b/Demo_C/Demo/MotorRun/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/MotorRun/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/MotorRun/param.mk b/Demo_C/Demo/MotorRun/param.mk new file mode 100644 index 0000000..71d122d --- /dev/null +++ b/Demo_C/Demo/MotorRun/param.mk @@ -0,0 +1,2 @@ +PROJ = MotorRun +OBJS = MotorRun.o diff --git a/Demo_C/Demo/MotorRun/run.bat b/Demo_C/Demo/MotorRun/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/MotorRun/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/MotorRun/stop.bat b/Demo_C/Demo/MotorRun/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/MotorRun/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/StopGo/StopGo.c b/Demo_C/Demo/StopGo/StopGo.c new file mode 100644 index 0000000..ce451be --- /dev/null +++ b/Demo_C/Demo/StopGo/StopGo.c @@ -0,0 +1,123 @@ +//============================================================================= +// Demo program "Stop and go". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Starts and stops motor connected to outputs M1 by means +// of the button connected to the input I8. Pulses from the +// motor are calculated by the counter C1. The motor is +// stopped after the counter reaches the value of 1000. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define TA_IDX TA_LOCAL +//#define TA_IDX TA_EXT_1 +#define MOTOR_NUMBER 1 +#define MOTOR_IDX (MOTOR_NUMBER - 1) +#define BUTTON_NUMBER 8 +#define BUTTON_IDX (BUTTON_NUMBER - 1) + +static INT16 prev_button_state; +static char str[128]; + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_IDX]; + + // Configure motor output to be used as a motor output + p_ta->config.motor[MOTOR_IDX] = TRUE; + + // Configure button input to "Digital 5 kOhm" mode + p_ta->config.uni[BUTTON_IDX].mode = MODE_R; + p_ta->config.uni[BUTTON_IDX].digital = TRUE; + + // Inform firmware that configuration was changed + p_ta->state.config_id += 1; + + // Reset counter + p_ta->input.cnt_resetted[MOTOR_IDX] = FALSE; + p_ta->output.cnt_reset_cmd_id[MOTOR_IDX]++; + + // Emulate button press in order to run at program start-up on + // program branch where the button release is noticed + prev_button_state = 1; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_IDX]; + INT16 cur_button_state; + + if (p_ta->input.cnt_resetted[MOTOR_IDX]) // wait until counter is resetted + { + if (!p_ta->hook_table.IsDisplayBeingRefreshed(p_ta)) // wait until display is refreshed + { + // Read current status of the button input + cur_button_state = p_ta->input.uni[BUTTON_IDX]; + + if (prev_button_state != cur_button_state) + { + if (prev_button_state && !cur_button_state) // if button was released + { + p_ta->hook_table.sprintf(str, "Press button I%d to run motor M%d", + BUTTON_NUMBER, MOTOR_NUMBER); + p_ta->hook_table.DisplayMsg(p_ta, str); + } + else // if button was pressed + { + // Drop all pop-up messages from display and return to the main frame + p_ta->hook_table.DisplayMsg(p_ta, NULL); + } + prev_button_state = cur_button_state; + } + + // Start motor if button is pressed, otherwise stop it + p_ta->output.duty[2 * MOTOR_IDX] = (cur_button_state) ? DUTY_MAX : 0; + } + if (!p_ta->hook_table.IsDisplayBeingRefreshed(p_ta)) // wait until display is refreshed + { + // Program should be executed until counter reaches 1000 + if (p_ta->input.counter[MOTOR_IDX] >= 1000) + { + p_ta->hook_table.sprintf(str, "Motor M%d reached position 1000", MOTOR_NUMBER); + p_ta->hook_table.DisplayMsg(p_ta, str); + rc = 0; // stop program + } + } + } + return rc; +} diff --git a/Demo_C/Demo/StopGo/clean.bat b/Demo_C/Demo/StopGo/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/StopGo/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/StopGo/load_flash.bat b/Demo_C/Demo/StopGo/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/StopGo/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/StopGo/load_ramdisk.bat b/Demo_C/Demo/StopGo/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/StopGo/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/StopGo/make.bat b/Demo_C/Demo/StopGo/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/StopGo/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/StopGo/param.mk b/Demo_C/Demo/StopGo/param.mk new file mode 100644 index 0000000..09c38ae --- /dev/null +++ b/Demo_C/Demo/StopGo/param.mk @@ -0,0 +1,2 @@ +PROJ = StopGo +OBJS = StopGo.o diff --git a/Demo_C/Demo/StopGo/run.bat b/Demo_C/Demo/StopGo/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/StopGo/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/StopGo/stop.bat b/Demo_C/Demo/StopGo/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/StopGo/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/StopGoBtButtonPart/StopGoBtButtonPart.c b/Demo_C/Demo/StopGoBtButtonPart/StopGoBtButtonPart.c new file mode 100644 index 0000000..b35bd2a --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/StopGoBtButtonPart.c @@ -0,0 +1,337 @@ +//============================================================================= +// Demo program "Stop and go via Bluetooth (button part)". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Starts and stops motor, connected to outputs M1 on other +// ROBO TX Controller, by means of the button connected to +// the input I8. Pulses from the motor are calculated by the +// counter C1 on other ROBO TX Controller. The motor is +// stopped after the counter reaches the value of 1000. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define MOTOR_NUMBER 1 +#define BUTTON_NUMBER 8 +#define BUTTON_IDX (BUTTON_NUMBER - 1) + +#define BT_CHANNEL 1 + +// Bluetooth address of other ROBO TX Controller +static UCHAR8 * bt_address = bt_address_table[1]; + +static enum +{ + CONNECT, + PAUSE_1, + PAUSE_2, + START_RECEIVE, + SEND_REQUEST, + WAIT_REPLY, + PAUSE_3, + EXIT +} stage; + +static INT16 prev_button_state; +static INT16 remote_counter_value; +static unsigned long timer; +static enum bt_commands_e command; +static CHAR8 command_status; +static CHAR8 receive_command_status; +static bool was_receive; +static char str[128]; + + +/*----------------------------------------------------------------------------- + * Function Name : BtCallback + * + * This callback function is called to inform the program about result (status) + * of execution of any Bluetooth command except BtStartReceive command. + *-----------------------------------------------------------------------------*/ +static void BtCallback +( + TA * p_ta_array, + BT_CB * p_data +) +{ + command_status = p_data->status; +} + + +/*----------------------------------------------------------------------------- + * Function Name : BtReceiveCallback + * + * This callback function is called to inform the program about result (status) + * of execution of BtStartReceive command. It is also called when a message + * arrives via Bluetooth. + *-----------------------------------------------------------------------------*/ +static void BtReceiveCallback +( + TA * p_ta_array, + BT_RECV_CB * p_data +) +{ + was_receive = TRUE; + + if (p_data->status == BT_MSG_INDICATION) + { + TA * p_ta = &p_ta_array[TA_LOCAL]; + UCHAR8 counter; + + // Format of a received message should be: + // byte 0 : counter number(1...N_CNT) + // byte 1-2: counter value(0...0xFFFF) + counter = p_data->msg[0]; + if (counter >= 1 && counter <= N_CNT) + { + p_ta->hook_table.memcpy(&remote_counter_value, &p_data->msg[1], + sizeof(remote_counter_value)); + } + } + else + { + receive_command_status = p_data->status; + } +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_LOCAL]; + + // Configure input I8 to "Digital 5 kOhm" mode + p_ta->config.uni[BUTTON_IDX].mode = MODE_R; + p_ta->config.uni[BUTTON_IDX].digital = TRUE; + + // Inform firmware that configuration was changed + p_ta->state.config_id += 1; + + // Emulate button press in order to run at program start-up on + // program branch where the button release is noticed + prev_button_state = 1; + + remote_counter_value = 0; + + // Connect to the controller with bt_address via Bluetooth channel BT_CHANNEL + stage = CONNECT; + command = CMD_CONNECT; + command_status = -1; + p_ta->hook_table.BtConnect(BT_CHANNEL, bt_address, BtCallback); +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_LOCAL]; + + switch (stage) + { + case CONNECT: + if (command_status >= 0) + { + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, command_status)) + { + if (command_status != BT_SUCCESS) + { + stage = PAUSE_3; + } + else + { + stage = PAUSE_1; + + // Start receive from Bluetooth channel BT_CHANNEL + command = CMD_START_RECEIVE; + receive_command_status = -1; + p_ta->hook_table.BtStartReceive(BT_CHANNEL, BtReceiveCallback); + } + timer = 0; + } + } + break; + + case PAUSE_1: // to let a user to notice the "Connected" display output + if (++timer >= 3000) // wait for 3 seconds + { + stage = PAUSE_2; + timer = 0; + } + else + { + break; + } + + case PAUSE_2: // to let a user to notice the "Started receiving" display output + if (receive_command_status >= 0) + { + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, receive_command_status)) + { + if (receive_command_status == BT_SUCCESS) + { + // Successful result of BtStartReceive() - restart the timer to let a user to + // notice this display output + receive_command_status = -1; + timer = 0; + } + else + { + // Unsuccessful result of BtStartReceive() - make PAUSE_3 (to let a user to + // notice this display output) and exit the program + stage = PAUSE_3; + timer = 0; + } + } + break; + } + else if (++timer >= 3000) // wait for 3 seconds + { + stage = START_RECEIVE; + } + else + { + break; + } + + case START_RECEIVE: + case WAIT_REPLY: + if (was_receive || command_status >= 0) + { + if (command_status >= 0 && command_status != BT_SUCCESS) + { + // Usually if we have come here, then this means the other controller + // has disconnected from us + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, command_status)) + { + stage = PAUSE_3; + timer = 0; + } + } + else + { + UCHAR8 msg[3]; + INT16 duty; + + was_receive = FALSE; + + // Read current status of the button input + INT16 cur_button_state = p_ta->input.uni[BUTTON_IDX]; + + // Start motor if button on input I8 is pressed, otherwise stop it + duty = (cur_button_state) ? DUTY_MAX : 0; + + if (!p_ta->hook_table.IsDisplayBeingRefreshed(p_ta)) // wait until display is refreshed + { + // Program should be executed until counter reaches 1000 + if (remote_counter_value >= 1000) + { + p_ta->hook_table.sprintf(str, "Motor M%d reached position 1000", MOTOR_NUMBER); + p_ta->hook_table.DisplayMsg(p_ta, str); + duty = 0; + stage = PAUSE_3; + timer = 0; + } + else if (prev_button_state != cur_button_state) + { + if (prev_button_state && !cur_button_state) // if button was released + { + p_ta->hook_table.sprintf(str, + "Press button I%d to run motor M%d on other TXC", + BUTTON_NUMBER, MOTOR_NUMBER); + p_ta->hook_table.DisplayMsg(p_ta, str); + } + else // if button was pressed + { + // Drop all pop-up messages from display and return to the main frame + p_ta->hook_table.DisplayMsg(p_ta, NULL); + } + prev_button_state = cur_button_state; + } + } + + // Prepare BT message + msg[0] = MOTOR_NUMBER; // motor number + p_ta->hook_table.memcpy(&msg[1], &duty, sizeof(duty)); // motor duty + + // Send BT message + stage = (stage != PAUSE_3) ? SEND_REQUEST : stage; + command = CMD_SEND; + command_status = -1; + p_ta->hook_table.BtSend(BT_CHANNEL, sizeof(msg), msg, BtCallback); + } + } + break; + + case SEND_REQUEST: + if (command_status >= 0) + { + if (command_status == BT_SUCCESS) + { + // Wait for the reply to the sent BT message + stage = WAIT_REPLY; + command = CMD_NO_CMD; + command_status = -1; + } + else + { + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, command_status)) + { + stage = PAUSE_3; + timer = 0; + } + } + } + break; + + case PAUSE_3: // to let a user to notice the last display output + if (++timer >= 3000) // wait for 3 seconds + { + stage = EXIT; + } + else + { + break; + } + + case EXIT: + if (!p_ta->hook_table.IsDisplayBeingRefreshed(p_ta)) // wait until display is refreshed + { + rc = 0; // stop program + } + break; + + default: + break; + } + return rc; +} diff --git a/Demo_C/Demo/StopGoBtButtonPart/clean.bat b/Demo_C/Demo/StopGoBtButtonPart/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/StopGoBtButtonPart/load_flash.bat b/Demo_C/Demo/StopGoBtButtonPart/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/StopGoBtButtonPart/load_ramdisk.bat b/Demo_C/Demo/StopGoBtButtonPart/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/StopGoBtButtonPart/load_ramdisk_bt.bat b/Demo_C/Demo/StopGoBtButtonPart/load_ramdisk_bt.bat new file mode 100644 index 0000000..302e3e3 --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/load_ramdisk_bt.bat @@ -0,0 +1,2 @@ +@echo off +call load_ramdisk.bat COM14 diff --git a/Demo_C/Demo/StopGoBtButtonPart/make.bat b/Demo_C/Demo/StopGoBtButtonPart/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/StopGoBtButtonPart/param.mk b/Demo_C/Demo/StopGoBtButtonPart/param.mk new file mode 100644 index 0000000..d011a87 --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/param.mk @@ -0,0 +1,2 @@ +PROJ = StopGoBtButtonPart +OBJS = StopGoBtButtonPart.o diff --git a/Demo_C/Demo/StopGoBtButtonPart/run.bat b/Demo_C/Demo/StopGoBtButtonPart/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/StopGoBtButtonPart/stop.bat b/Demo_C/Demo/StopGoBtButtonPart/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/StopGoBtButtonPart/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/StopGoBtMotorPart/StopGoBtMotorPart.c b/Demo_C/Demo/StopGoBtMotorPart/StopGoBtMotorPart.c new file mode 100644 index 0000000..bb2b23f --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/StopGoBtMotorPart.c @@ -0,0 +1,323 @@ +//============================================================================= +// Demo program "Stop and go via Bluetooth (motor and counter part)". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// Starts and stops motor, connected to outputs M1, by means +// of the button, connected to the input I8 on other +// ROBO TX Controller. Pulses from the motor are calculated +// by the counter C1. The motor is stopped after the counter +// reaches the value of 1000. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define MOTOR_NUMBER 1 +#define MOTOR_IDX (MOTOR_NUMBER - 1) + +#define BT_CHANNEL 1 + +// Bluetooth address of other ROBO TX Controller +static UCHAR8 * bt_address = bt_address_table[0]; + +static enum +{ + START_LISTEN, + PAUSE_1, + WAIT_CONNECT, + PAUSE_2, + PAUSE_3, + RECEIVE, + PAUSE_4, + EXIT +} stage; + +static unsigned long timer; +static enum bt_commands_e command; +static CHAR8 command_status; +static CHAR8 receive_command_status; + + +/*----------------------------------------------------------------------------- + * Function Name : BtCallback + * + * This callback function is called to inform the program about result (status) + * of execution of any Bluetooth command except BtStartReceive command. + *-----------------------------------------------------------------------------*/ +static void BtCallback +( + TA * p_ta_array, + BT_CB * p_data +) +{ + command_status = p_data->status; +} + + +/*----------------------------------------------------------------------------- + * Function Name : BtReceiveCallback + * + * This callback function is called to inform the program about result (status) + * of execution of BtStartReceive command. It is also called when a message + * arrives via Bluetooth. + *-----------------------------------------------------------------------------*/ +static void BtReceiveCallback +( + TA * p_ta_array, + BT_RECV_CB * p_data +) +{ + if (p_data->status == BT_MSG_INDICATION) + { + TA * p_ta = &p_ta_array[TA_LOCAL]; + UCHAR8 motor; + UCHAR8 pwm_chan; + INT16 duty; + UCHAR8 msg[3]; + INT16 counter; + + // Format of a received message should be: + // byte 0 : motor number(1...N_MOTOR) + // byte 1-2: motor duty(DUTY_MIN...DUTY_MAX) + motor = p_data->msg[0]; + if (motor >= 1 && motor <= N_MOTOR) + { + pwm_chan = (motor - 1) * 2; + p_ta->hook_table.memcpy(&duty, &p_data->msg[1], sizeof(duty)); + if (duty >= DUTY_MIN && duty <= DUTY_MAX) + { + p_ta->output.duty[pwm_chan] = duty; + p_ta->output.duty[pwm_chan + 1] = 0; + } + + // Prepare reply BT message + msg[0] = motor; // counter number + counter = p_ta->input.counter[motor - 1]; + p_ta->hook_table.memcpy(&msg[1], &counter, sizeof(counter)); // counter value + + // Send BT message + command_status = -1; + p_ta->hook_table.BtSend(BT_CHANNEL, sizeof(msg), msg, BtCallback); + } + } + else + { + receive_command_status = p_data->status; + } +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_LOCAL]; + + // Configure motor output to be used as a motor output + p_ta->config.motor[MOTOR_IDX] = TRUE; + + // Inform firmware that configuration was changed + p_ta->state.config_id += 1; + + // Reset counter + p_ta->input.cnt_resetted[MOTOR_IDX] = FALSE; + p_ta->output.cnt_reset_cmd_id[MOTOR_IDX]++; + + // Start listen to the controller with bt_address via Bluetooth channel BT_CHANNEL + stage = START_LISTEN; + command = CMD_START_LISTEN; + command_status = -1; + p_ta->hook_table.BtStartListen(BT_CHANNEL, bt_address, BtCallback); +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_LOCAL]; + + switch (stage) + { + case START_LISTEN: + if (p_ta->input.cnt_resetted[MOTOR_IDX]) // wait until counter is resetted + { + if (command_status >= 0) + { + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, command_status)) + { + if (command_status != BT_SUCCESS) + { + stage = PAUSE_4; + } + else + { + stage = PAUSE_1; + command_status = -1; + } + timer = 0; + } + } + } + break; + + case PAUSE_1: // to let a user to notice the "Started listening" display output + if (++timer >= 3000) // wait for 3 seconds + { + stage = WAIT_CONNECT; + } + else + { + break; + } + + case WAIT_CONNECT: + if (command_status >= 0) + { + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, command_status)) + { + if (command_status == BT_CON_INDICATION) + { + stage = PAUSE_2; + + // Start receive from Bluetooth channel BT_CHANNEL + command = CMD_START_RECEIVE; + receive_command_status = -1; + p_ta->hook_table.BtStartReceive(BT_CHANNEL, BtReceiveCallback); + } + command_status = -1; + timer = 0; + } + } + break; + + case PAUSE_2: // to let a user to notice the "Passive connection establishment + // (incoming connection)" display output + if (++timer >= 3000) // wait for 3 seconds + { + stage = PAUSE_3; + timer = 0; + } + else + { + break; + } + + case PAUSE_3: // to let a user to notice the "Started receiving" display output + if (receive_command_status >= 0) + { + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, receive_command_status)) + { + if (receive_command_status == BT_SUCCESS) + { + // Successful result of BtStartReceive() - restart the timer to let a user to + // notice this display output + receive_command_status = -1; + timer = 0; + } + else + { + // Unsuccessful result of BtStartReceive() - make PAUSE_4 (to let a user to + // notice this display output) and exit the program + stage = PAUSE_4; + timer = 0; + } + } + break; + } + else if (++timer >= 3000) // wait for 3 seconds + { + if (!p_ta->hook_table.IsDisplayBeingRefreshed(p_ta)) // wait until display is refreshed + { + // Drop all pop-up messages from display and return to the main frame + p_ta->hook_table.DisplayMsg(p_ta, NULL); + + stage = RECEIVE; + } + } + else + { + break; + } + + case RECEIVE: + if (command_status >= 0) + { + if (command_status != BT_SUCCESS) + { + // Usually if we have come here, then this means the other controller + // has disconnected from us + + // Stop the motor + p_ta->output.duty[MOTOR_IDX * 2] = 0; + + // Reset counter to be prepared for the next time when + // other controller connects to us again + p_ta->input.cnt_resetted[MOTOR_IDX] = FALSE; + p_ta->output.cnt_reset_cmd_id[MOTOR_IDX]++; + + command_status = -1; + + /* + // This block of code should be used if we want that the program stops when other + // ROBO TX Controller disconnects from us + if (BtDisplayCommandStatus(p_ta, bt_address, BT_CHANNEL, command, command_status)) + { + stage = PAUSE_4; + timer = 0; + } + */ + } + command = CMD_NO_CMD; + } + break; + + case PAUSE_4: // to let a user to notice the last display output + if (++timer >= 3000) // wait for 3 seconds + { + stage = EXIT; + } + else + { + break; + } + + case EXIT: + if (!p_ta->hook_table.IsDisplayBeingRefreshed(p_ta)) // wait until display is refreshed + { + rc = 0; // stop program + } + break; + + default: + break; + } + return rc; +} diff --git a/Demo_C/Demo/StopGoBtMotorPart/clean.bat b/Demo_C/Demo/StopGoBtMotorPart/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/StopGoBtMotorPart/load_flash.bat b/Demo_C/Demo/StopGoBtMotorPart/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/StopGoBtMotorPart/load_ramdisk.bat b/Demo_C/Demo/StopGoBtMotorPart/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/StopGoBtMotorPart/load_ramdisk_bt.bat b/Demo_C/Demo/StopGoBtMotorPart/load_ramdisk_bt.bat new file mode 100644 index 0000000..056f2c1 --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/load_ramdisk_bt.bat @@ -0,0 +1,2 @@ +@echo off +call load_ramdisk.bat COM111 diff --git a/Demo_C/Demo/StopGoBtMotorPart/make.bat b/Demo_C/Demo/StopGoBtMotorPart/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/StopGoBtMotorPart/param.mk b/Demo_C/Demo/StopGoBtMotorPart/param.mk new file mode 100644 index 0000000..dfd5ebd --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/param.mk @@ -0,0 +1,2 @@ +PROJ = StopGoBtMotorPart +OBJS = StopGoBtMotorPart.o diff --git a/Demo_C/Demo/StopGoBtMotorPart/run.bat b/Demo_C/Demo/StopGoBtMotorPart/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/StopGoBtMotorPart/stop.bat b/Demo_C/Demo/StopGoBtMotorPart/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/StopGoBtMotorPart/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Demo_C/Demo/WarningLight/WarningLight.c b/Demo_C/Demo/WarningLight/WarningLight.c new file mode 100644 index 0000000..85363be --- /dev/null +++ b/Demo_C/Demo/WarningLight/WarningLight.c @@ -0,0 +1,132 @@ +//============================================================================= +// Demo program "Warning light". +// +// Can be run under control of the ROBO TX Controller +// firmware in download (local) mode. +// The lamp, connected to the output O8, blinks depending on +// distance to the ultrasonic sensor, connected to the input I1. +// The shorter the distance, the faster blinks the lamp. +// +// Disclaimer - Exclusion of Liability +// +// This software is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. It can be used and modified by anyone +// free of any license obligations or authoring rights. +//============================================================================= + +#include "ROBO_TX_PRG.h" + +#define LIGHT_ON DUTY_MAX +#define LIGHT_OFF 0 + +#define LAMP_IDX 7 +#define SENSOR_IDX 0 + +static bool is_light_on; +static INT16 cmp_val; + + +/*----------------------------------------------------------------------------- + * Function Name : SetFlashLight + * + * Switches the lamp on/off depending on the difference between the current + * timer value and the value for compare, considering the flash duration time. + *-----------------------------------------------------------------------------*/ +static INT16 SetFlashLight +( + TA * p_ta, + INT16 cmp_val, + INT16 tm_val, + INT16 tm_diff +) +{ + if (tm_diff == 0) + { + // Switch the lamp off + p_ta->output.duty[LAMP_IDX] = LIGHT_OFF; + + is_light_on = FALSE; + return tm_val; + } + + if ((cmp_val + tm_diff) > tm_val) + { + return cmp_val; + } + + // Set new state + is_light_on = !is_light_on; + + // Switch the lamp on/off + p_ta->output.duty[LAMP_IDX] = (is_light_on) ? LIGHT_ON : LIGHT_OFF; + + return tm_val; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgInit + * + * This it the program initialization. + * It is called once. + *-----------------------------------------------------------------------------*/ +void PrgInit +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + TA * p_ta = &p_ta_array[TA_LOCAL]; + + // Configure input I1 to "Ultrasonic sensor" mode + p_ta->config.uni[SENSOR_IDX].mode = MODE_ULTRASONIC; + + // Inform firmware that configuration was changed + p_ta->state.config_id += 1; + + is_light_on = FALSE; + + // Get timer value from timer struct in transfer area + cmp_val = p_ta->timer.Timer10ms; +} + + +/*----------------------------------------------------------------------------- + * Function Name : PrgTic + * + * This is the main function of this program. + * It is called every tic (1 ms) realtime. + *-----------------------------------------------------------------------------*/ +int PrgTic +( + TA * p_ta_array, // pointer to the array of transfer areas + int ta_count // number of transfer areas in array (equal to TA_COUNT) +) +{ + int rc = 0x7FFF; // return code: 0x7FFF - program should be further called by the firmware; + // 0 - program should be normally stopped by the firmware; + // any other value is considered by the firmware as an error code + // and the program is stopped. + TA * p_ta = &p_ta_array[TA_LOCAL]; + INT16 tm_val; + INT16 tm_flash; + INT16 distance; + + // Read I1 input value from transfer area + distance = p_ta->input.uni[SENSOR_IDX]; + + // Get timer value from timer struct in transfer area + tm_val = p_ta->timer.Timer10ms; + + // Set flash time dependent on distance + tm_flash = (distance > 20) ? 0 : // no interval, light is always off + (distance > 15) ? 75 : // interval 750 ms + (distance > 10) ? 50 : // interval 500 ms + (distance > 5) ? 25 : 10; // interval 250 ms or 100 ms + + // Setting flash light + cmp_val = SetFlashLight(p_ta, cmp_val, tm_val, tm_flash); + + return rc; +} diff --git a/Demo_C/Demo/WarningLight/clean.bat b/Demo_C/Demo/WarningLight/clean.bat new file mode 100644 index 0000000..84d1361 --- /dev/null +++ b/Demo_C/Demo/WarningLight/clean.bat @@ -0,0 +1,6 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +..\..\Bin\GNU\Tools\make -f ..\..\Common\Makefile clean diff --git a/Demo_C/Demo/WarningLight/load_flash.bat b/Demo_C/Demo/WarningLight/load_flash.bat new file mode 100644 index 0000000..4250cd9 --- /dev/null +++ b/Demo_C/Demo/WarningLight/load_flash.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_flash ..\..\bin %1 diff --git a/Demo_C/Demo/WarningLight/load_ramdisk.bat b/Demo_C/Demo/WarningLight/load_ramdisk.bat new file mode 100644 index 0000000..777fedb --- /dev/null +++ b/Demo_C/Demo/WarningLight/load_ramdisk.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_load_ramdisk ..\..\bin %1 diff --git a/Demo_C/Demo/WarningLight/make.bat b/Demo_C/Demo/WarningLight/make.bat new file mode 100644 index 0000000..0a12e74 --- /dev/null +++ b/Demo_C/Demo/WarningLight/make.bat @@ -0,0 +1,11 @@ +@echo off +if not "%ROOT_BATCH%"/ == ""/ goto start +if "%ROOT_BATCH%"/ == ""/ ..\..\Bin\_start go %0 + +:start +set BIN_PATH=..\..\Bin +set BIN_GCC_PATH=%BIN_PATH%\GNU\GNU_ARM\bin +set TOOLS_PATH=%BIN_PATH%\GNU\Tools +set PATH=%BIN_GCC_PATH%;%TOOLS_PATH%;%PATH% + +%TOOLS_PATH%\make -f ..\..\Common\Makefile all diff --git a/Demo_C/Demo/WarningLight/param.mk b/Demo_C/Demo/WarningLight/param.mk new file mode 100644 index 0000000..94baebe --- /dev/null +++ b/Demo_C/Demo/WarningLight/param.mk @@ -0,0 +1,2 @@ +PROJ = WarningLight +OBJS = WarningLight.o diff --git a/Demo_C/Demo/WarningLight/run.bat b/Demo_C/Demo/WarningLight/run.bat new file mode 100644 index 0000000..420722a --- /dev/null +++ b/Demo_C/Demo/WarningLight/run.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin run %1 diff --git a/Demo_C/Demo/WarningLight/stop.bat b/Demo_C/Demo/WarningLight/stop.bat new file mode 100644 index 0000000..4bddcbf --- /dev/null +++ b/Demo_C/Demo/WarningLight/stop.bat @@ -0,0 +1,2 @@ +@echo off +..\..\bin\_exec_cmd ..\..\bin stop %1 diff --git a/Doc/C_Compiler_RoboTXC-deutsch.pdf b/Doc/C_Compiler_RoboTXC-deutsch.pdf new file mode 100644 index 0000000000000000000000000000000000000000..20627bab638185735428e5e678de24a9da7e965e GIT binary patch literal 438869 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 nOG%LrdC;^{lBjo-HS%lIQfCS>=VQCUL1?NA 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

k102_Dug{ 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 z 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%0AMrYQyIt4EVtf_HgJ6BWOwrel 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