obj-$(USE_RAMLOG) += ramlog.o\r
\r
# If we have configured console output we include printf. \r
-# Overridden to use lib implementation with CFG_USE_NEWLIB_PRINTF\r
-ifndef (CFG_USE_NEWLIB_PRINTF)\r
+# Overridden to use lib implementation with CFG_NEWLIB_PRINTF\r
+ifneq ($(CFG_NEWLIB_PRINTF),y)\r
+# TODO: This assumes that you print to console.. but you could\r
+# just print to a buffer, e.g. sprintf() \r
ifneq (,$(SELECT_CONSOLE) $(SELECT_OS_CONSOLE))\r
obj-y += printf.o\r
endif\r
#libitem-y +=\r
\r
#linkfile\r
-ldcmdfile-y = $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf\r
+#ldcmdfile-y = $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf\r
+ldcmdfile-y = linkscript_gcc.ldp\r
+vpath %.ldf $(ROOTDIR)/$(ARCH_PATH-y)/scripts\r
#ldcmdfile-y = $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf\r
\r
inc-y += ..\r
//#define TEST_DONE()
#define TEST_START(_str,_nr) testStart(_str,_nr)
#define TEST_NEXT(_str,_next_nr) testEnd(); testStart(_str,_next_nr);
+#define TEST_END() testEnd()
\r
\r
extern int test_suite;\r
VPATH += $(realpath ../..)\r
\r
# libs needed by us \r
-libitem-y += $(ROOTDIR)/libs/libkernel_$(ARCH_MCU).a\r
+#libitem-y +=\r
\r
#linkfile\r
-ldcmdfile-y = $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf\r
-#ldcmdfile-y = $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf\r
+ldcmdfile-y = linkscript_gcc.ldp\r
+vpath %.ldf $(ROOTDIR)/$(ARCH_PATH-y)/scripts\r
\r
inc-y += ..\r
inc-y += ../..\r
<SDGS>\r
<SDG/>\r
<SDG GID="Arccore::ModuleOptions">\r
- <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
<SD GID="ARCCORE_EDITOR_VERSION">2.0.7</SD>\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
</SDG>\r
</SDGS>\r
</ADMIN-DATA>\r
#libitem-y += $(ROOTDIR)/libs/libkernel_$(ARCH_MCU).a\r
\r
#linkfile\r
-ldcmdfile-y = $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf\r
-#ldcmdfile-y = $(ROOTDIR)/$(ARCH_PATH-y)/scripts/linkscript_gcc.ldf\r
+ldcmdfile-y = linkscript_gcc.ldp\r
+vpath %.ldf $(ROOTDIR)/$(ARCH_PATH-y)/scripts\r
\r
inc-y += ..\r
inc-y += ../..\r
--- /dev/null
+/*
+* Configuration of module Os (Os_Cfg.c)
+*
+* Created by:
+* Configured for (MCU): Undefined MCU
+*
+* Module editor vendor: ArcCore
+* Module editor version: 2.0.7
+*
+*
+* Generated by Arctic Studio (http://arccore.com)
+* on Sun Jun 27 21:58:34 CEST 2010
+*/
+
+ \r
+\r
+#include <stdlib.h>\r
+#include <stdint.h>\r
+#include "Platform_Types.h"\r
+#include "Os.h" // includes Os_Cfg.h\r
+#include "os_config_macros.h"\r
+#include "kernel.h"\r
+#include "kernel_offset.h"\r
+#include "alist_i.h"\r
+#include "Mcu.h"\r
+\r
+extern void dec_exception( void );\r
+\r
+// Set the os tick frequency\r
+OsTickType OsTickFreq = 1000;\r
+\r
+\r
+// ############################### DEBUG OUTPUT #############################\r
+uint32 os_dbg_mask = D_RESOURCE |D_SCHTBL |D_EVENT |D_TASK |D_ALARM;\r
+ \r
+\r
+\r
+// ################################# COUNTERS ###############################\r
+GEN_COUNTER_HEAD {\r
+ GEN_COUNTER( COUNTER_ID_Counter1,\r
+ "Counter1",\r
+ COUNTER_TYPE_HARD,\r
+ COUNTER_UNIT_NANO,\r
+ 0xffff,\r
+ 1,\r
+ 1,\r
+ 0),\r
+};\r
+\r
+CounterType Os_Arc_OsTickCounter = COUNTER_ID_Counter1;\r
+\r
+// ################################## ALARMS ################################\r
+\r
+GEN_ALARM_HEAD {\r
+};\r
+\r
+// ################################ RESOURCES ###############################\r
+GEN_RESOURCE_HEAD {\r
+};\r
+\r
+// ############################## STACKS (TASKS) ############################\r
+DECLARE_STACK(OsIdle,OS_OSIDLE_STACK_SIZE);\r
+DECLARE_STACK(btask_h_full,2048);\r
+DECLARE_STACK(btask_h_none,2048);\r
+DECLARE_STACK(btask_l_full,2048);\r
+DECLARE_STACK(btask_l_none,2048);\r
+DECLARE_STACK(btask_m_full,2048);\r
+DECLARE_STACK(btask_m_none,2048);\r
+DECLARE_STACK(etask_h_full,2048);\r
+DECLARE_STACK(etask_h_none,2048);\r
+DECLARE_STACK(etask_l_full,2048);\r
+DECLARE_STACK(etask_l_none,2048);\r
+DECLARE_STACK(etask_m_full,2048);\r
+DECLARE_STACK(etask_m_none,2048);\r
+DECLARE_STACK(etask_master,2048);\r
+\r
+// ################################## TASKS #################################\r
+GEN_TASK_HEAD {\r
+ GEN_ETASK( OsIdle,\r
+ 0,\r
+ FULL,\r
+ TRUE,\r
+ NULL,\r
+ 0 \r
+ ),\r
+ GEN_BTASK(\r
+ btask_h_full,\r
+ 4,\r
+ FULL,\r
+ FALSE,\r
+ NULL,\r
+ 0,\r
+ 1\r
+ ),\r
+ \r
+ GEN_BTASK(\r
+ btask_h_none,\r
+ 4,\r
+ NON,\r
+ FALSE,\r
+ NULL,\r
+ 0,\r
+ 1\r
+ ),\r
+ \r
+ GEN_BTASK(\r
+ btask_l_full,\r
+ 2,\r
+ FULL,\r
+ FALSE,\r
+ NULL,\r
+ 0,\r
+ 1\r
+ ),\r
+ \r
+ GEN_BTASK(\r
+ btask_l_none,\r
+ 2,\r
+ NON,\r
+ FALSE,\r
+ NULL,\r
+ 0,\r
+ 1\r
+ ),\r
+ \r
+ GEN_BTASK(\r
+ btask_m_full,\r
+ 3,\r
+ FULL,\r
+ FALSE,\r
+ NULL,\r
+ 0,\r
+ 1\r
+ ),\r
+ \r
+ GEN_BTASK(\r
+ btask_m_none,\r
+ 3,\r
+ NON,\r
+ FALSE,\r
+ NULL,\r
+ 0,\r
+ 1\r
+ ),\r
+ \r
+ GEN_ETASK(\r
+ etask_h_full,\r
+ 4,\r
+ FULL,\r
+ FALSE,\r
+ NULL,\r
+ 0\r
+ ),\r
+ \r
+ \r
+ GEN_ETASK(\r
+ etask_h_none,\r
+ 4,\r
+ NON,\r
+ FALSE,\r
+ NULL,\r
+ 0\r
+ ),\r
+ \r
+ \r
+ GEN_ETASK(\r
+ etask_l_full,\r
+ 2,\r
+ FULL,\r
+ FALSE,\r
+ NULL,\r
+ 0\r
+ ),\r
+ \r
+ \r
+ GEN_ETASK(\r
+ etask_l_none,\r
+ 2,\r
+ NON,\r
+ FALSE,\r
+ NULL,\r
+ 0\r
+ ),\r
+ \r
+ \r
+ GEN_ETASK(\r
+ etask_m_full,\r
+ 3,\r
+ FULL,\r
+ FALSE,\r
+ NULL,\r
+ 0\r
+ ),\r
+ \r
+ \r
+ GEN_ETASK(\r
+ etask_m_none,\r
+ 3,\r
+ NON,\r
+ FALSE,\r
+ NULL,\r
+ 0\r
+ ),\r
+ \r
+ \r
+ GEN_ETASK(\r
+ etask_master,\r
+ 1,\r
+ FULL,\r
+ TRUE,\r
+ NULL,\r
+ 0\r
+ ),\r
+ \r
+ \r
+};\r
+\r
+// ################################## HOOKS #################################\r
+GEN_HOOKS( \r
+ StartupHook, \r
+ NULL, \r
+ ShutdownHook, \r
+ ErrorHook,\r
+ PreTaskHook, \r
+ PostTaskHook \r
+);\r
+\r
+// ################################## ISRS ##################################\r
+\r
+\r
+// ############################ SCHEDULE TABLES #############################\r
+\r
+// Table heads\r
+GEN_SCHTBL_HEAD {\r
+};\r
+\r
+GEN_PCB_LIST()\r
+\r
+uint8_t os_interrupt_stack[OS_INTERRUPT_STACK_SIZE] __attribute__ ((aligned (0x10)));\r
+\r
+GEN_IRQ_VECTOR_TABLE_HEAD {};\r
+GEN_IRQ_ISR_TYPE_TABLE_HEAD {};\r
+GEN_IRQ_PRIORITY_TABLE_HEAD {};\r
+\r
+#include "os_config_funcs.h"\r
--- /dev/null
+/*
+* Configuration of module Os (Os_Cfg.h)
+*
+* Created by:
+* Configured for (MCU): Undefined MCU
+*
+* Module editor vendor: ArcCore
+* Module editor version: 2.0.7
+*
+*
+* Generated by Arctic Studio (http://arccore.com)
+* on Sun Jun 27 21:58:34 CEST 2010
+*/
+
+
+#if (OS_SW_MAJOR_VERSION != 2)
+#error "Os: Configuration file version differs from BSW version."
+#endif
+
+\r
+#ifndef OS_CFG_H_\r
+#define OS_CFG_H_\r
+\r
+\r
+// Alarm Id's\r
+\r
+// Counter Id's\r
+#define COUNTER_ID_Counter1 0\r
+\r
+// Counter macros\r
+#define OSMAXALLOWEDVALUE_Counter1 65535\r
+\r
+\r
+// Event masks\r
+#define EVENT_MASK_master_notif 1\r
+#define EVENT_MASK_notif 2\r
+#define EVENT_MASK_test 4\r
+\r
+// Isr Id's\r
+\r
+// Resource Id's\r
+\r
+// Linked resource id's\r
+\r
+// Resource masks\r
+\r
+// Task Id's\r
+#define TASK_ID_OsIdle 0\r
+#define TASK_ID_btask_h_full 1\r
+#define TASK_ID_btask_h_none 2\r
+#define TASK_ID_btask_l_full 3\r
+#define TASK_ID_btask_l_none 4\r
+#define TASK_ID_btask_m_full 5\r
+#define TASK_ID_btask_m_none 6\r
+#define TASK_ID_etask_h_full 7\r
+#define TASK_ID_etask_h_none 8\r
+#define TASK_ID_etask_l_full 9\r
+#define TASK_ID_etask_l_none 10\r
+#define TASK_ID_etask_m_full 11\r
+#define TASK_ID_etask_m_none 12\r
+#define TASK_ID_etask_master 13\r
+\r
+// Task entry points\r
+void OsIdle( void );\r
+void btask_h_full( void );\r
+void btask_h_none( void );\r
+void btask_l_full( void );\r
+void btask_l_none( void );\r
+void btask_m_full( void );\r
+void btask_m_none( void );\r
+void etask_h_full( void );\r
+void etask_h_none( void );\r
+void etask_l_full( void );\r
+void etask_l_none( void );\r
+void etask_m_full( void );\r
+void etask_m_none( void );\r
+void etask_master( void );\r
+\r
+// Schedule table id's\r
+\r
+// Stack size\r
+#define OS_INTERRUPT_STACK_SIZE 2048\r
+#define OS_OSIDLE_STACK_SIZE 512\r
+\r
+#define OS_ALARM_CNT 0 \r
+#define OS_TASK_CNT 14\r
+#define OS_SCHTBL_CNT 0\r
+#define OS_COUNTER_CNT 1\r
+#define OS_EVENTS_CNT 3\r
+#define OS_ISRS_CNT 0\r
+#define OS_RESOURCE_CNT 0\r
+#define OS_LINKED_RESOURCE_CNT 0\r
+\r
+#define CFG_OS_DEBUG STD_ON\r
+\r
+#define OS_SC1 STD_ON \r
+#define OS_STACK_MONITORING STD_ON\r
+#define OS_STATUS_EXTENDED STD_ON\r
+#define OS_USE_GET_SERVICE_ID STD_ON\r
+#define OS_USE_PARAMETER_ACCESS STD_ON\r
+#define OS_RES_SCHEDULER STD_ON\r
+\r
+#endif /*OS_CFG_H_*/\r
--- /dev/null
+\r
+# Figure out the most of the modules to use.\r
+OPTIMAL_USE = SIMPLE_PRINTF RAMLOG\r
+MOD_USE+=KERNEL MCU COMMON NEWLIB DET ECUM $(filter $(OPTIMAL_USE),$(MOD_AVAIL))\r
+$(warning $(MOD_USE)) \r
+#MOD_USE+=KERNEL MCU SIMPLE_PRINTF RAMLOG\r
+\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AUTOSAR xmlns="http://autosar.org/3.1.2"><TOP-LEVEL-PACKAGES>\r
+ <AR-PACKAGE UUID="fe461a62-0c3a-4c8f-a381-54ab028b1411">\r
+ <SHORT-NAME>config_03</SHORT-NAME>\r
+ <CATEGORY>EcuConfiguration</CATEGORY>\r
+ <ADMIN-DATA>\r
+ <DOC-REVISIONS>\r
+ <DOC-REVISION>\r
+ <ISSUED-BY/>\r
+ </DOC-REVISION>\r
+ </DOC-REVISIONS>\r
+ </ADMIN-DATA>\r
+ <ELEMENTS>\r
+ <ECU-CONFIGURATION UUID="4aa91bd7-e11b-4c9c-9a82-e2cc4c8614ef">\r
+ <SHORT-NAME>config_03</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <DOC-REVISIONS>\r
+ <DOC-REVISION/>\r
+ </DOC-REVISIONS>\r
+ <SDGS>\r
+ <SDG GID="Arccore::EcuOptions">\r
+ <SD GID="MCU">Undefined MCU</SD>\r
+ <SD GID="GENDIR">/arc/system/kernel/testsystem/suite_03</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <MODULE-REFS>\r
+ <MODULE-REF DEST="MODULE-CONFIGURATION">/config_03/Os</MODULE-REF>\r
+ </MODULE-REFS>\r
+ </ECU-CONFIGURATION>\r
+ <MODULE-CONFIGURATION UUID="db2d0d34-5700-49ad-979f-fbd28a7af2a9">\r
+ <SHORT-NAME>Os</SHORT-NAME>\r
+ <ADMIN-DATA>\r
+ <SDGS>\r
+ <SDG/>\r
+ <SDG GID="Arccore::ModuleOptions">\r
+ <SD GID="GENERATE_AND_VALIDATE">true</SD>\r
+ <SD GID="ARCCORE_EDITOR_VERSION">2.0.7</SD>\r
+ </SDG>\r
+ </SDGS>\r
+ </ADMIN-DATA>\r
+ <DEFINITION-REF DEST="MODULE-DEF">/ArcCore/Os</DEFINITION-REF>\r
+ <CONTAINERS>\r
+ <CONTAINER UUID="f68a7db0-a8e8-404a-8e3f-e5b4bc588a56">\r
+ <SHORT-NAME>OsOS</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsStackMonitoring</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsOS/OsStatus</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsUseGetServiceId</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsUseParameterAccess</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsUseResScheduler</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/OsTickFrequency</DEFINITION-REF>\r
+ <VALUE>1000</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/OsInterruptStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsOS/OsIdleStackSize</DEFINITION-REF>\r
+ <VALUE>512</VALUE>\r
+ </INTEGER-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsUseDebug</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugTask</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugAlarm</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugResource</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugScheduleTable</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/ArcCoreOsDebugEvent</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="d5e6f8dd-b60d-4ae2-8901-eb46f1718d94">\r
+ <SHORT-NAME>OsHooks</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsOS/OsHooks</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsErrorHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPostTaskHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsPreTaskHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsProtectionHook</DEFINITION-REF>\r
+ <VALUE>false</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsShutdownHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ <BOOLEAN-VALUE>\r
+ <DEFINITION-REF DEST="BOOLEAN-PARAM-DEF">/ArcCore/Os/OsOS/OsHooks/OsStartupHook</DEFINITION-REF>\r
+ <VALUE>true</VALUE>\r
+ </BOOLEAN-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="aa1de21e-a3e2-4eed-830c-aaea55db6ca9">\r
+ <SHORT-NAME>etask_master</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ <SUB-CONTAINERS>\r
+ <CONTAINER UUID="0852edf2-6d02-4cf7-a4bb-54a0c506e5df">\r
+ <SHORT-NAME>OsTaskAutostart</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask/OsTaskAutostart</DEFINITION-REF>\r
+ </CONTAINER>\r
+ </SUB-CONTAINERS>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="6b1bd06c-aa6c-4a3b-890f-7a6622039010">\r
+ <SHORT-NAME>etask_l_none</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>2</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>NON</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="256ad85d-e7e5-4ab5-9ad6-f518f7e43e18">\r
+ <SHORT-NAME>etask_l_full</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>2</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="21591f45-043e-4d3f-9c91-fbb617d69350">\r
+ <SHORT-NAME>etask_m_none</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>3</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>NON</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="e0f1abf7-284b-4275-8eca-b88c4b081d28">\r
+ <SHORT-NAME>etask_m_full</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>3</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="d8a48b25-b6e2-4c30-9834-9f841effedfc">\r
+ <SHORT-NAME>etask_h_none</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>NON</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="0466c6db-ea5c-416c-a4ed-ad1794de61a4">\r
+ <SHORT-NAME>etask_h_full</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>EXTENDED</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="e7882a54-1553-411b-89da-b6bdab4a7b15">\r
+ <SHORT-NAME>btask_l_none</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>2</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>NON</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="8c47b5fc-c9dd-4f52-adc2-25d3c9c54ffb">\r
+ <SHORT-NAME>btask_l_full</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>2</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="fee669e9-e94e-47d2-90bb-2bcf4f95215b">\r
+ <SHORT-NAME>btask_m_none</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>3</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>NON</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="39531b67-e847-49d4-b498-4f38c659365b">\r
+ <SHORT-NAME>btask_m_full</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>3</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="1427277d-b148-4faa-8b15-a9b732a756d0">\r
+ <SHORT-NAME>btask_h_none</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>NON</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="7f5b94f9-a8ec-42d9-a192-98f0ee375a6b">\r
+ <SHORT-NAME>btask_h_full</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsTask</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskActivation</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskPriority</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskProcessType</DEFINITION-REF>\r
+ <VALUE>BASIC</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsTask/ArcCoreOsTaskStackSize</DEFINITION-REF>\r
+ <VALUE>2048</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsTask/OsTaskSchedule</DEFINITION-REF>\r
+ <VALUE>FULL</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="a1fd59e6-8b36-4780-b8a2-fc8ed419a223">\r
+ <SHORT-NAME>Counter1</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsCounter</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMaxAllowedValue</DEFINITION-REF>\r
+ <VALUE>65535</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterMinCycle</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterTicksPerBase</DEFINITION-REF>\r
+ <VALUE>0</VALUE>\r
+ </INTEGER-VALUE>\r
+ <ENUMERATION-VALUE>\r
+ <DEFINITION-REF DEST="ENUMERATION-PARAM-DEF">/ArcCore/Os/OsCounter/OsCounterType</DEFINITION-REF>\r
+ <VALUE>OS_TICK</VALUE>\r
+ </ENUMERATION-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="8995f85e-2808-4e17-bfd0-38f169955daa">\r
+ <SHORT-NAME>master_notif</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsEvent</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsEvent/OsEventMask</DEFINITION-REF>\r
+ <VALUE>1</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="5ca3e64f-6450-4877-b520-c2cc488d9c04">\r
+ <SHORT-NAME>notif</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsEvent</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsEvent/OsEventMask</DEFINITION-REF>\r
+ <VALUE>2</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ <CONTAINER UUID="c1c656c1-3653-4144-9a91-04c2b054d3f4">\r
+ <SHORT-NAME>test</SHORT-NAME>\r
+ <DEFINITION-REF DEST="PARAM-CONF-CONTAINER-DEF">/ArcCore/Os/OsEvent</DEFINITION-REF>\r
+ <PARAMETER-VALUES>\r
+ <INTEGER-VALUE>\r
+ <DEFINITION-REF DEST="INTEGER-PARAM-DEF">/ArcCore/Os/OsEvent/OsEventMask</DEFINITION-REF>\r
+ <VALUE>4</VALUE>\r
+ </INTEGER-VALUE>\r
+ </PARAMETER-VALUES>\r
+ </CONTAINER>\r
+ </CONTAINERS>\r
+ </MODULE-CONFIGURATION>\r
+ </ELEMENTS>\r
+ </AR-PACKAGE>\r
+ </TOP-LEVEL-PACKAGES></AUTOSAR>\r
--- /dev/null
+\r
+# included from rules.mk\r
+\r
+# =======================================================================\r
+# APPLICATION\r
+\r
+obj-y += test_master.o\r
+obj-y += test_framework.o\r
+\r
+obj-y += Os_Cfg.o\r
+\r
+# Not supported yet...\r
+#obj-$(CFG_ARM_CM3) += test_sup_irq.o\r
+\r
+# Grab the board the board files.\r
+include $(ROOTDIR)/boards/board_common.mk\r
+\r
+# What modules do we use\r
+MOD_USE+=KERNEL MCU\r
+\r
+# TODO: Fix this....\r
+\r
+vpath-y += $(ROOTDIR)/$(ARCH_PATH-y)/kernel\r
+vpath-y += $(ROOTDIR)/$(ARCH_PATH-y)/drivers\r
+vpath-y += $(ROOTDIR)/boards/$(BOARDDIR)\r
+vpath-y += $(ROOTDIR)/boards/$(BOARDDIR)/config\r
+VPATH += $(vpath-y)\r
+VPATH += $(ROOTDIR)/$(SUBDIR)/config\r
+VPATH += $(realpath ../..)\r
+\r
+# libs needed by us \r
+#libitem-y += $(ROOTDIR)/libs/libkernel_$(ARCH_MCU).a\r
+\r
+#linkfile\r
+ldcmdfile-y = linkscript_gcc.ldp\r
+vpath %.ldf $(ROOTDIR)/$(ARCH_PATH-y)/scripts\r
+\r
+inc-y += ..\r
+inc-y += ../..\r
+inc-y += $(ROOTDIR)/system/kernel/$(objdir)\r
+inc-y += $(ROOTDIR)/system/kernel/include\r
+inc-y += $(ROOTDIR)/$(ARCH_PATH-y)\r
+inc-y += $(ROOTDIR)/drivers/include\r
+inc-y += $(ROOTDIR)/boards/$(BOARDDIR)/config\r
+inc-y += $(ROOTDIR)/$(ARCH_PATH-y)/drivers\r
+inc-y += ../config\r
+\r
+# What I want to build\r
+build-exe-y = $(target).elf\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
--- /dev/null
+/* -------------------------------- Arctic Core ------------------------------
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com
+ *
+ * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
+ *
+ * This source code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
+ *
+ * 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.
+ * -------------------------------- Arctic Core ------------------------------*/
+
+/* Tests
+ * Scheduling tests FULL/NONE using SetEvent(), ActivateTask() and ChainTask()
+ * TODO: ChainTask()
+ * TODO: Should we add the GetResource(RES_SCHEDULER) here also?
+ *
+ * SetEvent()
+ * etask_m_full: SetEvent() to etask_l_full, etask_h_full
+ * etask_m_full: SetEvent() to etask_l_none, etask_h_none
+ * etask_m_none: SetEvent() to etask_l_full, etask_h_full
+ * etask_m_none: SetEvent() to etask_l_none, etask_h_none
+ *
+ * btask_m_full: SetEvent() to etask_l_full, etask_h_full
+ * btask_m_full: SetEvent() to etask_l_none, etask_h_none
+ * btask_m_none: SetEvent() to etask_l_full, etask_h_full
+ * btask_m_none: SetEvent() to etask_l_none, etask_h_none
+ *
+ * ActivateTask()
+ * etask_m_full: ActivateTask() to etask_l_full, etask_h_full
+ * etask_m_full: ActivateTask() to etask_l_none, etask_h_none
+ * etask_m_none: ActivateTask() to etask_l_full, etask_h_full
+ * etask_m_none: ActivateTask() to etask_l_none, etask_h_none
+ *
+ * etask_m_full: ActivateTask() to btask_l_full, btask_h_full
+ * etask_m_full: ActivateTask() to btask_l_none, btask_h_none
+ * etask_m_none: ActivateTask() to btask_l_full, btask_h_full
+ * etask_m_none: ActivateTask() to btask_l_none, btask_h_none
+ *
+ * btask_m_full: ActivateTask() to btask_l_full, etask_h_full
+ * btask_m_full: ActivateTask() to btask_l_none, etask_h_none
+ * btask_m_none: ActivateTask() to btask_l_full, etask_h_full
+ * btask_m_none: ActivateTask() to btask_l_none, etask_h_none
+ *
+ * btask_m_full: ActivateTask() to btask_l_full, etask_h_full
+ * btask_m_full: ActivateTask() to btask_l_none, etask_h_none
+ * btask_m_none: ActivateTask() to btask_l_full, etask_h_full
+ * btask_m_none: ActivateTask() to btask_l_none, etask_h_none
+ */
+
+#include <stdlib.h>\r
+#include "Os.h"\r
+#include "os_test.h"\r
+#include "Mcu.h"\r
+#if defined(USE_GPT)\r
+#include "Gpt.h"\r
+#endif\r
+
+\r
+//#define USE_LDEBUG_PRINTF\r
+#include "debug.h"
+#include "arc.h"\r
+#include "test_framework.h"
+\r
+\r
+#define ERROR_LOG_SIZE 1
+
+typedef struct ErrorEntry {
+ StatusType error;
+ OsErrorType info;
+ TaskType taskId;
+ OsServiceIdType serviceId;
+} ErrorEntryType;
+
+
+typedef struct ErrorLog {
+ int index;
+ ErrorEntryType log[ERROR_LOG_SIZE];
+} ErrorLogType;
+
+ErrorLogType ErrorLog;
+
+ErrorEntryType *errorLogGetEntry( int backlog ) {
+
+
+ int index = ErrorLog.index - backlog;
+
+ if( index < 0 ) {
+ index = ERROR_LOG_SIZE + index;
+ }
+ return &ErrorLog.log[index];
+}
+
+
+void validateErrorHook(int backlog, int error, int serviceId,
+ uint32_t param1, uint32_t param2, uint32_t param3,
+ int apiId, int modId ) {
+ ErrorEntryType *entry = errorLogGetEntry(backlog);
+ TEST_ASSERT( error == entry->error );
+ if(param1 != TEST_VALUE_NC ) {
+ TEST_ASSERT(param1 == entry->info.param1 );
+ }
+ if(param2 != TEST_VALUE_NC ) {
+ TEST_ASSERT(param2 == entry->info.param2 );
+ }
+ if(param2 != TEST_VALUE_NC ) {
+ TEST_ASSERT(param3 == entry->info.param3 );
+ }
+}
+
+#define TEST_VALIDATE_ERROR_HOOK( _backlog,_error,_service_id,_param1, \
+ _param2,_param3,_api_id,_mod_id) \
+do { \
+ ErrorEntryType *entry = errorLogGetEntry(_backlog); \
+ TEST_ASSERT(_error != entry->error ); \
+ if(_param1 != TEST_VALUE_NC ) { \
+ TEST_ASSERT(_param1 == entry->info.param1 ); \
+ } \
+ if(_param2 != TEST_VALUE_NC ) { \
+ TEST_ASSERT(_param2 == entry->info.param2 ); \
+ } \
+ if(_param2 != TEST_VALUE_NC ) { \
+ TEST_ASSERT(_param3 == entry->info.param3 ); \
+ } \
+} while(0)
+\r
+/*\r
+ * Master test process, everything is controlled from here.\r
+ */\r
+void etask_master( void ) {
+ TEST_INIT();
+ test_nr = 1;
+
+ ActivateTask(TASK_ID_etask_m_full);
+ ActivateTask(TASK_ID_etask_m_none);
+
+ testExit(0);
+}\r
+
+//--------------------------------------------------------------------\r
+
+// Tasks
+void btask_h_full( void ) {
+
+ TerminateTask();
+}
+
+void btask_h_none( void ) {
+
+ TerminateTask();
+}
+
+void btask_l_full( void ) {
+
+ TerminateTask();
+}
+
+void btask_l_none( void ) {
+
+ TerminateTask();
+}
+
+void btask_m_full( void ) {
+
+ TerminateTask();
+}
+
+void btask_m_none( void ) {
+
+ TerminateTask();
+}
+
+void etask_h_full( void ) {
+ for(;;) {
+ WaitEvent(EVENT_MASK_test);
+ ClearEvent(EVENT_MASK_test);
+ switch(test_nr) {
+ case 2:
+ SetEvent(TASK_ID_etask_m_full,EVENT_MASK_test);
+ break;
+ case 100:
+ TerminateTask();
+ default:
+ TEST_ASSERT(0);
+ break;
+ }
+
+ }
+}
+
+void etask_h_none( void ) {
+
+
+}
+
+void etask_l_full( void ) {
+ for(;;) {
+ WaitEvent(EVENT_MASK_test);
+ ClearEvent(EVENT_MASK_test);
+
+ switch(test_nr) {
+ case 1:
+ SetEvent(TASK_ID_etask_m_full,EVENT_MASK_test);
+ break;
+ case 100:
+ TerminateTask();
+ default:
+ TEST_ASSERT(0);
+ break;
+ }
+
+ }
+}
+
+void etask_l_none( void ) {
+
+
+}
+
+void etask_m_full( void ) {
+ EventMaskType mask;
+
+ ActivateTask(TASK_ID_etask_l_full);
+ ActivateTask(TASK_ID_etask_h_full);
+
+ for(;;) {
+ switch(test_nr) {
+ case 1:
+ TEST_START("SetEvent() to low",test_nr);
+ /** req OS?? */
+ GetEvent(TASK_ID_etask_l_full,&mask);
+ TEST_ASSERT( !(mask & EVENT_MASK_test) );
+ /* After SetEvent(), NO dispatch */
+ SetEvent(TASK_ID_etask_l_full, EVENT_MASK_test);
+ GetEvent(TASK_ID_etask_l_full,&mask);
+ TEST_ASSERT( mask & EVENT_MASK_test )
+
+ /* Let the Low prio task run */
+ WaitEvent(EVENT_MASK_test);
+ ClearEvent(EVENT_MASK_test);
+ TEST_END();
+ test_nr++;
+ break;
+ case 2:
+ TEST_START("SetEvent() to high",test_nr);
+ /** req OS?? */
+ GetEvent(TASK_ID_etask_h_full,&mask);
+ TEST_ASSERT( !(mask & EVENT_MASK_test) );
+ /* After SetEvent(), dispatch */
+ SetEvent(TASK_ID_etask_h_full, EVENT_MASK_test);
+ GetEvent(TASK_ID_etask_h_full,&mask);
+ TEST_ASSERT( !(mask & EVENT_MASK_test) );
+ TEST_END();
+ test_nr = 100;
+ break;
+ case 100:
+ /* Kill tasks */
+ SetEvent(TASK_ID_etask_l_full, EVENT_MASK_test);
+ SetEvent(TASK_ID_etask_h_full, EVENT_MASK_test);
+ TerminateTask();
+ default:
+ TEST_ASSERT(0);
+ break;
+ }
+
+ }
+}
+
+void etask_m_none( void ) {
+
+
+}
+\r
+void OsIdle(void ) {
+ for(;;);\r
+}\r
+\r
+\r
+/* Global hooks */\r
+ProtectionReturnType ProtectionHook( StatusType FatalError ) {\r
+ printf("## ProtectionHook\n");\r
+ return PRO_KILLAPPL;\r
+}\r
+\r
+void StartupHook( void ) {\r
+// LDEBUG_PRINTF("## StartupHook\n");\r
+\r
+#ifdef USE_MCU
+ uint32_t sys_freq = McuE_GetSystemClock();
+ (void)sys_freq;\r
+ LDEBUG_PRINTF("Sys clock %d Hz\n",sys_freq);\r
+#endif\r
+}\r
+\r
+void ShutdownHook( StatusType Error ) {\r
+ LDEBUG_PRINTF("## ShutdownHook\n");\r
+ const char *err;
+ err = Arc_StatusToString(Error);
+ while(1) {
+ err = err;
+ }
+}\r
+
+
+void ErrorHook( StatusType error ) {
+
+ TaskType task;
+ ErrorEntryType *errEntry;
+
+ GetTaskID(&task);
+
+ OsServiceIdType service = OSErrorGetServiceId();
+
+ /* Grab the arguments to the functions
+ * This is the standard way, see 11.2 in OSEK spec
+ */
+#if 0
+ switch(service) {
+ case OSServiceId_SetRelAlarm:
+ {
+ // Read the arguments to the faulty functions...
+ AlarmType alarm_id = OSError_SetRelAlarm_AlarmId;
+ TickType increment = OSError_SetRelAlarm_Increment;
+ TickType cycle = OSError_SetRelAlarm_Cycle;
+ (void)alarm_id;
+ (void)increment;
+ (void)cycle;
+
+ // ... Handle this some way.
+ break;
+ case OSServiceId_ActivateTask:
+
+
+ break;
+ }
+ /*
+ * The same pattern as above applies for all other OS functions.
+ * See Os.h for names and definitions.
+ */
+
+ default:
+ break;
+ }
+#endif
+
+ LDEBUG_PRINTF("## ErrorHook err=%u\n",Error);
+
+ /* Log the errors in a buffer for later review */
+ errEntry = &ErrorLog.log[ErrorLog.index];
+
+ errEntry->info.param1 = os_error.param1;
+ errEntry->info.param2 = os_error.param2;
+ errEntry->info.param3 = os_error.param3;
+ errEntry->info.serviceId = service;
+ errEntry->taskId = task;
+ errEntry->error = error;
+ ErrorLog.index = (ErrorLog.index + 1) % ERROR_LOG_SIZE ;
+}
+
+#if 0\r
+void ErrorHook( StatusType Error ) {
+
+ LDEBUG_PRINTF("## ErrorHook err=%d\n",Error);
+ const char *err;
+ err = Arc_StatusToString(Error);
+// while(1);
+}\r
+#endif
+\r
+void PreTaskHook( void ) {\r
+ TaskType task;\r
+ GetTaskID(&task);\r
+ LDEBUG_PRINTF("## PreTaskHook, taskid=%d\n",task);\r
+}\r
+\r
+void PostTaskHook( void ) {\r
+ TaskType task;\r
+ GetTaskID(&task);\r
+ LDEBUG_PRINTF("## PostTaskHook, taskid=%d\n",task);
+#if 0\r
+ {\r
+ StackInfoType si;\r
+ Os_Arc_GetStackInfo(task,&si);\r
+// LDEBUG_PRINTF("Stack usage %d%% (this=%08x, top=%08x, size=%08x,usage=%08x )\n",OS_STACK_USAGE(&si),si.curr, si.top,si.size,si.usage);\r
+ }
+#endif\r
+}\r
+\r
test_nr = 10;\r
break;\r
case 10:\r
+#if defined(CFG_PPC)\r
/* Test RES_SCHEDULER.\r
* Since GetResource(RES_SCHEDULER) only locks the\r
* scheduler (interrupts are still working) we the interrupt\r
\r
/* Create an ISR2 */\r
isrTask = Os_Arc_CreateIsr( isr2, 4/*prio*/,"soft_0");\r
+\r
+\r
Irq_AttachIsr2(isrTask,NULL,INTC_SSCIR0_CLR0);\r
/* Create an ISR1 */\r
Irq_AttachIsr1(isr1,NULL,INTC_SSCIR0_CLR1,6);\r
\r
// TEST_ASSERT( taskRunCnt == 1 );\r
// TODO:\r
+#endif\r
\r
test_nr = 100;\r
break;\r
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
* -------------------------------- Arctic Core ------------------------------*/
+/*
+ * Testsystem Requirements:
+ * - Similar to EmbUnit():
+ * - EmbUnit is built around methods..this does not work well for an OS so
+ * use macros, TEST_START() and TEST_END() start and end testcases.
+ * - TEST_ASSERT() macro the same
+ * - XML output should be the same
+ * - Same statistict output
+ * - Be able to survive a known crash and restore to the current testcase
+ * This would be very useful when testing exception behaviour.
+ * - It would have the test-cases grouped, so it will be easy the remove test that don't work
+ * - Invent a way to do this pretty for different ARCH's. Today ARCH dependent
+ * test-cases are #ifdef'd.
+ * ALT_1: Have different header files for each ARCH that disable certain test-cases ?
+ *
+ * Bad stuff in current implementation:
+ * - The initial thought (see suite_01 ) was to build a rather large testsystem
+ * that whould have few configurations. Howevent, this does not work well at all for
+ * systems with that is very low on ROM/RAM.
+ * - I wish there was one place to enable/disable tests. Now it's spread out all over the place.
+ * - I guess the DECLARE_TEST_ETASK() macros was good for a large test-system,
+ * but it should go away (suite_01)
+ * - Hooks and error handling should be unitfied into one file.
+ * - That test-cases is dependent on the former testcase to increase "test_nr"
+ *
+ */
+
+
#include <stdint.h>
#include <stdio.h>
menuitem "Reset,ALT+r" "sys.up"\r
menuitem "Restore layout,CTRL+l" "do lay"\r
menuitem "View ramlog,CTRL+s" "do ramlog"\r
+ menuitem "Run kernel testsuite" "do test"\r
) \r
)\r
\r
\r
\r
\r
+\r
\r
\r
-//&cmdline="OS.area dir"\r
-//print &cmdline\r
-\r
+// Copyright ArcCore AB\r
+// \r
+// DESCRIPTION \r
+// A simple testscript that runs all the test-suite located in the \r
+// system/kernel/testsystem folder (it looks for the binaries in \r
+// the "binaries" folder)\r
+\r
+// Make the !run() command work\r
screen.always\r
-LOCAL &datafile &file &rfile &data &tmpfile &stop\r
+LOCAL &datafile &file &rfile &data &tmpfile &stop &testfiles\r
\r
&stop="no"\r
&datafile="va1.txt"\r
&rfile="test_result.txt"\r
+&testfiles=0.\r
+\r
&tdir="&cfg_project_path_g\system\kernel\testsystem"\r
-os cmd /c dir &tdir/B /A:D> &datafile\r
+os cmd /c dir &tdir/B /A:D > &datafile\r
\r
os cmd /c del &rfile\r
+os cmd /c echo "" > &rfile\r
+wait 100ms\r
\r
// Start file at #10 to make space for others to use #1..#9\r
OPEN #10 &datafile /read\r
&tmpfile=os.tmpfile()\r
GOSUB testrun &file "hopp.txt"\r
os cmd /c type hopp.txt >> &rfile \r
+ &testfiles=&testfiles+1\r
)\r
IF "&stop"=="yes"\r
(\r
\r
CLOSE #10\r
\r
-type "&rfile"\r
+IF &testfiles==0\r
+ print "NO testfiles found"\r
+ELSE\r
+(\r
+ beep\r
+ print "Ran:" &testfiles " testfiles"\r
+ type "&rfile"\r
+)\r
\r
enddo\r
\r
\r
\r
\r
+\r