]> rtime.felk.cvut.cz Git - arc.git/commitdiff
rebase fixes from mahi-application kernel-extra
authormahi <devnull@localhost>
Fri, 11 Mar 2011 08:11:30 +0000 (09:11 +0100)
committermahi <devnull@localhost>
Fri, 11 Mar 2011 08:11:30 +0000 (09:11 +0100)
boards/mpc551xsim/build_config.mk
include/Compiler.h
include/MemMap.h
system/kernel/counter.c
system/kernel/include/pcb.h
system/kernel/include/sys.h
system/kernel/include/task_i.h
system/kernel/init.c
system/kernel/sleep.c

index d8a452a03e7dd7d2d8e95679c2601ec6698baf6f..cef39fdb4eadfbe591e3ef4502fa589f4553a280 100644 (file)
@@ -15,4 +15,4 @@ MOD_AVAIL+=ADC DIO DMA CAN GPT LIN MCU PORT PWM WDG
 # System + Communication + Diagnostic\r
 MOD_AVAIL+=CANIF CANTP COM DCM DEM DET ECUM IOHWAB KERNEL PDUR WDGM RTE\r
 # Additional\r
-MOD_AVAIL+=RAMLOG \r
+MOD_AVAIL+=RAMLOG KERNEL_EXTRA\r
index 7d6303f005e21c1dc52b29e847dc420c7dea610a..059b03ce39008c7fafd07b9cd472991213a0e37c 100644 (file)
@@ -37,7 +37,7 @@
 #endif\r
 \r
 #if defined(__GNUC__)\r
-#define SECTION_BALIGN(_align )  __attribute__ ((aligned (_align)));\r
+#define SECTION_BALIGN(_align )  __attribute__ ((aligned (_align)))\r
 #else\r
 #error SECTION_BALIGN not defined for compiler\r
 #endif\r
index 10afc5c7708dfc75ff468adbdc3a42414632966c..52905e3d26efb8fc214a31572f9df85ef7494553 100644 (file)
@@ -25,7 +25,7 @@
 \r
 \r
 #if defined(__GNUC__)\r
-   #define SECTION_RAMLOG      __attribute__ ((section (".ramlog")));\r
+   #define SECTION_RAMLOG      __attribute__ ((section (".ramlog")))\r
 #elif defined(__CWCC__)\r
    #pragma section RW ".ramlog" ".ramlog"\r
    #define SECTION_RAMLOG      __declspec(section ".ramlog")\r
