*/\r
\r
.global ulPortSetIPL\r
+ .global mcf5xxx_wr_cacr\r
.global __cs3_isr_interrupt_127\r
- .global __cs3_isr_interrupt_119\r
.global vPortStartFirstTask\r
\r
.text\r
.endm\r
\r
.macro portRESTORE_CONTEXT\r
-\r
- move.l pxCurrentTCB, %sp\r
- move.l (%sp), %sp\r
+ move.l pxCurrentTCB, %a0\r
+ move.l (%a0), %sp\r
movem.l (%sp), %d0-%fp\r
lea.l %sp@(60), %sp\r
rte\r
lea 8(SP),SP\r
unlk A6\r
rts\r
+/********************************************************************/\r
+\r
+mcf5xxx_wr_cacr:\r
+ move.l 4(sp),d0\r
+ .long 0x4e7b0002 /* movec d0,cacr */\r
+ nop\r
+ rts\r
\r
/********************************************************************/\r
\r
\r
/* Hardware specifics. */\r
#define portBYTE_ALIGNMENT 4\r
-#define portSTACK_GROWTH -4\r
+#define portSTACK_GROWTH -1\r
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )\r
/*-----------------------------------------------------------*/\r
unsigned portLONG ulPortSetIPL( unsigned portLONG );\r
\r
/* Task utilities. */\r
\r
-#define portYIELD() MCF_INTC0_INTFRCH |= ( 1UL << ( configYIELD_INTERRUPT_VECTOR - 32UL ) ); portNOP(); portNOP(); portNOP(); /* -32 as we are using the high word of the 64bit mask. */\r
+#define portYIELD() MCF_INTC0_INTFRCH |= ( 1UL << ( configYIELD_INTERRUPT_VECTOR - 32UL ) ); portNOP(); portNOP(); portNOP() /* -32 as we are using the high word of the 64bit mask. */\r
\r
\r
\r
#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )\r
/*-----------------------------------------------------------*/\r
\r
-#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) \\r
- { \\r
- portYIELD(); \\r
+#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired != pdFALSE ) \\r
+ { \\r
+ portYIELD(); \\r
}\r
\r
\r