]> rtime.felk.cvut.cz Git - arc.git/blobdiff - system/kernel/init.c
EcuM: More EcuM fixes.
[arc.git] / system / kernel / init.c
index 82e585803558c64e6ad5e1ee7e4a338b6c41e346..fe5f9da4878662cff751d209e7b83d9d903bf205 100644 (file)
@@ -56,7 +56,7 @@ static void Os_CfgValidate(void ) {
        OS_VALIDATE(OS_RESOURCE_CNT,ARRAY_SIZE(resource_list));\r
 #endif\r
        OS_VALIDATE(OS_TASK_CNT ,ARRAY_SIZE( Os_TaskConstList));\r
-#if (OS_RESOURCE_CNT!=0)\r
+#if (OS_ALARM_CNT!=0)\r
        OS_VALIDATE(OS_ALARM_CNT,ARRAY_SIZE(alarm_list));\r
 #endif\r
 #if (OS_SCHTBL_CNT!=0)\r
@@ -67,7 +67,6 @@ static void Os_CfgValidate(void ) {
 /* ----------------------------[public functions]----------------------------*/\r
 \r
 extern uint32_t McuE_GetSystemClock( void );\r
-extern OsTickType OsTickFreq;\r
 \r
 \r
 /**\r
@@ -247,18 +246,54 @@ static void os_start( void ) {
 }\r
 #endif\r
 \r
-#define TEST_DATA  12345\r
-int test_data = TEST_DATA;\r
-int test_bss = 0;\r
+#define TEST_DATA  0x12345\r
+#define TEST_SDATA2    0x3344\r
+volatile uint32_t test_data = TEST_DATA;\r
+volatile uint32_t test_bss = 0;\r
+/* Define if compiler is set to use small data section */\r
+/* #define CC_USE_SMALL_DATA */\r
 \r
+#if defined(CFG_PPC) && defined(__CWCC__)\r
+/* Note! It does not matter if the data is initialized to 0,\r
+ * it still sbss2.
+ */\r
+#if defined(CC_USE_SMALL_DATA)\r
+volatile const int test_sbss2;\r
+#endif\r
+/* Initialized small data */\r
+volatile const int test_sdata2 = TEST_SDATA2;\r
 \r
-void noooo( void ) {\r
-       while(1);\r
-}\r
+#endif\r
+\r
+\r
+#define BAD_LINK_FILE()        while(1) {}\r
 \r
 extern void EcuM_Init();\r
 int main( void )\r
 {\r
+       /* Check link file */\r
+       if (TEST_DATA != test_data) {\r
+               BAD_LINK_FILE();\r
+       }\r
+\r
+       if (test_bss != 0) {\r
+               BAD_LINK_FILE();\r
+       }\r
+\r
+#if defined(CFG_PPC) && defined(__CWCC__)\r
+       /* check sdata2 */\r
+       if (test_sdata2 != TEST_SDATA2) {\r
+               BAD_LINK_FILE();\r
+       }\r
+#endif\r
+\r
+#if defined(CC_USE_SMALL_DATA) && defined(CFG_PPC) && defined(__CWCC__)\r
+       /* check sdata2 */\r
+       if (test_sbss2 != 0) {\r
+               BAD_LINK_FILE();\r
+       }\r
+#endif\r
+\r
        EcuM_Init();\r
 \r
 }\r
@@ -271,15 +306,6 @@ int main( void )
  */\r
 void StartOS(AppModeType Mode) {\r
 \r
-       /* Check link file */\r
-       if (TEST_DATA != test_data) {\r
-               noooo();\r
-       }\r
-\r
-       if (test_bss != 0) {\r
-               noooo();\r
-       }\r
-\r
        Os_Sys.appMode = Mode;\r
 \r
        Os_CfgValidate();\r