index eeeb6b31c10e9aecaa78995c7a7b88f595bed7ec..5d6c0e98fc5e5445e3310e29189f2ef7f0c1b0f7 100644 (file)
@@ -192,7 +192,7 @@ void OsTick( void ) {
 \r
                OsCounterType *cPtr = Os_CfgGetCounter(Os_Arc_OsTickCounter);\r
 #if defined(USE_KERNEL_EXTRA)\r
-               OsPcbType *pcbPtr;\r
+               OsTaskVarType *pcbPtr;\r
 #endif\r
 \r
                Os_Sys.tick++;\r
@@ -201,11 +201,11 @@ void OsTick( void ) {
 \r
 #if defined(USE_KERNEL_EXTRA)\r
                /* Check sleep() (ST_WAITING) tasks */\r
-               TAILQ_FOREACH(pcbPtr, &os_sys.timerHead, timerEntry ) {\r
+               TAILQ_FOREACH(pcbPtr, &Os_Sys.timerHead, timerEntry ) {\r
                        --pcbPtr->timerDec;\r
                        if( pcbPtr->timerDec <= 0 ) {\r
                                /* Remove from the timer queue */\r
-                               TAILQ_REMOVE(&os_sys.timerHead, pcbPtr, timerEntry);\r
+                               TAILQ_REMOVE(&Os_Sys.timerHead, pcbPtr, timerEntry);\r
                                /* ... and add to the ready queue */\r
                                Os_TaskMakeReady(pcbPtr);\r
                        }\r
index 872a33f1926e60d2d1f0bd3012285efdd62553f1..a02c4c502e36c3ca7f6267f1aa024b9a3c583c6a 100644 (file)
@@ -162,7 +162,7 @@ typedef struct OsTaskVar {
        /* TODO: Arch specific regs .. make space for them later...*/\r
        uint32_t        regs[16];                               // TASK\r
 #if defined(USE_KERNEL_EXTRA)\r
-       TAILQ_ENTRY(OsPcb) timerEntry;          // TASK\r
+       TAILQ_ENTRY(OsTaskVar) timerEntry;              // TASK\r
        int32_t            timerDec;\r
 #endif\r
        /* List of PCB's */\r
index 65a24db9b629320b4357b42e6ecf1ddd8083cb1b..46d14624bb7f7012c52a8c7345d3a047e3c55655 100644 (file)
@@ -25,9 +25,8 @@ typedef enum  {
        OP_TERMINATE_TASK = 8,\r
        OP_SCHEDULE = 16,\r
        OP_CHAIN_TASK = 32,\r
-       OP_RELEASE_RESOURCE = 64\r
+       OP_RELEASE_RESOURCE = 64,\r
        OP_SLEEP = 128,\r
-\r
 } OpType ;\r
 \r
 /*\r
@@ -75,7 +74,7 @@ typedef struct Os_Sys {
 #if defined(USE_KERNEL_EXTRA)\r
 \r
 /* List of PCB's to be put in ready list when timeout */\r
-       TAILQ_HEAD(,OsPcb) timerHead;           // TASK\r
+       TAILQ_HEAD(,OsTaskVar) timerHead;               // TASK\r
 #endif\r
 \r
        /* List of all pcb's,\r
index 3f684e35a8ebb3f33eda1ce69424d64c6d244e0a..68881d086e3e8abe96ef74ea9848548644953ef3 100644 (file)
@@ -60,6 +60,18 @@ static inline void Os_TaskMakeWaiting( OsTaskVarType *pcb )
        OS_DEBUG(D_TASK,"Removed %s from ready list\n",pcb->name);\r
 }\r
 \r
+// Sleeping\r
+#if defined(USE_KERNEL_EXTRA)\r
+static inline void Os_TaskMakeSleeping( OsTaskVarType *pcb )\r
+{\r
+       assert( pcb->state & (ST_READY|ST_RUNNING) );\r
+\r
+       pcb->state = ST_WAITING | ST_SLEEPING;\r
+       TAILQ_REMOVE(&Os_Sys.ready_head,pcb,ready_list);\r
+       OS_DEBUG(D_TASK,"Removed %s from ready list\n",pcb->name);\r
+}\r
+#endif\r
+\r
 // Terminate task\r
 static inline void Os_TaskMakeSuspended( OsTaskVarType *pcb )\r
        {\r
index 5854578ff9be3d7abccd9ad487b6ed3430a03b47..e70985d3d8a431bfde70df88a422ff8637732c1c 100644 (file)
@@ -114,7 +114,7 @@ void InitOS( void ) {
        TAILQ_INIT(& Os_Sys.ready_head);
 //     TAILQ_INIT(& Os_Sys.pcb_head);
 #if defined(USE_KERNEL_EXTRA)
-       TAILQ_INIT(& os_sys.timerHead);
+       TAILQ_INIT(& Os_Sys.timerHead);
 #endif
 
        // Calc interrupt stack
index 1b6396ea12f87f51bc71fa2359ab0a1a6cb89eab..b561ef26ea5b8a42861eb6cabff6f751b07d546f 100644 (file)
  */\r
 \r
 StatusType Sleep( TickType sleep ) {\r
-       OsPcbType *pcbPtr = Os_TaskGetCurrent();\r
+       OsTaskVarType *pcbPtr;\r
        uint32_t flags;\r
 \r
        Irq_Save(flags);\r
 \r
+       pcbPtr = Os_TaskGetCurrent();\r
 \r
-       if (pcbPtr->proc_type != PROC_EXTENDED) {\r
+       if (pcbPtr->constPtr->proc_type != PROC_EXTENDED) {\r
                return E_OS_ACCESS;\r
        }\r
 \r
@@ -34,7 +35,7 @@ StatusType Sleep( TickType sleep ) {
 \r
        if ( Os_SchedulerResourceIsFree() ) {\r
                if( sleep != 0 ) {\r
-                       TAILQ_INSERT_TAIL(&os_sys.timerHead,pcbPtr,timerEntry);\r
+                       TAILQ_INSERT_TAIL(&Os_Sys.timerHead,pcbPtr,timerEntry);\r
                        pcbPtr->timerDec = sleep;\r
                        Os_Dispatch(OP_SLEEP);\r
                } else {\r