From a256024aaae4d235414498b7a1ce41cb9caa3e82 Mon Sep 17 00:00:00 2001
From: Richard Barry <ribarry@amazon.com>
Date: Thu, 29 Jan 2009 14:46:41 +0000
Subject: [PATCH] Add LED output routine for the JJ3 target board.

---
 .../ParTest/ParTest_Generic_Target_Board.c    | 123 ++++++++++++++++++
 1 file changed, 123 insertions(+)
 create mode 100644 Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c

diff --git a/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c b/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c
new file mode 100644
index 000000000..a91041862
--- /dev/null
+++ b/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c
@@ -0,0 +1,123 @@
+/*
+	FreeRTOS.org V5.1.1 - 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.
+*/
+
+/*-----------------------------------------------------------
+ * Simple parallel port IO routines.
+ *-----------------------------------------------------------*/
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "task.h"
+
+/* Demo includes. */
+#include "partest.h"
+
+#define partstNUM_LEDs	4
+
+#define LED0_MASK		( ( unsigned short ) 0x04 )
+#define LED1_MASK		( ( unsigned short ) 0x08 )
+
+static const unsigned short xLEDs[ partstNUM_LEDs ] = { LED0_MASK, LED1_MASK };
+
+/*-----------------------------------------------------------*/
+
+void vParTestInitialise( void )
+{
+	/* LED Port Initialization */
+	PMCM  = PM3 &= ~( LED0_MASK | LED1_MASK );
+}
+/*-----------------------------------------------------------*/
+
+void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
+{
+unsigned portBASE_TYPE uxLEDMask;
+
+	if( uxLED < partstNUM_LEDs )
+	{
+		uxLEDMask = xLEDs[ uxLED ];
+		
+		taskENTER_CRITICAL();
+		{
+			if( xValue )
+			{
+				PMCM |= uxLEDMask;
+			}
+			else
+			{
+				PMCM &= ~uxLEDMask;
+			}
+		}
+		taskEXIT_CRITICAL();
+	}
+}
+/*-----------------------------------------------------------*/
+
+void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
+{
+unsigned portBASE_TYPE uxLEDMask;
+
+	if( uxLED < partstNUM_LEDs )
+	{
+		uxLEDMask = xLEDs[ uxLED ];
+		
+		taskENTER_CRITICAL();
+		{
+			if( PMCM & uxLEDMask )
+			{
+				PMCM &= ~uxLEDMask;
+			}
+			else
+			{
+				PMCM |= uxLEDMask;
+			}
+		}
+		taskEXIT_CRITICAL();
+	}
+}
+