X-Git-Url: http://rtime.felk.cvut.cz/gitweb/can-benchmark.git/blobdiff_plain/ed81f09538552b857c45ec9086a99b010ceec38a..0c60e90bdf1a75402f9cc86eb300c5619dd895bc:/rtems/gw/cangw/init.c diff --git a/rtems/gw/cangw/init.c b/rtems/gw/cangw/init.c new file mode 100644 index 0000000..c7209d1 --- /dev/null +++ b/rtems/gw/cangw/init.c @@ -0,0 +1,107 @@ +/* Init + * + * This routine is the initialization task for this test program. + * It is called from init_exec and has the responsibility for creating + * and starting the tasks that make up the test. If the time of day + * clock is required for the test, it should also be set to a known + * value by this function. + * + * Input parameters: NONE + * + * Output parameters: NONE + * + * COPYRIGHT (c) 1989-1999. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id: init.c,v 1.12.4.1 2003/09/04 18:46:30 joel Exp $ + */ + +#define CONFIGURE_INIT +#include +#include "system.h" +#include "app_def.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "helpers.h" + +#define BUILD_VERSION_STRING(major,minor,patch) \ + __XSTRING(major) "." __XSTRING(minor) "." __XSTRING(patch) + +#define RTEMS_VER_CODE VER_CODE(__RTEMS_MAJOR__ ,__RTEMS_MINOR__ ,__RTEMS_REVISION__) + +#if RTEMS_VER_CODE < VER_CODE(4,7,99) + #define rtems_shell_add_cmd shell_add_cmd + #define rtems_shell_init(m_task_name,m_task_stacksize,m_task_priority,m_devname,m_forever,m_wait,m_login_check) \ + shell_init(m_task_name,m_task_stacksize,m_task_priority,m_devname,B19200 | CS8,m_forever) +#elif RTEMS_VER_CODE < VER_CODE(4,9,99) + #define rtems_shell_init(m_task_name,m_task_stacksize,m_task_priority,m_devname,m_forever,m_wait,m_login_check) \ + rtems_shell_init(m_task_name,m_task_stacksize,m_task_priority,m_devname,m_forever,m_wait) +#endif + +void bad_rtems_status(rtems_status_code status, int fail_level, const char *text){ + printf("ERROR: %s status %s", text, rtems_status_text(status)); + status = rtems_task_delete( RTEMS_SELF ); +} + + + + +rtems_task Init( + rtems_task_argument ignored +) +{ + rtems_status_code status; + + printf( "\n\nRTEMS v " + BUILD_VERSION_STRING(__RTEMS_MAJOR__ ,__RTEMS_MINOR__ ,__RTEMS_REVISION__) + "\n"); + + rtems_monitor_init(RTEMS_MONITOR_SUSPEND|RTEMS_MONITOR_GLOBAL); + /*rtems_capture_cli_init (0);*/ + + printf( "Starting application " SW_VER_ID " v " + BUILD_VERSION_STRING(SW_VER_MAJOR,SW_VER_MINOR,SW_VER_PATCH) + "\n" ); + + + + rtems_shell_init("SHLL",RTEMS_MINIMUM_STACK_SIZE+0x1000, + SHELL_TASK_PRIORITY,"/dev/console",1,0, NULL); + + rtems_shell_add_cmd("startGW", "app", + "initialize can driver and startGW", + start_can); + + rtems_shell_add_cmd("stopGW", "app", + "stops GW", + end_can); + + rtems_shell_add_cmd("printvar", "app", + "prints info from vars", + print_regs); + + rtems_shell_add_cmd("printcan", "app", + "prints error rate from CANs", + print_can_totals); + + + //rtems_monitor_wakeup(); + + status = rtems_task_delete( RTEMS_SELF ); + + exit( 0 ); +}