From d29c7fa59b1606f5623b8024ac3436226e1ceacd Mon Sep 17 00:00:00 2001 From: richardbarry Date: Thu, 14 Aug 2008 11:07:50 +0000 Subject: [PATCH] Minor changes only. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@453 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- Source/portable/GCC/ColdFire_V2/portasm.S | 59 +++++++++++++++++++-- Source/portable/GCC/ColdFire_V2/portmacro.h | 7 ++- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/Source/portable/GCC/ColdFire_V2/portasm.S b/Source/portable/GCC/ColdFire_V2/portasm.S index 7229c52cb..b19ab8b85 100644 --- a/Source/portable/GCC/ColdFire_V2/portasm.S +++ b/Source/portable/GCC/ColdFire_V2/portasm.S @@ -1,11 +1,59 @@ +/* + FreeRTOS.org V5.0.3 - Copyright (C) 2003-2008 Richard Barry. + + This file is part of the FreeRTOS.org distribution. + + FreeRTOS.org is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + FreeRTOS.org 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. + + You should have received a copy of the GNU General Public License + along with FreeRTOS.org; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + A special exception to the GPL can be applied should you wish to distribute + a combined work that includes FreeRTOS.org, without being obliged to provide + the source code for any proprietary components. See the licensing section + of http://www.FreeRTOS.org for full details of how and when the exception + can be applied. + + *************************************************************************** + *************************************************************************** + * * + * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, * + * and even write all or part of your application on your behalf. * + * See http://www.OpenRTOS.com for details of the services we provide to * + * expedite your project. * + * * + *************************************************************************** + *************************************************************************** + + Please ensure to read the configuration and relevant port sections of the + online documentation. + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ /* - * File: mcf5xxx.s * Purpose: Lowest level routines for all ColdFire processors. * * Notes: - * - * Function copied from mcf5xxx.S provided by FreeScale. + * + * ulPortSetIPL() and mcf5xxx_wr_cacr() copied with permission from FreeScale + * supplied source files. */ .global ulPortSetIPL @@ -25,6 +73,7 @@ .endm .macro portRESTORE_CONTEXT + move.l pxCurrentTCB, %a0 move.l (%a0), %sp movem.l (%sp), %d0-%fp @@ -55,7 +104,7 @@ ulPortSetIPL: lsr.l #8,D0 /* IPL */ move.l 8(A6),D6 /* get argument */ - andi.l #0x07,D6 /* least significant three bits */ + andi.l #0x07,D6 /* least significant three bits */ lsl.l #8,D6 /* move over to make mask */ andi.l #0x0000F8FF,D7 /* zero out current IPL */ @@ -70,7 +119,7 @@ ulPortSetIPL: mcf5xxx_wr_cacr: move.l 4(sp),d0 - .long 0x4e7b0002 /* movec d0,cacr */ + .long 0x4e7b0002 /* movec d0,cacr */ nop rts diff --git a/Source/portable/GCC/ColdFire_V2/portmacro.h b/Source/portable/GCC/ColdFire_V2/portmacro.h index 3b0024239..73445ae45 100644 --- a/Source/portable/GCC/ColdFire_V2/portmacro.h +++ b/Source/portable/GCC/ColdFire_V2/portmacro.h @@ -106,12 +106,11 @@ extern void vPortClearInterruptMaskFromISR( unsigned portBASE_TYPE ); /* Task utilities. */ -#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. */ - - - #define portNOP() asm volatile ( "nop" ) +/* Note this will overwrite all other bits in the force register, it is done this way for speed. */ +#define portYIELD() MCF_INTC0_INTFRCH = ( 1UL << ( configYIELD_INTERRUPT_VECTOR - 32UL ) ); portNOP(); portNOP() /* -32 as we are using the high word of the 64bit mask. */ + /*-----------------------------------------------------------*/ /* Task function macros as described on the FreeRTOS.org WEB site. */ -- 2.39.5