mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-01 08:54:14 -04:00
Add FreeRTOS-Plus directory.
This commit is contained in:
parent
7bd5f21ad5
commit
f508a5f653
6798 changed files with 134949 additions and 19 deletions
152
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h
Normal file
152
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h
Normal file
|
@ -0,0 +1,152 @@
|
|||
/*
|
||||
FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* Having a problem? Start by reading the FAQ "My application does *
|
||||
* not run, what could be wrong? *
|
||||
* *
|
||||
* http://www.FreeRTOS.org/FAQHelp.html *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, training, latest information,
|
||||
license and contact details.
|
||||
|
||||
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||
including FreeRTOS+Trace - an indispensable productivity tool.
|
||||
|
||||
Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell
|
||||
the code with commercial support, indemnification, and middleware, under
|
||||
the OpenRTOS brand: http://www.OpenRTOS.com. High Integrity Systems also
|
||||
provide a safety engineered and independently SIL3 certified version under
|
||||
the SafeRTOS brand: http://www.SafeRTOS.com.
|
||||
*/
|
||||
|
||||
#include "iodefine.h"
|
||||
|
||||
#ifndef FREERTOS_CONFIG_H
|
||||
#define FREERTOS_CONFIG_H
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Application specific definitions.
|
||||
*
|
||||
* These definitions should be adjusted for your particular hardware and
|
||||
* application requirements.
|
||||
*
|
||||
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
|
||||
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
|
||||
*
|
||||
* See http://www.freertos.org/a00110.html.
|
||||
*----------------------------------------------------------*/
|
||||
|
||||
#define configUSE_PREEMPTION 1
|
||||
#define configUSE_IDLE_HOOK 1
|
||||
#define configUSE_TICK_HOOK 1 /* Must be set to one for the timer interrupt to be cleared. */
|
||||
#define configCPU_CLOCK_HZ ( 200000000UL )
|
||||
#define configPERIPHERAL_CLOCK_HZ ( 50000000UL )
|
||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 140 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 36 * 1024 ) )
|
||||
#define configMAX_TASK_NAME_LEN ( 12 )
|
||||
#define configUSE_TRACE_FACILITY 1
|
||||
#define configUSE_16_BIT_TICKS 0
|
||||
#define configIDLE_SHOULD_YIELD 1
|
||||
#define configUSE_CO_ROUTINES 0
|
||||
#define configUSE_MUTEXES 1
|
||||
#define configGENERATE_RUN_TIME_STATS 1
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
#define configUSE_RECURSIVE_MUTEXES 1
|
||||
#define configQUEUE_REGISTRY_SIZE 0
|
||||
#define configUSE_MALLOC_FAILED_HOOK 1
|
||||
#define configUSE_APPLICATION_TASK_TAG 1 /* Must be set to one for floating point support in this port. */
|
||||
|
||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
|
||||
|
||||
/* Set the following definitions to 1 to include the API function, or zero
|
||||
to exclude the API function. */
|
||||
|
||||
#define INCLUDE_vTaskPrioritySet 1
|
||||
#define INCLUDE_uxTaskPriorityGet 1
|
||||
#define INCLUDE_vTaskDelete 1
|
||||
#define INCLUDE_vTaskCleanUpResources 0
|
||||
#define INCLUDE_vTaskSuspend 1
|
||||
#define INCLUDE_vTaskDelayUntil 1
|
||||
#define INCLUDE_vTaskDelay 1
|
||||
#define INCLUDE_uxTaskGetStackHighWaterMark 1
|
||||
#define INCLUDE_xTaskGetSchedulerState 1
|
||||
|
||||
|
||||
void vSetupClockForRunTimeStats( void );
|
||||
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vSetupClockForRunTimeStats()
|
||||
|
||||
extern unsigned long ulRunTime;
|
||||
#define portGET_RUN_TIME_COUNTER_VALUE() ulRunTime
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Ethernet configuration.
|
||||
*-----------------------------------------------------------*/
|
||||
|
||||
/* MAC address configuration. */
|
||||
#define configMAC_ADDR0 0x00
|
||||
#define configMAC_ADDR1 0x12
|
||||
#define configMAC_ADDR2 0x13
|
||||
#define configMAC_ADDR3 0x10
|
||||
#define configMAC_ADDR4 0x15
|
||||
#define configMAC_ADDR5 0x11
|
||||
|
||||
/* IP address configuration. */
|
||||
#define configIP_ADDR0 192
|
||||
#define configIP_ADDR1 168
|
||||
#define configIP_ADDR2 0
|
||||
#define configIP_ADDR3 201
|
||||
|
||||
/* Netmask configuration. */
|
||||
#define configNET_MASK0 255
|
||||
#define configNET_MASK1 255
|
||||
#define configNET_MASK2 255
|
||||
#define configNET_MASK3 0
|
||||
|
||||
#endif /* FREERTOS_CONFIG_H */
|
153
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c
Normal file
153
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c
Normal file
|
@ -0,0 +1,153 @@
|
|||
/*
|
||||
FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* Having a problem? Start by reading the FAQ "My application does *
|
||||
* not run, what could be wrong? *
|
||||
* *
|
||||
* http://www.FreeRTOS.org/FAQHelp.html *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, training, latest information,
|
||||
license and contact details.
|
||||
|
||||
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||
including FreeRTOS+Trace - an indispensable productivity tool.
|
||||
|
||||
Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell
|
||||
the code with commercial support, indemnification, and middleware, under
|
||||
the OpenRTOS brand: http://www.OpenRTOS.com. High Integrity Systems also
|
||||
provide a safety engineered and independently SIL3 certified version under
|
||||
the SafeRTOS brand: http://www.SafeRTOS.com.
|
||||
*/
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Simple IO routines to control the LEDs.
|
||||
*-----------------------------------------------------------*/
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
/* Demo includes. */
|
||||
#include "partest.h"
|
||||
|
||||
#define partestNUM_LEDS ( 6 )
|
||||
#define partestALL_LEDS ( usLEDMasks[ 0 ] | usLEDMasks[ 1 ] | usLEDMasks[ 2 ] | usLEDMasks[ 3 ] | usLEDMasks[ 4 ] | usLEDMasks[ 5 ] )
|
||||
|
||||
static const unsigned short usLEDMasks[ partestNUM_LEDS ] = { ( 1 << 9 ), ( 1 << 11 ), ( 1 << 12 ), ( 1 << 13 ), ( 1 << 14 ), ( 1 << 15 ) };
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestInitialise( void )
|
||||
{
|
||||
/* Select port functions for PE9 to PE15. */
|
||||
PFC.PECRL3.WORD &= ( unsigned short ) ~partestALL_LEDS;
|
||||
|
||||
/* Turn all LEDs off. */
|
||||
PE.DR.WORD &= ( unsigned short ) ~partestALL_LEDS;
|
||||
|
||||
/* Set all LEDs to output. */
|
||||
PFC.PEIORL.WORD |= ( unsigned short ) partestALL_LEDS;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||
{
|
||||
if( uxLED < partestNUM_LEDS )
|
||||
{
|
||||
if( xValue )
|
||||
{
|
||||
/* Turn the LED on. */
|
||||
taskENTER_CRITICAL();
|
||||
{
|
||||
PE.DR.WORD |= usLEDMasks[ uxLED ];
|
||||
}
|
||||
taskEXIT_CRITICAL();
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Turn the LED off. */
|
||||
taskENTER_CRITICAL();
|
||||
{
|
||||
PE.DR.WORD &= ( unsigned short ) ~usLEDMasks[ uxLED ];
|
||||
}
|
||||
taskEXIT_CRITICAL();
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||
{
|
||||
if( uxLED < partestNUM_LEDS )
|
||||
{
|
||||
taskENTER_CRITICAL();
|
||||
{
|
||||
if( ( PE.DR.WORD & usLEDMasks[ uxLED ] ) != 0x00 )
|
||||
{
|
||||
PE.DR.WORD &= ( unsigned short ) ~usLEDMasks[ uxLED ];
|
||||
}
|
||||
else
|
||||
{
|
||||
PE.DR.WORD |= usLEDMasks[ uxLED ];
|
||||
}
|
||||
}
|
||||
taskEXIT_CRITICAL();
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
long lParTestGetLEDState( void )
|
||||
{
|
||||
/* Returns the state of the fifth LED. */
|
||||
return !( PE.DR.WORD & usLEDMasks[ 4 ] );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
15
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c
Normal file
15
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.c
Normal file
|
@ -0,0 +1,15 @@
|
|||
|
||||
void main(void);
|
||||
|
||||
void main(void)
|
||||
{
|
||||
volatile unsigned long ul;
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
ul++;
|
||||
ul++;
|
||||
}
|
||||
}
|
||||
|
||||
|
239
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp
Normal file
239
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp
Normal file
|
@ -0,0 +1,239 @@
|
|||
[HIMDBVersion]
|
||||
2.0
|
||||
[DATABASE_VERSION]
|
||||
"2.8"
|
||||
[PROJECT_DETAILS]
|
||||
"RTOSDemo" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\RTOSDemo.hwp" "SuperH RISC engine" "Renesas SuperH Standard" "Application" "SH2A-FPU" "Other"
|
||||
[INFORMATION]
|
||||
"No project information available"
|
||||
[TOOL_CHAIN]
|
||||
"Renesas SuperH RISC engine Standard Toolchain" "9.3.2.0"
|
||||
[CONFIGURATIONS]
|
||||
"Debug_SH7216_E10A-USB_SYSTEM__SH" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\Debug_SH7216_E10A-USB_SYSTEM__SH"
|
||||
[BUILD_PHASES]
|
||||
"Renesas OptLinker" 1
|
||||
"Renesas SH Assembler" 1
|
||||
"Renesas SH C/C++ Compiler" 1
|
||||
"Renesas SH C/C++ Library Generator" 1
|
||||
[TOOL_ENVIRONMENT]
|
||||
[EXTENSIONS]
|
||||
"Absolute file" "ABS"
|
||||
"Assembly include file" "INC"
|
||||
"Assembly list file" "LIS"
|
||||
"Assembly source file" "ASM"
|
||||
"Assembly source file" "SRC"
|
||||
"Binary file" "BIN"
|
||||
"C header file" "H"
|
||||
"C list file" "LST"
|
||||
"C source file" "C"
|
||||
"C++ header file" "HPP"
|
||||
"C++ list file" "LPP"
|
||||
"C++ source file" "CC"
|
||||
"C++ source file" "CP"
|
||||
"C++ source file" "CPP"
|
||||
"CPU information file" "CPU"
|
||||
"Calling information file" "CAL"
|
||||
"Debug information file" "DBG"
|
||||
"Expanded assembly source file" "EXP"
|
||||
"Hex file" "HEX"
|
||||
"Library file" "LIB"
|
||||
"Library information file" "LBP"
|
||||
"Linkage map file" "MAP"
|
||||
"Linkage symbol file" "FSY"
|
||||
"Object file" "OBJ"
|
||||
"Optimize map file" "bls"
|
||||
"Preprocessed C source file" "P"
|
||||
"Preprocessed C++ source file" "PP"
|
||||
"Profile file" "PRO"
|
||||
"Relocatable file" "REL"
|
||||
"Rts information file" "RTS"
|
||||
"S-Record file" "MOT"
|
||||
"Stack information file" "SNI"
|
||||
"TD include object file" "RTI"
|
||||
[FILE_GROUPS]
|
||||
"Absolute file" "BIN" "NONE" ""
|
||||
"Assembly include file" "TEXT" "EDITOR" ""
|
||||
"Assembly list file" "TEXT" "EDITOR" ""
|
||||
"Assembly source file" "TEXT" "EDITOR" ""
|
||||
"Binary file" "BIN" "NONE" ""
|
||||
"C header file" "TEXT" "EDITOR" ""
|
||||
"C list file" "TEXT" "EDITOR" ""
|
||||
"C source file" "TEXT" "EDITOR" ""
|
||||
"C++ header file" "TEXT" "EDITOR" ""
|
||||
"C++ list file" "TEXT" "EDITOR" ""
|
||||
"C++ source file" "TEXT" "EDITOR" ""
|
||||
"CPU information file" "BIN" "NONE" ""
|
||||
"Calling information file" "BIN" "NONE" ""
|
||||
"Debug information file" "BIN" "NONE" ""
|
||||
"Expanded assembly source file" "TEXT" "EDITOR" ""
|
||||
"Hex file" "TEXT" "EDITOR" ""
|
||||
"Library file" "BIN" "NONE" ""
|
||||
"Library information file" "TEXT" "EDITOR" ""
|
||||
"Linkage map file" "TEXT" "EDITOR" ""
|
||||
"Linkage symbol file" "TEXT" "EDITOR" ""
|
||||
"Object file" "BIN" "NONE" ""
|
||||
"Optimize map file" "BIN" "NONE" ""
|
||||
"Preprocessed C source file" "TEXT" "EDITOR" ""
|
||||
"Preprocessed C++ source file" "TEXT" "EDITOR" ""
|
||||
"Profile file" "BIN" "NONE" ""
|
||||
"Relocatable file" "BIN" "NONE" ""
|
||||
"Rts information file" "BIN" "NONE" ""
|
||||
"S-Record file" "TEXT" "EDITOR" ""
|
||||
"Stack information file" "BIN" "NONE" ""
|
||||
"TD include object file" "BIN" "NONE" ""
|
||||
[ASSOCIATED_APPLICATIONS]
|
||||
[TOOLCHAIN_PHASE]
|
||||
"Renesas OptLinker"
|
||||
"Renesas SH Assembler"
|
||||
"Renesas SH C/C++ Compiler"
|
||||
"Renesas SH C/C++ Library Generator"
|
||||
[UTILITY_PHASE]
|
||||
[CUSTOM_PHASES]
|
||||
[CUSTOM_PHASE_INPUT_GROUP]
|
||||
[CUSTOM_PHASE_OUTPUT_SYNTAX]
|
||||
[BUILD_ORDER]
|
||||
"Renesas SH C/C++ Library Generator" 1
|
||||
"Renesas SH C/C++ Compiler" 1
|
||||
"Renesas SH Assembler" 1
|
||||
"Renesas OptLinker" 1
|
||||
[BUILD_PHASE_DETAILS]
|
||||
"Renesas OptLinker" "Object file|Library file|Relocatable file" 0
|
||||
"Renesas SH Assembler" "Assembly source file|Linkage symbol file" 1
|
||||
"Renesas SH C/C++ Compiler" "C source file|C++ source file" 1
|
||||
"Renesas SH C/C++ Library Generator" "" 0
|
||||
[BUILD_FILE_ORDER_Assembly source file]
|
||||
"Renesas SH Assembler" 1
|
||||
[BUILD_FILE_ORDER_C source file]
|
||||
"Renesas SH C/C++ Compiler" 1
|
||||
[BUILD_FILE_ORDER_C++ source file]
|
||||
"Renesas SH C/C++ Compiler" 1
|
||||
[BUILD_FILE_ORDER_Linkage symbol file]
|
||||
"Renesas SH Assembler" 1
|
||||
[SCRAP]
|
||||
"Project Generator Setup File" "$(PROJDIR)\RTOSDemo.pgs"
|
||||
[MAPPINGS]
|
||||
"Assembly source file" "Renesas SH Assembler" "Renesas SH C/C++ Compiler"
|
||||
"Library file" "Renesas OptLinker" "Renesas SH C/C++ Library Generator"
|
||||
"Object file" "Renesas OptLinker" "Renesas SH Assembler"
|
||||
"Object file" "Renesas OptLinker" "Renesas SH C/C++ Compiler"
|
||||
[PROJECT_FILES]
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\psock.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\timer.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip_arp.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\RenesasCode\hwEthernetPhyRTL8201.c" "User" "C source file|RenesasCode" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\dbsct.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\flop.c" "User" "C source file|Standard Demo Tasks" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\intprg.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\printf-stdarg.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" "User" "Assembly source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\resetprg.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\uIP_Task.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\vecttbl.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\webserver\EMAC.c" "User" "C source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\webserver\EMAC_ISR.src" "User" "Assembly source file" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\webserver\httpd-cgi.c" "User" "C source file|FreeTCPIP" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "User" "C source file|FreeRTOS" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "User" "C source file|FreeRTOS" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\port.c" "User" "C source file|FreeRTOS" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" "User" "C source file|FreeRTOS" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "User" "C source file|FreeRTOS" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "User" "C source file|FreeRTOS" 2
|
||||
[FOLDER]
|
||||
"Assembly source file" "Assembly source file"
|
||||
"C header file" "C header file"
|
||||
"C source file" "C source file"
|
||||
"C source file|FreeRTOS" ""
|
||||
"C source file|FreeTCPIP" ""
|
||||
"C source file|RenesasCode" ""
|
||||
"C source file|Standard Demo Tasks" ""
|
||||
[GENERAL_DATA_PROJECT]
|
||||
"USE_CUSTOM_LINKAGE_ORDER" "0"
|
||||
[ON_DEMAND_COMPONENTS_LOADED]
|
||||
[SYNC_SESSION_NAMES]
|
||||
[SESSIONS]
|
||||
"SessionSH7216_E10A-USB_SYSTEM__SH" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\SessionSH7216_E10A-USB_SYSTEM__SH.hsf" 0
|
||||
[GENERAL_DATA_SESSION_SessionSH7216_E10A-USB_SYSTEM__SH]
|
||||
[OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas OptLinker]
|
||||
"Single Shot" "02ce8974bdcaac10" 5
|
||||
[OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas SH Assembler]
|
||||
"Assembly source file" "099e0cfb35eaac10" 3
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" "099e0cfb35eaac10" 3
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\webserver\EMAC_ISR.src" "099e0cfb35eaac10" 3
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" "099e0cfb35eaac10" 3
|
||||
"Linkage symbol file" "05db08d6f178ac10" 4
|
||||
[OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas SH C/C++ Compiler]
|
||||
"C source file" "0e01c1b7cefaac10" 2
|
||||
"C++ source file" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\psock.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\timer.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\ethernet\FreeTCPIP\uip_arp.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\RenesasCode\hwEthernetPhyRTL8201.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\dbsct.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\flop.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\intprg.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\printf-stdarg.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\resetprg.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\uIP_Task.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\vecttbl.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\webserver\EMAC.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\webserver\httpd-cgi.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\port.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0e01c1b7cefaac10" 2
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0e01c1b7cefaac10" 2
|
||||
[OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas SH C/C++ Library Generator]
|
||||
"Single Shot" "0a60f44dc2baac10" 1
|
||||
[OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH]
|
||||
"" 0
|
||||
"[V|VERSION|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|LITERAL|POOL|BRANCH|JUMP|RETURN] [S|DISPSIZE|12] [I|TAB|8] [B|ERRORPATH|1] [B|CHGINCPATH|1] [S|CPU|SH2AFPU] [S|ENDIAN|BIG] [S|ROUND|NEAREST] [B|DENORMALIZE|0] [B|SKIPDEPENDENCY|1]
|
||||
" 4
|
||||
"[V|VERSION|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\SH2A_FPU^"] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|LITERAL|POOL|BRANCH|JUMP|RETURN] [S|DISPSIZE|12] [I|TAB|8] [B|ERRORPATH|1] [B|CHGINCPATH|1] [S|CPU|SH2AFPU] [S|ENDIAN|BIG] [S|ROUND|NEAREST] [B|DENORMALIZE|0] [B|SKIPDEPENDENCY|1]
|
||||
" 3
|
||||
"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)] [S|CRC|NONE|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [I|CACHESIZE|000000008] [I|CACHELINE|000000020] [S|START|DVECTTBL,DINTTBL(00)|PResetPRG,PIntPRG(0800)|P,C,C$BSEC,C$DSEC,D(01000)|B,R(0FFF80000)|BTX_DESCR(0FFF91100)|BRX_DESCR(0FFF91200)|B_ETHERNET_BUFFERS(0FFF93100)|S(0FFF9FC00)] [B|SKIPDEPENDENCY|1]
|
||||
" 5
|
||||
"[V|VERSION|7] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\SH2A_FPU^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"|^"$(PROJDIR)\RenesasCode^"] [S|DEFINE|PACK_STRUCT_END=UNPACK] [S|NOMESSAGE|5|6|8] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|ALIGN4|ALL] [S|ASSEMBLY|^"[V|VERSION|1]] [S|OUTPUTPATH|^"^"$(CONFIGDIR)\$(FILELEAF).obj^"^"]] [S|LITERAL|POOL|BRANCH|JUMP|RETURN]] [S|DISPSIZE|12]] [I|TAB|8]] [B|CHGINCPATH|1]] [S|CPU|SH2AFPU]] [S|ENDIAN|BIG]] [S|ROUND|NEAREST]] [B|DENORMALIZE|0]]^"] [B|TBR|0] [B|STUFF|0] [S|BSS_ORDER|DECLARATION] [S|MXGEN_MEM0|00000000] [S|MXGEN_MEM1|00000000] [B|LIST|0] [S|GBR|AUTO] [S|INLINE|DEFAULT] [I|INLINE|20] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|OPT_RANGE|ALL] [I|MAX_UNROLL|1] [S|FPSCR|SAFE] [S|CPU|SH2AFPU] [S|ROUND|NEAREST] [B|CHGINCPATH|1] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1]
|
||||
" 2
|
||||
"[V|VERSION|7] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|STDARG|1] [B|STDLIB|1] [B|STRING|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|REENT|1] [S|ALIGN4|ALL] [B|STUFF|0] [S|BSS_ORDER|DECLARATION] [S|GBR|AUTO] [S|INLINE|DEFAULT] [I|INLINE|20] [S|OPT_RANGE|ALL] [I|MAX_UNROLL|1] [B|SAVE_CONT_REG|1] [S|CPU|SH2AFPU] [S|ROUND|NEAREST] [B|SKIPDEPENDENCY|1]
|
||||
" 1
|
||||
[EXCLUDED_FILES_Debug_SH7216_E10A-USB_SYSTEM__SH]
|
||||
[LINKAGE_ORDER_Debug_SH7216_E10A-USB_SYSTEM__SH]
|
||||
[GENERAL_DATA_CONFIGURATION_Debug_SH7216_E10A-USB_SYSTEM__SH]
|
||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SH7216_E10A-USB_SYSTEM__SH_SessionSH7216_E10A-USB_SYSTEM__SH]
|
||||
[SESSION_DATA_CONFIGURATION_SESSION_Debug_SH7216_E10A-USB_SYSTEM__SH_SessionSH7216_E10A-USB_SYSTEM__SH]
|
||||
"MEMORY_MAPPING_OPTIONS" "Unknown Options"
|
||||
[EXT_DEBUGGER_INFO]
|
||||
0 "" "" "" ""
|
||||
[END]
|
BIN
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav
Normal file
BIN
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav
Normal file
Binary file not shown.
35
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.pgs
Normal file
35
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.pgs
Normal file
|
@ -0,0 +1,35 @@
|
|||
; Project Generator Setup Infomation
|
||||
|
||||
[PGS Version]
|
||||
Version=1.0
|
||||
|
||||
[Toolchain]
|
||||
Toolchain=Renesas SuperH Standard
|
||||
Toolchain Name=Renesas SuperH RISC engine Standard Toolchain
|
||||
Toolchain Version=9.3.2.0
|
||||
|
||||
[CPU]
|
||||
CPU Family=SuperH RISC engine
|
||||
CPU Series=SH2A-FPU
|
||||
CPU Type=Other
|
||||
Operating Mode=Not Support
|
||||
Address Space=Not Support
|
||||
Multiple=Not Support
|
||||
Divide=Not Support
|
||||
|
||||
[Project]
|
||||
Project Name=RTOSDemo
|
||||
Project Type=Application
|
||||
|
||||
[Stack Settings]
|
||||
Stack Pointer Address=H'FFFC0000
|
||||
Stack Size=H'400
|
||||
Stack Section Name=S
|
||||
Stack Section Address=
|
||||
Source File Name=stacksct.h
|
||||
Description=#pragma stacksize 0x400 /* Do not modify this line. */
|
||||
Default Stack Pointer Address=H'FFFC0000
|
||||
Default Stack Size=H'400
|
||||
|
||||
[Initial Settings]
|
||||
Simulator I/O=disable
|
20
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.tps
Normal file
20
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.tps
Normal file
|
@ -0,0 +1,20 @@
|
|||
[HIMDBVersion]
|
||||
2.0
|
||||
[DATABASE_VERSION]
|
||||
"1.1"
|
||||
[SESSIONS_]
|
||||
"SessionSH7216_E10A-USB_SYSTEM__SH"
|
||||
[CONFIGURATIONS]
|
||||
"Debug_SH7216_E10A-USB_SYSTEM__SH"
|
||||
[CURRENT_CONFIGURATION]
|
||||
"Debug_SH7216_E10A-USB_SYSTEM__SH"
|
||||
[CURRENT_SESSION]
|
||||
"SessionSH7216_E10A-USB_SYSTEM__SH"
|
||||
[GENERAL_DATA_PROJECT]
|
||||
[GENERAL_DATA_CONFIGURATION_Debug_SH7216_E10A-USB_SYSTEM__SH]
|
||||
"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE"
|
||||
[SESSIONS_Debug_SH7216_E10A-USB_SYSTEM__SH]
|
||||
"SessionSH7216_E10A-USB_SYSTEM__SH"
|
||||
[GENERAL_DATA_SESSION_SessionSH7216_E10A-USB_SYSTEM__SH]
|
||||
[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SH7216_E10A-USB_SYSTEM__SH_SessionSH7216_E10A-USB_SYSTEM__SH]
|
||||
[END]
|
|
@ -0,0 +1,94 @@
|
|||
/******************************************************************************
|
||||
* File Name : compiler.h
|
||||
* Version : 1.0
|
||||
* Device(s) : Renesas
|
||||
* Tool-Chain : Renesas SH2A V9+
|
||||
* OS : None
|
||||
* H/W Platform : SH2A
|
||||
* Description : Compiler specific defines for abstraction
|
||||
*******************************************************************************
|
||||
* History : DD.MM.YYYY Ver. Description
|
||||
* : 01.08.2009 1.00 MAB First Release
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
******************************************************************************/
|
||||
/* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. */
|
||||
/* Copyright (C) 2009. Renesas Technology Europe Ltd., All Rights Reserved. */
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef COMPILER_H_INCLUDED
|
||||
#define COMPILER_H_INCLUDED
|
||||
|
||||
/******************************************************************************
|
||||
Defines
|
||||
******************************************************************************/
|
||||
|
||||
/* Embedded CPU data type definitions */
|
||||
|
||||
/* Set a few #defines for potential compilers used */
|
||||
#define MCS 0 /* Hitachi */
|
||||
#define GNU 1 /* Hitachi + many other devices */
|
||||
#define IAR 2 /* Hitachi + some other devices */
|
||||
#define MSV 3 /* Microsoft Visual C */
|
||||
|
||||
/* Test the compiler intrinisic defs */
|
||||
#ifdef __GNUC__ /* GNU compiler - C mode */
|
||||
#define COMPILER GNU
|
||||
|
||||
#elif defined(__GNUG__) /* GNU compiler - C++ mode */
|
||||
#define COMPILER GNU
|
||||
|
||||
#elif defined __IAR_SYSTEMS_ICC /* IAR compiler */
|
||||
#define COMPILER IAR
|
||||
|
||||
#elif defined _MSC_VER /* Microsoft c compiler */
|
||||
#define COMPILER MSV
|
||||
#else
|
||||
|
||||
#define COMPILER MCS /* MCS compiler */
|
||||
/* MCS compiler has MSB first even in little
|
||||
endian mode unless #pragma or command
|
||||
line switch used to change it */
|
||||
#define _BITFIELDS_MSB_FIRST_
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
Pragma macros
|
||||
******************************************************************************/
|
||||
/* Visual Cpp */
|
||||
#if COMPILER == MSV
|
||||
#define PACK1 pack(1)
|
||||
#define UNPACK pack()
|
||||
#else
|
||||
/* MCS SH & H8S series recently got unified
|
||||
pragma syntax */
|
||||
#define PACK1 # ## pragma pack 1
|
||||
#define UNPACK # ## pragma unpack
|
||||
#endif
|
||||
|
||||
#endif /* COMPILER_H_INCLUDED */
|
||||
|
||||
/******************************************************************************
|
||||
End Of File
|
||||
******************************************************************************/
|
|
@ -0,0 +1,152 @@
|
|||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* Please refer to http://www.renesas.com/disclaimer
|
||||
******************************************************************************
|
||||
Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved.
|
||||
*******************************************************************************
|
||||
* File Name : hwEthernet.h
|
||||
* Version : 1.00
|
||||
* Description : Ethernet module device driver
|
||||
******************************************************************************
|
||||
* History : DD.MM.YYYY Version Description
|
||||
* : 06.10.2009 1.00 First Release
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef HWETHERNET_H_INCLUDED
|
||||
#define HWETHERNET_H_INCLUDED
|
||||
|
||||
/******************************************************************************
|
||||
Includes <System Includes> , "Project Includes"
|
||||
******************************************************************************/
|
||||
|
||||
#include "typedefine.h"
|
||||
|
||||
/******************************************************************************
|
||||
Typedef definitions
|
||||
******************************************************************************/
|
||||
typedef struct Discript
|
||||
{
|
||||
uint32_t status;
|
||||
ushort16_t bufsize;
|
||||
ushort16_t size;
|
||||
char8_t *buf_p;
|
||||
struct Discript *next;
|
||||
} ethfifo;
|
||||
|
||||
/******************************************************************************
|
||||
Macro definitions
|
||||
******************************************************************************/
|
||||
#define BUFSIZE 256
|
||||
#define ENTRY 8
|
||||
|
||||
#define ACT 0x80000000
|
||||
#define DL 0x40000000
|
||||
#define FP1 0x20000000
|
||||
#define FP0 0x10000000
|
||||
#define FE 0x08000000
|
||||
|
||||
#define RFOVER 0x00000200
|
||||
#define RMAF 0x00000080
|
||||
#define RRF 0x00000010
|
||||
#define RTLF 0x00000008
|
||||
#define RTSF 0x00000004
|
||||
#define PRE 0x00000002
|
||||
#define CERF 0x00000001
|
||||
|
||||
#define ITF 0x00000010
|
||||
#define CND 0x00000008
|
||||
#define DLC 0x00000004
|
||||
#define CD 0x00000002
|
||||
#define TRO 0x00000001
|
||||
|
||||
/**
|
||||
* Renesas Ethernet API return defines
|
||||
**/
|
||||
#define R_ETHER_OK 0
|
||||
#define R_ETHER_ERROR -1
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Variable Externs
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
Functions Prototypes
|
||||
******************************************************************************/
|
||||
/**
|
||||
* Renesas Ethernet API prototypes
|
||||
**/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern int32_t R_Ether_Open(uint32_t ch, uint8_t mac_addr[]);
|
||||
extern int32_t R_Ether_Close(uint32_t ch);
|
||||
extern int32_t R_Ether_Write(uint32_t ch, void *buf, uint32_t len);
|
||||
extern int32_t R_Ether_Read(uint32_t ch, void *buf);
|
||||
|
||||
/* Added for the FreeRTOS demo project. */
|
||||
unsigned long ulEMACRead( void );
|
||||
void vEMACWrite( void );
|
||||
void vInitEmac( void );
|
||||
long lEMACWaitForLink( void );
|
||||
|
||||
/* Extension of the API functions added to allow PnP link */
|
||||
|
||||
/* R_Ether_OpenEx opens irrispective of link status */
|
||||
extern int32_t R_Ether_OpenEx(uint32_t ch, uint8_t mac_addr[]);
|
||||
/* Enables/disables operation for the current link */
|
||||
extern int32_t R_Ether_EnableEx(uint32_t ch, int iEnable);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/****************************************************/
|
||||
/* Ethernet statistic collection data */
|
||||
struct enet_stats
|
||||
{
|
||||
uint32_t rx_packets; /* total packets received */
|
||||
uint32_t tx_packets; /* total packets transmitted */
|
||||
uint32_t rx_errors; /* bad packets received */
|
||||
uint32_t tx_errors; /* packet transmit problems */
|
||||
uint32_t rx_dropped; /* no space in buffers */
|
||||
uint32_t tx_dropped; /* no space available */
|
||||
uint32_t multicast; /* multicast packets received */
|
||||
uint32_t collisions;
|
||||
|
||||
/* detailed rx_errors: */
|
||||
uint32_t rx_length_errors;
|
||||
uint32_t rx_over_errors; /* receiver ring buffer overflow */
|
||||
uint32_t rx_crc_errors; /* recved pkt with crc error */
|
||||
uint32_t rx_frame_errors; /* recv'd frame alignment error */
|
||||
uint32_t rx_fifo_errors; /* recv'r fifo overrun */
|
||||
uint32_t rx_missed_errors; /* receiver missed packet */
|
||||
|
||||
/* detailed tx_errors */
|
||||
uint32_t tx_aborted_errors;
|
||||
uint32_t tx_carrier_errors;
|
||||
uint32_t tx_fifo_errors;
|
||||
uint32_t tx_heartbeat_errors;
|
||||
uint32_t tx_window_errors;
|
||||
};
|
||||
|
||||
struct ei_device
|
||||
{
|
||||
const char8_t *name;
|
||||
uchar8_t open;
|
||||
uchar8_t Tx_act;
|
||||
uchar8_t Rx_act;
|
||||
uchar8_t txing; /* Transmit Active */
|
||||
uchar8_t irqlock; /* EDMAC's interrupt disabled when '1'. */
|
||||
uchar8_t dmaing; /* EDMAC Active */
|
||||
ethfifo *rxcurrent; /* current receive discriptor */
|
||||
ethfifo *txcurrent; /* current transmit discriptor */
|
||||
uchar8_t save_irq; /* Original dev->irq value. */
|
||||
struct enet_stats stat;
|
||||
uchar8_t mac_addr[6];
|
||||
};
|
||||
|
||||
#endif /* HWETHERNET_H_INCLUDED */
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
/******************************************************************************
|
||||
* File Name : hwEthernetPhy.h
|
||||
* Version : 1.0
|
||||
* Device(s) : Renesas
|
||||
* Tool-Chain : Renesas SH2A V9+
|
||||
* OS : None
|
||||
* H/W Platform : SH2A
|
||||
* Description : Hardware driver for the LAN8700 PHY
|
||||
*******************************************************************************
|
||||
* History : DD.MM.YYYY Ver. Description
|
||||
* : 01.08.2009 1.00 MAB First Release
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
******************************************************************************/
|
||||
/* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. */
|
||||
/* Copyright (C) 2009. Renesas Technology Europe Ltd., All Rights Reserved. */
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef HWETHERNETPHY_H_INCLUDED
|
||||
#define HWETHERNETPHY_H_INCLUDED
|
||||
|
||||
/*****************************************************************************
|
||||
Enumerated Types
|
||||
******************************************************************************/
|
||||
|
||||
typedef enum _NETLNK
|
||||
{
|
||||
PHY_NO_LINK = 0,
|
||||
PHY_LINK_10H,
|
||||
PHY_LINK_10F,
|
||||
PHY_LINK_100H,
|
||||
PHY_LINK_100F
|
||||
|
||||
} NETLNK;
|
||||
|
||||
/*****************************************************************************
|
||||
Public Functions
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyReset
|
||||
Description: Executes software reset of PHY and sets to auto negotiate link
|
||||
Parameters: None
|
||||
Return value: 0 for success -1 on error
|
||||
******************************************************************************/
|
||||
|
||||
extern int phyReset(void);
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyStatus
|
||||
Description: Function to reurn the type of physical link
|
||||
Parameters: none
|
||||
Return value: The link type
|
||||
*****************************************************************************/
|
||||
|
||||
extern NETLNK phyStatus(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* HWETHERNETPHY_H_INCLUDED */
|
||||
|
||||
/*****************************************************************************
|
||||
End Of File
|
||||
******************************************************************************/
|
|
@ -0,0 +1,435 @@
|
|||
/******************************************************************************
|
||||
* File Name : hwEthernetPhy.c
|
||||
* Version : 1.0
|
||||
* Device(s) : Renesas
|
||||
* Tool-Chain : Renesas SH2A V9+
|
||||
* OS : None
|
||||
* H/W Platform : SH2A
|
||||
* Description : Hardware driver for the LAN8700 PHY
|
||||
*******************************************************************************
|
||||
* History : DD.MM.YYYY Ver. Description
|
||||
* : 01.08.2009 1.00 MAB First Release
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
******************************************************************************/
|
||||
/* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. */
|
||||
/* Copyright (C) 2009. Renesas Technology Europe Ltd., All Rights Reserved. */
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
System Includes
|
||||
******************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
/* Header file for sleep() and nop() functions */
|
||||
#include <machine.h>
|
||||
|
||||
/*****************************************************************************
|
||||
User Includes
|
||||
******************************************************************************/
|
||||
|
||||
/* Defines for I/O registers */
|
||||
#include "iodefine.h"
|
||||
/* rsk7216def.h provides common defines for widely used items. */
|
||||
#include "rsk7216def.h"
|
||||
/* Physical layer functions */
|
||||
#include "hwEthernetPhy.h"
|
||||
#include "Trace.h"
|
||||
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
/*****************************************************************************
|
||||
Constant Macros
|
||||
******************************************************************************/
|
||||
|
||||
/* Preamble */
|
||||
#define PHY_ST 0x0001
|
||||
/* Operation to be executed on PHY registers */
|
||||
#define PHY_READ 0x0002
|
||||
#define PHY_WRITE 0x0001
|
||||
/* Physical address of PHY device */
|
||||
#define PHY_ADDR 0x001F
|
||||
|
||||
/* Description of PHY data registers */
|
||||
#define PHY_BASIC_MODE_CONTROL 0x0000
|
||||
#define PHY_BASIC_MODE_STATUS 0x0001
|
||||
#define PHY_IDENTIFIER1 0x0002
|
||||
#define PHY_IDENTIFIER2 0x0003
|
||||
#define PHY_AN_ADVERTISEMENT 0x0004
|
||||
#define PHY_AN_LINK_PARTNER_ABILITY 0x0005
|
||||
|
||||
/* Definitions of some configuration bits */
|
||||
#define PHY_RESET 0x8000
|
||||
#define PHY_AN_ENABLE 0x1200
|
||||
/* Bits for auto negotiation for 100, 10 half and full duplex set */
|
||||
#define PHY_AN_10_100_F_H 0xDE1
|
||||
/* Link partner ability register bits for establising the result of the
|
||||
auto negotiation */
|
||||
#define PHY_AN_100F BIT_8
|
||||
#define PHY_AN_100H BIT_7
|
||||
#define PHY_AN_10F BIT_6
|
||||
#define PHY_AN_10H BIT_5
|
||||
|
||||
/*****************************************************************************
|
||||
Function Prototypes
|
||||
******************************************************************************/
|
||||
|
||||
static USHORT phyReadReg(USHORT usRegAddr);
|
||||
static void phyWriteReg(USHORT usRegAddr, USHORT usData);
|
||||
static void phyPreamble(void);
|
||||
static void phyMiiWrite1(void);
|
||||
static void phyMiiWrite0(void);
|
||||
static void phyRegSet(USHORT usRegAddr, long lOption);
|
||||
static void phyRegRead(PUSHORT pusData);
|
||||
static void phyRegWrite(USHORT usData);
|
||||
static void phyTaZ0(void);
|
||||
static void phyTa10(void);
|
||||
static void phyDelay(void);
|
||||
|
||||
/*****************************************************************************
|
||||
Public Functions
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyReset
|
||||
Description: Executes software reset of PHY and sets to auto negotiate link
|
||||
Parameters: None
|
||||
Return value: 0 for success -1 on error
|
||||
******************************************************************************/
|
||||
int phyReset(void)
|
||||
{
|
||||
/* One second of attempting to reset the PHY */
|
||||
int iCount = 1000;
|
||||
/* Set software reset */
|
||||
phyWriteReg(PHY_BASIC_MODE_CONTROL, PHY_RESET);
|
||||
while (iCount--)
|
||||
{
|
||||
USHORT usData;
|
||||
|
||||
vTaskDelay( 2 / portTICK_RATE_MS );
|
||||
|
||||
/* Read the status of the PHY */
|
||||
usData = phyReadReg(PHY_BASIC_MODE_CONTROL);
|
||||
/* Wait for the reset flag to be cleared */
|
||||
if ((usData & PHY_RESET) == 0)
|
||||
{
|
||||
/* Set auto negoatiation for 10,100 full and half duplex */
|
||||
phyWriteReg(PHY_AN_ADVERTISEMENT, PHY_AN_10_100_F_H);
|
||||
/* Set auto negotiate and restart auto negotiate bits */
|
||||
phyWriteReg(PHY_BASIC_MODE_CONTROL, PHY_AN_ENABLE);
|
||||
|
||||
/* Auto negotiation will now take place wait for two seconds */
|
||||
vTaskDelay( 2000 / portTICK_RATE_MS );
|
||||
|
||||
/* Success */
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/* Phy did not respond to software reset */
|
||||
return -1;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyReset
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyStatus
|
||||
Description: Function to reurn the type of physical link
|
||||
Parameters: none
|
||||
Return value: The link type
|
||||
*****************************************************************************/
|
||||
NETLNK phyStatus(void)
|
||||
{
|
||||
/* The state of this flag depens on the hardware connection to the MAC */
|
||||
if (!EtherC.PSR.BIT.LMON)
|
||||
{
|
||||
/* Read the auto negotiation link partner ability register to establish
|
||||
the type of link */
|
||||
USHORT usData = phyReadReg(PHY_AN_LINK_PARTNER_ABILITY);
|
||||
if (usData & PHY_AN_100F)
|
||||
{
|
||||
return PHY_LINK_100F;
|
||||
}
|
||||
if (usData & PHY_AN_100H)
|
||||
{
|
||||
return PHY_LINK_100H;
|
||||
}
|
||||
if (usData & PHY_AN_10F)
|
||||
{
|
||||
return PHY_LINK_10F;
|
||||
}
|
||||
if (usData & PHY_AN_10H)
|
||||
{
|
||||
return PHY_LINK_10H;
|
||||
}
|
||||
}
|
||||
return PHY_NO_LINK;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyStatus
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Private Functions
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyReadReg
|
||||
Description: Reads data from a register with the address usRegAddr
|
||||
Parameters: (USHORT) usRegAddr - address to be read;
|
||||
Return value: (USHORT) - value from read register;
|
||||
******************************************************************************/
|
||||
static USHORT phyReadReg(USHORT usRegAddr)
|
||||
{
|
||||
USHORT usData;
|
||||
phyPreamble();
|
||||
phyRegSet(usRegAddr, PHY_READ);
|
||||
phyTaZ0();
|
||||
phyRegRead(&usData);
|
||||
phyTaZ0();
|
||||
return usData;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyReadReg
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyWriteReg
|
||||
Description: Write data to register with the address usRegAddr
|
||||
Parameters: (USHORT) usRegAddr - address of register where to be written;
|
||||
(USHORT) usData - value to write;
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyWriteReg(USHORT usRegAddr, USHORT usData)
|
||||
{
|
||||
phyPreamble();
|
||||
phyRegSet(usRegAddr, PHY_WRITE);
|
||||
phyTa10();
|
||||
phyRegWrite(usData);
|
||||
phyTaZ0();
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyWriteReg
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyPreamble
|
||||
Description: Writing 32 bits of '1'
|
||||
Parameters: None
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyPreamble(void)
|
||||
{
|
||||
int iCount = 32;
|
||||
while (iCount--)
|
||||
{
|
||||
phyMiiWrite1();
|
||||
}
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyPreamble
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyRegSet
|
||||
Description: Sets the address of register
|
||||
Parameters: (USHORT) usRegAddr - address to be set;
|
||||
(long) lOption - PHY_READ or PHY_WRITE;
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyRegSet(USHORT usRegAddr, long lOption)
|
||||
{
|
||||
int iBit = 14;
|
||||
USHORT usData;
|
||||
|
||||
/* Format of PHY Address Set Transmission */
|
||||
/* ST R/W PAddress Address */
|
||||
/* 1 10 11111 xxxx 00 */ //Read
|
||||
/* 1 01 11111 xxxx 00 */ //Write
|
||||
|
||||
usData = 0;
|
||||
/* ST code */
|
||||
usData = (PHY_ST << 14);
|
||||
if (lOption == PHY_READ)
|
||||
{
|
||||
/* Option code (RD) */
|
||||
usData |= (PHY_READ << 12);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Option code (WT) */
|
||||
usData |= (PHY_WRITE << 12);
|
||||
}
|
||||
/* PHY Address */
|
||||
usData |= ((BYTE)PHY_ADDR << 7);
|
||||
/* Reg Address */
|
||||
usData |= (USHORT)(usRegAddr << 2);
|
||||
|
||||
while (iBit--)
|
||||
{
|
||||
if ((usData & 0x8000) == 0)
|
||||
{
|
||||
phyMiiWrite0();
|
||||
}
|
||||
else
|
||||
{
|
||||
phyMiiWrite1();
|
||||
}
|
||||
usData <<= 1;
|
||||
}
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyRegSet
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyRegRead
|
||||
Description: Read data from register
|
||||
Parameters: IN pusDest - value to be read;
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyRegRead(PUSHORT pusDest)
|
||||
{
|
||||
USHORT usData = 0;
|
||||
int iBit = 16;
|
||||
while (iBit--)
|
||||
{
|
||||
EtherC.PIR.LONG = 0x00UL;
|
||||
EtherC.PIR.LONG = 0x01UL;
|
||||
usData <<= 1;
|
||||
|
||||
/* MDI read */
|
||||
usData |= (USHORT)((EtherC.PIR.LONG & 0x08UL) >> 3);
|
||||
|
||||
EtherC.PIR.LONG = 0x01UL;
|
||||
EtherC.PIR.LONG = 0x00UL;
|
||||
}
|
||||
*pusDest = usData;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyRegRead
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyRegWrite
|
||||
Description: Write 2 bytes (16 bit) to MII
|
||||
Parameters: IN usData - value to be written;
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyRegWrite(USHORT usData)
|
||||
{
|
||||
int iBit = 16;
|
||||
while (iBit--)
|
||||
{
|
||||
if ((usData & 0x8000) == 0)
|
||||
{
|
||||
phyMiiWrite0();
|
||||
}
|
||||
else
|
||||
{
|
||||
phyMiiWrite1();
|
||||
}
|
||||
usData <<= 1;
|
||||
}
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyRegWrite
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyTaZ0
|
||||
Description: Set bus to high Z
|
||||
Parameters: None
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyTaZ0(void)
|
||||
{
|
||||
EtherC.PIR.LONG = 0x00UL;
|
||||
EtherC.PIR.LONG = 0x01UL;
|
||||
EtherC.PIR.LONG = 0x01UL;
|
||||
EtherC.PIR.LONG = 0x00UL;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyTaZ0
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyTa10
|
||||
Description: Set bus to output
|
||||
Parameters: None
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyTa10(void)
|
||||
{
|
||||
EtherC.PIR.LONG = 0x06UL;
|
||||
EtherC.PIR.LONG = 0x07UL;
|
||||
EtherC.PIR.LONG = 0x07UL;
|
||||
EtherC.PIR.LONG = 0x06UL;
|
||||
EtherC.PIR.LONG = 0x02UL;
|
||||
EtherC.PIR.LONG = 0x03UL;
|
||||
EtherC.PIR.LONG = 0x03UL;
|
||||
EtherC.PIR.LONG = 0x02UL;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyTa10
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyMiiWrite1
|
||||
Description: Write 1 to MII
|
||||
Parameters: None
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyMiiWrite1(void)
|
||||
{
|
||||
EtherC.PIR.LONG = 0x06UL;
|
||||
EtherC.PIR.LONG = 0x07UL;
|
||||
EtherC.PIR.LONG = 0x07UL;
|
||||
EtherC.PIR.LONG = 0x06UL;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyMiiWrite1
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
Function Name: phyMiiWrite0
|
||||
Description: Write 0 to MII
|
||||
Parameters: None
|
||||
Return value: None
|
||||
******************************************************************************/
|
||||
static void phyMiiWrite0(void)
|
||||
{
|
||||
EtherC.PIR.LONG = 0x02UL;
|
||||
EtherC.PIR.LONG = 0x03UL;
|
||||
EtherC.PIR.LONG = 0x03UL;
|
||||
EtherC.PIR.LONG = 0x02UL;
|
||||
}
|
||||
/*****************************************************************************
|
||||
End of function phyMiiWrite0
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
End Of File
|
||||
******************************************************************************/
|
|
@ -0,0 +1,106 @@
|
|||
/******************************************************************************
|
||||
* File Name : rsk7670def.h
|
||||
* Version : 1.0
|
||||
* Device(s) : SH2A/7670
|
||||
* Tool-Chain : Renesas SH2A V9+
|
||||
* OS : None
|
||||
* H/W Platform : RSK+SH7670
|
||||
* Description : Defines for RSK2+SH7670 kit.
|
||||
*******************************************************************************
|
||||
* History : DD.MM.YYYY Ver. Description
|
||||
* : 01.08.2009 1.00 MAB First Release
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
******************************************************************************/
|
||||
/* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. */
|
||||
/* Copyright (C) 2009. Renesas Technology Europe Ltd., All Rights Reserved. */
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef RSK7216DEF_H
|
||||
#define RSK7216DEF_H
|
||||
|
||||
/******************************************************************************
|
||||
Macro Defines
|
||||
******************************************************************************/
|
||||
|
||||
/* General Values */
|
||||
#define LED_ON (1)
|
||||
#define LED_OFF (0)
|
||||
#define SET_BIT_HIGH (1)
|
||||
#define SET_BIT_LOW (0)
|
||||
#define SET_BYTE_HIGH (0xFF)
|
||||
#define SET_BYTE_LOW (0x00)
|
||||
|
||||
/* Define switches to be polled if not available as interrupts */
|
||||
#define SW_ACTIVE FALSE
|
||||
|
||||
#define SW1 PORT.PDDRL.BIT.PD16DR //"IRQ0" PD16
|
||||
#define SW2 PORT.PADRL.BIT.PA20DR //"IRQ6" PA20
|
||||
|
||||
|
||||
/* LEDs */
|
||||
#define LED0 PE.DR.BIT.B9
|
||||
#define LED1 PE.DR.BIT.B11
|
||||
#define LED2 PE.DR.BIT.B12
|
||||
#define LED3 PE.DR.BIT.B13
|
||||
#define LED4 PE.DR.BIT.B14
|
||||
#define LED5 PE.DR.BIT.B15
|
||||
|
||||
#define ID_LED1 1
|
||||
#define ID_LED2 2
|
||||
#define ID_LED3 4
|
||||
#define ID_LED4 8
|
||||
#define ID_LED5 16
|
||||
#define ID_LED6 32
|
||||
#define ID_LED_ALL (ID_LED1 | ID_LED2 | ID_LED3 | ID_LED4 | ID_LED5 | ID_LED6)
|
||||
|
||||
#define PERIPHERAL_CLOCK_FREQUENCY 50000000UL
|
||||
|
||||
/******************************************************************************
|
||||
Constant Macros
|
||||
******************************************************************************/
|
||||
|
||||
#define BOARD_NAME "SH7216 CPU BOARD"
|
||||
|
||||
/******************************************************************************
|
||||
Public Functions
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern void led_init(void);
|
||||
extern void led_on(unsigned short ledno);
|
||||
extern void led_off(unsigned short ledno);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* RSK7216DEF_H */
|
||||
|
||||
/******************************************************************************
|
||||
End Of File
|
||||
******************************************************************************/
|
104
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/trace.h
Normal file
104
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/trace.h
Normal file
|
@ -0,0 +1,104 @@
|
|||
/******************************************************************************
|
||||
* File Name : trace.h
|
||||
* Version : 1.0
|
||||
* Device(s) : Renesas
|
||||
* Tool-Chain : Renesas SH2A V9+
|
||||
* OS : None
|
||||
* H/W Platform : SH2A
|
||||
* Description : Debug formatted output routine
|
||||
* TRACE print function enabled with define _TRACE_ON_
|
||||
*******************************************************************************
|
||||
* History : DD.MM.YYYY Ver. Description
|
||||
* : 01.08.2009 1.00 MAB First Release
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
******************************************************************************/
|
||||
/* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. */
|
||||
/* Copyright (C) 2009. Renesas Technology Europe Ltd., All Rights Reserved. */
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef TRACE_H_INCLUDED
|
||||
#define TRACE_H_INCLUDED
|
||||
|
||||
/******************************************************************************
|
||||
User Includes
|
||||
******************************************************************************/
|
||||
|
||||
#include "types.h"
|
||||
|
||||
/******************************************************************************
|
||||
Function Macros
|
||||
******************************************************************************/
|
||||
|
||||
/* Some function macros for TRACE output
|
||||
NOTE: debugging TRACE statements require double braces
|
||||
so the debug strings can be removed from the output load module:
|
||||
TRACE(("My Variable = %u\r\n", uiMyVariable));
|
||||
See ANSI C formatted output for more detail on the format specifiers */
|
||||
|
||||
#ifdef _TRACE_ON_ /* Trace ON */
|
||||
#define TRACE(_x_) Trace _x_
|
||||
#else /* _NO_TRACE_ON_ */
|
||||
#define TRACE(_x_) /* TRACE REMOVED */
|
||||
#endif /* _TRACE_ON_ */
|
||||
|
||||
/******************************************************************************
|
||||
Public Functions
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
Function Name: Trace
|
||||
Description: Function to perform a formatted print output for debugging
|
||||
Parameters: IN pszFormat - Pointer to a null terminated format string
|
||||
I/O ... - The parameters
|
||||
Return value: The number of chars output
|
||||
******************************************************************************/
|
||||
#ifdef _TRACE_ON_ /* Trace ON */
|
||||
extern int Trace(const char *pszFormat, ...);
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
Function Name: dbgPrintBuffer
|
||||
Description: Function to print a data buffer in hex format
|
||||
Parameters: IN pbyBuffer - Pointer to the buffer
|
||||
IN stLength - The length of the buffer
|
||||
Return value: none
|
||||
******************************************************************************/
|
||||
#ifdef _TRACE_ON_ /* Trace ON */
|
||||
extern void dbgPrintBuffer(PBYTE pbyBuffer, size_t stLength);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* TRACE_H_INCLUDED */
|
||||
|
||||
/******************************************************************************
|
||||
End Of File
|
||||
******************************************************************************/
|
|
@ -0,0 +1,59 @@
|
|||
/******************************************************************************
|
||||
* File Name : typedefine.h
|
||||
* Version : 1.0
|
||||
* Device(s) : Renesas
|
||||
* Tool-Chain : Renesas SH2A V9+
|
||||
* OS : None
|
||||
* H/W Platform : SH2A
|
||||
* Description : Type Definition File
|
||||
*******************************************************************************
|
||||
* History : DD.MM.YYYY Ver. Description
|
||||
* : 01.08.2009 1.00 MAB First Release
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
******************************************************************************/
|
||||
/* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. */
|
||||
/* Copyright (C) 2009. Renesas Technology Europe Ltd., All Rights Reserved. */
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef _TYPE_DEFINE_H_
|
||||
#define _TYPE_DEFINE_H_
|
||||
|
||||
|
||||
typedef unsigned char Bool;
|
||||
|
||||
// type defs for API standard
|
||||
|
||||
typedef signed char char8_t;
|
||||
typedef unsigned char uchar8_t;
|
||||
typedef signed char int8_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef signed short short16_t;
|
||||
typedef unsigned short ushort16_t;
|
||||
typedef signed long int32_t;
|
||||
typedef unsigned long uint32_t;
|
||||
typedef signed long long32_t;
|
||||
typedef unsigned long ulong32_t;
|
||||
|
||||
#endif /* TYPEDEFINE_H */
|
476
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/types.h
Normal file
476
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/RenesasCode/types.h
Normal file
|
@ -0,0 +1,476 @@
|
|||
/******************************************************************************
|
||||
* File Name : types.h
|
||||
* Version : 1.0
|
||||
* Device(s) : Renesas
|
||||
* Tool-Chain : Renesas SH2A V9+
|
||||
* OS : None
|
||||
* H/W Platform : SH2A
|
||||
* Description : User Defined Type Definition File
|
||||
*******************************************************************************
|
||||
* History : DD.MM.YYYY Ver. Description
|
||||
* : 01.08.2009 1.00 MAB First Release
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
******************************************************************************/
|
||||
/* Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. */
|
||||
/* Copyright (C) 2009. Renesas Technology Europe Ltd., All Rights Reserved. */
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef TYPES_H_INCLUDED
|
||||
#define TYPES_H_INCLUDED
|
||||
|
||||
/******************************************************************************
|
||||
User Includes
|
||||
******************************************************************************/
|
||||
|
||||
#include "Compiler.h"
|
||||
|
||||
/******************************************************************************
|
||||
Function Macros
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef SWAPWORD
|
||||
#define SWAPWORD(x) (WORD)((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
|
||||
#endif
|
||||
|
||||
#ifndef LOBYTE
|
||||
#define LOBYTE(x) (BYTE)(x)
|
||||
#endif
|
||||
|
||||
#ifndef HIBYTE
|
||||
#define HIBYTE(x) (BYTE)((x) >> 8)
|
||||
#endif
|
||||
|
||||
#ifndef MAKEWORD
|
||||
#define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) |\
|
||||
((WORD) ((BYTE) (b))) << 8))
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
Typedefs
|
||||
******************************************************************************/
|
||||
|
||||
/* Generic definitions */
|
||||
#ifndef NULL /* set null ((void *)0) */
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#ifndef PNULL
|
||||
#define PNULL ((PVOID)0)
|
||||
#endif
|
||||
|
||||
#ifndef BIT_0 /* set bits */
|
||||
#define BIT_0 0x1
|
||||
#define BIT_1 0x2
|
||||
#define BIT_2 0x4
|
||||
#define BIT_3 0x8
|
||||
#define BIT_4 0x10
|
||||
#define BIT_5 0x20
|
||||
#define BIT_6 0x40
|
||||
#define BIT_7 0x80
|
||||
|
||||
#define BIT_8 0x100
|
||||
#define BIT_9 0x200
|
||||
#define BIT_10 0x400
|
||||
#define BIT_11 0x800
|
||||
#define BIT_12 0x1000
|
||||
#define BIT_13 0x2000
|
||||
#define BIT_14 0x4000
|
||||
#define BIT_15 0x8000
|
||||
|
||||
#define BIT_16 0x10000L
|
||||
#define BIT_17 0x20000L
|
||||
#define BIT_18 0x40000L
|
||||
#define BIT_19 0x80000L
|
||||
#define BIT_20 0x100000L
|
||||
#define BIT_21 0x200000L
|
||||
#define BIT_22 0x400000L
|
||||
#define BIT_23 0x800000L
|
||||
|
||||
#define BIT_24 0x1000000L
|
||||
#define BIT_25 0x2000000L
|
||||
#define BIT_26 0x4000000L
|
||||
#define BIT_27 0x8000000L
|
||||
#define BIT_28 0x10000000L
|
||||
#define BIT_29 0x20000000L
|
||||
#define BIT_30 0x40000000L
|
||||
#define BIT_31 0x80000000L
|
||||
#endif
|
||||
|
||||
#ifndef TRUE /* true and false */
|
||||
#define TRUE (BOOL)1
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE (BOOL)0
|
||||
#endif
|
||||
|
||||
#if defined(WIN32_SH4) && defined(__cplusplus)
|
||||
#define _SIZE_T
|
||||
#else
|
||||
#ifndef _SIZE_T
|
||||
#define _SIZE_T
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef BOOL
|
||||
#define BOOL BOOL
|
||||
typedef unsigned char BOOL;
|
||||
#endif
|
||||
|
||||
#ifndef PBOOL
|
||||
#define PBOOL PBOOL
|
||||
typedef unsigned char *PBOOL;
|
||||
#endif
|
||||
|
||||
#ifndef TCHAR
|
||||
#define TCHAR TCHAR
|
||||
typedef char TCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef PTCHAR
|
||||
#define PTCHAR PTCHAR
|
||||
typedef char *PTCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef PCTCHAR
|
||||
#define PCTCHAR PCTCHAR
|
||||
typedef char *const PCTCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef CPCTCHAR
|
||||
#define CPCTCHAR CPCTCHAR
|
||||
typedef const char *const CPCTCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef CHAR
|
||||
#define CHAR CHAR
|
||||
typedef char CHAR;
|
||||
#endif
|
||||
|
||||
#ifndef CCHAR
|
||||
#define CCHAR CCHAR
|
||||
typedef const char CCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef PCHAR
|
||||
#define PCHAR PCHAR
|
||||
typedef char *PCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef CPCHAR
|
||||
#define CPCHAR CPCHAR
|
||||
typedef const char *CPCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef PCCHAR
|
||||
#define PCCHAR PCCHAR
|
||||
typedef char *const PCCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef CPCCHAR
|
||||
#define CPCCHAR CPCCHAR
|
||||
typedef const char *const CPCCHAR;
|
||||
#endif
|
||||
|
||||
#ifndef PTSTR
|
||||
#define PTSTR PTSTR
|
||||
typedef const char *PTSTR;
|
||||
#endif
|
||||
|
||||
#ifndef PCTSTR
|
||||
#define PCTSTR PCTSTR
|
||||
typedef char *const PCTSTR;
|
||||
#endif
|
||||
|
||||
#ifndef PCTSTR
|
||||
#define PCTSTR PCTSTR
|
||||
typedef const char *PCTSTR;
|
||||
#endif
|
||||
|
||||
#ifndef PTSTR
|
||||
#define PTSTR PTSTR
|
||||
typedef char *PTSTR;
|
||||
#endif
|
||||
|
||||
#ifndef BYTE
|
||||
#define BYTE BYTE
|
||||
typedef unsigned char BYTE;
|
||||
#endif
|
||||
|
||||
#ifndef PBYTE
|
||||
#define PBYTE PBYTE
|
||||
typedef unsigned char *PBYTE;
|
||||
#endif
|
||||
|
||||
#ifndef PCBYTE
|
||||
#define PCBYTE PCBYTE
|
||||
typedef unsigned char *const PCBYTE;
|
||||
#endif
|
||||
|
||||
#ifndef CPBYTE
|
||||
#define CPBYTE CPBYTE
|
||||
typedef const unsigned char *CPBYTE;
|
||||
#endif
|
||||
|
||||
#ifndef SHORT
|
||||
#define SHORT SHORT
|
||||
typedef short SHORT;
|
||||
#endif
|
||||
|
||||
#ifndef PSHORT
|
||||
#define PSHORT PSHORT
|
||||
typedef short *PSHORT;
|
||||
#endif
|
||||
|
||||
#ifndef PCSHORT
|
||||
#define PCSHORT PCSHORT
|
||||
typedef short *const PCSHORT;
|
||||
#endif
|
||||
|
||||
#ifndef CPSHORT
|
||||
#define CPSHORT CPSHORT
|
||||
typedef const short *CPSHORT;
|
||||
#endif
|
||||
|
||||
#ifndef USHORT
|
||||
#define USHORT USHORT
|
||||
typedef unsigned short USHORT;
|
||||
#endif
|
||||
|
||||
#ifndef PUSHORT
|
||||
#define PUSHORT PUSHORT
|
||||
typedef unsigned short *PUSHORT;
|
||||
#endif
|
||||
|
||||
#ifndef PCUSHORT
|
||||
#define PCUSHORT PCUSHORT
|
||||
typedef unsigned short *const PCUSHORT;
|
||||
#endif
|
||||
|
||||
#ifndef CPUSHORT
|
||||
#define CPUSHORT CPUSHORT
|
||||
typedef const unsigned short *CPUSHORT;
|
||||
#endif
|
||||
|
||||
#ifndef WORD
|
||||
#define WORD WORD
|
||||
typedef unsigned short WORD;
|
||||
#endif
|
||||
|
||||
#ifndef PWORD
|
||||
#define PWORD PWORD
|
||||
typedef unsigned short *PWORD;
|
||||
#endif
|
||||
|
||||
#ifndef PCWORD
|
||||
#define PCWORD PCWORD
|
||||
typedef unsigned short *const PCWORD;
|
||||
#endif
|
||||
|
||||
#ifndef INT
|
||||
#define INT INT
|
||||
typedef int INT;
|
||||
#endif
|
||||
|
||||
#ifndef CINT
|
||||
#define CINT CINT
|
||||
typedef const int CINT;
|
||||
#endif
|
||||
|
||||
#ifndef PINT
|
||||
#define PINT PINT
|
||||
typedef int *PINT;
|
||||
#endif
|
||||
|
||||
#ifndef PCINT
|
||||
#define PCINT PCINT
|
||||
typedef int *const PCINT;
|
||||
#endif
|
||||
|
||||
#ifndef CPINT
|
||||
#define CPINT CPINT
|
||||
typedef const int *CPINT;
|
||||
#endif
|
||||
|
||||
#ifndef UINT
|
||||
#define UINT UINT
|
||||
typedef unsigned int UINT;
|
||||
#endif
|
||||
|
||||
#ifndef PUINT
|
||||
#define PUINT PUINT
|
||||
typedef unsigned int *PUINT;
|
||||
#endif
|
||||
|
||||
#ifndef PCUINT
|
||||
#define PCUINT PCUINT
|
||||
typedef unsigned int *const PCUINT;
|
||||
#endif
|
||||
|
||||
#ifndef CPUINT
|
||||
#define CPUINT CPUINT
|
||||
typedef const unsigned int *CPUINT;
|
||||
#endif
|
||||
|
||||
#ifndef DWORD
|
||||
#define DWORD DWORD
|
||||
typedef unsigned long DWORD;
|
||||
#endif
|
||||
|
||||
#ifndef PDWORD
|
||||
#define PDWORD PDWORD
|
||||
typedef unsigned long *PDWORD;
|
||||
#endif
|
||||
|
||||
#ifndef PCDWORD
|
||||
#define PCDWORD PCDWORD
|
||||
typedef unsigned long *const PCDWORD;
|
||||
#endif
|
||||
|
||||
#ifndef CPDWORD
|
||||
#define CPDWORD CPDWORD
|
||||
typedef const unsigned long *CPDWORD;
|
||||
#endif
|
||||
|
||||
#ifndef LONG
|
||||
#define LONG LONG
|
||||
typedef long LONG;
|
||||
#endif
|
||||
|
||||
#ifndef PLONG
|
||||
#define PLONG PLONG
|
||||
typedef long *PLONG;
|
||||
#endif
|
||||
|
||||
#ifndef PCLONG
|
||||
#define PCLONG PCLONG
|
||||
typedef long *const PCLONG;
|
||||
#endif
|
||||
|
||||
#ifndef CPLONG
|
||||
#define CPLONG CPLONG
|
||||
typedef const long *CPLONG;
|
||||
#endif
|
||||
|
||||
#ifndef ULONG
|
||||
#define ULONG ULONG
|
||||
typedef unsigned long ULONG;
|
||||
#endif
|
||||
|
||||
#ifndef PULONG
|
||||
#define PULONG PULONG
|
||||
typedef unsigned long *PULONG;
|
||||
#endif
|
||||
|
||||
#ifndef PCULONG
|
||||
#define PCULONG PCULONG
|
||||
typedef unsigned long *const PCULONG;
|
||||
#endif
|
||||
|
||||
#ifndef CPULONG
|
||||
#define CPULONG CPULONG
|
||||
typedef const unsigned long *CPULONG;
|
||||
#endif
|
||||
|
||||
#ifndef FLOAT
|
||||
#define FLOAT FLOAT
|
||||
typedef float FLOAT;
|
||||
#endif
|
||||
|
||||
#ifndef DOUBLE
|
||||
#define DOUBLE DOUBLE
|
||||
typedef long double DOUBLE;
|
||||
#endif
|
||||
|
||||
#ifndef PDOUBLE
|
||||
#define PDOUBLE PDOUBLE
|
||||
typedef long double *PDOUBLE;
|
||||
#endif
|
||||
|
||||
#ifndef CPDOUBLE
|
||||
#define CPDOUBLE CPDOUBLE
|
||||
typedef const long double *CPDOUBLE;
|
||||
#endif
|
||||
|
||||
#ifndef PCDOUBLE
|
||||
#define PCDOUBLE PCDOUBLE
|
||||
typedef long double *const PCDOUBLE;
|
||||
#endif
|
||||
|
||||
#ifndef PVOID
|
||||
#define PVOID PVOID
|
||||
typedef void *PVOID;
|
||||
#endif
|
||||
|
||||
#ifndef VOID
|
||||
#define VOID VOID
|
||||
typedef void VOID;
|
||||
#endif
|
||||
|
||||
#ifndef IOID
|
||||
#define IOID IOID
|
||||
typedef unsigned short IOID;
|
||||
#endif
|
||||
|
||||
#ifndef PIOID
|
||||
#define PIOID PIOID
|
||||
typedef unsigned short *PIOID;
|
||||
#endif
|
||||
|
||||
#ifndef BBYTE
|
||||
#define BBYTE BBYTE
|
||||
typedef union {
|
||||
unsigned char BYTE; /*lint -e46 */
|
||||
/* this is correct */
|
||||
struct {
|
||||
#ifdef _BITFIELDS_MSB_FIRST_
|
||||
unsigned char B7:1;
|
||||
unsigned char B6:1;
|
||||
unsigned char B5:1;
|
||||
unsigned char B4:1;
|
||||
unsigned char B3:1;
|
||||
unsigned char B2:1;
|
||||
unsigned char B1:1;
|
||||
unsigned char B0:1;
|
||||
#else
|
||||
unsigned char B0:1;
|
||||
unsigned char B1:1;
|
||||
unsigned char B2:1;
|
||||
unsigned char B3:1;
|
||||
unsigned char B4:1;
|
||||
unsigned char B5:1;
|
||||
unsigned char B6:1;
|
||||
unsigned char B7:1;
|
||||
#endif
|
||||
} BIT;
|
||||
} BBYTE;
|
||||
#endif
|
||||
|
||||
#endif /* TYPES_H_INCLUDED */
|
||||
|
||||
/******************************************************************************
|
||||
End Of File
|
||||
******************************************************************************/
|
|
@ -0,0 +1,527 @@
|
|||
[HIMDBVersion]
|
||||
2.0
|
||||
[DATABASE_VERSION]
|
||||
"2.3"
|
||||
[SESSION_DETAILS]
|
||||
""
|
||||
[INFORMATION]
|
||||
""
|
||||
[GENERAL_DATA]
|
||||
"FIRST_CONNECTION_TAG" "NO"
|
||||
"MRULABELS_DATAMANAGER_KEY" "FFFFFFFF|00000000|FFFE4305|fff80300|fff80688"
|
||||
"RESET_CPU_AFTER_DOWNLOAD_TAG" "VARIANT_FALSE_STORE_TAG"
|
||||
"{08009853-4189-4ADA-848F-0F1A84AFE443}MonitorCtrlLabelAddress" ""
|
||||
"{08009853-4189-4ADA-848F-0F1A84AFE443}MonitorCtrlMonitorLastSaveLogDirectory" ""
|
||||
"{08009853-4189-4ADA-848F-0F1A84AFE443}MonitorCtrlViews" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlECX_MAP_FIND_SYMBOL_LIST" ""
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViews" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViewsSCT" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapCtrlViewsSYM" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctListWnd0ColWidth0" "124"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctListWnd0ColWidth1" "156"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctListWnd0ColWidth2" "132"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctListWnd0ColWidth3" "129"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctListWnd0ColWidth4" "84"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp0" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp1" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp10" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp11" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp12" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp13" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp14" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp15" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp16" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp17" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp18" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp19" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp2" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp20" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp21" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp3" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp4" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp5" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp6" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp7" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp8" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0Exp9" "1"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0ScrollHorz" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWnd0ScrollVert" "0"
|
||||
"{287A8023-99B5-49E1-A54E-4DDCA43D7959}MapSctSetTreeWndInstanceKey0" "{WK_00000001_MAPSCT}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH"
|
||||
"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}ECXLABEL_ADDDLG_ADDR" ""
|
||||
"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlSymbolFileDir" ""
|
||||
"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlSymbolFileName" ""
|
||||
"{2BA6A3EE-6488-11D5-80D4-00C04F68EAD7}LabelCtrlViews" "0"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusCtrlViews" "1"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd0ColWidth0" "224"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd0ColWidth1" "152"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd0ScrollHorz" "0"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd0ScrollVert" "0"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd1ColWidth0" "160"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd1ColWidth1" "512"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd1ScrollHorz" "0"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd1ScrollVert" "0"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd2ColWidth0" "80"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd2ColWidth1" "360"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd2ScrollHorz" "0"
|
||||
"{2BA6A3EF-6488-11D5-80D4-00C04F68EAD7}StatusWnd2ScrollVert" "0"
|
||||
"{30F726A1-F13D-4E21-9A4F-FD7FF70EDFDA}TraceCtrlSaveFileDir" ""
|
||||
"{30F726A1-F13D-4E21-9A4F-FD7FF70EDFDA}TraceCtrlSaveFileName" ""
|
||||
"{30F726A1-F13D-4E21-9A4F-FD7FF70EDFDA}TraceCtrlViews" "0"
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBatchFileName" ""
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointFlag" "-1 "
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBreakpointStatus" "-1 "
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlBrowseDirectory" ""
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlLogFileName" ""
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlSplitterPosition" "242"
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlViews" "1"
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineCtrlWindowProperties" "17"
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}CmdLineWndInstanceKey0" "{WK_00000001_CmdLine}"
|
||||
"{313F4FC1-6566-11D5-8BBE-0004E2013C71}TclTkCtrlLogFileName" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_END_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_COMPARE_START_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_DEST_ADDRESS" "FFFE4305"
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_END_ADDRESS" "FFFFFFFF"
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_DISPLAY_START_ADDRESS" "00000000"
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_END_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_FILL_START_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_END_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_MOVE_START_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_END_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SEARCH_START_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_SET_DEST_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_END_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}ECX_MEMORY_TEST_START_ADDRESS" ""
|
||||
"{313F4FC2-6566-11D5-8BBE-0004E2013C71}MemoryCtrlViews" "0"
|
||||
"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlSaveFileDir" ""
|
||||
"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlSaveFileName" ""
|
||||
"{5F75FDA0-6FF0-11D5-B7CE-00E029352378}PACtrlViews" "0"
|
||||
"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlChartMultiOpen" "0"
|
||||
"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlEnable" "0"
|
||||
"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveListFileDir" ""
|
||||
"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveListFileName" ""
|
||||
"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveTreeFileDir" ""
|
||||
"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlSaveTreeFileName" ""
|
||||
"{633553C0-6FE9-11D5-B7CE-00E029352378}ProfileCtrlViews" "0"
|
||||
"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileDir" ""
|
||||
"{6C4D5B81-FD67-46A9-A089-EA44DCDE47FD}RAMMonitorManagerCtrlBlockInfoFileName" ""
|
||||
"{7943C44E-7D44-422A-9140-4CF55C88F7D3}DifferenceCtrlViews" "0"
|
||||
"{855C64C3-E49C-4450-9BCA-C9822566D214}OSObjectCtrlViews" "0"
|
||||
"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE" "00000000,00000000,0,0"
|
||||
"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_ADDRESS_NAME" ""
|
||||
"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_ADDRESS" ",,,,"
|
||||
"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_COMB_BUFFER" ",,,,"
|
||||
"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_SAMPLING_RATE" "1000"
|
||||
"{8A898260-6F1D-11D5-8EB6-00004CC34E9D}WaveformCtrlViews" "0"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersCtrlViews" "0"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ColumnWidth" "50,171,144"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ECX_REGISTER_COUNT" "82"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ECX_REGISTER_DISPLAYED" "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0HideFLAGs" "1"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0HideRadix" "0"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0LastFileName" ""
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0RadixList" "16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,2,16,16,16,16,16,16,16,2,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndInstanceKey0" "{WK_00000001_REGISTERS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0ColumnWidth" "50,456,35"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0ECX_REGISTER_COUNT" "82"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0ECX_REGISTER_DISPLAYED" "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0HideFLAGs" "1"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0HideRadix" "0"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0LastFileName" ""
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewB0RadixList" "16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,2,16,16,16,16,16,16,16,2,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,"
|
||||
"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWndViewBInstanceKey0" "{WK_00000001_REGISTERS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SHViewB"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_ADDRESS_NAME" ""
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_BUFFER" "00000000,00000000,0,0"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COLOR" "0,0,0,0"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_ADDRESS" ",,,,"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_COMB_PALETTE" ",,,,"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_PALETTE_NAME" ""
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_REDRAW_CONTINUOUSLY" "0,2"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_SAMPLEING_RATE" "1000"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_VIEW" "0,0,0,0,0,0"
|
||||
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ImageCtrlViews" "0"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchCtrlViews" "4"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth0" "175"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth1" "341"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth12" "150"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth2" "120"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth3" "200"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000" "us, 10, 0, P, Col, Hex, N"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000_SCOPE" "Current Scope,"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001" "xCurrentRxDesc, 10, 0, P, Col, Hex, N"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001_SCOPE" "Current Scope,"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002" "uip_len, 2, 0, P, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002_SCOPE" "Current Scope,"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003" "uip_buf[21], 2, 0, P, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003_SCOPE" "Current Scope,"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004" "xEventListItem, 11, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0005" "uxPriority, 2, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0006" "pxStack, 4, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0007" "pcTaskName, 6, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0008" "uxCriticalNesting, 2, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0009" "uxTCBNumber, 2, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0010" "uxBasePriority, 2, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0011" "pxTaskTag, 9, 0, C0001, Col, Hex, N"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0012" "ulRunTimeCounter, 2, 0, C0001, Col, Hex, MN"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEMCnt" "1"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth0" "120"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth1" "150"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth12" "150"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth2" "120"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth3" "200"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ECX_WATCH_ITEMCnt" "0"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth0" "120"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth1" "150"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth12" "150"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth2" "120"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth3" "200"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ECX_WATCH_ITEMCnt" "0"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth0" "120"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth1" "150"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth12" "150"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth2" "120"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth3" "200"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ECX_WATCH_ITEMCnt" "0"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndInitial_Radix" "0"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndInstanceKey0" "{WK_00000001_WATCH}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH"
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchRecord" ""
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchSave" ""
|
||||
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndUpdate_Interval" "100"
|
||||
"{CBEBB610-1516-11D4-8F2D-00409545B67B}ElfDwarf2Objects" "1"
|
||||
"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_ARRAY_EXPAND_LIMIT" "-1"
|
||||
"{CBEBB610-1516-11D4-8F2D-00409545B67B}LoadModule0OBJ_ELFDWARF2_STATIC_MEM_EXPAND" "1"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC0_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC0_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC0_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC10_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC10_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC10_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC1_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC1_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC1_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC2_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC2_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC2_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC3_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC3_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC3_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC4_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC4_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC4_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC5_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC5_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC5_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC6_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC6_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC6_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC7_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC7_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC7_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC8_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC8_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC8_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC9_1" "0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC9_2" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_COLUMN_BC9_3" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_AUDCLOCK" "2 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_AUDINIT_PININFO" "00000000"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_EEPROM_MODE" "0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_0" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_1" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_2" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_3" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_4" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_5" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_6" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_7" "0 0 0 0 "
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ERAM_INFO" "0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_FCU_ERROR" "0 1"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_FLASHMODE" "0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_FLO_INFO" "0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_FM_FILE" ""
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_FM_LOAD" "0 0 3 0 0 0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_GOOPTION" "0 0 0 1 0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_MEMORYAREA" "0 0 0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_RECOVERY" "0 0 0 0 0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_ROUND" "RM_ZERO"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_RW_ON_THE_FLY" "1"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_SBSTK_INFO" "1"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_START_FUNC" "0, H'0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_STEPOPTION" "0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_CONFIG_STOP_FUNC" "0, H'0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC10_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC10_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC11_1" "0,0,1,0,0,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC1_1" "0,0,1,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC1_2" "1,0,0,0,0,0,0,1,1,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC1_3" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC2_1" "0,0,1,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC2_2" "1,0,0,0,0,0,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC2_3" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC3_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC3_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC4_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC4_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC5_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC5_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC6_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC6_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC7_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC7_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC8_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC8_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC9_1" "0,0,1,0,1,0,"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_BC9_2" "1,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_EVENT_SEQPTOP_0" "0 0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_PERFORM_PERFORM_SET" "0,0,0,0,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_PROFILE_PROFILE_SELECT" "0,0,0,0"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_SESSION_IS_SAVED" "YES"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_TRACE_TRACE_ACQUISITION" "0,0,1,0,0,0,2,0,0,0,0,2,0,0,0,2,0,1,1,1,1,1,1"
|
||||
"{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_TRACE_TRACE_ACQUISITION2" "1,0,1,1,1,1,1,0,0,0,0,0,0"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_EVAL_DENORMAL_MODE" "16777216"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_EVAL_ROUND_MODE" "768"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_0" "0000000000000001"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_1" "00000000FFFE771B"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_10" "00000000FFFFFFFD"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_11" "0000000092492493"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_12" "0000000000039447"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_13" "00000000FFFE771B"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_14" "0000000000000000"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_15" "00000000FFF83C38"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_16" "00000000000065FE"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_17" "0000000000000001"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_18" "0000000000000000"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_19" "0000000000000000"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_2" "000000000000007B"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_20" "0000000000000000"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_21" "0000000000049AB0"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_22" "00000000491CE5CE"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_23" "0000000000003760"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_24" "0000000000000070"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_25" "0000000000040001"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_26" "0000000000000000"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_27" "000000000000000C"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_28" "000000000000000D"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_29" "000000000000000E"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_3" "0000000000000003"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_30" "000000000000000F"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_31" "0000000000000010"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_32" "0000000000000011"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_33" "0000000000000012"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_34" "0000000000000013"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_35" "000000000000006E"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_36" "000000000000006F"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_37" "0000000000000070"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_38" "0000000000000071"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_39" "0000000000000072"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_4" "00000000000394C2"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_40" "000000000000000E"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_41" "0000000000000000"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_42" "000000000000000C"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_43" "0000000D0000000E"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_44" "0000000F00000010"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_45" "0000001100000012"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_46" "000000130000006E"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_47" "0000006F00000070"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_48" "0000007100000072"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_49" "0000000E00000000"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_5" "00000000FFF541BA"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_6" "00000000FFFE771B"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_7" "00000000FFF541BA"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_8" "00000000000065FC"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_9" "000000000000661E"
|
||||
"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_COUNT" "50"
|
||||
"{D595F9C0-EF22-11D5-B7DB-0000E10B3DA9}EventCtrlViews" "0"
|
||||
"{EEDC9300-6FBE-11D5-8613-00A024591A38}LocalsCtrlViews" "0"
|
||||
"{EEDC9301-6FBE-11D5-8613-00A024591A38}StackTraceCtrlViews" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlIOFile" ""
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileDir" "$(CONFIGDIR)"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlSaveFileName" ""
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOCtrlViews" "1"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOSelection IOWnd0" ""
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0ColWidth0" "381"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0ColWidth1" "100"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0ColWidth2" "100"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0ColWidth3" "100"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp0" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp1" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp10" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp11" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp12" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp13" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp14" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp15" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp16" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp17" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp18" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp19" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp2" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp20" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp21" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp22" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp23" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp24" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp25" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp26" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp27" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp28" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp29" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp3" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp30" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp31" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp32" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp33" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp34" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp35" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp36" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp37" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp38" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp39" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp4" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp40" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp41" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp42" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp43" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp44" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp45" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp46" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp47" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp48" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp49" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp5" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp50" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp51" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp52" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp53" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp54" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp55" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp56" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp57" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp58" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp59" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp6" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp60" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp61" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp62" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp63" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp64" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp65" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp66" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp67" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp68" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp69" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp7" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp70" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp71" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp72" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp8" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0Exp9" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0ScrollHorz" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd0ScrollVert" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd1ColWidth0" "200"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd1ColWidth1" "100"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd1ColWidth2" "100"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd1ColWidth3" "100"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd1ScrollHorz" "0"
|
||||
"{F866DB60-6186-11D5-8BBE-0004E2013C71}IOWnd1ScrollVert" "0"
|
||||
"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlAnalyzeViews" "0"
|
||||
"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlFileSaveDirectory" ""
|
||||
"{F923CED3-3318-4B43-B931-0AE76B289176}TaskTraceCtrlTraceViews" "0"
|
||||
"{FB0C49C2-C2FE-4E92-BCC1-56FE7254C804}CacheCtrlCacheLastSaveDirectory" ""
|
||||
"{FB0C49C2-C2FE-4E92-BCC1-56FE7254C804}CacheCtrlViews" "0"
|
||||
[LANGUAGE]
|
||||
"English"
|
||||
[CONFIG_INFO_VD1]
|
||||
1
|
||||
[CONFIG_INFO_VD2]
|
||||
0
|
||||
[CONFIG_INFO_VD3]
|
||||
0
|
||||
[CONFIG_INFO_VD4]
|
||||
0
|
||||
[WINDOW_POSITION_STATE_DATA_VD1]
|
||||
"Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_00000001_CmdLine}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.23" 220 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0"
|
||||
"{WK_00000001_CmdLine}" "WINDOW" 59422 0 1 "0.08" 324 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0"
|
||||
"{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 -4 -23 892 659 9 0 "" "0.0"
|
||||
"{WK_00000001_EVENT}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.50" 292 0 0 350 200 2065 0 "32774|32775|32777|<<separator>>|32780|<<separator>>" "0.0"
|
||||
"{WK_00000001_IO}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 3 "0.31" 324 0 0 350 200 17 0 "32817|32826|32819|32820|32821" "0.0"
|
||||
"{WK_00000001_MAPSCT}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.86" 316 0 0 350 200 2065 0 "32812|<<separator>>|32813|32814|<<separator>>|32816|<<separator>>|32822|32821|<<separator>>|32796|32797|<<separator>>|32833|<<separator>>|32825|32829|<<separator>>|32852" "31.7"
|
||||
"{WK_00000001_MEMORY}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.85" 391 0 0 350 200 2065 0 "42202|42203|42204|42233|<<separator>>|42206|42205|42230|42229|42207|<<separator>>|42208|42209|42210|49076|42228|42227|<<separator>>|42231|42232|42234|42235|<<separator>>|42211|<<separator>>" "0.0"
|
||||
"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 2 "0.55" 324 560 340 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0"
|
||||
"{WK_00000001_REGISTERS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59421 0 0 "1.00" 360 0 0 350 200 2065 0 "" "0.0"
|
||||
"{WK_00000001_STACKTRACE}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.50" 219 0 0 350 200 2065 0 "" "0.0"
|
||||
"{WK_00000001_STATUS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 4 "0.50" 324 0 0 350 200 17 0 "" "0.0"
|
||||
"{WK_00000001_WATCH}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.45" 324 0 0 350 200 18 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811|32831" "0.0"
|
||||
"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 340 560 340 350 200 18 0 "" "0.0"
|
||||
"{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0"
|
||||
"{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0"
|
||||
"{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000004_TEMPLATES}" "TOOLBAR 0" 59419 1 0 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000005_SEARCH}" "TOOLBAR 0" 59419 0 1 "0.00" 0 0 0 0 0 18 0 "" "0.0"
|
||||
"{WK_TB00000007_DEBUG}" "TOOLBAR 0" 59419 2 0 "0.00" 0 0 0 0 0 18 0 "" "0.0"
|
||||
"{WK_TB00000008_DEBUGRUN}" "TOOLBAR 0" 59419 2 1 "0.00" 0 0 0 0 0 18 0 "" "0.0"
|
||||
"{WK_TB00000009_VERSIONCONTROL}" "TOOLBAR 0" 59419 1 3 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000011_CPU}" "TOOLBAR 0" 59419 2 3 "0.00" 0 0 0 0 0 18 0 "" "0.0"
|
||||
"{WK_TB00000012_MAP}" "TOOLBAR 0" 59419 1 4 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000013_SYMBOL}" "TOOLBAR 0" 59419 2 5 "0.00" 0 0 0 0 0 18 0 "" "0.0"
|
||||
"{WK_TB00000014_CODE}" "TOOLBAR 0" 59419 2 8 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000015_PERFORMANCE}" "TOOLBAR 0" 59419 2 7 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000016_GRAPHIC}" "TOOLBAR 0" 59419 2 6 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000018_DEFAULTWINDOW}" "TOOLBAR 0" 59419 1 2 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000023_RTOS}" "TOOLBAR 0" 59419 2 9 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000026_MACRO}" "TOOLBAR 0" 59419 1 6 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000028_RTOSDEBUG}" "TOOLBAR 0" 59419 2 2 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
"{WK_TB00000029_SYSTEMTOOL}" "TOOLBAR 0" 59419 2 4 "0.00" 0 0 0 0 0 17 0 "" "0.0"
|
||||
[WINDOW_POSITION_STATE_DATA_VD2]
|
||||
[WINDOW_POSITION_STATE_DATA_VD3]
|
||||
[WINDOW_POSITION_STATE_DATA_VD4]
|
||||
[WINDOW_Z_ORDER]
|
||||
"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c"
|
||||
[TARGET_NAME]
|
||||
"SH7216 E10A-USB SYSTEM (SH2A-FPU)" "" 0
|
||||
[STATUSBAR_STATEINFO_VD1]
|
||||
"MasterShowState" 1
|
||||
"ApplicationShowState" 1
|
||||
"DebuggerShowState" 1
|
||||
[STATUSBAR_STATEINFO_VD2]
|
||||
"MasterShowState" 1
|
||||
"ApplicationShowState" 1
|
||||
"DebuggerShowState" 1
|
||||
[STATUSBAR_STATEINFO_VD3]
|
||||
"MasterShowState" 1
|
||||
"ApplicationShowState" 1
|
||||
"DebuggerShowState" 1
|
||||
[STATUSBAR_STATEINFO_VD4]
|
||||
"MasterShowState" 1
|
||||
"ApplicationShowState" 1
|
||||
"DebuggerShowState" 1
|
||||
[STATUSBAR_DEBUGGER_PANESTATE_VD1]
|
||||
[STATUSBAR_DEBUGGER_PANESTATE_VD2]
|
||||
[STATUSBAR_DEBUGGER_PANESTATE_VD3]
|
||||
[STATUSBAR_DEBUGGER_PANESTATE_VD4]
|
||||
[DEBUGGER_OPTIONS]
|
||||
"[B|SIMIOF|1] [I|SIMIOADR|0x00000000] [S|ROM_MODE|^"^"] [S|MAP|^"^"] [S|RESOURCE|^"^"]"
|
||||
[DOWNLOAD_MODULES]
|
||||
"$(CONFIGDIR)\$(PROJECTNAME).abs" 0 "Elf/Dwarf2" 0 0 1 0
|
||||
[CONNECT_ON_GO]
|
||||
"FALSE"
|
||||
[DOWNLOAD_MODULES_AFTER_BUILD]
|
||||
"TRUE"
|
||||
[REMOVE_BREAKPOINTS_ON_DOWNLOAD]
|
||||
"FALSE"
|
||||
[DISABLE_MEMORY_ACCESS_PRIOR_TO_COMMAND_FILE_EXECUTION]
|
||||
"FALSE"
|
||||
[LIMIT_DISASSEMBLY_MEMORY_ACCESS]
|
||||
"TRUE"
|
||||
[DISABLE_MEMORY_ACCESS_DURING_EXECUTION]
|
||||
"FALSE"
|
||||
[DEBUGGER_OPTIONS_PROPERTIES]
|
||||
"1"
|
||||
[COMMAND_FILES]
|
||||
[DEFAULT_DEBUG_FORMAT]
|
||||
"Elf/Dwarf2"
|
||||
[FLASH_DETAILS]
|
||||
"" 0 0 "" 0 "" 0 0 "" 0 0 0 0 0 0 0 "" "" "" "" ""
|
||||
[BREAKPOINTS]
|
||||
"c:\e\dev\freertos\workingcopy\demo\superh_sh7216_renesas\rtosdemo\main.c" 221 0 1 "{00000000-0000-0000-C000-000000000046}" ""
|
||||
[END]
|
|
@ -0,0 +1,4 @@
|
|||
[E10A USB Cpu Select]
|
||||
FREQUENCY=12.50
|
||||
[Key]
|
||||
Key=1
|
|
@ -0,0 +1,3 @@
|
|||
[E10A USB Cpu Select]
|
||||
CPU Select=5
|
||||
FREQUENCY=12.50
|
30
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/dbsct.c
Normal file
30
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/dbsct.c
Normal file
|
@ -0,0 +1,30 @@
|
|||
/***********************************************************************/
|
||||
/* */
|
||||
/* FILE :dbsct.c */
|
||||
/* DATE :Sun, Dec 27, 2009 */
|
||||
/* DESCRIPTION :Setting of B,R Section */
|
||||
/* CPU TYPE :Other */
|
||||
/* */
|
||||
/* This file is generated by Renesas Project Generator (Ver.4.16). */
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
|
||||
|
||||
|
||||
#include "typedefine.h"
|
||||
|
||||
#pragma section $DSEC
|
||||
static const struct {
|
||||
_UBYTE *rom_s; /* Start address of the initialized data section in ROM */
|
||||
_UBYTE *rom_e; /* End address of the initialized data section in ROM */
|
||||
_UBYTE *ram_s; /* Start address of the initialized data section in RAM */
|
||||
} DTBL[] = {
|
||||
{ __sectop("D"), __secend("D"), __sectop("R") }
|
||||
};
|
||||
#pragma section $BSEC
|
||||
static const struct {
|
||||
_UBYTE *b_s; /* Start address of non-initialized data section */
|
||||
_UBYTE *b_e; /* End address of non-initialized data section */
|
||||
} BTBL[] = {
|
||||
{ __sectop("B"), __secend("B") }
|
||||
};
|
362
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c
Normal file
362
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c
Normal file
|
@ -0,0 +1,362 @@
|
|||
/*
|
||||
FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* Having a problem? Start by reading the FAQ "My application does *
|
||||
* not run, what could be wrong? *
|
||||
* *
|
||||
* http://www.FreeRTOS.org/FAQHelp.html *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, training, latest information,
|
||||
license and contact details.
|
||||
|
||||
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||
including FreeRTOS+Trace - an indispensable productivity tool.
|
||||
|
||||
Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell
|
||||
the code with commercial support, indemnification, and middleware, under
|
||||
the OpenRTOS brand: http://www.OpenRTOS.com. High Integrity Systems also
|
||||
provide a safety engineered and independently SIL3 certified version under
|
||||
the SafeRTOS brand: http://www.SafeRTOS.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Creates eight tasks, each of which loops continuously performing a floating
|
||||
* point calculation and in so doing test the floating point context switching.
|
||||
* This file also demonstrates the use of the xPortUsesFloatingPoint() function
|
||||
* which informs the kernel that the task requires its floating point context
|
||||
* saved on each switch.
|
||||
*
|
||||
* All the tasks run at the idle priority and never block or yield. This causes
|
||||
* all eight tasks to time slice with the idle task. Running at the idle
|
||||
* priority means that these tasks will get pre-empted any time another task is
|
||||
* ready to run or a time slice occurs. More often than not the pre-emption
|
||||
* will occur mid calculation, creating a good test of the schedulers context
|
||||
* switch mechanism - a calculation producing an unexpected result could be a
|
||||
* symptom of a corruption in the context of a task.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
/* Scheduler include files. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
/* Demo program include files. */
|
||||
#include "flop.h"
|
||||
|
||||
#define mathSTACK_SIZE configMINIMAL_STACK_SIZE
|
||||
#define mathNUMBER_OF_TASKS ( 8 )
|
||||
|
||||
/* Four tasks, each of which performs a different floating point calculation.
|
||||
Each of the four is created twice. */
|
||||
static void vCompetingMathTask1( void *pvParameters );
|
||||
static void vCompetingMathTask2( void *pvParameters );
|
||||
static void vCompetingMathTask3( void *pvParameters );
|
||||
static void vCompetingMathTask4( void *pvParameters );
|
||||
|
||||
/* These variables are used to check that all the tasks are still running. If a
|
||||
task gets a calculation wrong it will stop incrementing its check variable,
|
||||
otherwise the check variable will get incremented on each iteration of the
|
||||
tasks execution. */
|
||||
static volatile unsigned short usTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vStartMathTasks( unsigned portBASE_TYPE uxPriority )
|
||||
{
|
||||
xTaskHandle xCreatedTask;
|
||||
|
||||
/* Create one of the floating point tasks... */
|
||||
xTaskCreate( vCompetingMathTask1, ( signed char * ) "Math1", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, &xCreatedTask );
|
||||
|
||||
/* ... then enable floating point support for the created task so its flop
|
||||
flop registers are maintained in a consistent state. */
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vCompetingMathTask2, ( signed char * ) "Math2", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vCompetingMathTask3, ( signed char * ) "Math3", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vCompetingMathTask4, ( signed char * ) "Math4", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vCompetingMathTask1, ( signed char * ) "Math5", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vCompetingMathTask2, ( signed char * ) "Math6", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vCompetingMathTask3, ( signed char * ) "Math7", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vCompetingMathTask4, ( signed char * ) "Math8", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vCompetingMathTask1( void *pvParameters )
|
||||
{
|
||||
volatile double d1, d2, d3, d4;
|
||||
volatile unsigned short *pusTaskCheckVariable;
|
||||
volatile double dAnswer;
|
||||
short sError = pdFALSE;
|
||||
|
||||
d1 = 123.4567;
|
||||
d2 = 2345.6789;
|
||||
d3 = -918.222;
|
||||
|
||||
/* Calculate the expected answer. */
|
||||
dAnswer = ( d1 + d2 ) * d3;
|
||||
|
||||
/* The variable this task increments to show it is still running is passed in
|
||||
as the parameter. */
|
||||
pusTaskCheckVariable = ( unsigned short * ) pvParameters;
|
||||
|
||||
/* Keep performing a calculation and checking the result against a constant. */
|
||||
for(;;)
|
||||
{
|
||||
/* Perform the calculation. */
|
||||
d1 = 123.4567;
|
||||
d2 = 2345.6789;
|
||||
d3 = -918.222;
|
||||
|
||||
d4 = ( d1 + d2 ) * d3;
|
||||
|
||||
/* If the calculation does not match the expected constant, stop the
|
||||
increment of the check variable. */
|
||||
if( fabs( d4 - dAnswer ) > 0.001 )
|
||||
{
|
||||
sError = pdTRUE;
|
||||
}
|
||||
|
||||
if( sError == pdFALSE )
|
||||
{
|
||||
/* If the calculation has always been correct, increment the check
|
||||
variable so we know this task is still running okay. */
|
||||
( *pusTaskCheckVariable )++;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vCompetingMathTask2( void *pvParameters )
|
||||
{
|
||||
volatile double d1, d2, d3, d4;
|
||||
volatile unsigned short *pusTaskCheckVariable;
|
||||
volatile double dAnswer;
|
||||
short sError = pdFALSE;
|
||||
|
||||
d1 = -389.38;
|
||||
d2 = 32498.2;
|
||||
d3 = -2.0001;
|
||||
|
||||
/* Calculate the expected answer. */
|
||||
dAnswer = ( d1 / d2 ) * d3;
|
||||
|
||||
|
||||
/* The variable this task increments to show it is still running is passed in
|
||||
as the parameter. */
|
||||
pusTaskCheckVariable = ( unsigned short * ) pvParameters;
|
||||
|
||||
/* Keep performing a calculation and checking the result against a constant. */
|
||||
for( ;; )
|
||||
{
|
||||
/* Perform the calculation. */
|
||||
d1 = -389.38;
|
||||
d2 = 32498.2;
|
||||
d3 = -2.0001;
|
||||
|
||||
d4 = ( d1 / d2 ) * d3;
|
||||
|
||||
/* If the calculation does not match the expected constant, stop the
|
||||
increment of the check variable. */
|
||||
if( fabs( d4 - dAnswer ) > 0.001 )
|
||||
{
|
||||
sError = pdTRUE;
|
||||
}
|
||||
|
||||
if( sError == pdFALSE )
|
||||
{
|
||||
/* If the calculation has always been correct, increment the check
|
||||
variable so we know
|
||||
this task is still running okay. */
|
||||
( *pusTaskCheckVariable )++;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vCompetingMathTask3( void *pvParameters )
|
||||
{
|
||||
volatile double *pdArray, dTotal1, dTotal2, dDifference;
|
||||
volatile unsigned short *pusTaskCheckVariable;
|
||||
const size_t xArraySize = 10;
|
||||
size_t xPosition;
|
||||
short sError = pdFALSE;
|
||||
|
||||
/* The variable this task increments to show it is still running is passed
|
||||
in as the parameter. */
|
||||
pusTaskCheckVariable = ( unsigned short * ) pvParameters;
|
||||
|
||||
/* Allocate memory for use as an array. */
|
||||
pdArray = ( double * ) pvPortMalloc( xArraySize * sizeof( double ) );
|
||||
|
||||
/* Keep filling an array, keeping a running total of the values placed in
|
||||
the array. Then run through the array adding up all the values. If the two
|
||||
totals do not match, stop the check variable from incrementing. */
|
||||
for( ;; )
|
||||
{
|
||||
dTotal1 = 0.0;
|
||||
dTotal2 = 0.0;
|
||||
|
||||
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||
{
|
||||
pdArray[ xPosition ] = ( double ) xPosition + 5.5;
|
||||
dTotal1 += ( double ) xPosition + 5.5;
|
||||
}
|
||||
|
||||
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||
{
|
||||
dTotal2 += pdArray[ xPosition ];
|
||||
}
|
||||
|
||||
dDifference = dTotal1 - dTotal2;
|
||||
if( fabs( dDifference ) > 0.001 )
|
||||
{
|
||||
sError = pdTRUE;
|
||||
}
|
||||
|
||||
if( sError == pdFALSE )
|
||||
{
|
||||
/* If the calculation has always been correct, increment the check
|
||||
variable so we know this task is still running okay. */
|
||||
( *pusTaskCheckVariable )++;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vCompetingMathTask4( void *pvParameters )
|
||||
{
|
||||
volatile double *pdArray, dTotal1, dTotal2, dDifference;
|
||||
volatile unsigned short *pusTaskCheckVariable;
|
||||
const size_t xArraySize = 10;
|
||||
size_t xPosition;
|
||||
short sError = pdFALSE;
|
||||
|
||||
/* The variable this task increments to show it is still running is passed in
|
||||
as the parameter. */
|
||||
pusTaskCheckVariable = ( unsigned short * ) pvParameters;
|
||||
|
||||
/* Allocate RAM for use as an array. */
|
||||
pdArray = ( double * ) pvPortMalloc( xArraySize * sizeof( double ) );
|
||||
|
||||
/* Keep filling an array, keeping a running total of the values placed in the
|
||||
array. Then run through the array adding up all the values. If the two totals
|
||||
do not match, stop the check variable from incrementing. */
|
||||
for( ;; )
|
||||
{
|
||||
dTotal1 = 0.0;
|
||||
dTotal2 = 0.0;
|
||||
|
||||
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||
{
|
||||
pdArray[ xPosition ] = ( double ) xPosition * 12.123;
|
||||
dTotal1 += ( double ) xPosition * 12.123;
|
||||
}
|
||||
|
||||
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||
{
|
||||
dTotal2 += pdArray[ xPosition ];
|
||||
}
|
||||
|
||||
dDifference = dTotal1 - dTotal2;
|
||||
if( fabs( dDifference ) > 0.001 )
|
||||
{
|
||||
sError = pdTRUE;
|
||||
}
|
||||
|
||||
if( sError == pdFALSE )
|
||||
{
|
||||
/* If the calculation has always been correct, increment the check
|
||||
variable so we know this task is still running okay. */
|
||||
( *pusTaskCheckVariable )++;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* This is called to check that all the created tasks are still running. */
|
||||
portBASE_TYPE xAreMathsTaskStillRunning( void )
|
||||
{
|
||||
/* Keep a history of the check variables so we know if they have been
|
||||
incremented since the last call. */
|
||||
static unsigned short usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };
|
||||
portBASE_TYPE xReturn = pdTRUE, xTask;
|
||||
|
||||
/* Check the maths tasks are still running by ensuring their check variables
|
||||
are still incrementing. */
|
||||
for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )
|
||||
{
|
||||
if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )
|
||||
{
|
||||
/* The check has not incremented so an error exists. */
|
||||
xReturn = pdFALSE;
|
||||
}
|
||||
|
||||
usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];
|
||||
}
|
||||
|
||||
return xReturn;
|
||||
}
|
||||
|
||||
|
||||
|
526
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/intprg.c
Normal file
526
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/intprg.c
Normal file
|
@ -0,0 +1,526 @@
|
|||
/***********************************************************************/
|
||||
/* */
|
||||
/* FILE :intprg.c */
|
||||
/* DATE :Sun, Dec 27, 2009 */
|
||||
/* DESCRIPTION :Interrupt Program */
|
||||
/* CPU TYPE :Other */
|
||||
/* */
|
||||
/* This file is generated by Renesas Project Generator (Ver.4.16). */
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
|
||||
|
||||
|
||||
#include <machine.h>
|
||||
#include "vect.h"
|
||||
#pragma section IntPRG
|
||||
|
||||
// 4 Illegal code
|
||||
void INT_Illegal_code(void){for( ;; ); /* sleep(); */}
|
||||
|
||||
// 5 Reserved
|
||||
|
||||
// 6 Illegal slot
|
||||
void INT_Illegal_slot(void){for( ;; ); /* sleep(); */}
|
||||
// 7 Reserved
|
||||
|
||||
// 8 Reserved
|
||||
|
||||
// 9 CPU Address error
|
||||
void INT_CPU_Address(void){for( ;; ); /* sleep(); */}
|
||||
// 10 DMAC Address error
|
||||
void INT_DMAC_Address(void){for( ;; ); /* sleep(); */}
|
||||
// 11 NMI
|
||||
void INT_NMI(void){for( ;; ); /* sleep(); */}
|
||||
// 12 User breakpoint trap
|
||||
void INT_User_Break(void){for( ;; ); /* sleep(); */}
|
||||
// 13 Reserved
|
||||
|
||||
// 14 H-UDI
|
||||
void INT_HUDI(void){for( ;; ); /* sleep(); */}
|
||||
// 15 Register bank over
|
||||
void INT_Bank_Overflow(void){for( ;; ); /* sleep(); */}
|
||||
// 16 Register bank under
|
||||
void INT_Bank_Underflow(void){for( ;; ); /* sleep(); */}
|
||||
// 17 ZERO DIV
|
||||
void INT_Divide_by_Zero(void){for( ;; ); /* sleep(); */}
|
||||
// 18 OVER DIV
|
||||
void INT_Divide_Overflow(void){for( ;; ); /* sleep(); */}
|
||||
// 19 Reserved
|
||||
|
||||
// 20 Reserved
|
||||
|
||||
// 21 Reserved
|
||||
|
||||
// 22 Reserved
|
||||
|
||||
// 23 Reserved
|
||||
|
||||
// 24 Reserved
|
||||
|
||||
// 25 Reserved
|
||||
|
||||
// 26 Reserved
|
||||
|
||||
// 27 Reserved
|
||||
|
||||
// 28 Reserved
|
||||
|
||||
// 29 Reserved
|
||||
|
||||
// 30 Reserved
|
||||
|
||||
// 31 Reserved
|
||||
|
||||
// 32 TRAPA (User Vecter)
|
||||
void INT_TRAPA32(void){ for( ;; ); /* sleep(); */ }
|
||||
// 33 TRAPA (User Vecter)
|
||||
void INT_TRAPA33(void){for( ;; ); /* sleep(); */}
|
||||
// 34 TRAPA (User Vecter)
|
||||
void INT_TRAPA34(void){for( ;; ); /* sleep(); */}
|
||||
// 35 TRAPA (User Vecter)
|
||||
void INT_TRAPA35(void){for( ;; ); /* sleep(); */}
|
||||
// 36 TRAPA (User Vecter)
|
||||
void INT_TRAPA36(void){for( ;; ); /* sleep(); */}
|
||||
// 37 TRAPA (User Vecter)
|
||||
void INT_TRAPA37(void){for( ;; ); /* sleep(); */}
|
||||
// 38 TRAPA (User Vecter)
|
||||
void INT_TRAPA38(void){for( ;; ); /* sleep(); */}
|
||||
// 39 TRAPA (User Vecter)
|
||||
void INT_TRAPA39(void){for( ;; ); /* sleep(); */}
|
||||
// 40 TRAPA (User Vecter)
|
||||
void INT_TRAPA40(void){for( ;; ); /* sleep(); */}
|
||||
// 41 TRAPA (User Vecter)
|
||||
void INT_TRAPA41(void){for( ;; ); /* sleep(); */}
|
||||
// 42 TRAPA (User Vecter)
|
||||
void INT_TRAPA42(void){for( ;; ); /* sleep(); */}
|
||||
// 43 TRAPA (User Vecter)
|
||||
void INT_TRAPA43(void){for( ;; ); /* sleep(); */}
|
||||
// 44 TRAPA (User Vecter)
|
||||
void INT_TRAPA44(void){for( ;; ); /* sleep(); */}
|
||||
// 45 TRAPA (User Vecter)
|
||||
void INT_TRAPA45(void){for( ;; ); /* sleep(); */}
|
||||
// 46 TRAPA (User Vecter)
|
||||
void INT_TRAPA46(void){for( ;; ); /* sleep(); */}
|
||||
// 47 TRAPA (User Vecter)
|
||||
void INT_TRAPA47(void){for( ;; ); /* sleep(); */}
|
||||
// 48 TRAPA (User Vecter)
|
||||
void INT_TRAPA48(void){for( ;; ); /* sleep(); */}
|
||||
// 49 TRAPA (User Vecter)
|
||||
void INT_TRAPA49(void){for( ;; ); /* sleep(); */}
|
||||
// 50 TRAPA (User Vecter)
|
||||
void INT_TRAPA50(void){for( ;; ); /* sleep(); */}
|
||||
// 51 TRAPA (User Vecter)
|
||||
void INT_TRAPA51(void){for( ;; ); /* sleep(); */}
|
||||
// 52 TRAPA (User Vecter)
|
||||
void INT_TRAPA52(void){for( ;; ); /* sleep(); */}
|
||||
// 53 TRAPA (User Vecter)
|
||||
void INT_TRAPA53(void){for( ;; ); /* sleep(); */}
|
||||
// 54 TRAPA (User Vecter)
|
||||
void INT_TRAPA54(void){for( ;; ); /* sleep(); */}
|
||||
// 55 TRAPA (User Vecter)
|
||||
void INT_TRAPA55(void){for( ;; ); /* sleep(); */}
|
||||
// 56 TRAPA (User Vecter)
|
||||
void INT_TRAPA56(void){for( ;; ); /* sleep(); */}
|
||||
// 57 TRAPA (User Vecter)
|
||||
void INT_TRAPA57(void){for( ;; ); /* sleep(); */}
|
||||
// 58 TRAPA (User Vecter)
|
||||
void INT_TRAPA58(void){for( ;; ); /* sleep(); */}
|
||||
// 59 TRAPA (User Vecter)
|
||||
void INT_TRAPA59(void){for( ;; ); /* sleep(); */}
|
||||
// 60 TRAPA (User Vecter)
|
||||
void INT_TRAPA60(void){for( ;; ); /* sleep(); */}
|
||||
// 61 TRAPA (User Vecter)
|
||||
void INT_TRAPA61(void){for( ;; ); /* sleep(); */}
|
||||
// 62 TRAPA (User Vecter)
|
||||
void INT_TRAPA62(void){for( ;; ); /* sleep(); */}
|
||||
// 63 TRAPA (User Vecter)
|
||||
void INT_TRAPA63(void){for( ;; ); /* sleep(); */}
|
||||
// 64 Interrupt IRQ0
|
||||
void INT_IRQ0(void){for( ;; ); /* sleep(); */}
|
||||
// 65 Interrupt IRQ1
|
||||
void INT_IRQ1(void){for( ;; ); /* sleep(); */}
|
||||
// 66 Interrupt IRQ2
|
||||
void INT_IRQ2(void){for( ;; ); /* sleep(); */}
|
||||
// 67 Interrupt IRQ3
|
||||
void INT_IRQ3(void){for( ;; ); /* sleep(); */}
|
||||
// 68 Interrupt IRQ4
|
||||
void INT_IRQ4(void){for( ;; ); /* sleep(); */}
|
||||
// 69 Interrupt IRQ5
|
||||
void INT_IRQ5(void){for( ;; ); /* sleep(); */}
|
||||
// 70 Interrupt IRQ6
|
||||
void INT_IRQ6(void){for( ;; ); /* sleep(); */}
|
||||
// 71 Interrupt IRQ7
|
||||
void INT_IRQ7(void){for( ;; ); /* sleep(); */}
|
||||
// 72 Reserved
|
||||
|
||||
// 73 Reserved
|
||||
|
||||
// 74 Reserved
|
||||
|
||||
// 75 Reserved
|
||||
|
||||
// 76 Reserved
|
||||
|
||||
// 77 Reserved
|
||||
|
||||
// 78 Reserved
|
||||
|
||||
// 79 Reserved
|
||||
|
||||
// 80 Interrupt PINT0
|
||||
void INT_PINT0(void){for( ;; ); /* sleep(); */}
|
||||
// 81 Interrupt PINT1
|
||||
void INT_PINT1(void){for( ;; ); /* sleep(); */}
|
||||
// 82 Interrupt PINT2
|
||||
void INT_PINT2(void){for( ;; ); /* sleep(); */}
|
||||
// 83 Interrupt PINT3
|
||||
void INT_PINT3(void){for( ;; ); /* sleep(); */}
|
||||
// 84 Interrupt PINT4
|
||||
void INT_PINT4(void){for( ;; ); /* sleep(); */}
|
||||
// 85 Interrupt PINT5
|
||||
void INT_PINT5(void){for( ;; ); /* sleep(); */}
|
||||
// 86 Interrupt PINT6
|
||||
void INT_PINT6(void){for( ;; ); /* sleep(); */}
|
||||
// 87 Interrupt PINT7
|
||||
void INT_PINT7(void){for( ;; ); /* sleep(); */}
|
||||
// 88 Reserved
|
||||
|
||||
// 89 Reserved
|
||||
|
||||
// 90 Reserved
|
||||
|
||||
// 91 ROM FIFE
|
||||
void INT_ROM_FIFE(void){for( ;; ); /* sleep(); */}
|
||||
// 92 A/D ADI0
|
||||
void INT_AD_ADI0(void){for( ;; ); /* sleep(); */}
|
||||
// 93 Reserved
|
||||
|
||||
// 94 Reserved
|
||||
|
||||
// 95 Reserved
|
||||
|
||||
// 96 A/D ADI1
|
||||
void INT_AD_ADI1(void){for( ;; ); /* sleep(); */}
|
||||
// 97 Reserved
|
||||
|
||||
// 98 Reserved
|
||||
|
||||
// 99 Reserved
|
||||
|
||||
// 100 Reserved
|
||||
|
||||
// 101 Reserved
|
||||
|
||||
// 102 Reserved
|
||||
|
||||
// 103 Reserved
|
||||
|
||||
// 104 RCANET0 ERS_0
|
||||
void INT_RCANET0_ERS_0(void){for( ;; ); /* sleep(); */}
|
||||
// 105 RCANET0 OVR_0
|
||||
void INT_RCANET0_OVR_0(void){for( ;; ); /* sleep(); */}
|
||||
// 106 RCANET0 RM01_0
|
||||
void INT_RCANET0_RM01_0(void){for( ;; ); /* sleep(); */}
|
||||
// 107 RCANET0 SLE_0
|
||||
void INT_RCANET0_SLE_0(void){for( ;; ); /* sleep(); */}
|
||||
// 108 DMAC0 DEI0
|
||||
void INT_DMAC0_DEI0(void){for( ;; ); /* sleep(); */}
|
||||
// 109 DMAC0 HEI0
|
||||
void INT_DMAC0_HEI0(void){for( ;; ); /* sleep(); */}
|
||||
// 110 Reserved
|
||||
|
||||
// 111 Reserved
|
||||
|
||||
// 112 DMAC1 DEI1
|
||||
void INT_DMAC1_DEI1(void){for( ;; ); /* sleep(); */}
|
||||
// 113 DMAC1 HEI1
|
||||
void INT_DMAC1_HEI1(void){for( ;; ); /* sleep(); */}
|
||||
// 114 Reserved
|
||||
|
||||
// 115 Reserved
|
||||
|
||||
// 116 DMAC2 DEI2
|
||||
void INT_DMAC2_DEI2(void){for( ;; ); /* sleep(); */}
|
||||
// 117 DMAC2 HEI2
|
||||
void INT_DMAC2_HEI2(void){for( ;; ); /* sleep(); */}
|
||||
// 118 Reserved
|
||||
|
||||
// 119 Reserved
|
||||
|
||||
// 120 DMAC3 DEI3
|
||||
void INT_DMAC3_DEI3(void){for( ;; ); /* sleep(); */}
|
||||
// 121 DMAC3 HEI3
|
||||
void INT_DMAC3_HEI3(void){for( ;; ); /* sleep(); */}
|
||||
// 122 Reserved
|
||||
|
||||
// 123 Reserved
|
||||
|
||||
// 124 DMAC4 DEI4
|
||||
void INT_DMAC4_DEI4(void){for( ;; ); /* sleep(); */}
|
||||
// 125 DMAC4 HEI4
|
||||
void INT_DMAC4_HEI4(void){for( ;; ); /* sleep(); */}
|
||||
// 126 Reserved
|
||||
|
||||
// 127 Reserved
|
||||
|
||||
// 128 DMAC5 DEI5
|
||||
void INT_DMAC5_DEI5(void){for( ;; ); /* sleep(); */}
|
||||
// 129 DMAC5 HEI5
|
||||
void INT_DMAC5_HEI5(void){for( ;; ); /* sleep(); */}
|
||||
// 130 Reserved
|
||||
|
||||
// 131 Reserved
|
||||
|
||||
// 132 DMAC6 DEI6
|
||||
void INT_DMAC6_DEI6(void){for( ;; ); /* sleep(); */}
|
||||
// 133 DMAC6 HEI6
|
||||
void INT_DMAC6_HEI6(void){for( ;; ); /* sleep(); */}
|
||||
// 134 Reserved
|
||||
|
||||
// 135 Reserved
|
||||
|
||||
// 136 DMAC7 DEI7
|
||||
void INT_DMAC7_DEI7(void){for( ;; ); /* sleep(); */}
|
||||
// 137 DMAC7 HEI7
|
||||
void INT_DMAC7_HEI7(void){for( ;; ); /* sleep(); */}
|
||||
// 138 Reserved
|
||||
|
||||
// 139 Reserved
|
||||
|
||||
// 140 CMT CMI0
|
||||
//void INT_CMT_CMI0(void){for( ;; ); /* sleep(); */}
|
||||
// 141 Reserved
|
||||
|
||||
// 142 Reserved
|
||||
|
||||
// 143 Reserved
|
||||
|
||||
// 144 CMT CMI1
|
||||
void INT_CMT_CMI1(void){for( ;; ); /* sleep(); */}
|
||||
// 145 Reserved
|
||||
|
||||
// 146 Reserved
|
||||
|
||||
// 147 Reserved
|
||||
|
||||
// 148 BSC CMTI
|
||||
void INT_BSC_CMTI(void){for( ;; ); /* sleep(); */}
|
||||
// 149 Reserved
|
||||
|
||||
// 150 USB EP4FULL
|
||||
void INT_USB_EP4FULL(void){for( ;; ); /* sleep(); */}
|
||||
// 151 USB EP5EMPTY
|
||||
void INT_USB_EP5EMPTY(void){for( ;; ); /* sleep(); */}
|
||||
// 152 WDT ITI
|
||||
void INT_WDT_ITI(void){for( ;; ); /* sleep(); */}
|
||||
// 153 E-DMAC EINT0
|
||||
void INT_EDMAC_EINT0(void){for( ;; ); /* sleep(); */}
|
||||
// 154 USB EP1FULL
|
||||
void INT_USB_EP1FULL(void){for( ;; ); /* sleep(); */}
|
||||
// 155 USB EP2EMPTY
|
||||
void INT_USB_EP2EMPTY(void){for( ;; ); /* sleep(); */}
|
||||
// 156 MTU2 MTU0 TGI0A
|
||||
void INT_MTU2_MTU0_TGI0A(void){for( ;; ); /* sleep(); */}
|
||||
// 157 MTU2 MTU0 TGI0B
|
||||
void INT_MTU2_MTU0_TGI0B(void){for( ;; ); /* sleep(); */}
|
||||
// 158 MTU2 MTU0 TGI0C
|
||||
void INT_MTU2_MTU0_TGI0C(void){for( ;; ); /* sleep(); */}
|
||||
// 159 MTU2 MTU0 TGI0D
|
||||
void INT_MTU2_MTU0_TGI0D(void){for( ;; ); /* sleep(); */}
|
||||
// 160 MTU2 MTU0 TGI0V
|
||||
void INT_MTU2_MTU0_TGI0V(void){for( ;; ); /* sleep(); */}
|
||||
// 161 MTU2 MTU0 TGI0E
|
||||
void INT_MTU2_MTU0_TGI0E(void){for( ;; ); /* sleep(); */}
|
||||
// 162 MTU2 MTU0 TGI0F
|
||||
void INT_MTU2_MTU0_TGI0F(void){for( ;; ); /* sleep(); */}
|
||||
// 163 Reserved
|
||||
|
||||
// 164 MTU2 MTU1 TGI1A
|
||||
void INT_MTU2_MTU1_TGI1A(void){for( ;; ); /* sleep(); */}
|
||||
// 165 MTU2 MTU1 TGI1B
|
||||
void INT_MTU2_MTU1_TGI1B(void){for( ;; ); /* sleep(); */}
|
||||
// 166 Reserved
|
||||
|
||||
// 167 Reserved
|
||||
|
||||
// 168 MTU2 MTU1 TGI1V
|
||||
void INT_MTU2_MTU1_TGI1V(void){for( ;; ); /* sleep(); */}
|
||||
// 169 MTU2 MTU1 TGI1U
|
||||
void INT_MTU2_MTU1_TGI1U(void){for( ;; ); /* sleep(); */}
|
||||
// 170 Reserved
|
||||
|
||||
// 171 Reserved
|
||||
|
||||
// 172 MTU2 MTU2 TGI2A
|
||||
void INT_MTU2_MTU2_TGI2A(void){for( ;; ); /* sleep(); */}
|
||||
// 173 MTU2 MTU2 TGI2B
|
||||
void INT_MTU2_MTU2_TGI2B(void){for( ;; ); /* sleep(); */}
|
||||
// 174 Reserved
|
||||
|
||||
// 175 Reserved
|
||||
|
||||
// 176 MTU2 MTU2 TGI2V
|
||||
void INT_MTU2_MTU2_TGI2V(void){for( ;; ); /* sleep(); */}
|
||||
// 177 MTU2 MTU2 TGI2U
|
||||
void INT_MTU2_MTU2_TGI2U(void){for( ;; ); /* sleep(); */}
|
||||
// 178 Reserved
|
||||
|
||||
// 179 Reserved
|
||||
|
||||
// 180 MTU2 MTU3 TGI3A
|
||||
void INT_MTU2_MTU3_TGI3A(void){for( ;; ); /* sleep(); */}
|
||||
// 181 MTU2 MTU3 TGI3B
|
||||
void INT_MTU2_MTU3_TGI3B(void){for( ;; ); /* sleep(); */}
|
||||
// 182 MTU2 MTU3 TGI3C
|
||||
void INT_MTU2_MTU3_TGI3C(void){for( ;; ); /* sleep(); */}
|
||||
// 183 MTU2 MTU3 TGI3D
|
||||
void INT_MTU2_MTU3_TGI3D(void){for( ;; ); /* sleep(); */}
|
||||
// 184 MTU2 MTU3 TGI3V
|
||||
void INT_MTU2_MTU3_TGI3V(void){for( ;; ); /* sleep(); */}
|
||||
// 185 Reserved
|
||||
|
||||
// 186 Reserved
|
||||
|
||||
// 187 Reserved
|
||||
|
||||
// 188 MTU2 MTU4 TGI4A
|
||||
void INT_MTU2_MTU4_TGI4A(void){for( ;; ); /* sleep(); */}
|
||||
// 189 MTU2 MTU4 TGI4B
|
||||
void INT_MTU2_MTU4_TGI4B(void){for( ;; ); /* sleep(); */}
|
||||
// 190 MTU2 MTU4 TGI4C
|
||||
void INT_MTU2_MTU4_TGI4C(void){for( ;; ); /* sleep(); */}
|
||||
// 191 MTU2 MTU4 TGI4D
|
||||
void INT_MTU2_MTU4_TGI4D(void){for( ;; ); /* sleep(); */}
|
||||
// 192 MTU2 MTU4 TGI4V
|
||||
void INT_MTU2_MTU4_TGI4V(void){for( ;; ); /* sleep(); */}
|
||||
// 193 Reserved
|
||||
|
||||
// 194 Reserved
|
||||
|
||||
// 195 Reserved
|
||||
|
||||
// 196 MTU2 MTU5 TGI5U
|
||||
void INT_MTU2_MTU5_TGI5U(void){for( ;; ); /* sleep(); */}
|
||||
// 197 MTU2 MTU5 TGI5V
|
||||
void INT_MTU2_MTU5_TGI5V(void){for( ;; ); /* sleep(); */}
|
||||
// 198 MTU2 MTU5 TGI5W
|
||||
void INT_MTU2_MTU5_TGI5W(void){for( ;; ); /* sleep(); */}
|
||||
// 199 Reserved
|
||||
|
||||
// 200 POE2 OEI1
|
||||
void INT_POE2_OEI1(void){for( ;; ); /* sleep(); */}
|
||||
// 201 POE2 OEI2
|
||||
void INT_POE2_OEI2(void){for( ;; ); /* sleep(); */}
|
||||
// 202 Reserved
|
||||
|
||||
// 203 Reserved
|
||||
|
||||
// 204 MTU2S MTU3S TGI3A
|
||||
void INT_MTU2S_MTU3S_TGI3A(void){for( ;; ); /* sleep(); */}
|
||||
// 205 MTU2S MTU3S TGI3B
|
||||
void INT_MTU2S_MTU3S_TGI3B(void){for( ;; ); /* sleep(); */}
|
||||
// 206 MTU2S MTU3S TGI3C
|
||||
void INT_MTU2S_MTU3S_TGI3C(void){for( ;; ); /* sleep(); */}
|
||||
// 207 MTU2S MTU3S TGI3D
|
||||
void INT_MTU2S_MTU3S_TGI3D(void){for( ;; ); /* sleep(); */}
|
||||
// 208 MTU2S MTU3S TGI3V
|
||||
void INT_MTU2S_MTU3S_TGI3V(void){for( ;; ); /* sleep(); */}
|
||||
// 209 Reserved
|
||||
|
||||
// 210 Reserved
|
||||
|
||||
// 211 Reserved
|
||||
|
||||
// 212 MTU2S MTU4S TGI4A
|
||||
void INT_MTU2S_MTU4S_TGI4A(void){for( ;; ); /* sleep(); */}
|
||||
// 213 MTU2S MTU4S TGI4B
|
||||
void INT_MTU2S_MTU4S_TGI4B(void){for( ;; ); /* sleep(); */}
|
||||
// 214 MTU2S MTU4S TGI4C
|
||||
void INT_MTU2S_MTU4S_TGI4C(void){for( ;; ); /* sleep(); */}
|
||||
// 215 MTU2S MTU4S TGI4D
|
||||
void INT_MTU2S_MTU4S_TGI4D(void){for( ;; ); /* sleep(); */}
|
||||
// 216 MTU2S MTU4S TGI4V
|
||||
void INT_MTU2S_MTU4S_TGI4V(void){for( ;; ); /* sleep(); */}
|
||||
// 217 Reserved
|
||||
|
||||
// 218 Reserved
|
||||
|
||||
// 219 Reserved
|
||||
|
||||
// 220 MTU2S MTU5S TGI5U
|
||||
void INT_MTU2S_MTU5S_TGI5U(void){for( ;; ); /* sleep(); */}
|
||||
// 221 MTU2S MTU5S TGI5V
|
||||
void INT_MTU2S_MTU5S_TGI5V(void){for( ;; ); /* sleep(); */}
|
||||
// 222 MTU2S MTU5S TGI5W
|
||||
void INT_MTU2S_MTU5S_TGI5W(void){for( ;; ); /* sleep(); */}
|
||||
// 223 Reserved
|
||||
|
||||
// 224 POE2 OEI3
|
||||
void INT_POE2_OEI3(void){for( ;; ); /* sleep(); */}
|
||||
// 225 Reserved
|
||||
|
||||
// 226 USB USI0
|
||||
void INT_USB_USI0(void){for( ;; ); /* sleep(); */}
|
||||
// 227 USB USI1
|
||||
void INT_USB_USI1(void){for( ;; ); /* sleep(); */}
|
||||
// 228 IIC3 STPI
|
||||
void INT_IIC3_STPI(void){for( ;; ); /* sleep(); */}
|
||||
// 229 IIC3 NAKI
|
||||
void INT_IIC3_NAKI(void){for( ;; ); /* sleep(); */}
|
||||
// 230 IIC3 RXI
|
||||
void INT_IIC3_RXI(void){for( ;; ); /* sleep(); */}
|
||||
// 231 IIC3 TXI
|
||||
void INT_IIC3_TXI(void){for( ;; ); /* sleep(); */}
|
||||
// 232 IIC3 TEI
|
||||
void INT_IIC3_TEI(void){for( ;; ); /* sleep(); */}
|
||||
// 233 RSPI SPERI
|
||||
void INT_RSPI_SPERI(void){for( ;; ); /* sleep(); */}
|
||||
// 234 RSPI SPRXI
|
||||
void INT_RSPI_SPRXI(void){for( ;; ); /* sleep(); */}
|
||||
// 235 RSPI SPTXI
|
||||
void INT_RSPI_SPTXI(void){for( ;; ); /* sleep(); */}
|
||||
// 236 SCI SCI4 ERI4
|
||||
void INT_SCI_SCI4_ERI4(void){for( ;; ); /* sleep(); */}
|
||||
// 237 SCI SCI4 RXI4
|
||||
void INT_SCI_SCI4_RXI4(void){for( ;; ); /* sleep(); */}
|
||||
// 238 SCI SCI4 TXI4
|
||||
void INT_SCI_SCI4_TXI4(void){for( ;; ); /* sleep(); */}
|
||||
// 239 SCI SCI4 TEI4
|
||||
void INT_SCI_SCI4_TEI4(void){for( ;; ); /* sleep(); */}
|
||||
// 240 SCI SCI0 ERI0
|
||||
void INT_SCI_SCI0_ERI0(void){for( ;; ); /* sleep(); */}
|
||||
// 241 SCI SCI0 RXI0
|
||||
void INT_SCI_SCI0_RXI0(void){for( ;; ); /* sleep(); */}
|
||||
// 242 SCI SCI0 TXI0
|
||||
void INT_SCI_SCI0_TXI0(void){for( ;; ); /* sleep(); */}
|
||||
// 243 SCI SCI0 TEI0
|
||||
void INT_SCI_SCI0_TEI0(void){for( ;; ); /* sleep(); */}
|
||||
// 244 SCI SCI1 ERI1
|
||||
void INT_SCI_SCI1_ERI1(void){for( ;; ); /* sleep(); */}
|
||||
// 245 SCI SCI1 RXI1
|
||||
void INT_SCI_SCI1_RXI1(void){for( ;; ); /* sleep(); */}
|
||||
// 246 SCI SCI1 TXI1
|
||||
void INT_SCI_SCI1_TXI1(void){for( ;; ); /* sleep(); */}
|
||||
// 247 SCI SCI1 TEI1
|
||||
void INT_SCI_SCI1_TEI1(void){for( ;; ); /* sleep(); */}
|
||||
// 248 SCI SCI2 ERI2
|
||||
void INT_SCI_SCI2_ERI2(void){for( ;; ); /* sleep(); */}
|
||||
// 249 SCI SCI2 RXI2
|
||||
void INT_SCI_SCI2_RXI2(void){for( ;; ); /* sleep(); */}
|
||||
// 250 SCI SCI2 TXI2
|
||||
void INT_SCI_SCI2_TXI2(void){for( ;; ); /* sleep(); */}
|
||||
// 251 SCI SCI2 TEI2
|
||||
void INT_SCI_SCI2_TEI2(void){for( ;; ); /* sleep(); */}
|
||||
// 252 SCIF SCIF3 BRI3
|
||||
void INT_SCIF_SCIF3_BRI3(void){for( ;; ); /* sleep(); */}
|
||||
// 253 SCIF SCIF3 ERI3
|
||||
void INT_SCIF_SCIF3_ERI3(void){for( ;; ); /* sleep(); */}
|
||||
// 254 SCIF SCIF3 RXI3
|
||||
void INT_SCIF_SCIF3_RXI3(void){for( ;; ); /* sleep(); */}
|
||||
// 255 SCIF SCIF3 TXI3
|
||||
void INT_SCIF_SCIF3_TXI3(void){for( ;; ); /* sleep(); */}
|
||||
// Dummy
|
||||
void Dummy(void){ for( ;; ); sleep(); }
|
||||
|
||||
/* End of File */
|
5006
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/iodefine.h
Normal file
5006
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/iodefine.h
Normal file
File diff suppressed because it is too large
Load diff
541
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c
Normal file
541
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c
Normal file
|
@ -0,0 +1,541 @@
|
|||
/*
|
||||
FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* Having a problem? Start by reading the FAQ "My application does *
|
||||
* not run, what could be wrong? *
|
||||
* *
|
||||
* http://www.FreeRTOS.org/FAQHelp.html *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, training, latest information,
|
||||
license and contact details.
|
||||
|
||||
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||
including FreeRTOS+Trace - an indispensable productivity tool.
|
||||
|
||||
Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell
|
||||
the code with commercial support, indemnification, and middleware, under
|
||||
the OpenRTOS brand: http://www.OpenRTOS.com. High Integrity Systems also
|
||||
provide a safety engineered and independently SIL3 certified version under
|
||||
the SafeRTOS brand: http://www.SafeRTOS.com.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Creates all the demo application tasks, then starts the scheduler. The WEB
|
||||
* documentation provides more details of the standard demo application tasks,
|
||||
* which provide no particular functionality but do provide a good example of
|
||||
* how to use the FreeRTOS API. In addition to the standard demo tasks, the
|
||||
* following tasks and tests are defined and/or created within this file:
|
||||
*
|
||||
* Webserver ("uIP") task - This serves a number of dynamically generated WEB
|
||||
* pages to a standard WEB browser. The IP and MAC addresses are configured by
|
||||
* constants defined at the bottom of FreeRTOSConfig.h. Use either a standard
|
||||
* Ethernet cable to connect through a hug, or a cross over (point to point)
|
||||
* cable to connect directly. Ensure the IP address used is compatible with the
|
||||
* IP address of the machine running the browser - the easiest way to achieve
|
||||
* this is to ensure the first three octets of the IP addresses are the same.
|
||||
*
|
||||
* "Reg test" tasks - These fill the registers with known values, then check
|
||||
* that each register still contains its expected value. Each task uses
|
||||
* different values. The tasks run with very low priority so get preempted very
|
||||
* frequently. A register containing an unexpected value is indicative of an
|
||||
* error in the context switching mechanism. Both standard and floating point
|
||||
* registers are checked. The nature of the reg test tasks necessitates that
|
||||
* they are written in assembly code. They are defined in regtest.src.
|
||||
*
|
||||
* "math" tasks - These are a set of 8 tasks that perform various double
|
||||
* precision floating point calculations in order to check that the tasks
|
||||
* floating point registers are being correctly saved and restored during
|
||||
* context switches. The math tasks are defined in flop.c.
|
||||
*
|
||||
* "Check" task - This only executes every five seconds but has a high priority
|
||||
* to ensure it gets processor time. Its main function is to check that all the
|
||||
* standard demo tasks are still operational. While no errors have been
|
||||
* discovered the check task will toggle an LED every 5 seconds - the toggle
|
||||
* rate increasing to 200ms being a visual indication that at least one task has
|
||||
* reported unexpected behaviour.
|
||||
*
|
||||
* *NOTE 1* If LED5 is toggling every 5 seconds then all the demo application
|
||||
* tasks are executing as expected and no errors have been reported in any
|
||||
* tasks. The toggle rate increasing to 200ms indicates that at least one task
|
||||
* has reported unexpected behaviour.
|
||||
*
|
||||
* *NOTE 2* This file and flop.c both demonstrate the use of
|
||||
* xPortUsesFloatingPoint() which informs the kernel that a task should maintain
|
||||
* a floating point context.
|
||||
*
|
||||
* *NOTE 3* vApplicationSetupTimerInterrupt() is called by the kernel to let
|
||||
* the application set up a timer to generate the tick interrupt. In this
|
||||
* example a compare match timer is used for this purpose.
|
||||
* vApplicationTickHook() is used to clear the timer interrupt and relies on
|
||||
* configUSE_TICK_HOOK being set to 1 in FreeRTOSConfig.h.
|
||||
*
|
||||
* *NOTE 4* The traceTASK_SWITCHED_IN and traceTASK_SWITCHED_OUT trace hooks
|
||||
* are used to save and restore the floating point context respectively for
|
||||
* those tasks that require it (those for which xPortUsesFloatingPoint() has
|
||||
* been called).
|
||||
*
|
||||
* *NOTE 5* Any interrupt that can cause a context switch requires an asm
|
||||
* wrapper and must be assigned an interrupt priority of
|
||||
* portKERNEL_INTERRUPT_PRIORITY.
|
||||
*
|
||||
* *NOTE 6* vSetupClockForRunTimeStats() is called by the kernel (via the
|
||||
* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()) macro to configure an MTU channel
|
||||
* to produce a time base that is used to log how much processor time each task
|
||||
* is consuming. The MTU is used to generate a high(ish) frequency interrupt,
|
||||
* and so also provides an example of how interrupts that don't make use of the
|
||||
* FreeRTOS kernel can be assigned a priority above any priority used by the
|
||||
* kernel itself.
|
||||
*/
|
||||
|
||||
/* Kernel includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
/* Demo application includes. */
|
||||
#include "BlockQ.h"
|
||||
#include "death.h"
|
||||
#include "integer.h"
|
||||
#include "blocktim.h"
|
||||
#include "flash.h"
|
||||
#include "partest.h"
|
||||
#include "semtest.h"
|
||||
#include "PollQ.h"
|
||||
#include "GenQTest.h"
|
||||
#include "QPeek.h"
|
||||
#include "recmutex.h"
|
||||
#include "flop.h"
|
||||
|
||||
/* Constants required to configure the hardware. */
|
||||
#define mainFRQCR_VALUE ( 0x0303 ) /* Input = 12.5MHz, I Clock = 200MHz, B Clock = 50MHz, P Clock = 50MHz */
|
||||
|
||||
/* Task priorities. */
|
||||
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||
#define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||
#define mainuIP_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY )
|
||||
#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )
|
||||
#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY )
|
||||
|
||||
/* The WEB server uses string handling functions, which in turn use a bit more
|
||||
stack than most of the other tasks. */
|
||||
#define mainuIP_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3 )
|
||||
|
||||
/* The LED toggled by the check task. */
|
||||
#define mainCHECK_LED ( 5 )
|
||||
|
||||
/* The rate at which mainCHECK_LED will toggle when all the tasks are running
|
||||
without error. */
|
||||
#define mainNO_ERROR_CYCLE_TIME ( 5000 / portTICK_RATE_MS )
|
||||
|
||||
/* The rate at which mainCHECK_LED will toggle when an error has been reported
|
||||
by at least one task. */
|
||||
#define mainERROR_CYCLE_TIME ( 200 / portTICK_RATE_MS )
|
||||
|
||||
/*
|
||||
* vApplicationMallocFailedHook() will only be called if
|
||||
* configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook
|
||||
* function that will execute if a call to pvPortMalloc() fails.
|
||||
* pvPortMalloc() is called internally by the kernel whenever a task, queue or
|
||||
* semaphore is created. It is also called by various parts of the demo
|
||||
* application.
|
||||
*/
|
||||
void vApplicationMallocFailedHook( void );
|
||||
|
||||
/*
|
||||
* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set to 1
|
||||
* in FreeRTOSConfig.h. It is a hook function that is called on each iteration
|
||||
* of the idle task. It is essential that code added to this hook function
|
||||
* never attempts to block in any way (for example, call xQueueReceive() with
|
||||
* a block time specified). If the application makes use of the vTaskDelete()
|
||||
* API function (as this demo application does) then it is also important that
|
||||
* vApplicationIdleHook() is permitted to return to its calling function because
|
||||
* it is the responsibility of the idle task to clean up memory allocated by the
|
||||
* kernel to any task that has since been deleted.
|
||||
*/
|
||||
void vApplicationIdleHook( void );
|
||||
|
||||
/*
|
||||
* Just sets up clocks, ports, etc. used by the demo application.
|
||||
*/
|
||||
static void prvSetupHardware( void );
|
||||
|
||||
/*
|
||||
* The check task as described at the top of this file.
|
||||
*/
|
||||
static void prvCheckTask( void *pvParameters );
|
||||
|
||||
/*
|
||||
* The reg test tasks as described at the top of this file.
|
||||
*/
|
||||
extern void vRegTest1Task( void *pvParameters );
|
||||
extern void vRegTest2Task( void *pvParameters );
|
||||
|
||||
/*
|
||||
* Contains the implementation of the WEB server.
|
||||
*/
|
||||
extern void vuIP_Task( void *pvParameters );
|
||||
|
||||
/*
|
||||
* The interrupt handler for the MTU - which is used to maintain the time base
|
||||
* used by the run time stats.
|
||||
*/
|
||||
#pragma interrupt MTU_Match
|
||||
void MTU_Match( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Variables that are incremented on each iteration of the reg test tasks -
|
||||
provided the tasks have not reported any errors. The check task inspects these
|
||||
variables to ensure they are still incrementing as expected. */
|
||||
volatile unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;
|
||||
|
||||
/* The status message that is displayed at the bottom of the "task stats" WEB
|
||||
page, which is served by the uIP task. */
|
||||
const char *pcStatusMessage = "All tasks executing without error.";
|
||||
|
||||
/* The time use for the run time stats. */
|
||||
unsigned long ulRunTime = 0UL;
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Creates the majority of the demo application tasks before starting the
|
||||
* scheduler.
|
||||
*/
|
||||
void main(void)
|
||||
{
|
||||
xTaskHandle xCreatedTask;
|
||||
|
||||
prvSetupHardware();
|
||||
|
||||
/* Start the reg test tasks which test the context switching mechanism. */
|
||||
xTaskCreate( vRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xCreatedTask );
|
||||
xPortUsesFloatingPoint( xCreatedTask );
|
||||
|
||||
xTaskCreate( vuIP_Task, "uIP", mainuIP_STACK_SIZE, NULL, mainuIP_TASK_PRIORITY, NULL );
|
||||
|
||||
/* Start the check task as described at the top of this file. */
|
||||
xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||
|
||||
/* Start the standard demo tasks. These don't perform any particular useful
|
||||
functionality, other than to demonstrate the FreeRTOS API being used. */
|
||||
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
||||
vCreateBlockTimeTasks();
|
||||
vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
|
||||
vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
|
||||
vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY );
|
||||
vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );
|
||||
vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY );
|
||||
vStartQueuePeekTasks();
|
||||
vStartRecursiveMutexTasks();
|
||||
|
||||
/* Start the math tasks as described at the top of this file. */
|
||||
vStartMathTasks( mainFLOP_TASK_PRIORITY );
|
||||
|
||||
/* The suicide tasks must be created last as they need to know how many
|
||||
tasks were running prior to their creation in order to ascertain whether
|
||||
or not the correct/expected number of tasks are running at any given time. */
|
||||
vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );
|
||||
|
||||
/* Start the tasks running. */
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* Will only get here if there was insufficient heap memory to create the idle
|
||||
task. Increase the configTOTAL_HEAP_SIZE setting in FreeRTOSConfig.h. */
|
||||
for( ;; );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvCheckTask( void *pvParameter )
|
||||
{
|
||||
portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;
|
||||
unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;
|
||||
|
||||
/* Just to remove compiler warning. */
|
||||
( void ) pvParameter;
|
||||
|
||||
/* Initialise xNextWakeTime - this only needs to be done once. */
|
||||
xNextWakeTime = xTaskGetTickCount();
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
/* Place this task in the blocked state until it is time to run again. */
|
||||
vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );
|
||||
|
||||
/* Inspect all the other tasks to ensure none have experienced any errors. */
|
||||
if( xAreGenericQueueTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
/* Increase the rate at which this task cycles, which will increase the
|
||||
rate at which mainCHECK_LED flashes to give visual feedback that an error
|
||||
has occurred. */
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in GenQ test.";
|
||||
}
|
||||
else if( xAreQueuePeekTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in Queue Peek test.";
|
||||
}
|
||||
else if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in Blocking Queue test.";
|
||||
}
|
||||
else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in BlockTim test.";
|
||||
}
|
||||
else if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in Semaphore test.";
|
||||
}
|
||||
else if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in Polling Queue test.";
|
||||
}
|
||||
else if( xIsCreateTaskStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in Create test.";
|
||||
}
|
||||
else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in integer Math test.";
|
||||
}
|
||||
else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in recursive mutex test.";
|
||||
}
|
||||
else if( xAreMathsTaskStillRunning() != pdTRUE )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in floating point Math test.";
|
||||
}
|
||||
|
||||
/* Check the reg test tasks are still cycling. They will stop incrementing
|
||||
their loop counters if they encounter an error. */
|
||||
if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in RegTest.";
|
||||
}
|
||||
|
||||
if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )
|
||||
{
|
||||
xCycleFrequency = mainERROR_CYCLE_TIME;
|
||||
pcStatusMessage = "Error in RegTest.";
|
||||
}
|
||||
|
||||
ulLastRegTest1CycleCount = ulRegTest1CycleCount;
|
||||
ulLastRegTest2CycleCount = ulRegTest2CycleCount;
|
||||
|
||||
/* Toggle the check LED to give an indication of the system status. If the
|
||||
LED toggles every 5 seconds then everything is ok. A faster toggle indicates
|
||||
an error. */
|
||||
vParTestToggleLED( mainCHECK_LED );
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationMallocFailedHook( void )
|
||||
{
|
||||
/* A call to vPortMalloc() failed, probably during the creation of a task,
|
||||
queue or semaphore. Inspect pxCurrentTCB to find which task is currently
|
||||
executing. */
|
||||
for( ;; );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationIdleHook( void )
|
||||
{
|
||||
/* Code can be added to the idle task here. This function must *NOT* attempt
|
||||
to block. Also, if the application uses the vTaskDelete() API function then
|
||||
this function must return regularly to ensure the idle task gets a chance to
|
||||
clean up the memory used by deleted tasks. */
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName )
|
||||
{
|
||||
/* Just to remove compiler warnings. This function will only actually
|
||||
get called if configCHECK_FOR_STACK_OVERFLOW is set to a non zero value.
|
||||
By default this demo does not use the stack overflow checking functionality
|
||||
as the SuperH will normally execute an exception if the stack overflows. */
|
||||
( void ) pxTask;
|
||||
( void ) pcTaskName;
|
||||
|
||||
taskDISABLE_INTERRUPTS();
|
||||
for( ;; );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvSetupHardware( void )
|
||||
{
|
||||
volatile unsigned long ul;
|
||||
|
||||
/* Set the CPU and peripheral clocks. */
|
||||
CPG.FRQCR.WORD = mainFRQCR_VALUE;
|
||||
|
||||
/* Wait for the clock to settle. */
|
||||
for( ul = 0; ul < 99; ul++ )
|
||||
{
|
||||
nop();
|
||||
}
|
||||
|
||||
/* Initialise the ports used to toggle LEDs. */
|
||||
vParTestInitialise();
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationSetupTimerInterrupt( void )
|
||||
{
|
||||
/* The peripheral clock is divided by 32 before feeding the compare match
|
||||
peripheral (CMT). */
|
||||
const unsigned long ulCompareMatch = ( configPERIPHERAL_CLOCK_HZ / ( configTICK_RATE_HZ * 32 ) ) + 1;
|
||||
|
||||
/* Configure a timer to create the RTOS tick interrupt. This example uses
|
||||
the compare match timer, but the multi function timer or possible even the
|
||||
watchdog timer could also be used. Ensure vPortTickInterrupt() is installed
|
||||
as the interrupt handler for whichever peripheral is used. */
|
||||
|
||||
/* Turn the CMT on. */
|
||||
STB.CR4.BIT._CMT = 0;
|
||||
|
||||
/* Set the compare match value for the required tick frequency. */
|
||||
CMT0.CMCOR = ( unsigned short ) ulCompareMatch;
|
||||
|
||||
/* Divide the peripheral clock by 32. */
|
||||
CMT0.CMCSR.BIT.CKS = 0x01;
|
||||
|
||||
/* Set the CMT interrupt priority - the interrupt priority must be
|
||||
configKERNEL_INTERRUPT_PRIORITY no matter which peripheral is used to generate
|
||||
the tick interrupt. */
|
||||
INTC.IPR08.BIT._CMT0 = portKERNEL_INTERRUPT_PRIORITY;
|
||||
|
||||
/* Clear the interrupt flag. */
|
||||
CMT0.CMCSR.BIT.CMF = 0;
|
||||
|
||||
/* Enable the compare match interrupt. */
|
||||
CMT0.CMCSR.BIT.CMIE = 0x01;
|
||||
|
||||
/* Start the timer. */
|
||||
CMT.CMSTR.BIT.STR0 = 0x01;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationTickHook( void )
|
||||
{
|
||||
/* Clear the tick inerrupt. This is called from an interrupt context. */
|
||||
CMT0.CMCSR.BIT.CMF = 0;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vSetupClockForRunTimeStats( void )
|
||||
{
|
||||
/* Configure an MTU channel to generate a periodic interrupt that is used
|
||||
as the run time stats time base. The run time stats keep a track of how
|
||||
much processing time each task is using. */
|
||||
|
||||
/* Turn the MTU2 on. */
|
||||
STB.CR3.BIT._MTU2 = 0;
|
||||
|
||||
/* Clear counter on compare match A. */
|
||||
MTU20.TCR.BIT.CCLR = 0x01;
|
||||
|
||||
/* Compare match value to give very approximately 10 interrupts per
|
||||
millisecond. */
|
||||
MTU20.TGRA = 5000;
|
||||
|
||||
/* Ensure the interrupt is clear. */
|
||||
MTU20.TSR.BIT.TGFA = 0;
|
||||
|
||||
/* Enable the compare match interrupt. */
|
||||
MTU20.TIER.BIT.TGIEA = 0x01;
|
||||
|
||||
/* Set the interrupt priority. */
|
||||
INTC.IPR09.BIT._MTU20G = portKERNEL_INTERRUPT_PRIORITY + 1;
|
||||
|
||||
/* Start the count. */
|
||||
MTU2.TSTR.BIT.CST0 = 1;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void MTU_Match( void )
|
||||
{
|
||||
volatile unsigned char ucStatus;
|
||||
|
||||
/* Increment the run time stats time base. */
|
||||
ulRunTime++;
|
||||
|
||||
/* Clear the interrupt. */
|
||||
ucStatus = MTU20.TSR.BYTE;
|
||||
MTU20.TSR.BIT.TGFA = 0;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
char *pcGetTaskStatusMessage( void )
|
||||
{
|
||||
/* Not bothered about a critical section here. This just returns a string
|
||||
that is displaed on the "Task Stats" WEB page served by this demo. */
|
||||
return pcStatusMessage;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
293
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/printf-stdarg.c
Normal file
293
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/printf-stdarg.c
Normal file
|
@ -0,0 +1,293 @@
|
|||
/*
|
||||
Copyright 2001, 2002 Georges Menie (www.menie.org)
|
||||
stdarg version contributed by Christian Ettinger
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
putchar is the only external dependency for this file,
|
||||
if you have a working putchar, leave it commented out.
|
||||
If not, uncomment the define below and
|
||||
replace outbyte(c) by your own function call.
|
||||
|
||||
*/
|
||||
|
||||
#define putchar(c) c
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
static void printchar(char **str, int c)
|
||||
{
|
||||
//extern int putchar(int c);
|
||||
|
||||
if (str) {
|
||||
**str = (char)c;
|
||||
++(*str);
|
||||
}
|
||||
else
|
||||
{
|
||||
(void)putchar(c);
|
||||
}
|
||||
}
|
||||
|
||||
#define PAD_RIGHT 1
|
||||
#define PAD_ZERO 2
|
||||
|
||||
static int prints(char **out, const char *string, int width, int pad)
|
||||
{
|
||||
register int pc = 0, padchar = ' ';
|
||||
|
||||
if (width > 0) {
|
||||
register int len = 0;
|
||||
register const char *ptr;
|
||||
for (ptr = string; *ptr; ++ptr) ++len;
|
||||
if (len >= width) width = 0;
|
||||
else width -= len;
|
||||
if (pad & PAD_ZERO) padchar = '0';
|
||||
}
|
||||
if (!(pad & PAD_RIGHT)) {
|
||||
for ( ; width > 0; --width) {
|
||||
printchar (out, padchar);
|
||||
++pc;
|
||||
}
|
||||
}
|
||||
for ( ; *string ; ++string) {
|
||||
printchar (out, *string);
|
||||
++pc;
|
||||
}
|
||||
for ( ; width > 0; --width) {
|
||||
printchar (out, padchar);
|
||||
++pc;
|
||||
}
|
||||
|
||||
return pc;
|
||||
}
|
||||
|
||||
/* the following should be enough for 32 bit int */
|
||||
#define PRINT_BUF_LEN 12
|
||||
|
||||
static int printi(char **out, int i, int b, int sg, int width, int pad, int letbase)
|
||||
{
|
||||
char print_buf[PRINT_BUF_LEN];
|
||||
register char *s;
|
||||
register int t, neg = 0, pc = 0;
|
||||
register unsigned int u = (unsigned int)i;
|
||||
|
||||
if (i == 0) {
|
||||
print_buf[0] = '0';
|
||||
print_buf[1] = '\0';
|
||||
return prints (out, print_buf, width, pad);
|
||||
}
|
||||
|
||||
if (sg && b == 10 && i < 0) {
|
||||
neg = 1;
|
||||
u = (unsigned int)-i;
|
||||
}
|
||||
|
||||
s = print_buf + PRINT_BUF_LEN-1;
|
||||
*s = '\0';
|
||||
|
||||
while (u) {
|
||||
t = (unsigned int)u % b;
|
||||
if( t >= 10 )
|
||||
t += letbase - '0' - 10;
|
||||
*--s = (char)(t + '0');
|
||||
u /= b;
|
||||
}
|
||||
|
||||
if (neg) {
|
||||
if( width && (pad & PAD_ZERO) ) {
|
||||
printchar (out, '-');
|
||||
++pc;
|
||||
--width;
|
||||
}
|
||||
else {
|
||||
*--s = '-';
|
||||
}
|
||||
}
|
||||
|
||||
return pc + prints (out, s, width, pad);
|
||||
}
|
||||
|
||||
static int print( char **out, const char *format, va_list args )
|
||||
{
|
||||
register int width, pad;
|
||||
register int pc = 0;
|
||||
char scr[2];
|
||||
|
||||
for (; *format != 0; ++format) {
|
||||
if (*format == '%') {
|
||||
++format;
|
||||
width = pad = 0;
|
||||
if (*format == '\0') break;
|
||||
if (*format == '%') goto out;
|
||||
if (*format == '-') {
|
||||
++format;
|
||||
pad = PAD_RIGHT;
|
||||
}
|
||||
while (*format == '0') {
|
||||
++format;
|
||||
pad |= PAD_ZERO;
|
||||
}
|
||||
for ( ; *format >= '0' && *format <= '9'; ++format) {
|
||||
width *= 10;
|
||||
width += *format - '0';
|
||||
}
|
||||
if( *format == 's' ) {
|
||||
register char *s = (char *)va_arg( args, int );
|
||||
pc += prints (out, s?s:"(null)", width, pad);
|
||||
continue;
|
||||
}
|
||||
if( *format == 'd' ) {
|
||||
pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a');
|
||||
continue;
|
||||
}
|
||||
if( *format == 'x' ) {
|
||||
pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a');
|
||||
continue;
|
||||
}
|
||||
if( *format == 'X' ) {
|
||||
pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A');
|
||||
continue;
|
||||
}
|
||||
if( *format == 'u' ) {
|
||||
pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a');
|
||||
continue;
|
||||
}
|
||||
if( *format == 'c' ) {
|
||||
/* char are converted to int then pushed on the stack */
|
||||
scr[0] = (char)va_arg( args, int );
|
||||
scr[1] = '\0';
|
||||
pc += prints (out, scr, width, pad);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else {
|
||||
out:
|
||||
printchar (out, *format);
|
||||
++pc;
|
||||
}
|
||||
}
|
||||
if (out) **out = '\0';
|
||||
va_end( args );
|
||||
return pc;
|
||||
}
|
||||
|
||||
int printf(const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start( args, format );
|
||||
return print( 0, format, args );
|
||||
}
|
||||
|
||||
int sprintf(char *out, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start( args, format );
|
||||
return print( &out, format, args );
|
||||
}
|
||||
|
||||
|
||||
int snprintf( char *buf, unsigned int count, const char *format, ... )
|
||||
{
|
||||
va_list args;
|
||||
|
||||
( void ) count;
|
||||
|
||||
va_start( args, format );
|
||||
return print( &buf, format, args );
|
||||
}
|
||||
|
||||
|
||||
#ifdef TEST_PRINTF
|
||||
int main(void)
|
||||
{
|
||||
char *ptr = "Hello world!";
|
||||
char *np = 0;
|
||||
int i = 5;
|
||||
unsigned int bs = sizeof(int)*8;
|
||||
int mi;
|
||||
char buf[80];
|
||||
|
||||
mi = (1 << (bs-1)) + 1;
|
||||
printf("%s\n", ptr);
|
||||
printf("printf test\n");
|
||||
printf("%s is null pointer\n", np);
|
||||
printf("%d = 5\n", i);
|
||||
printf("%d = - max int\n", mi);
|
||||
printf("char %c = 'a'\n", 'a');
|
||||
printf("hex %x = ff\n", 0xff);
|
||||
printf("hex %02x = 00\n", 0);
|
||||
printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3);
|
||||
printf("%d %s(s)%", 0, "message");
|
||||
printf("\n");
|
||||
printf("%d %s(s) with %%\n", 0, "message");
|
||||
sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf);
|
||||
sprintf(buf, "justif: \"%10s\"\n", "right"); printf("%s", buf);
|
||||
sprintf(buf, " 3: %04d zero padded\n", 3); printf("%s", buf);
|
||||
sprintf(buf, " 3: %-4d left justif.\n", 3); printf("%s", buf);
|
||||
sprintf(buf, " 3: %4d right justif.\n", 3); printf("%s", buf);
|
||||
sprintf(buf, "-3: %04d zero padded\n", -3); printf("%s", buf);
|
||||
sprintf(buf, "-3: %-4d left justif.\n", -3); printf("%s", buf);
|
||||
sprintf(buf, "-3: %4d right justif.\n", -3); printf("%s", buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* if you compile this file with
|
||||
* gcc -Wall $(YOUR_C_OPTIONS) -DTEST_PRINTF -c printf.c
|
||||
* you will get a normal warning:
|
||||
* printf.c:214: warning: spurious trailing `%' in format
|
||||
* this line is testing an invalid % at the end of the format string.
|
||||
*
|
||||
* this should display (on 32bit int machine) :
|
||||
*
|
||||
* Hello world!
|
||||
* printf test
|
||||
* (null) is null pointer
|
||||
* 5 = 5
|
||||
* -2147483647 = - max int
|
||||
* char a = 'a'
|
||||
* hex ff = ff
|
||||
* hex 00 = 00
|
||||
* signed -3 = unsigned 4294967293 = hex fffffffd
|
||||
* 0 message(s)
|
||||
* 0 message(s) with %
|
||||
* justif: "left "
|
||||
* justif: " right"
|
||||
* 3: 0003 zero padded
|
||||
* 3: 3 left justif.
|
||||
* 3: 3 right justif.
|
||||
* -3: -003 zero padded
|
||||
* -3: -3 left justif.
|
||||
* -3: -3 right justif.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* To keep linker happy. */
|
||||
int write( int i, char* c, int n)
|
||||
{
|
||||
(void)i;
|
||||
(void)n;
|
||||
(void)c;
|
||||
return 0;
|
||||
}
|
||||
|
477
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src
Normal file
477
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src
Normal file
|
@ -0,0 +1,477 @@
|
|||
;/*
|
||||
; FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
;
|
||||
;
|
||||
; ***************************************************************************
|
||||
; * *
|
||||
; * FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
; * Complete, revised, and edited pdf reference manuals are also *
|
||||
; * available. *
|
||||
; * *
|
||||
; * Purchasing FreeRTOS documentation will not only help you, by *
|
||||
; * ensuring you get running as quickly as possible and with an *
|
||||
; * in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
; * the FreeRTOS project to continue with its mission of providing *
|
||||
; * professional grade, cross platform, de facto standard solutions *
|
||||
; * for microcontrollers - completely free of charge! *
|
||||
; * *
|
||||
; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
; * *
|
||||
; * Thank you for using FreeRTOS, and thank you for your support! *
|
||||
; * *
|
||||
; ***************************************************************************
|
||||
;
|
||||
;
|
||||
; This file is part of the FreeRTOS distribution.
|
||||
;
|
||||
; FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
; the terms of the GNU General Public License (version 2) as published by the
|
||||
; Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
; >>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
; distribute a combined work that includes FreeRTOS without being obliged to
|
||||
; provide the source code for proprietary components outside of the FreeRTOS
|
||||
; kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
; can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
; by writing to Richard Barry, contact details for whom are available on the
|
||||
; FreeRTOS WEB site.
|
||||
;
|
||||
; 1 tab == 4 spaces!
|
||||
;
|
||||
; 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.
|
||||
;*/
|
||||
|
||||
.import _ulRegTest1CycleCount
|
||||
.import _ulRegTest2CycleCount
|
||||
.import _vPortYield
|
||||
|
||||
.export _vRegTest1Task
|
||||
.export _vRegTest2Task
|
||||
|
||||
.section P, code, align=4
|
||||
|
||||
|
||||
|
||||
_vRegTest1Task:
|
||||
|
||||
; Fill the registers with known values.
|
||||
mov #2, r1
|
||||
mov #3, r2
|
||||
mov #4, r3
|
||||
mov #5, r4
|
||||
mov #6, r5
|
||||
mov #7, r6
|
||||
mov #8, r7
|
||||
mov #9, r8
|
||||
mov #10, r9
|
||||
mov #11, r10
|
||||
mov #12, r11
|
||||
mov #13, r12
|
||||
mov #14, r13
|
||||
mov #15, r14
|
||||
|
||||
mov #16, r0
|
||||
lds r0, macl
|
||||
mov #17, r0
|
||||
lds r0, mach
|
||||
mov #18, r0
|
||||
ldc r0, gbr
|
||||
|
||||
; Also fill the flop registers with known values.
|
||||
lds r1, fpul
|
||||
fsts fpul, fr1
|
||||
lds r2, fpul
|
||||
fsts fpul, fr2
|
||||
lds r3, fpul
|
||||
fsts fpul, fr3
|
||||
lds r4, fpul
|
||||
fsts fpul, fr4
|
||||
lds r5, fpul
|
||||
fsts fpul, fr5
|
||||
lds r6, fpul
|
||||
fsts fpul, fr6
|
||||
lds r7, fpul
|
||||
fsts fpul, fr7
|
||||
lds r8, fpul
|
||||
fsts fpul, fr8
|
||||
lds r9, fpul
|
||||
fsts fpul, fr9
|
||||
lds r10, fpul
|
||||
fsts fpul, fr10
|
||||
lds r11, fpul
|
||||
fsts fpul, fr11
|
||||
lds r12, fpul
|
||||
fsts fpul, fr12
|
||||
lds r13, fpul
|
||||
fsts fpul, fr13
|
||||
lds r14, fpul
|
||||
fsts fpul, fr14
|
||||
|
||||
_vRegTest1Loop:
|
||||
|
||||
; Reset r1 which was used in the tests.
|
||||
mov #2, r1
|
||||
|
||||
; Test that the registers still contain the expected values. If not, jump to
|
||||
; vRegTestError, which will stop this function looping and so cause it to stop
|
||||
; incrementing its loop counter. Both the standard and flop registers are
|
||||
; checked.
|
||||
mov #2, r0
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
flds fr1, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #3, r0
|
||||
cmp/eq r0, r2
|
||||
bf _vRegTest1Error
|
||||
flds fr2, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #4, r0
|
||||
cmp/eq r0, r3
|
||||
bf _vRegTest1Error
|
||||
flds fr3, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #5, r0
|
||||
cmp/eq r0, r4
|
||||
bf _vRegTest1Error
|
||||
flds fr4, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #6, r0
|
||||
cmp/eq r0, r5
|
||||
bf _vRegTest1Error
|
||||
flds fr5, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #7, r0
|
||||
cmp/eq r0, r6
|
||||
bf _vRegTest1Error
|
||||
flds fr6, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #8, r0
|
||||
cmp/eq r0, r7
|
||||
bf _vRegTest1Error
|
||||
flds fr7, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #9, r0
|
||||
cmp/eq r0, r8
|
||||
bf _vRegTest1Error
|
||||
flds fr8, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #10, r0
|
||||
cmp/eq r0, r9
|
||||
bf _vRegTest1Error
|
||||
flds fr9, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #11, r0
|
||||
cmp/eq r0, r10
|
||||
bf _vRegTest1Error
|
||||
flds fr10, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #12, r0
|
||||
cmp/eq r0, r11
|
||||
bf _vRegTest1Error
|
||||
flds fr11, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #13, r0
|
||||
cmp/eq r0, r12
|
||||
bf _vRegTest1Error
|
||||
flds fr12, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #14, r0
|
||||
cmp/eq r0, r13
|
||||
bf _vRegTest1Error
|
||||
flds fr13, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
mov #15, r0
|
||||
cmp/eq r0, r14
|
||||
bf _vRegTest1Error
|
||||
flds fr14, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
sts macl, r0
|
||||
mov #16, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
sts mach, r0
|
||||
mov #17, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
stc gbr, r0
|
||||
mov #18, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest1Error
|
||||
|
||||
; Increment the loop counter to indicate that this task is still running and
|
||||
; still healthy.
|
||||
mov.l #_ulRegTest1CycleCount, r0
|
||||
mov.l @r0, r1
|
||||
add #1, r1
|
||||
mov.l r1, @r0
|
||||
|
||||
; Jump back to test all the registers again.
|
||||
bra _vRegTest1Loop
|
||||
nop
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
_vRegTest1Error:
|
||||
bra _vRegTest1Error
|
||||
nop
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
_vRegTest2Task:
|
||||
|
||||
; Fill the standard registers with known values.
|
||||
mov #12, r1
|
||||
mov #13, r2
|
||||
mov #14, r3
|
||||
mov #15, r4
|
||||
mov #16, r5
|
||||
mov #17, r6
|
||||
mov #18, r7
|
||||
mov #19, r8
|
||||
mov #110, r9
|
||||
mov #111, r10
|
||||
mov #112, r11
|
||||
mov #113, r12
|
||||
mov #114, r13
|
||||
|
||||
mov #115, r0
|
||||
lds r0, macl
|
||||
mov #116, r0
|
||||
lds r0, mach
|
||||
mov #117, r0
|
||||
ldc r0, gbr
|
||||
|
||||
; Also fill the flop registers with known values.
|
||||
lds r1, fpul
|
||||
fsts fpul, fr1
|
||||
lds r2, fpul
|
||||
fsts fpul, fr2
|
||||
lds r3, fpul
|
||||
fsts fpul, fr3
|
||||
lds r4, fpul
|
||||
fsts fpul, fr4
|
||||
lds r5, fpul
|
||||
fsts fpul, fr5
|
||||
lds r6, fpul
|
||||
fsts fpul, fr6
|
||||
lds r7, fpul
|
||||
fsts fpul, fr7
|
||||
lds r8, fpul
|
||||
fsts fpul, fr8
|
||||
lds r9, fpul
|
||||
fsts fpul, fr9
|
||||
lds r10, fpul
|
||||
fsts fpul, fr10
|
||||
lds r11, fpul
|
||||
fsts fpul, fr11
|
||||
lds r12, fpul
|
||||
fsts fpul, fr12
|
||||
lds r13, fpul
|
||||
fsts fpul, fr13
|
||||
lds r14, fpul
|
||||
fsts fpul, fr14
|
||||
|
||||
_vRegTest2Loop:
|
||||
|
||||
; Reset r1 which was used in the tests.
|
||||
mov #12, r1
|
||||
|
||||
; Test that the registers still contain the expected values. If not, jump to
|
||||
; vRegTestError, which will stop this function looping and so cause it to stop
|
||||
; incrementing its loop counter. Both the standard and flop registers are
|
||||
; checked.
|
||||
mov #12, r0
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
flds fr1, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #13, r0
|
||||
cmp/eq r0, r2
|
||||
bf _vRegTest2Error
|
||||
flds fr2, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #14, r0
|
||||
cmp/eq r0, r3
|
||||
bf _vRegTest2Error
|
||||
flds fr3, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #15, r0
|
||||
cmp/eq r0, r4
|
||||
bf _vRegTest2Error
|
||||
flds fr4, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #16, r0
|
||||
cmp/eq r0, r5
|
||||
bf _vRegTest2Error
|
||||
flds fr5, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #17, r0
|
||||
cmp/eq r0, r6
|
||||
bf _vRegTest2Error
|
||||
flds fr6, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #18, r0
|
||||
cmp/eq r0, r7
|
||||
bf _vRegTest2Error
|
||||
flds fr7, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #19, r0
|
||||
cmp/eq r0, r8
|
||||
bf _vRegTest2Error
|
||||
flds fr8, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #110, r0
|
||||
cmp/eq r0, r9
|
||||
bf _vRegTest2Error
|
||||
flds fr9, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #111, r0
|
||||
cmp/eq r0, r10
|
||||
bf _vRegTest2Error
|
||||
flds fr10, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #112, r0
|
||||
cmp/eq r0, r11
|
||||
bf _vRegTest2Error
|
||||
flds fr11, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #113, r0
|
||||
cmp/eq r0, r12
|
||||
bf _vRegTest2Error
|
||||
flds fr12, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
mov #114, r0
|
||||
cmp/eq r0, r13
|
||||
bf _vRegTest2Error
|
||||
flds fr13, fpul
|
||||
sts fpul, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
sts macl, r0
|
||||
mov #115, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
sts mach, r0
|
||||
mov #116, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
stc gbr, r0
|
||||
mov #117, r1
|
||||
cmp/eq r0, r1
|
||||
bf _vRegTest2Error
|
||||
|
||||
; Increment the loop counter to indicate that this task is still running and
|
||||
; still healthy.
|
||||
mov.l #_ulRegTest2CycleCount, r0
|
||||
mov.l @r0, r1
|
||||
add #1, r1
|
||||
mov.l r1, @r0
|
||||
|
||||
; Jump back to test all the registers again.
|
||||
bra _vRegTest2Loop
|
||||
nop
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
_vRegTest2Error:
|
||||
|
||||
bra _vRegTest2Error
|
||||
nop
|
||||
|
||||
|
||||
.end
|
||||
|
106
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/resetprg.c
Normal file
106
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/resetprg.c
Normal file
|
@ -0,0 +1,106 @@
|
|||
/***********************************************************************/
|
||||
/* */
|
||||
/* FILE :resetprg.c */
|
||||
/* DATE :Sun, Dec 27, 2009 */
|
||||
/* DESCRIPTION :Reset Program */
|
||||
/* CPU TYPE :Other */
|
||||
/* */
|
||||
/* This file is generated by Renesas Project Generator (Ver.4.16). */
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
|
||||
|
||||
|
||||
#include <machine.h>
|
||||
#include <_h_c_lib.h>
|
||||
//#include <stddef.h> // Remove the comment when you use errno
|
||||
//#include <stdlib.h> // Remove the comment when you use rand()
|
||||
#include "typedefine.h"
|
||||
#include "stacksct.h"
|
||||
|
||||
#define SR_Init 0x000000F0
|
||||
#ifdef _FPD // when -fpu=double is specified
|
||||
#define FPSCR_Init 0x000C0001
|
||||
#else
|
||||
#define FPSCR_Init 0x00040001
|
||||
#endif
|
||||
#define INT_OFFSET 0x10
|
||||
|
||||
extern _UINT INT_Vectors;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void PowerON_Reset_PC(void);
|
||||
void Manual_Reset_PC(void);
|
||||
void main(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
//#ifdef __cplusplus // Enable I/O in the application(both SIM I/O and hardware I/O)
|
||||
//extern "C" {
|
||||
//#endif
|
||||
//extern void _INIT_IOLIB(void);
|
||||
//extern void _CLOSEALL(void);
|
||||
//#ifdef __cplusplus
|
||||
//}
|
||||
//#endif
|
||||
|
||||
//extern void srand(_UINT); // Remove the comment when you use rand()
|
||||
//extern _SBYTE *_s1ptr; // Remove the comment when you use strtok()
|
||||
|
||||
//#ifdef __cplusplus // Use Hardware Setup
|
||||
//extern "C" {
|
||||
//#endif
|
||||
//extern void HardwareSetup(void);
|
||||
//#ifdef __cplusplus
|
||||
//}
|
||||
//#endif
|
||||
|
||||
//#ifdef __cplusplus // Remove the comment when you use global class object
|
||||
//extern "C" { // Sections C$INIT and C$END will be generated
|
||||
//#endif
|
||||
//extern void _CALL_INIT(void);
|
||||
//extern void _CALL_END(void);
|
||||
//#ifdef __cplusplus
|
||||
//}
|
||||
//#endif
|
||||
|
||||
#pragma section ResetPRG
|
||||
|
||||
#pragma entry PowerON_Reset_PC
|
||||
|
||||
void PowerON_Reset_PC(void)
|
||||
{
|
||||
set_vbr((void *)((_UBYTE *)&INT_Vectors - INT_OFFSET));
|
||||
|
||||
set_fpscr(FPSCR_Init);
|
||||
|
||||
_INITSCT();
|
||||
|
||||
// _CALL_INIT(); // Remove the comment when you use global class object
|
||||
|
||||
// _INIT_IOLIB(); // Enable I/O in the application(both SIM I/O and hardware I/O)
|
||||
|
||||
// errno=0; // Remove the comment when you use errno
|
||||
// srand((_UINT)1); // Remove the comment when you use rand()
|
||||
// _s1ptr=NULL; // Remove the comment when you use strtok()
|
||||
|
||||
// HardwareSetup(); // Use Hardware Setup
|
||||
|
||||
set_cr(SR_Init);
|
||||
|
||||
main();
|
||||
|
||||
// _CLOSEALL(); // Close I/O in the application(both SIM I/O andhardware I/O)
|
||||
|
||||
// _CALL_END(); // Remove the comment when you use global class object
|
||||
|
||||
sleep();
|
||||
}
|
||||
|
||||
//#pragma entry Manual_Reset_PC // Remove the comment when you use Manual Reset
|
||||
void Manual_Reset_PC(void)
|
||||
{
|
||||
}
|
11
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/stacksct.h
Normal file
11
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/stacksct.h
Normal file
|
@ -0,0 +1,11 @@
|
|||
/***********************************************************************/
|
||||
/* */
|
||||
/* FILE :stacksct.h */
|
||||
/* DATE :Sun, Dec 27, 2009 */
|
||||
/* DESCRIPTION :Setting of Stack area */
|
||||
/* CPU TYPE :Other */
|
||||
/* */
|
||||
/* This file is generated by Renesas Project Generator (Ver.4.16). */
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
#pragma stacksize 0x400 /* Do not modify this line. */
|
23
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/typedefine.h
Normal file
23
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/typedefine.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/***********************************************************************/
|
||||
/* */
|
||||
/* FILE :typedefine.h */
|
||||
/* DATE :Sun, Dec 27, 2009 */
|
||||
/* DESCRIPTION :Aliases of Integer Type */
|
||||
/* CPU TYPE :Other */
|
||||
/* */
|
||||
/* This file is generated by Renesas Project Generator (Ver.4.16). */
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
|
||||
|
||||
|
||||
typedef signed char _SBYTE;
|
||||
typedef unsigned char _UBYTE;
|
||||
typedef signed short _SWORD;
|
||||
typedef unsigned short _UWORD;
|
||||
typedef signed int _SINT;
|
||||
typedef unsigned int _UINT;
|
||||
typedef signed long _SDWORD;
|
||||
typedef unsigned long _UDWORD;
|
||||
typedef signed long long _SQWORD;
|
||||
typedef unsigned long long _UQWORD;
|
273
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c
Normal file
273
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c
Normal file
|
@ -0,0 +1,273 @@
|
|||
/*
|
||||
FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* Having a problem? Start by reading the FAQ "My application does *
|
||||
* not run, what could be wrong? *
|
||||
* *
|
||||
* http://www.FreeRTOS.org/FAQHelp.html *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, training, latest information,
|
||||
license and contact details.
|
||||
|
||||
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||
including FreeRTOS+Trace - an indispensable productivity tool.
|
||||
|
||||
Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell
|
||||
the code with commercial support, indemnification, and middleware, under
|
||||
the OpenRTOS brand: http://www.OpenRTOS.com. High Integrity Systems also
|
||||
provide a safety engineered and independently SIL3 certified version under
|
||||
the SafeRTOS brand: http://www.SafeRTOS.com.
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <string.h>
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
#include "semphr.h"
|
||||
|
||||
/* uip includes. */
|
||||
#include "net/uip.h"
|
||||
#include "net/uip_arp.h"
|
||||
#include "apps/httpd/httpd.h"
|
||||
#include "sys/timer.h"
|
||||
#include "net/clock-arch.h"
|
||||
|
||||
/* Demo includes. */
|
||||
#include "ParTest.h"
|
||||
|
||||
/* Hardware includes. */
|
||||
#include "hwEthernet.h"
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* How long to wait before attempting to connect the MAC again. */
|
||||
#define uipINIT_WAIT ( 100 / portTICK_RATE_MS )
|
||||
|
||||
/* Shortcut to the header within the Rx buffer. */
|
||||
#define xHeader ((struct uip_eth_hdr *) &uip_buf[ 0 ])
|
||||
|
||||
/* Standard constant. */
|
||||
#define uipTOTAL_FRAME_HEADER_SIZE 54
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Setup the MAC address in the MAC itself, and in the uIP stack.
|
||||
*/
|
||||
static void prvSetMACAddress( void );
|
||||
|
||||
/*
|
||||
* Port functions required by the uIP stack.
|
||||
*/
|
||||
void clock_init( void );
|
||||
clock_time_t clock_time( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* The semaphore used by the ISR to wake the uIP task. */
|
||||
xSemaphoreHandle xEMACSemaphore = NULL;
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void clock_init(void)
|
||||
{
|
||||
/* This is done when the scheduler starts. */
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
clock_time_t clock_time( void )
|
||||
{
|
||||
return xTaskGetTickCount();
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vuIP_Task( void *pvParameters )
|
||||
{
|
||||
portBASE_TYPE i;
|
||||
uip_ipaddr_t xIPAddr;
|
||||
struct timer periodic_timer, arp_timer;
|
||||
extern void ( vEMAC_ISR_Wrapper )( void );
|
||||
|
||||
( void ) pvParameters;
|
||||
|
||||
/* Initialise the uIP stack. */
|
||||
timer_set( &periodic_timer, configTICK_RATE_HZ / 2 );
|
||||
timer_set( &arp_timer, configTICK_RATE_HZ * 10 );
|
||||
uip_init();
|
||||
uip_ipaddr( &xIPAddr, configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 );
|
||||
uip_sethostaddr( &xIPAddr );
|
||||
uip_ipaddr( &xIPAddr, configNET_MASK0, configNET_MASK1, configNET_MASK2, configNET_MASK3 );
|
||||
uip_setnetmask( &xIPAddr );
|
||||
prvSetMACAddress();
|
||||
httpd_init();
|
||||
|
||||
/* Create the semaphore used to wake the uIP task. */
|
||||
vSemaphoreCreateBinary( xEMACSemaphore );
|
||||
|
||||
/* Initialise the MAC. */
|
||||
vInitEmac();
|
||||
|
||||
while( lEMACWaitForLink() != pdPASS )
|
||||
{
|
||||
vTaskDelay( uipINIT_WAIT );
|
||||
}
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
/* Is there received data ready to be processed? */
|
||||
uip_len = ( unsigned short ) ulEMACRead();
|
||||
|
||||
if( ( uip_len > 0 ) && ( uip_buf != NULL ) )
|
||||
{
|
||||
/* Standard uIP loop taken from the uIP manual. */
|
||||
if( xHeader->type == htons( UIP_ETHTYPE_IP ) )
|
||||
{
|
||||
uip_arp_ipin();
|
||||
uip_input();
|
||||
|
||||
/* If the above function invocation resulted in data that
|
||||
should be sent out on the network, the global variable
|
||||
uip_len is set to a value > 0. */
|
||||
if( uip_len > 0 )
|
||||
{
|
||||
uip_arp_out();
|
||||
vEMACWrite();
|
||||
}
|
||||
}
|
||||
else if( xHeader->type == htons( UIP_ETHTYPE_ARP ) )
|
||||
{
|
||||
uip_arp_arpin();
|
||||
|
||||
/* If the above function invocation resulted in data that
|
||||
should be sent out on the network, the global variable
|
||||
uip_len is set to a value > 0. */
|
||||
if( uip_len > 0 )
|
||||
{
|
||||
vEMACWrite();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( timer_expired( &periodic_timer ) && ( uip_buf != NULL ) )
|
||||
{
|
||||
timer_reset( &periodic_timer );
|
||||
for( i = 0; i < UIP_CONNS; i++ )
|
||||
{
|
||||
uip_periodic( i );
|
||||
|
||||
/* If the above function invocation resulted in data that
|
||||
should be sent out on the network, the global variable
|
||||
uip_len is set to a value > 0. */
|
||||
if( uip_len > 0 )
|
||||
{
|
||||
uip_arp_out();
|
||||
vEMACWrite();
|
||||
}
|
||||
}
|
||||
|
||||
/* Call the ARP timer function every 10 seconds. */
|
||||
if( timer_expired( &arp_timer ) )
|
||||
{
|
||||
timer_reset( &arp_timer );
|
||||
uip_arp_timer();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We did not receive a packet, and there was no periodic
|
||||
processing to perform. Block for a fixed period. If a packet
|
||||
is received during this period we will be woken by the ISR
|
||||
giving us the Semaphore. */
|
||||
xSemaphoreTake( xEMACSemaphore, configTICK_RATE_HZ / 2 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvSetMACAddress( void )
|
||||
{
|
||||
struct uip_eth_addr xAddr;
|
||||
|
||||
/* Configure the MAC address in the uIP stack. */
|
||||
xAddr.addr[ 0 ] = configMAC_ADDR0;
|
||||
xAddr.addr[ 1 ] = configMAC_ADDR1;
|
||||
xAddr.addr[ 2 ] = configMAC_ADDR2;
|
||||
xAddr.addr[ 3 ] = configMAC_ADDR3;
|
||||
xAddr.addr[ 4 ] = configMAC_ADDR4;
|
||||
xAddr.addr[ 5 ] = configMAC_ADDR5;
|
||||
uip_setethaddr( xAddr );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vApplicationProcessFormInput( char *pcInputString )
|
||||
{
|
||||
char *c;
|
||||
|
||||
/* Process the form input sent by the IO page of the served HTML. */
|
||||
|
||||
c = strstr( pcInputString, "?" );
|
||||
if( c )
|
||||
{
|
||||
/* Turn the FIO1 LED's on or off in accordance with the check box status. */
|
||||
if( strstr( c, "LED0=1" ) != NULL )
|
||||
{
|
||||
/* Turn LED 4 on. */
|
||||
vParTestSetLED( 4, 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Turn LED 4 off. */
|
||||
vParTestSetLED( 4, 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
902
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vect.h
Normal file
902
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vect.h
Normal file
|
@ -0,0 +1,902 @@
|
|||
/******************************************************************************
|
||||
* DISCLAIMER
|
||||
*
|
||||
* This software is supplied by Renesas Technology Corp. and is only
|
||||
* intended for use with Renesas products. No other uses are authorized.
|
||||
*
|
||||
* This software is owned by Renesas Technology Corp. and is protected under
|
||||
* all applicable laws, including copyright laws.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES
|
||||
* REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY,
|
||||
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY
|
||||
* DISCLAIMED.
|
||||
*
|
||||
* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
|
||||
* TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
|
||||
* FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS
|
||||
* AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
*
|
||||
* Renesas reserves the right, without notice, to make changes to this
|
||||
* software and to discontinue the availability of this software.
|
||||
* By using this software, you agree to the additional terms and
|
||||
* conditions found by accessing the following link:
|
||||
* http://www.renesas.com/disclaimer
|
||||
********************************************************************************
|
||||
* Copyright (C) 2009. Renesas Technology Corp., All Rights Reserved.
|
||||
*""FILE COMMENT""*********** Technical reference data **************************
|
||||
* System Name : SH7216 Sample Program
|
||||
* File Name : vect.h
|
||||
* Abstract : Definition of Vector
|
||||
* Version : 0.02.00
|
||||
* Device : SH7216
|
||||
* Tool-Chain : High-performance Embedded Workshop (Ver.4.05.01).
|
||||
* : C/C++ compiler package for the SuperH RISC engine family
|
||||
* : (Ver.9.03 Release00).
|
||||
* OS : None
|
||||
* H/W Platform: R0K572167 (CPU board)
|
||||
* Description :
|
||||
********************************************************************************
|
||||
* History : Mar.30,2009 Ver.0.02.00
|
||||
*""FILE COMMENT END""**********************************************************/
|
||||
#ifndef VECT_H
|
||||
#define VECT_H
|
||||
|
||||
|
||||
//;<<VECTOR DATA START (POWER ON RESET)>>
|
||||
// 0 Power On Reset PC
|
||||
extern void PowerON_Reset_PC(void);
|
||||
|
||||
//;<<VECTOR DATA END (POWER ON RESET)>>
|
||||
// 1 Power On Reset SP
|
||||
|
||||
//;<<VECTOR DATA START (MANUAL RESET)>>
|
||||
// 2 Manual Reset PC
|
||||
extern void Manual_Reset_PC(void);
|
||||
|
||||
//;<<VECTOR DATA END (MANUAL RESET)>>
|
||||
// 3 Manual Reset SP
|
||||
|
||||
// 4 Illegal code
|
||||
#pragma interrupt INT_Illegal_code
|
||||
extern void INT_Illegal_code(void);
|
||||
|
||||
// 5 Reserved
|
||||
|
||||
// 6 Illegal slot
|
||||
#pragma interrupt INT_Illegal_slot
|
||||
extern void INT_Illegal_slot(void);
|
||||
|
||||
// 7 Reserved
|
||||
|
||||
// 8 Reserved
|
||||
|
||||
// 9 CPU Address error
|
||||
#pragma interrupt INT_CPU_Address
|
||||
extern void INT_CPU_Address(void);
|
||||
|
||||
// 10 DMAC Address error
|
||||
#pragma interrupt INT_DMAC_Address
|
||||
extern void INT_DMAC_Address(void);
|
||||
|
||||
// 11 NMI
|
||||
#pragma interrupt INT_NMI
|
||||
extern void INT_NMI(void);
|
||||
|
||||
// 12 User breakpoint trap
|
||||
#pragma interrupt INT_User_Break
|
||||
extern void INT_User_Break(void);
|
||||
|
||||
// 13 Reserved
|
||||
|
||||
// 14 H-UDI
|
||||
#pragma interrupt INT_HUDI
|
||||
extern void INT_HUDI(void);
|
||||
|
||||
// 15 Register bank over
|
||||
#pragma interrupt INT_Bank_Overflow
|
||||
extern void INT_Bank_Overflow(void);
|
||||
|
||||
// 16 Register bank under
|
||||
#pragma interrupt INT_Bank_Underflow
|
||||
extern void INT_Bank_Underflow(void);
|
||||
|
||||
// 17 ZERO_DIV
|
||||
#pragma interrupt INT_Divide_by_Zero
|
||||
extern void INT_Divide_by_Zero(void);
|
||||
|
||||
// 18 OVER_DIV
|
||||
#pragma interrupt INT_Divide_Overflow
|
||||
extern void INT_Divide_Overflow(void);
|
||||
|
||||
// 19 Reserved
|
||||
|
||||
// 20 Reserved
|
||||
|
||||
// 21 Reserved
|
||||
|
||||
// 22 Reserved
|
||||
|
||||
// 23 Reserved
|
||||
|
||||
// 24 Reserved
|
||||
|
||||
// 25 Reserved
|
||||
|
||||
// 26 Reserved
|
||||
|
||||
// 27 Reserved
|
||||
|
||||
// 28 Reserved
|
||||
|
||||
// 29 Reserved
|
||||
|
||||
// 30 Reserved
|
||||
|
||||
// 31 Reserved
|
||||
|
||||
// 32 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA32
|
||||
extern void INT_TRAPA32(void);
|
||||
|
||||
// 33 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA33
|
||||
extern void INT_TRAPA33(void);
|
||||
|
||||
// 34 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA34
|
||||
extern void INT_TRAPA34(void);
|
||||
|
||||
// 35 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA35
|
||||
extern void INT_TRAPA35(void);
|
||||
|
||||
// 36 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA36
|
||||
extern void INT_TRAPA36(void);
|
||||
|
||||
// 37 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA37
|
||||
extern void INT_TRAPA37(void);
|
||||
|
||||
// 38 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA38
|
||||
extern void INT_TRAPA38(void);
|
||||
|
||||
// 39 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA39
|
||||
extern void INT_TRAPA39(void);
|
||||
|
||||
// 40 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA40
|
||||
extern void INT_TRAPA40(void);
|
||||
|
||||
// 41 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA41
|
||||
extern void INT_TRAPA41(void);
|
||||
|
||||
// 42 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA42
|
||||
extern void INT_TRAPA42(void);
|
||||
|
||||
// 43 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA43
|
||||
extern void INT_TRAPA43(void);
|
||||
|
||||
// 44 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA44
|
||||
extern void INT_TRAPA44(void);
|
||||
|
||||
// 45 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA45
|
||||
extern void INT_TRAPA45(void);
|
||||
|
||||
// 46 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA46
|
||||
extern void INT_TRAPA46(void);
|
||||
|
||||
// 47 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA47
|
||||
extern void INT_TRAPA47(void);
|
||||
|
||||
// 48 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA48
|
||||
extern void INT_TRAPA48(void);
|
||||
|
||||
// 49 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA49
|
||||
extern void INT_TRAPA49(void);
|
||||
|
||||
// 50 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA50
|
||||
extern void INT_TRAPA50(void);
|
||||
|
||||
// 51 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA51
|
||||
extern void INT_TRAPA51(void);
|
||||
|
||||
// 52 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA52
|
||||
extern void INT_TRAPA52(void);
|
||||
|
||||
// 53 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA53
|
||||
extern void INT_TRAPA53(void);
|
||||
|
||||
// 54 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA54
|
||||
extern void INT_TRAPA54(void);
|
||||
|
||||
// 55 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA55
|
||||
extern void INT_TRAPA55(void);
|
||||
|
||||
// 56 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA56
|
||||
extern void INT_TRAPA56(void);
|
||||
|
||||
// 57 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA57
|
||||
extern void INT_TRAPA57(void);
|
||||
|
||||
// 58 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA58
|
||||
extern void INT_TRAPA58(void);
|
||||
|
||||
// 59 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA59
|
||||
extern void INT_TRAPA59(void);
|
||||
|
||||
// 60 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA60
|
||||
extern void INT_TRAPA60(void);
|
||||
|
||||
// 61 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA61
|
||||
extern void INT_TRAPA61(void);
|
||||
|
||||
// 62 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA62
|
||||
extern void INT_TRAPA62(void);
|
||||
|
||||
// 63 TRAPA (User Vecter)
|
||||
#pragma interrupt INT_TRAPA63
|
||||
extern void INT_TRAPA63(void);
|
||||
|
||||
// 64 Interrupt IRQ0
|
||||
#pragma interrupt INT_IRQ0(resbank)
|
||||
extern void INT_IRQ0(void);
|
||||
|
||||
// 65 Interrupt IRQ1
|
||||
#pragma interrupt INT_IRQ1(resbank)
|
||||
extern void INT_IRQ1(void);
|
||||
|
||||
// 66 Interrupt IRQ2
|
||||
#pragma interrupt INT_IRQ2(resbank)
|
||||
extern void INT_IRQ2(void);
|
||||
|
||||
// 67 Interrupt IRQ3
|
||||
#pragma interrupt INT_IRQ3(resbank)
|
||||
extern void INT_IRQ3(void);
|
||||
|
||||
// 68 Interrupt IRQ4
|
||||
#pragma interrupt INT_IRQ4(resbank)
|
||||
extern void INT_IRQ4(void);
|
||||
|
||||
// 69 Interrupt IRQ5
|
||||
#pragma interrupt INT_IRQ5(resbank)
|
||||
extern void INT_IRQ5(void);
|
||||
|
||||
// 70 Interrupt IRQ6
|
||||
#pragma interrupt INT_IRQ6(resbank)
|
||||
extern void INT_IRQ6(void);
|
||||
|
||||
// 71 Interrupt IRQ7
|
||||
#pragma interrupt INT_IRQ7(resbank)
|
||||
extern void INT_IRQ7(void);
|
||||
|
||||
// 72 Reserved
|
||||
|
||||
// 73 Reserved
|
||||
|
||||
// 74 Reserved
|
||||
|
||||
// 75 Reserved
|
||||
|
||||
// 76 Reserved
|
||||
|
||||
// 77 Reserved
|
||||
|
||||
// 78 Reserved
|
||||
|
||||
// 79 Reserved
|
||||
|
||||
// 80 Interrupt PINT0
|
||||
#pragma interrupt INT_PINT0(resbank)
|
||||
extern void INT_PINT0(void);
|
||||
|
||||
// 81 Interrupt PINT1
|
||||
#pragma interrupt INT_PINT1(resbank)
|
||||
extern void INT_PINT1(void);
|
||||
|
||||
// 82 Interrupt PINT2
|
||||
#pragma interrupt INT_PINT2(resbank)
|
||||
extern void INT_PINT2(void);
|
||||
|
||||
// 83 Interrupt PINT3
|
||||
#pragma interrupt INT_PINT3(resbank)
|
||||
extern void INT_PINT3(void);
|
||||
|
||||
// 84 Interrupt PINT4
|
||||
#pragma interrupt INT_PINT4(resbank)
|
||||
extern void INT_PINT4(void);
|
||||
|
||||
// 85 Interrupt PINT5
|
||||
#pragma interrupt INT_PINT5(resbank)
|
||||
extern void INT_PINT5(void);
|
||||
|
||||
// 86 Interrupt PINT6
|
||||
#pragma interrupt INT_PINT6(resbank)
|
||||
extern void INT_PINT6(void);
|
||||
|
||||
// 87 Interrupt PINT7
|
||||
#pragma interrupt INT_PINT7(resbank)
|
||||
extern void INT_PINT7(void);
|
||||
|
||||
// 88 Reserved
|
||||
|
||||
// 89 Reserved
|
||||
|
||||
// 90 Reserved
|
||||
|
||||
// 91 ROM FIFE
|
||||
#pragma interrupt INT_ROM_FIFE(resbank)
|
||||
extern void INT_ROM_FIFE(void);
|
||||
|
||||
// 92 A/D ADI0
|
||||
#pragma interrupt INT_AD_ADI0(resbank)
|
||||
extern void INT_AD_ADI0(void);
|
||||
|
||||
// 93 Reserved
|
||||
|
||||
// 94 Reserved
|
||||
|
||||
// 95 Reserved
|
||||
|
||||
// 96 A/D ADI1
|
||||
#pragma interrupt INT_AD_ADI1(resbank)
|
||||
extern void INT_AD_ADI1(void);
|
||||
|
||||
// 97 Reserved
|
||||
|
||||
// 98 Reserved
|
||||
|
||||
// 99 Reserved
|
||||
|
||||
// 100 Reserved
|
||||
|
||||
// 101 Reserved
|
||||
|
||||
// 102 Reserved
|
||||
|
||||
// 103 Reserved
|
||||
|
||||
// 104 RCANET0 ERS_0
|
||||
#pragma interrupt INT_RCANET0_ERS_0
|
||||
extern void INT_RCANET0_ERS_0(void);
|
||||
|
||||
// 105 RCANET0 OVR_0
|
||||
#pragma interrupt INT_RCANET0_OVR_0
|
||||
extern void INT_RCANET0_OVR_0(void);
|
||||
|
||||
// 106 RCANET0 RM01_0
|
||||
#pragma interrupt INT_RCANET0_RM01_0
|
||||
extern void INT_RCANET0_RM01_0(void);
|
||||
|
||||
// 107 RCANET0 SLE_0
|
||||
#pragma interrupt INT_RCANET0_SLE_0
|
||||
extern void INT_RCANET0_SLE_0(void);
|
||||
|
||||
// 108 DMAC0 DEI0
|
||||
#pragma interrupt INT_DMAC0_DEI0(resbank)
|
||||
extern void INT_DMAC0_DEI0(void);
|
||||
|
||||
// 109 DMAC0 HEI0
|
||||
#pragma interrupt INT_DMAC0_HEI0(resbank)
|
||||
extern void INT_DMAC0_HEI0(void);
|
||||
|
||||
// 110 Reserved
|
||||
|
||||
// 111 Reserved
|
||||
|
||||
// 112 DMAC1 DEI1
|
||||
#pragma interrupt INT_DMAC1_DEI1(resbank)
|
||||
extern void INT_DMAC1_DEI1(void);
|
||||
|
||||
// 113 DMAC1 HEI1
|
||||
#pragma interrupt INT_DMAC1_HEI1(resbank)
|
||||
extern void INT_DMAC1_HEI1(void);
|
||||
|
||||
// 114 Reserved
|
||||
|
||||
// 115 Reserved
|
||||
|
||||
// 116 DMAC2 DEI2
|
||||
#pragma interrupt INT_DMAC2_DEI2(resbank)
|
||||
extern void INT_DMAC2_DEI2(void);
|
||||
|
||||
// 117 DMAC2 HEI2
|
||||
#pragma interrupt INT_DMAC2_HEI2(resbank)
|
||||
extern void INT_DMAC2_HEI2(void);
|
||||
|
||||
// 118 Reserved
|
||||
|
||||
// 119 Reserved
|
||||
|
||||
// 120 DMAC3 DEI3
|
||||
#pragma interrupt INT_DMAC3_DEI3(resbank)
|
||||
extern void INT_DMAC3_DEI3(void);
|
||||
|
||||
// 121 DMAC3 HEI3
|
||||
#pragma interrupt INT_DMAC3_HEI3(resbank)
|
||||
extern void INT_DMAC3_HEI3(void);
|
||||
|
||||
// 122 Reserved
|
||||
|
||||
// 123 Reserved
|
||||
|
||||
// 124 DMAC4 DEI4
|
||||
#pragma interrupt INT_DMAC4_DEI4(resbank)
|
||||
extern void INT_DMAC4_DEI4(void);
|
||||
|
||||
// 125 DMAC4 HEI4
|
||||
#pragma interrupt INT_DMAC4_HEI4(resbank)
|
||||
extern void INT_DMAC4_HEI4(void);
|
||||
|
||||
// 126 Reserved
|
||||
|
||||
// 127 Reserved
|
||||
|
||||
// 128 DMAC5 DEI5
|
||||
#pragma interrupt INT_DMAC5_DEI5(resbank)
|
||||
extern void INT_DMAC5_DEI5(void);
|
||||
|
||||
// 129 DMAC5 HEI5
|
||||
#pragma interrupt INT_DMAC5_HEI5(resbank)
|
||||
extern void INT_DMAC5_HEI5(void);
|
||||
|
||||
// 130 Reserved
|
||||
|
||||
// 131 Reserved
|
||||
|
||||
// 132 DMAC6 DEI6
|
||||
#pragma interrupt INT_DMAC6_DEI6(resbank)
|
||||
extern void INT_DMAC6_DEI6(void);
|
||||
|
||||
// 133 DMAC6 HEI6
|
||||
#pragma interrupt INT_DMAC6_HEI6(resbank)
|
||||
extern void INT_DMAC6_HEI6(void);
|
||||
|
||||
// 134 Reserved
|
||||
|
||||
// 135 Reserved
|
||||
|
||||
// 136 DMAC7 DEI7
|
||||
#pragma interrupt INT_DMAC7_DEI7(resbank)
|
||||
extern void INT_DMAC7_DEI7(void);
|
||||
|
||||
// 137 DMAC7 HEI7
|
||||
#pragma interrupt INT_DMAC7_HEI7(resbank)
|
||||
extern void INT_DMAC7_HEI7(void);
|
||||
|
||||
// 138 Reserved
|
||||
|
||||
// 139 Reserved
|
||||
|
||||
// 140 CMT CMI0
|
||||
#pragma interrupt INT_CMT_CMI0(resbank)
|
||||
extern void INT_CMT_CMI0(void);
|
||||
|
||||
// 141 Reserved
|
||||
|
||||
// 142 Reserved
|
||||
|
||||
// 143 Reserved
|
||||
|
||||
// 144 CMT CMI1
|
||||
#pragma interrupt INT_CMT_CMI1(resbank)
|
||||
extern void INT_CMT_CMI1(void);
|
||||
|
||||
// 145 Reserved
|
||||
|
||||
// 146 Reserved
|
||||
|
||||
// 147 Reserved
|
||||
|
||||
// 148 BSC CMTI
|
||||
#pragma interrupt INT_BSC_CMTI(resbank)
|
||||
extern void INT_BSC_CMTI(void);
|
||||
|
||||
// 149 Reserved
|
||||
|
||||
// 150 USB EP4FULL
|
||||
#pragma interrupt INT_USB_EP4FULL(resbank)
|
||||
extern void INT_USB_EP4FULL(void);
|
||||
|
||||
// 151 USB EP5EMPTY
|
||||
#pragma interrupt INT_USB_EP5EMPTY(resbank)
|
||||
extern void INT_USB_EP5EMPTY(void);
|
||||
|
||||
// 152 WDT ITI
|
||||
#pragma interrupt INT_WDT_ITI(resbank)
|
||||
extern void INT_WDT_ITI(void);
|
||||
|
||||
// 153 E-DMAC EINT0
|
||||
#pragma interrupt INT_EDMAC_EINT0(resbank)
|
||||
extern void INT_EDMAC_EINT0(void);
|
||||
|
||||
// 154 USB EP1FULL
|
||||
#pragma interrupt INT_USB_EP1FULL(resbank)
|
||||
extern void INT_USB_EP1FULL(void);
|
||||
|
||||
// 155 USB EP2EMPTY
|
||||
#pragma interrupt INT_USB_EP2EMPTY(resbank)
|
||||
extern void INT_USB_EP2EMPTY(void);
|
||||
|
||||
// 156 MTU2 MTU0 TGI0A
|
||||
#pragma interrupt INT_MTU2_MTU0_TGI0A(resbank)
|
||||
extern void INT_MTU2_MTU0_TGI0A(void);
|
||||
|
||||
// 157 MTU2 MTU0 TGI0B
|
||||
#pragma interrupt INT_MTU2_MTU0_TGI0B(resbank)
|
||||
extern void INT_MTU2_MTU0_TGI0B(void);
|
||||
|
||||
// 158 MTU2 MTU0 TGI0C
|
||||
#pragma interrupt INT_MTU2_MTU0_TGI0C(resbank)
|
||||
extern void INT_MTU2_MTU0_TGI0C(void);
|
||||
|
||||
// 159 MTU2 MTU0 TGI0D
|
||||
#pragma interrupt INT_MTU2_MTU0_TGI0D(resbank)
|
||||
extern void INT_MTU2_MTU0_TGI0D(void);
|
||||
|
||||
// 160 MTU2 MTU0 TGI0V
|
||||
#pragma interrupt INT_MTU2_MTU0_TGI0V(resbank)
|
||||
extern void INT_MTU2_MTU0_TGI0V(void);
|
||||
|
||||
// 161 MTU2 MTU0 TGI0E
|
||||
#pragma interrupt INT_MTU2_MTU0_TGI0E(resbank)
|
||||
extern void INT_MTU2_MTU0_TGI0E(void);
|
||||
|
||||
// 162 MTU2 MTU0 TGI0F
|
||||
#pragma interrupt INT_MTU2_MTU0_TGI0F(resbank)
|
||||
extern void INT_MTU2_MTU0_TGI0F(void);
|
||||
|
||||
// 163 Reserved
|
||||
|
||||
// 164 MTU2 MTU1 TGI1A
|
||||
#pragma interrupt INT_MTU2_MTU1_TGI1A(resbank)
|
||||
extern void INT_MTU2_MTU1_TGI1A(void);
|
||||
|
||||
// 165 MTU2 MTU1 TGI1B
|
||||
#pragma interrupt INT_MTU2_MTU1_TGI1B(resbank)
|
||||
extern void INT_MTU2_MTU1_TGI1B(void);
|
||||
|
||||
// 166 Reserved
|
||||
|
||||
// 167 Reserved
|
||||
|
||||
// 168 MTU2 MTU1 TGI1V
|
||||
#pragma interrupt INT_MTU2_MTU1_TGI1V(resbank)
|
||||
extern void INT_MTU2_MTU1_TGI1V(void);
|
||||
|
||||
// 169 MTU2 MTU1 TGI1U
|
||||
#pragma interrupt INT_MTU2_MTU1_TGI1U(resbank)
|
||||
extern void INT_MTU2_MTU1_TGI1U(void);
|
||||
|
||||
// 170 Reserved
|
||||
|
||||
// 171 Reserved
|
||||
|
||||
// 172 MTU2 MTU2 TGI2A
|
||||
#pragma interrupt INT_MTU2_MTU2_TGI2A(resbank)
|
||||
extern void INT_MTU2_MTU2_TGI2A(void);
|
||||
|
||||
// 173 MTU2 MTU2 TGI2B
|
||||
#pragma interrupt INT_MTU2_MTU2_TGI2B(resbank)
|
||||
extern void INT_MTU2_MTU2_TGI2B(void);
|
||||
|
||||
// 174 Reserved
|
||||
|
||||
// 175 Reserved
|
||||
|
||||
// 176 MTU2 MTU2 TGI2V
|
||||
#pragma interrupt INT_MTU2_MTU2_TGI2V(resbank)
|
||||
extern void INT_MTU2_MTU2_TGI2V(void);
|
||||
|
||||
// 177 MTU2 MTU2 TGI2U
|
||||
#pragma interrupt INT_MTU2_MTU2_TGI2U(resbank)
|
||||
extern void INT_MTU2_MTU2_TGI2U(void);
|
||||
|
||||
// 178 Reserved
|
||||
|
||||
// 179 Reserved
|
||||
|
||||
// 180 MTU2 MTU3 TGI3A
|
||||
#pragma interrupt INT_MTU2_MTU3_TGI3A(resbank)
|
||||
extern void INT_MTU2_MTU3_TGI3A(void);
|
||||
|
||||
// 181 MTU2 MTU3 TGI3B
|
||||
#pragma interrupt INT_MTU2_MTU3_TGI3B(resbank)
|
||||
extern void INT_MTU2_MTU3_TGI3B(void);
|
||||
|
||||
// 182 MTU2 MTU3 TGI3C
|
||||
#pragma interrupt INT_MTU2_MTU3_TGI3C(resbank)
|
||||
extern void INT_MTU2_MTU3_TGI3C(void);
|
||||
|
||||
// 183 MTU2 MTU3 TGI3D
|
||||
#pragma interrupt INT_MTU2_MTU3_TGI3D(resbank)
|
||||
extern void INT_MTU2_MTU3_TGI3D(void);
|
||||
|
||||
// 184 MTU2 MTU3 TGI3V
|
||||
#pragma interrupt INT_MTU2_MTU3_TGI3V(resbank)
|
||||
extern void INT_MTU2_MTU3_TGI3V(void);
|
||||
|
||||
// 185 Reserved
|
||||
|
||||
// 186 Reserved
|
||||
|
||||
// 187 Reserved
|
||||
|
||||
// 188 MTU2 MTU4 TGI4A
|
||||
#pragma interrupt INT_MTU2_MTU4_TGI4A(resbank)
|
||||
extern void INT_MTU2_MTU4_TGI4A(void);
|
||||
|
||||
// 189 MTU2 MTU4 TGI4B
|
||||
#pragma interrupt INT_MTU2_MTU4_TGI4B(resbank)
|
||||
extern void INT_MTU2_MTU4_TGI4B(void);
|
||||
|
||||
// 190 MTU2 MTU4 TGI4C
|
||||
#pragma interrupt INT_MTU2_MTU4_TGI4C(resbank)
|
||||
extern void INT_MTU2_MTU4_TGI4C(void);
|
||||
|
||||
// 191 MTU2 MTU4 TGI4D
|
||||
#pragma interrupt INT_MTU2_MTU4_TGI4D(resbank)
|
||||
extern void INT_MTU2_MTU4_TGI4D(void);
|
||||
|
||||
// 192 MTU2 MTU4 TGI4V
|
||||
#pragma interrupt INT_MTU2_MTU4_TGI4V(resbank)
|
||||
extern void INT_MTU2_MTU4_TGI4V(void);
|
||||
|
||||
// 193 Reserved
|
||||
|
||||
// 194 Reserved
|
||||
|
||||
// 195 Reserved
|
||||
|
||||
// 196 MTU2 MTU5 TGI5U
|
||||
#pragma interrupt INT_MTU2_MTU5_TGI5U(resbank)
|
||||
extern void INT_MTU2_MTU5_TGI5U(void);
|
||||
|
||||
// 197 MTU2 MTU5 TGI5V
|
||||
#pragma interrupt INT_MTU2_MTU5_TGI5V(resbank)
|
||||
extern void INT_MTU2_MTU5_TGI5V(void);
|
||||
|
||||
// 198 MTU2 MTU5 TGI5W
|
||||
#pragma interrupt INT_MTU2_MTU5_TGI5W(resbank)
|
||||
extern void INT_MTU2_MTU5_TGI5W(void);
|
||||
|
||||
// 199 Reserved
|
||||
|
||||
// 200 POE2 OEI1
|
||||
#pragma interrupt INT_POE2_OEI1(resbank)
|
||||
extern void INT_POE2_OEI1(void);
|
||||
|
||||
// 201 POE2 OEI2
|
||||
#pragma interrupt INT_POE2_OEI2(resbank)
|
||||
extern void INT_POE2_OEI2(void);
|
||||
|
||||
// 202 Reserved
|
||||
|
||||
// 203 Reserved
|
||||
|
||||
// 204 MTU2S MTU3S TGI3A
|
||||
#pragma interrupt INT_MTU2S_MTU3S_TGI3A(resbank)
|
||||
extern void INT_MTU2S_MTU3S_TGI3A(void);
|
||||
|
||||
// 205 MTU2S MTU3S TGI3B
|
||||
#pragma interrupt INT_MTU2S_MTU3S_TGI3B(resbank)
|
||||
extern void INT_MTU2S_MTU3S_TGI3B(void);
|
||||
|
||||
// 206 MTU2S MTU3S TGI3C
|
||||
#pragma interrupt INT_MTU2S_MTU3S_TGI3C(resbank)
|
||||
extern void INT_MTU2S_MTU3S_TGI3C(void);
|
||||
|
||||
// 207 MTU2S MTU3S TGI3D
|
||||
#pragma interrupt INT_MTU2S_MTU3S_TGI3D(resbank)
|
||||
extern void INT_MTU2S_MTU3S_TGI3D(void);
|
||||
|
||||
// 208 MTU2S MTU3S TGI3V
|
||||
#pragma interrupt INT_MTU2S_MTU3S_TGI3V(resbank)
|
||||
extern void INT_MTU2S_MTU3S_TGI3V(void);
|
||||
|
||||
// 209 Reserved
|
||||
|
||||
// 210 Reserved
|
||||
|
||||
// 211 Reserved
|
||||
|
||||
// 212 MTU2S MTU4S TGI4A
|
||||
#pragma interrupt INT_MTU2S_MTU4S_TGI4A(resbank)
|
||||
extern void INT_MTU2S_MTU4S_TGI4A(void);
|
||||
|
||||
// 213 MTU2S MTU4S TGI4B
|
||||
#pragma interrupt INT_MTU2S_MTU4S_TGI4B(resbank)
|
||||
extern void INT_MTU2S_MTU4S_TGI4B(void);
|
||||
|
||||
// 214 MTU2S MTU4S TGI4C
|
||||
#pragma interrupt INT_MTU2S_MTU4S_TGI4C(resbank)
|
||||
extern void INT_MTU2S_MTU4S_TGI4C(void);
|
||||
|
||||
// 215 MTU2S MTU4S TGI4D
|
||||
#pragma interrupt INT_MTU2S_MTU4S_TGI4D(resbank)
|
||||
extern void INT_MTU2S_MTU4S_TGI4D(void);
|
||||
|
||||
// 216 MTU2S MTU4S TGI4V
|
||||
#pragma interrupt INT_MTU2S_MTU4S_TGI4V(resbank)
|
||||
extern void INT_MTU2S_MTU4S_TGI4V(void);
|
||||
|
||||
// 217 Reserved
|
||||
|
||||
// 218 Reserved
|
||||
|
||||
// 219 Reserved
|
||||
|
||||
// 220 MTU2S MTU5S TGI5U
|
||||
#pragma interrupt INT_MTU2S_MTU5S_TGI5U(resbank)
|
||||
extern void INT_MTU2S_MTU5S_TGI5U(void);
|
||||
|
||||
// 221 MTU2S MTU5S TGI5V
|
||||
#pragma interrupt INT_MTU2S_MTU5S_TGI5V(resbank)
|
||||
extern void INT_MTU2S_MTU5S_TGI5V(void);
|
||||
|
||||
// 222 MTU2S MTU5S TGI5W
|
||||
#pragma interrupt INT_MTU2S_MTU5S_TGI5W(resbank)
|
||||
extern void INT_MTU2S_MTU5S_TGI5W(void);
|
||||
|
||||
// 223 Reserved
|
||||
|
||||
// 224 POE2 OEI3
|
||||
#pragma interrupt INT_POE2_OEI3(resbank)
|
||||
extern void INT_POE2_OEI3(void);
|
||||
|
||||
// 225 Reserved
|
||||
|
||||
// 226 USB USI0
|
||||
#pragma interrupt INT_USB_USI0(resbank)
|
||||
extern void INT_USB_USI0(void);
|
||||
|
||||
// 227 USB USI1
|
||||
#pragma interrupt INT_USB_USI1(resbank)
|
||||
extern void INT_USB_USI1(void);
|
||||
|
||||
// 228 IIC3 STPI
|
||||
#pragma interrupt INT_IIC3_STPI(resbank)
|
||||
extern void INT_IIC3_STPI(void);
|
||||
|
||||
// 229 IIC3 NAKI
|
||||
#pragma interrupt INT_IIC3_NAKI(resbank)
|
||||
extern void INT_IIC3_NAKI(void);
|
||||
|
||||
// 230 IIC3 RXI
|
||||
#pragma interrupt INT_IIC3_RXI(resbank)
|
||||
extern void INT_IIC3_RXI(void);
|
||||
|
||||
// 231 IIC3 TXI
|
||||
#pragma interrupt INT_IIC3_TXI(resbank)
|
||||
extern void INT_IIC3_TXI(void);
|
||||
|
||||
// 232 IIC3 TEI
|
||||
#pragma interrupt INT_IIC3_TEI(resbank)
|
||||
extern void INT_IIC3_TEI(void);
|
||||
|
||||
// 233 RSPI SPERI
|
||||
#pragma interrupt INT_RSPI_SPERI(resbank)
|
||||
extern void INT_RSPI_SPERI(void);
|
||||
|
||||
// 234 RSPI SPRXI
|
||||
#pragma interrupt INT_RSPI_SPRXI(resbank)
|
||||
extern void INT_RSPI_SPRXI(void);
|
||||
|
||||
// 235 RSPI SPTXI
|
||||
#pragma interrupt INT_RSPI_SPTXI(resbank)
|
||||
extern void INT_RSPI_SPTXI(void);
|
||||
|
||||
// 236 SCI SCI4 ERI4
|
||||
#pragma interrupt INT_SCI_SCI4_ERI4(resbank)
|
||||
extern void INT_SCI_SCI4_ERI4(void);
|
||||
|
||||
// 237 SCI SCI4 RXI4
|
||||
#pragma interrupt INT_SCI_SCI4_RXI4(resbank)
|
||||
extern void INT_SCI_SCI4_RXI4(void);
|
||||
|
||||
// 238 SCI SCI4 TXI4
|
||||
#pragma interrupt INT_SCI_SCI4_TXI4(resbank)
|
||||
extern void INT_SCI_SCI4_TXI4(void);
|
||||
|
||||
// 239 SCI SCI4 TEI4
|
||||
#pragma interrupt INT_SCI_SCI4_TEI4(resbank)
|
||||
extern void INT_SCI_SCI4_TEI4(void);
|
||||
|
||||
// 240 SCI SCI0 ERI0
|
||||
#pragma interrupt INT_SCI_SCI0_ERI0(resbank)
|
||||
extern void INT_SCI_SCI0_ERI0(void);
|
||||
|
||||
// 241 SCI SCI0 RXI0
|
||||
#pragma interrupt INT_SCI_SCI0_RXI0(resbank)
|
||||
extern void INT_SCI_SCI0_RXI0(void);
|
||||
|
||||
// 242 SCI SCI0 TXI0
|
||||
#pragma interrupt INT_SCI_SCI0_TXI0(resbank)
|
||||
extern void INT_SCI_SCI0_TXI0(void);
|
||||
|
||||
// 243 SCI SCI0 TEI0
|
||||
#pragma interrupt INT_SCI_SCI0_TEI0(resbank)
|
||||
extern void INT_SCI_SCI0_TEI0(void);
|
||||
|
||||
// 244 SCI SCI1 ERI1
|
||||
#pragma interrupt INT_SCI_SCI1_ERI1(resbank)
|
||||
extern void INT_SCI_SCI1_ERI1(void);
|
||||
|
||||
// 245 SCI SCI1 RXI1
|
||||
#pragma interrupt INT_SCI_SCI1_RXI1(resbank)
|
||||
extern void INT_SCI_SCI1_RXI1(void);
|
||||
|
||||
// 246 SCI SCI1 TXI1
|
||||
#pragma interrupt INT_SCI_SCI1_TXI1(resbank)
|
||||
extern void INT_SCI_SCI1_TXI1(void);
|
||||
|
||||
// 247 SCI SCI1 TEI1
|
||||
#pragma interrupt INT_SCI_SCI1_TEI1(resbank)
|
||||
extern void INT_SCI_SCI1_TEI1(void);
|
||||
|
||||
// 248 SCI SCI2 ERI2
|
||||
#pragma interrupt INT_SCI_SCI2_ERI2(resbank)
|
||||
extern void INT_SCI_SCI2_ERI2(void);
|
||||
|
||||
// 249 SCI SCI2 RXI2
|
||||
#pragma interrupt INT_SCI_SCI2_RXI2(resbank)
|
||||
extern void INT_SCI_SCI2_RXI2(void);
|
||||
|
||||
// 250 SCI SCI2 TXI2
|
||||
#pragma interrupt INT_SCI_SCI2_TXI2(resbank)
|
||||
extern void INT_SCI_SCI2_TXI2(void);
|
||||
|
||||
// 251 SCI SCI2 TEI2
|
||||
#pragma interrupt INT_SCI_SCI2_TEI2(resbank)
|
||||
extern void INT_SCI_SCI2_TEI2(void);
|
||||
|
||||
// 252 SCIF SCIF3 BRI3
|
||||
#pragma interrupt INT_SCIF_SCIF3_BRI3(resbank)
|
||||
extern void INT_SCIF_SCIF3_BRI3(void);
|
||||
|
||||
// 253 SCIF SCIF3 ERI3
|
||||
#pragma interrupt INT_SCIF_SCIF3_ERI3(resbank)
|
||||
extern void INT_SCIF_SCIF3_ERI3(void);
|
||||
|
||||
// 254 SCIF SCIF3 RXI3
|
||||
#pragma interrupt INT_SCIF_SCIF3_RXI3(resbank)
|
||||
extern void INT_SCIF_SCIF3_RXI3(void);
|
||||
|
||||
// 255 SCIF SCIF3 TXI3
|
||||
#pragma interrupt INT_SCIF_SCIF3_TXI3(resbank)
|
||||
extern void INT_SCIF_SCIF3_TXI3(void);
|
||||
|
||||
// Dummy
|
||||
#pragma interrupt Dummy(resbank)
|
||||
extern void Dummy(void);
|
||||
|
||||
#endif /* VECT_H */
|
||||
|
||||
/* End of File */
|
553
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c
Normal file
553
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c
Normal file
|
@ -0,0 +1,553 @@
|
|||
/***********************************************************************/
|
||||
/* */
|
||||
/* FILE :vecttbl.c */
|
||||
/* DATE :Sun, Dec 27, 2009 */
|
||||
/* DESCRIPTION :Initialize of Vector Table */
|
||||
/* CPU TYPE :Other */
|
||||
/* */
|
||||
/* This file is generated by Renesas Project Generator (Ver.4.16). */
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
|
||||
|
||||
|
||||
#include "vect.h"
|
||||
|
||||
extern void vPortStartFirstTask( void );
|
||||
extern void vPortYieldHandler( void );
|
||||
extern void vPortPreemptiveTick( void );
|
||||
extern void vEMAC_ISR_Wrapper( void );
|
||||
extern void MTU_Match( void );
|
||||
|
||||
#pragma section VECTTBL
|
||||
|
||||
void *RESET_Vectors[] = {
|
||||
//;<<VECTOR DATA START (POWER ON RESET)>>
|
||||
//;0 Power On Reset PC
|
||||
(void*) PowerON_Reset_PC,
|
||||
//;<<VECTOR DATA END (POWER ON RESET)>>
|
||||
// 1 Power On Reset SP
|
||||
__secend("S"),
|
||||
//;<<VECTOR DATA START (MANUAL RESET)>>
|
||||
//;2 Manual Reset PC
|
||||
(void*) Manual_Reset_PC,
|
||||
//;<<VECTOR DATA END (MANUAL RESET)>>
|
||||
// 3 Manual Reset SP
|
||||
__secend("S")
|
||||
|
||||
};
|
||||
#pragma section INTTBL
|
||||
void *INT_Vectors[] = {
|
||||
// 4 Illegal code
|
||||
(void*) INT_Illegal_code,
|
||||
// 5 Reserved
|
||||
(void*) Dummy,
|
||||
// 6 Illegal slot
|
||||
(void*) INT_Illegal_slot,
|
||||
// 7 Reserved
|
||||
(void*) Dummy,
|
||||
// 8 Reserved
|
||||
(void*) Dummy,
|
||||
// 9 CPU Address error
|
||||
(void*) INT_CPU_Address,
|
||||
// 10 DMAC Address error
|
||||
(void*) INT_DMAC_Address,
|
||||
// 11 NMI
|
||||
(void*) INT_NMI,
|
||||
// 12 User breakpoint trap
|
||||
(void*) INT_User_Break,
|
||||
// 13 Reserved
|
||||
(void*) Dummy,
|
||||
// 14 H-UDI
|
||||
(void*) INT_HUDI,
|
||||
// 15 Register bank over
|
||||
(void*) INT_Bank_Overflow,
|
||||
// 16 Register bank under
|
||||
(void*) INT_Bank_Underflow,
|
||||
// 17 ZERO_DIV
|
||||
(void*) INT_Divide_by_Zero,
|
||||
// 18 OVER_DIV
|
||||
(void*) INT_Divide_Overflow,
|
||||
// 19 Reserved
|
||||
(void*) Dummy,
|
||||
// 20 Reserved
|
||||
(void*) Dummy,
|
||||
// 21 Reserved
|
||||
(void*) Dummy,
|
||||
// 22 Reserved
|
||||
(void*) Dummy,
|
||||
// 23 Reserved
|
||||
(void*) Dummy,
|
||||
// 24 Reserved
|
||||
(void*) Dummy,
|
||||
// 25 Reserved
|
||||
(void*) Dummy,
|
||||
// 26 Reserved
|
||||
(void*) Dummy,
|
||||
// 27 Reserved
|
||||
(void*) Dummy,
|
||||
// 28 Reserved
|
||||
(void*) Dummy,
|
||||
// 29 Reserved
|
||||
(void*) Dummy,
|
||||
// 30 Reserved
|
||||
(void*) Dummy,
|
||||
// 31 Reserved
|
||||
(void*) Dummy,
|
||||
// 32 TRAPA (User Vecter)
|
||||
// (void*) INT_TRAPA32,
|
||||
(void*) vPortStartFirstTask,
|
||||
// 33 TRAPA (User Vecter)
|
||||
// (void*) INT_TRAPA33,
|
||||
(void*) vPortYieldHandler,
|
||||
// 34 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA34,
|
||||
// 35 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA35,
|
||||
// 36 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA36,
|
||||
// 37 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA37,
|
||||
// 38 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA38,
|
||||
// 39 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA39,
|
||||
// 40 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA40,
|
||||
// 41 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA41,
|
||||
// 42 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA42,
|
||||
// 43 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA43,
|
||||
// 44 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA44,
|
||||
// 45 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA45,
|
||||
// 46 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA46,
|
||||
// 47 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA47,
|
||||
// 48 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA48,
|
||||
// 49 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA49,
|
||||
// 50 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA50,
|
||||
// 51 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA51,
|
||||
// 52 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA52,
|
||||
// 53 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA53,
|
||||
// 54 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA54,
|
||||
// 55 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA55,
|
||||
// 56 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA56,
|
||||
// 57 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA57,
|
||||
// 58 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA58,
|
||||
// 59 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA59,
|
||||
// 60 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA60,
|
||||
// 61 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA61,
|
||||
// 62 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA62,
|
||||
// 63 TRAPA (User Vecter)
|
||||
(void*) INT_TRAPA63,
|
||||
// 64 Interrupt IRQ0
|
||||
(void*) INT_IRQ0,
|
||||
// 65 Interrupt IRQ1
|
||||
(void*) INT_IRQ1,
|
||||
// 66 Interrupt IRQ2
|
||||
(void*) INT_IRQ2,
|
||||
// 67 Interrupt IRQ3
|
||||
(void*) INT_IRQ3,
|
||||
// 68 Interrupt IRQ4
|
||||
(void*) INT_IRQ4,
|
||||
// 69 Interrupt IRQ5
|
||||
(void*) INT_IRQ5,
|
||||
// 70 Interrupt IRQ6
|
||||
(void*) INT_IRQ6,
|
||||
// 71 Interrupt IRQ7
|
||||
(void*) INT_IRQ7,
|
||||
// 72 Reserved
|
||||
(void*) Dummy,
|
||||
// 73 Reserved
|
||||
(void*) Dummy,
|
||||
// 74 Reserved
|
||||
(void*) Dummy,
|
||||
// 75 Reserved
|
||||
(void*) Dummy,
|
||||
// 76 Reserved
|
||||
(void*) Dummy,
|
||||
// 77 Reserved
|
||||
(void*) Dummy,
|
||||
// 78 Reserved
|
||||
(void*) Dummy,
|
||||
// 79 Reserved
|
||||
(void*) Dummy,
|
||||
// 80 Interrupt PINT0
|
||||
(void*) INT_PINT0,
|
||||
// 81 Interrupt PINT1
|
||||
(void*) INT_PINT1,
|
||||
// 82 Interrupt PINT2
|
||||
(void*) INT_PINT2,
|
||||
// 83 Interrupt PINT3
|
||||
(void*) INT_PINT3,
|
||||
// 84 Interrupt PINT4
|
||||
(void*) INT_PINT4,
|
||||
// 85 Interrupt PINT5
|
||||
(void*) INT_PINT5,
|
||||
// 86 Interrupt PINT6
|
||||
(void*) INT_PINT6,
|
||||
// 87 Interrupt PINT7
|
||||
(void*) INT_PINT7,
|
||||
// 88 Reserved
|
||||
(void*) Dummy,
|
||||
// 89 Reserved
|
||||
(void*) Dummy,
|
||||
// 90 Reserved
|
||||
(void*) Dummy,
|
||||
// 91 ROM FIFE
|
||||
(void*) INT_ROM_FIFE,
|
||||
// 92 A/D ADI0
|
||||
(void*) INT_AD_ADI0,
|
||||
// 93 Reserved
|
||||
(void*) Dummy,
|
||||
// 94 Reserved
|
||||
(void*) Dummy,
|
||||
// 95 Reserved
|
||||
(void*) Dummy,
|
||||
// 96 A/D ADI1
|
||||
(void*) INT_AD_ADI1,
|
||||
// 97 Reserved
|
||||
(void*) Dummy,
|
||||
// 98 Reserved
|
||||
(void*) Dummy,
|
||||
// 99 Reserved
|
||||
(void*) Dummy,
|
||||
// 100 Reserved
|
||||
(void*) Dummy,
|
||||
// 101 Reserved
|
||||
(void*) Dummy,
|
||||
// 102 Reserved
|
||||
(void*) Dummy,
|
||||
// 103 Reserved
|
||||
(void*) Dummy,
|
||||
// 104 RCANET0 ERS_0
|
||||
(void*) INT_RCANET0_ERS_0,
|
||||
// 105 RCANET0 OVR_0
|
||||
(void*) INT_RCANET0_OVR_0,
|
||||
// 106 RCANET0 RM01_0
|
||||
(void*) INT_RCANET0_RM01_0,
|
||||
// 107 RCANET0 SLE_0
|
||||
(void*) INT_RCANET0_SLE_0,
|
||||
// 108 DMAC0 DEI0
|
||||
(void*) INT_DMAC0_DEI0,
|
||||
// 109 DMAC0 HEI0
|
||||
(void*) INT_DMAC0_HEI0,
|
||||
// 110 Reserved
|
||||
(void*) Dummy,
|
||||
// 111 Reserved
|
||||
(void*) Dummy,
|
||||
// 112 DMAC1 DEI1
|
||||
(void*) INT_DMAC1_DEI1,
|
||||
// 113 DMAC1 HEI1
|
||||
(void*) INT_DMAC1_HEI1,
|
||||
// 114 Reserved
|
||||
(void*) Dummy,
|
||||
// 115 Reserved
|
||||
(void*) Dummy,
|
||||
// 116 DMAC2 DEI2
|
||||
(void*) INT_DMAC2_DEI2,
|
||||
// 117 DMAC2 HEI2
|
||||
(void*) INT_DMAC2_HEI2,
|
||||
// 118 Reserved
|
||||
(void*) Dummy,
|
||||
// 119 Reserved
|
||||
(void*) Dummy,
|
||||
// 120 DMAC3 DEI3
|
||||
(void*) INT_DMAC3_DEI3,
|
||||
// 121 DMAC3 HEI3
|
||||
(void*) INT_DMAC3_HEI3,
|
||||
// 122 Reserved
|
||||
(void*) Dummy,
|
||||
// 123 Reserved
|
||||
(void*) Dummy,
|
||||
// 124 DMAC4 DEI4
|
||||
(void*) INT_DMAC4_DEI4,
|
||||
// 125 DMAC4 HEI4
|
||||
(void*) INT_DMAC4_HEI4,
|
||||
// 126 Reserved
|
||||
(void*) Dummy,
|
||||
// 127 Reserved
|
||||
(void*) Dummy,
|
||||
// 128 DMAC5 DEI5
|
||||
(void*) INT_DMAC5_DEI5,
|
||||
// 129 DMAC5 HEI5
|
||||
(void*) INT_DMAC5_HEI5,
|
||||
// 130 Reserved
|
||||
(void*) Dummy,
|
||||
// 131 Reserved
|
||||
(void*) Dummy,
|
||||
// 132 DMAC6 DEI6
|
||||
(void*) INT_DMAC6_DEI6,
|
||||
// 133 DMAC6 HEI6
|
||||
(void*) INT_DMAC6_HEI6,
|
||||
// 134 Reserved
|
||||
(void*) Dummy,
|
||||
// 135 Reserved
|
||||
(void*) Dummy,
|
||||
// 136 DMAC7 DEI7
|
||||
(void*) INT_DMAC7_DEI7,
|
||||
// 137 DMAC7 HEI7
|
||||
(void*) INT_DMAC7_HEI7,
|
||||
// 138 Reserved
|
||||
(void*) Dummy,
|
||||
// 139 Reserved
|
||||
(void*) Dummy,
|
||||
// 140 CMT CMI0
|
||||
// (void*) INT_CMT_CMI0,
|
||||
(void*) vPortPreemptiveTick,
|
||||
// 141 Reserved
|
||||
(void*) Dummy,
|
||||
// 142 Reserved
|
||||
(void*) Dummy,
|
||||
// 143 Reserved
|
||||
(void*) Dummy,
|
||||
// 144 CMT CMI1
|
||||
(void*) INT_CMT_CMI1,
|
||||
// 145 Reserved
|
||||
(void*) Dummy,
|
||||
// 146 Reserved
|
||||
(void*) Dummy,
|
||||
// 147 Reserved
|
||||
(void*) Dummy,
|
||||
// 148 BSC CMTI
|
||||
(void*) INT_BSC_CMTI,
|
||||
// 149 Reserved
|
||||
(void*) Dummy,
|
||||
// 150 USB EP4FULL
|
||||
(void*) INT_USB_EP4FULL,
|
||||
// 151 USB EP5EMPTY
|
||||
(void*) INT_USB_EP5EMPTY,
|
||||
// 152 WDT ITI
|
||||
(void*) INT_WDT_ITI,
|
||||
// 153 E-DMAC EINT0
|
||||
(void*) vEMAC_ISR_Wrapper,
|
||||
// 154 USB EP1FULL
|
||||
(void*) INT_USB_EP1FULL,
|
||||
// 155 USB EP2EMPTY
|
||||
(void*) INT_USB_EP2EMPTY,
|
||||
// 156 MTU2 MTU0 TGI0A
|
||||
// (void*) INT_MTU2_MTU0_TGI0A,
|
||||
(void*) MTU_Match,
|
||||
// 157 MTU2 MTU0 TGI0B
|
||||
(void*) INT_MTU2_MTU0_TGI0B,
|
||||
// 158 MTU2 MTU0 TGI0C
|
||||
(void*) INT_MTU2_MTU0_TGI0C,
|
||||
// 159 MTU2 MTU0 TGI0D
|
||||
(void*) INT_MTU2_MTU0_TGI0D,
|
||||
// 160 MTU2 MTU0 TGI0V
|
||||
(void*) INT_MTU2_MTU0_TGI0V,
|
||||
// 161 MTU2 MTU0 TGI0E
|
||||
(void*) INT_MTU2_MTU0_TGI0E,
|
||||
// 162 MTU2 MTU0 TGI0F
|
||||
(void*) INT_MTU2_MTU0_TGI0F,
|
||||
// 163 Reserved
|
||||
(void*) Dummy,
|
||||
// 164 MTU2 MTU1 TGI1A
|
||||
(void*) INT_MTU2_MTU1_TGI1A,
|
||||
// 165 MTU2 MTU1 TGI1B
|
||||
(void*) INT_MTU2_MTU1_TGI1B,
|
||||
// 166 Reserved
|
||||
(void*) Dummy,
|
||||
// 167 Reserved
|
||||
(void*) Dummy,
|
||||
// 168 MTU2 MTU1 TGI1V
|
||||
(void*) INT_MTU2_MTU1_TGI1V,
|
||||
// 169 MTU2 MTU1 TGI1U
|
||||
(void*) INT_MTU2_MTU1_TGI1U,
|
||||
// 170 Reserved
|
||||
(void*) Dummy,
|
||||
// 171 Reserved
|
||||
(void*) Dummy,
|
||||
// 172 MTU2 MTU2 TGI2A
|
||||
(void*) INT_MTU2_MTU2_TGI2A,
|
||||
// 173 MTU2 MTU2 TGI2B
|
||||
(void*) INT_MTU2_MTU2_TGI2B,
|
||||
// 174 Reserved
|
||||
(void*) Dummy,
|
||||
// 175 Reserved
|
||||
(void*) Dummy,
|
||||
// 176 MTU2 MTU2 TGI2V
|
||||
(void*) INT_MTU2_MTU2_TGI2V,
|
||||
// 177 MTU2 MTU2 TGI2U
|
||||
(void*) INT_MTU2_MTU2_TGI2U,
|
||||
// 178 Reserved
|
||||
(void*) Dummy,
|
||||
// 179 Reserved
|
||||
(void*) Dummy,
|
||||
// 180 MTU2 MTU3 TGI3A
|
||||
(void*) INT_MTU2_MTU3_TGI3A,
|
||||
// 181 MTU2 MTU3 TGI3B
|
||||
(void*) INT_MTU2_MTU3_TGI3B,
|
||||
// 182 MTU2 MTU3 TGI3C
|
||||
(void*) INT_MTU2_MTU3_TGI3C,
|
||||
// 183 MTU2 MTU3 TGI3D
|
||||
(void*) INT_MTU2_MTU3_TGI3D,
|
||||
// 184 MTU2 MTU3 TGI3V
|
||||
(void*) INT_MTU2_MTU3_TGI3V,
|
||||
// 185 Reserved
|
||||
(void*) Dummy,
|
||||
// 186 Reserved
|
||||
(void*) Dummy,
|
||||
// 187 Reserved
|
||||
(void*) Dummy,
|
||||
// 188 MTU2 MTU4 TGI4A
|
||||
(void*) INT_MTU2_MTU4_TGI4A,
|
||||
// 189 MTU2 MTU4 TGI4B
|
||||
(void*) INT_MTU2_MTU4_TGI4B,
|
||||
// 190 MTU2 MTU4 TGI4C
|
||||
(void*) INT_MTU2_MTU4_TGI4C,
|
||||
// 191 MTU2 MTU4 TGI4D
|
||||
(void*) INT_MTU2_MTU4_TGI4D,
|
||||
// 192 MTU2 MTU4 TGI4V
|
||||
(void*) INT_MTU2_MTU4_TGI4V,
|
||||
// 193 Reserved
|
||||
(void*) Dummy,
|
||||
// 194 Reserved
|
||||
(void*) Dummy,
|
||||
// 195 Reserved
|
||||
(void*) Dummy,
|
||||
// 196 MTU2 MTU5 TGI5U
|
||||
(void*) INT_MTU2_MTU5_TGI5U,
|
||||
// 197 MTU2 MTU5 TGI5V
|
||||
(void*) INT_MTU2_MTU5_TGI5V,
|
||||
// 198 MTU2 MTU5 TGI5W
|
||||
(void*) INT_MTU2_MTU5_TGI5W,
|
||||
// 199 Reserved
|
||||
(void*) Dummy,
|
||||
// 200 POE2 OEI1
|
||||
(void*) INT_POE2_OEI1,
|
||||
// 201 POE2 OEI2
|
||||
(void*) INT_POE2_OEI2,
|
||||
// 202 Reserved
|
||||
(void*) Dummy,
|
||||
// 203 Reserved
|
||||
(void*) Dummy,
|
||||
// 204 MTU2S MTU3S TGI3A
|
||||
(void*) INT_MTU2S_MTU3S_TGI3A,
|
||||
// 205 MTU2S MTU3S TGI3B
|
||||
(void*) INT_MTU2S_MTU3S_TGI3B,
|
||||
// 206 MTU2S MTU3S TGI3C
|
||||
(void*) INT_MTU2S_MTU3S_TGI3C,
|
||||
// 207 MTU2S MTU3S TGI3D
|
||||
(void*) INT_MTU2S_MTU3S_TGI3D,
|
||||
// 208 MTU2S MTU3S TGI3V
|
||||
(void*) INT_MTU2S_MTU3S_TGI3V,
|
||||
// 209 Reserved
|
||||
(void*) Dummy,
|
||||
// 210 Reserved
|
||||
(void*) Dummy,
|
||||
// 211 Reserved
|
||||
(void*) Dummy,
|
||||
// 212 MTU2S MTU4S TGI4A
|
||||
(void*) INT_MTU2S_MTU4S_TGI4A,
|
||||
// 213 MTU2S MTU4S TGI4B
|
||||
(void*) INT_MTU2S_MTU4S_TGI4B,
|
||||
// 214 MTU2S MTU4S TGI4C
|
||||
(void*) INT_MTU2S_MTU4S_TGI4C,
|
||||
// 215 MTU2S MTU4S TGI4D
|
||||
(void*) INT_MTU2S_MTU4S_TGI4D,
|
||||
// 216 MTU2S MTU4S TGI4V
|
||||
(void*) INT_MTU2S_MTU4S_TGI4V,
|
||||
// 217 Reserved
|
||||
(void*) Dummy,
|
||||
// 218 Reserved
|
||||
(void*) Dummy,
|
||||
// 219 Reserved
|
||||
(void*) Dummy,
|
||||
// 220 MTU2S MTU5S TGI5U
|
||||
(void*) INT_MTU2S_MTU5S_TGI5U,
|
||||
// 221 MTU2S MTU5S TGI5V
|
||||
(void*) INT_MTU2S_MTU5S_TGI5V,
|
||||
// 222 MTU2S MTU5S TGI5W
|
||||
(void*) INT_MTU2S_MTU5S_TGI5W,
|
||||
// 223 Reserved
|
||||
(void*) Dummy,
|
||||
// 224 POE2 OEI3
|
||||
(void*) INT_POE2_OEI3,
|
||||
// 225 Reserved
|
||||
(void*) Dummy,
|
||||
// 226 USB USI0
|
||||
(void*) INT_USB_USI0,
|
||||
// 227 USB USI1
|
||||
(void*) INT_USB_USI1,
|
||||
// 228 IIC3 STPI
|
||||
(void*) INT_IIC3_STPI,
|
||||
// 229 IIC3 NAKI
|
||||
(void*) INT_IIC3_NAKI,
|
||||
// 230 IIC3 RXI
|
||||
(void*) INT_IIC3_RXI,
|
||||
// 231 IIC3 TXI
|
||||
(void*) INT_IIC3_TXI,
|
||||
// 232 IIC3 TEI
|
||||
(void*) INT_IIC3_TEI,
|
||||
// 233 RSPI SPERI
|
||||
(void*) INT_RSPI_SPERI,
|
||||
// 234 RSPI SPRXI
|
||||
(void*) INT_RSPI_SPRXI,
|
||||
// 235 RSPI SPTXI
|
||||
(void*) INT_RSPI_SPTXI,
|
||||
// 236 SCI SCI4 ERI4
|
||||
(void*) INT_SCI_SCI4_ERI4,
|
||||
// 237 SCI SCI4 RXI4
|
||||
(void*) INT_SCI_SCI4_RXI4,
|
||||
// 238 SCI SCI4 TXI4
|
||||
(void*) INT_SCI_SCI4_TXI4,
|
||||
// 239 SCI SCI4 TEI4
|
||||
(void*) INT_SCI_SCI4_TEI4,
|
||||
// 240 SCI SCI0 ERI0
|
||||
(void*) INT_SCI_SCI0_ERI0,
|
||||
// 241 SCI SCI0 RXI0
|
||||
(void*) INT_SCI_SCI0_RXI0,
|
||||
// 242 SCI SCI0 TXI0
|
||||
(void*) INT_SCI_SCI0_TXI0,
|
||||
// 243 SCI SCI0 TEI0
|
||||
(void*) INT_SCI_SCI0_TEI0,
|
||||
// 244 SCI SCI1 ERI1
|
||||
(void*) INT_SCI_SCI1_ERI1,
|
||||
// 245 SCI SCI1 RXI1
|
||||
(void*) INT_SCI_SCI1_RXI1,
|
||||
// 246 SCI SCI1 TXI1
|
||||
(void*) INT_SCI_SCI1_TXI1,
|
||||
// 247 SCI SCI1 TEI1
|
||||
(void*) INT_SCI_SCI1_TEI1,
|
||||
// 248 SCI SCI2 ERI2
|
||||
(void*) INT_SCI_SCI2_ERI2,
|
||||
// 249 SCI SCI2 RXI2
|
||||
(void*) INT_SCI_SCI2_RXI2,
|
||||
// 250 SCI SCI2 TXI2
|
||||
(void*) INT_SCI_SCI2_TXI2,
|
||||
// 251 SCI SCI2 TEI2
|
||||
(void*) INT_SCI_SCI2_TEI2,
|
||||
// 252 SCIF SCIF3 BRI3
|
||||
(void*) INT_SCIF_SCIF3_BRI3,
|
||||
// 253 SCIF SCIF3 ERI3
|
||||
(void*) INT_SCIF_SCIF3_ERI3,
|
||||
// 254 SCIF SCIF3 RXI3
|
||||
(void*) INT_SCIF_SCIF3_RXI3,
|
||||
// 255 SCIF SCIF3 TXI3
|
||||
(void*) INT_SCIF_SCIF3_TXI3,
|
||||
// xx Reserved
|
||||
(void*) Dummy
|
||||
};
|
||||
|
||||
/* End of File */
|
571
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c
Normal file
571
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c
Normal file
|
@ -0,0 +1,571 @@
|
|||
/*
|
||||
FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* Having a problem? Start by reading the FAQ "My application does *
|
||||
* not run, what could be wrong? *
|
||||
* *
|
||||
* http://www.FreeRTOS.org/FAQHelp.html *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, training, latest information,
|
||||
license and contact details.
|
||||
|
||||
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||
including FreeRTOS+Trace - an indispensable productivity tool.
|
||||
|
||||
Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell
|
||||
the code with commercial support, indemnification, and middleware, under
|
||||
the OpenRTOS brand: http://www.OpenRTOS.com. High Integrity Systems also
|
||||
provide a safety engineered and independently SIL3 certified version under
|
||||
the SafeRTOS brand: http://www.SafeRTOS.com.
|
||||
*/
|
||||
|
||||
/* Hardware specific includes. */
|
||||
#include "iodefine.h"
|
||||
#include "typedefine.h"
|
||||
#include "hwEthernet.h"
|
||||
#include "hwEthernetPhy.h"
|
||||
|
||||
/* FreeRTOS includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
#include "semphr.h"
|
||||
|
||||
/* uIP includes. */
|
||||
#include "net/uip.h"
|
||||
|
||||
/* The time to wait between attempts to obtain a free buffer. */
|
||||
#define emacBUFFER_WAIT_DELAY_ms ( 3 / portTICK_RATE_MS )
|
||||
|
||||
/* The number of times emacBUFFER_WAIT_DELAY_ms should be waited before giving
|
||||
up on attempting to obtain a free buffer all together. */
|
||||
#define emacBUFFER_WAIT_ATTEMPTS ( 30 )
|
||||
|
||||
/* The number of Rx descriptors. */
|
||||
#define emacNUM_RX_DESCRIPTORS 3
|
||||
|
||||
/* The number of Tx descriptors. When using uIP there is not point in having
|
||||
more than two. */
|
||||
#define emacNUM_TX_BUFFERS 2
|
||||
|
||||
/* The total number of EMAC buffers to allocate. */
|
||||
#define emacNUM_BUFFERS ( emacNUM_RX_DESCRIPTORS + emacNUM_TX_BUFFERS )
|
||||
|
||||
/* The time to wait for the Tx descriptor to become free. */
|
||||
#define emacTX_WAIT_DELAY_ms ( 10 / portTICK_RATE_MS )
|
||||
|
||||
/* The total number of times to wait emacTX_WAIT_DELAY_ms for the Tx descriptor to
|
||||
become free. */
|
||||
#define emacTX_WAIT_ATTEMPTS ( 5 )
|
||||
|
||||
/* Only Rx end and Tx end interrupts are used by this driver. */
|
||||
#define emacTX_END_INTERRUPT ( 1UL << 21UL )
|
||||
#define emacRX_END_INTERRUPT ( 1UL << 18UL )
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* The buffers and descriptors themselves. */
|
||||
#pragma section RX_DESCR
|
||||
ethfifo xRxDescriptors[ emacNUM_RX_DESCRIPTORS ];
|
||||
#pragma section TX_DESCR
|
||||
ethfifo xTxDescriptors[ emacNUM_TX_BUFFERS ];
|
||||
#pragma section _ETHERNET_BUFFERS
|
||||
char xEthernetBuffers[ emacNUM_BUFFERS ][ UIP_BUFSIZE ];
|
||||
#pragma section
|
||||
|
||||
/* Used to indicate which buffers are free and which are in use. If an index
|
||||
contains 0 then the corresponding buffer in xEthernetBuffers is free, otherwise
|
||||
the buffer is in use or about to be used. */
|
||||
static unsigned char ucBufferInUse[ emacNUM_BUFFERS ];
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Initialise both the Rx and Tx descriptors.
|
||||
*/
|
||||
static void prvInitialiseDescriptors( void );
|
||||
|
||||
/*
|
||||
* Return a pointer to a free buffer within xEthernetBuffers.
|
||||
*/
|
||||
static unsigned char *prvGetNextBuffer( void );
|
||||
|
||||
/*
|
||||
* Return a buffer to the list of free buffers.
|
||||
*/
|
||||
static void prvReturnBuffer( unsigned char *pucBuffer );
|
||||
|
||||
/*
|
||||
* Examine the status of the next Rx FIFO to see if it contains new data.
|
||||
*/
|
||||
static unsigned long prvCheckRxFifoStatus( void );
|
||||
|
||||
/*
|
||||
* Setup the microcontroller for communication with the PHY.
|
||||
*/
|
||||
static void prvSetupPortPinsAndReset( void );
|
||||
|
||||
/*
|
||||
* Configure the Ethernet interface peripherals.
|
||||
*/
|
||||
static void prvConfigureEtherCAndEDMAC( void );
|
||||
|
||||
/*
|
||||
* Something has gone wrong with the descriptor usage. Reset all the buffers
|
||||
* and descriptors.
|
||||
*/
|
||||
static void prvResetEverything( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Points to the Rx descriptor currently in use. */
|
||||
static ethfifo *xCurrentRxDesc = NULL;
|
||||
|
||||
/* The buffer used by the uIP stack to both receive and send. This points to
|
||||
one of the Ethernet buffers when its actually in use. */
|
||||
unsigned char *uip_buf = NULL;
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vInitEmac( void )
|
||||
{
|
||||
/* Setup the SH hardware for MII communications. */
|
||||
prvSetupPortPinsAndReset();
|
||||
|
||||
/* Set the Rx and Tx descriptors into their initial state. */
|
||||
prvInitialiseDescriptors();
|
||||
|
||||
/* Set the MAC address into the ETHERC */
|
||||
EtherC.MAHR = ( ( unsigned long ) configMAC_ADDR0 << 24UL ) |
|
||||
( ( unsigned long ) configMAC_ADDR1 << 16UL ) |
|
||||
( ( unsigned long ) configMAC_ADDR2 << 8UL ) |
|
||||
( unsigned long ) configMAC_ADDR3;
|
||||
|
||||
EtherC.MALR.BIT.MA = ( ( unsigned long ) configMAC_ADDR4 << 8UL ) |
|
||||
( unsigned long ) configMAC_ADDR5;
|
||||
|
||||
/* Perform rest of interface hardware configuration. */
|
||||
prvConfigureEtherCAndEDMAC();
|
||||
|
||||
/* Nothing received yet, so uip_buf points nowhere. */
|
||||
uip_buf = NULL;
|
||||
|
||||
/* Initialize the PHY */
|
||||
phyReset();
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vEMACWrite( void )
|
||||
{
|
||||
long x;
|
||||
|
||||
/* Wait until the second transmission of the last packet has completed. */
|
||||
for( x = 0; x < emacTX_WAIT_ATTEMPTS; x++ )
|
||||
{
|
||||
if( ( xTxDescriptors[ 1 ].status & ACT ) != 0 )
|
||||
{
|
||||
/* Descriptor is still active. */
|
||||
vTaskDelay( emacTX_WAIT_DELAY_ms );
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Is the descriptor free after waiting for it? */
|
||||
if( ( xTxDescriptors[ 1 ].status & ACT ) != 0 )
|
||||
{
|
||||
/* Something has gone wrong. */
|
||||
prvResetEverything();
|
||||
}
|
||||
|
||||
/* Setup both descriptors to transmit the frame. */
|
||||
xTxDescriptors[ 0 ].buf_p = ( char * ) uip_buf;
|
||||
xTxDescriptors[ 0 ].bufsize = uip_len;
|
||||
xTxDescriptors[ 1 ].buf_p = ( char * ) uip_buf;
|
||||
xTxDescriptors[ 1 ].bufsize = uip_len;
|
||||
|
||||
/* uip_buf is being sent by the Tx descriptor. Allocate a new buffer
|
||||
for use by the stack. */
|
||||
uip_buf = prvGetNextBuffer();
|
||||
|
||||
/* Clear previous settings and go. */
|
||||
xTxDescriptors[0].status &= ~( FP1 | FP0 );
|
||||
xTxDescriptors[0].status |= ( FP1 | FP0 | ACT );
|
||||
xTxDescriptors[1].status &= ~( FP1 | FP0 );
|
||||
xTxDescriptors[1].status |= ( FP1 | FP0 | ACT );
|
||||
|
||||
EDMAC.EDTRR.LONG = 0x00000001;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
unsigned long ulEMACRead( void )
|
||||
{
|
||||
unsigned long ulBytesReceived;
|
||||
|
||||
ulBytesReceived = prvCheckRxFifoStatus();
|
||||
|
||||
if( ulBytesReceived > 0 )
|
||||
{
|
||||
xCurrentRxDesc->status &= ~( FP1 | FP0 );
|
||||
xCurrentRxDesc->status |= ACT;
|
||||
|
||||
if( EDMAC.EDRRR.LONG == 0x00000000L )
|
||||
{
|
||||
/* Restart Ethernet if it has stopped */
|
||||
EDMAC.EDRRR.LONG = 0x00000001L;
|
||||
}
|
||||
|
||||
/* Mark the pxDescriptor buffer as free as uip_buf is going to be set to
|
||||
the buffer that contains the received data. */
|
||||
prvReturnBuffer( uip_buf );
|
||||
|
||||
uip_buf = ( void * ) xCurrentRxDesc->buf_p;
|
||||
|
||||
/* Move onto the next buffer in the ring. */
|
||||
xCurrentRxDesc = xCurrentRxDesc->next;
|
||||
}
|
||||
|
||||
return ulBytesReceived;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
long lEMACWaitForLink( void )
|
||||
{
|
||||
long lReturn;
|
||||
|
||||
/* Set the link status. */
|
||||
switch( phyStatus() )
|
||||
{
|
||||
/* Half duplex link */
|
||||
case PHY_LINK_100H:
|
||||
case PHY_LINK_10H:
|
||||
EtherC.ECMR.BIT.DM = 0;
|
||||
lReturn = pdPASS;
|
||||
break;
|
||||
|
||||
/* Full duplex link */
|
||||
case PHY_LINK_100F:
|
||||
case PHY_LINK_10F:
|
||||
EtherC.ECMR.BIT.DM = 1;
|
||||
lReturn = pdPASS;
|
||||
break;
|
||||
|
||||
default:
|
||||
lReturn = pdFAIL;
|
||||
break;
|
||||
}
|
||||
|
||||
if( lReturn == pdPASS )
|
||||
{
|
||||
/* Enable receive and transmit. */
|
||||
EtherC.ECMR.BIT.RE = 1;
|
||||
EtherC.ECMR.BIT.TE = 1;
|
||||
|
||||
/* Enable EDMAC receive */
|
||||
EDMAC.EDRRR.LONG = 0x1;
|
||||
}
|
||||
|
||||
return lReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvInitialiseDescriptors( void )
|
||||
{
|
||||
ethfifo *pxDescriptor;
|
||||
long x;
|
||||
|
||||
for( x = 0; x < emacNUM_BUFFERS; x++ )
|
||||
{
|
||||
/* Ensure none of the buffers are shown as in use at the start. */
|
||||
ucBufferInUse[ x ] = pdFALSE;
|
||||
}
|
||||
|
||||
/* Initialise the Rx descriptors. */
|
||||
for( x = 0; x < emacNUM_RX_DESCRIPTORS; x++ )
|
||||
{
|
||||
pxDescriptor = &( xRxDescriptors[ x ] );
|
||||
pxDescriptor->buf_p = &( xEthernetBuffers[ x ][ 0 ] );
|
||||
|
||||
pxDescriptor->bufsize = UIP_BUFSIZE;
|
||||
pxDescriptor->size = 0;
|
||||
pxDescriptor->status = ACT;
|
||||
pxDescriptor->next = &xRxDescriptors[ x + 1 ];
|
||||
|
||||
/* Mark this buffer as in use. */
|
||||
ucBufferInUse[ x ] = pdTRUE;
|
||||
}
|
||||
|
||||
/* The last descriptor points back to the start. */
|
||||
pxDescriptor->status |= DL;
|
||||
pxDescriptor->next = &xRxDescriptors[ 0 ];
|
||||
|
||||
/* Initialise the Tx descriptors. */
|
||||
for( x = 0; x < emacNUM_TX_BUFFERS; x++ )
|
||||
{
|
||||
pxDescriptor = &( xTxDescriptors[ x ] );
|
||||
|
||||
/* A buffer is not allocated to the Tx descriptor until a send is
|
||||
actually required. */
|
||||
pxDescriptor->buf_p = NULL;
|
||||
|
||||
pxDescriptor->bufsize = UIP_BUFSIZE;
|
||||
pxDescriptor->size = 0;
|
||||
pxDescriptor->status = 0;
|
||||
pxDescriptor->next = &xTxDescriptors[ x + 1 ];
|
||||
}
|
||||
|
||||
/* The last descriptor points back to the start. */
|
||||
pxDescriptor->status |= DL;
|
||||
pxDescriptor->next = &( xTxDescriptors[ 0 ] );
|
||||
|
||||
/* Use the first Rx descriptor to start with. */
|
||||
xCurrentRxDesc = &( xRxDescriptors[ 0 ] );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static unsigned char *prvGetNextBuffer( void )
|
||||
{
|
||||
long x;
|
||||
unsigned char *pucReturn = NULL;
|
||||
unsigned long ulAttempts = 0;
|
||||
|
||||
while( pucReturn == NULL )
|
||||
{
|
||||
/* Look through the buffers to find one that is not in use by
|
||||
anything else. */
|
||||
for( x = 0; x < emacNUM_BUFFERS; x++ )
|
||||
{
|
||||
if( ucBufferInUse[ x ] == pdFALSE )
|
||||
{
|
||||
ucBufferInUse[ x ] = pdTRUE;
|
||||
pucReturn = ( unsigned char * ) &( xEthernetBuffers[ x ][ 0 ] );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Was a buffer found? */
|
||||
if( pucReturn == NULL )
|
||||
{
|
||||
ulAttempts++;
|
||||
|
||||
if( ulAttempts >= emacBUFFER_WAIT_ATTEMPTS )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
/* Wait then look again. */
|
||||
vTaskDelay( emacBUFFER_WAIT_DELAY_ms );
|
||||
}
|
||||
}
|
||||
|
||||
return pucReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvReturnBuffer( unsigned char *pucBuffer )
|
||||
{
|
||||
unsigned long ul;
|
||||
|
||||
/* Return a buffer to the pool of free buffers. */
|
||||
for( ul = 0; ul < emacNUM_BUFFERS; ul++ )
|
||||
{
|
||||
if( &( xEthernetBuffers[ ul ][ 0 ] ) == ( void * ) pucBuffer )
|
||||
{
|
||||
ucBufferInUse[ ul ] = pdFALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvResetEverything( void )
|
||||
{
|
||||
/* Temporary code just to see if this gets called. This function has not
|
||||
been implemented. */
|
||||
portDISABLE_INTERRUPTS();
|
||||
for( ;; );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static unsigned long prvCheckRxFifoStatus( void )
|
||||
{
|
||||
unsigned long ulReturn = 0;
|
||||
|
||||
if( ( xCurrentRxDesc->status & ACT ) != 0 )
|
||||
{
|
||||
/* Current descriptor is still active. */
|
||||
}
|
||||
else if( ( xCurrentRxDesc->status & FE ) != 0 )
|
||||
{
|
||||
/* Frame error. Clear the error. */
|
||||
xCurrentRxDesc->status &= ~( FP1 | FP0 | FE );
|
||||
xCurrentRxDesc->status &= ~( RMAF | RRF | RTLF | RTSF | PRE | CERF );
|
||||
xCurrentRxDesc->status |= ACT;
|
||||
xCurrentRxDesc = xCurrentRxDesc->next;
|
||||
|
||||
if( EDMAC.EDRRR.LONG == 0x00000000UL )
|
||||
{
|
||||
/* Restart Ethernet if it has stopped. */
|
||||
EDMAC.EDRRR.LONG = 0x00000001UL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The descriptor contains a frame. Because of the size of the buffers
|
||||
the frame should always be complete. */
|
||||
if( (xCurrentRxDesc->status & FP0) == FP0 )
|
||||
{
|
||||
ulReturn = xCurrentRxDesc->size;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Do not expect to get here. */
|
||||
prvResetEverything();
|
||||
}
|
||||
}
|
||||
|
||||
return ulReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvSetupPortPinsAndReset( void )
|
||||
{
|
||||
/* Initialisation code taken from Renesas example project. */
|
||||
|
||||
PFC.PACRL4.BIT.PA12MD = 0x7; /* Set TX_CLK input (EtherC) */
|
||||
PFC.PACRL3.BIT.PA11MD = 0x7; /* Set TX_EN output (EtherC) */
|
||||
PFC.PACRL3.BIT.PA10MD = 0x7; /* Set MII_TXD0 output (EtherC) */
|
||||
PFC.PACRL3.BIT.PA9MD = 0x7; /* Set MII_TXD1 output (EtherC) */
|
||||
PFC.PACRL3.BIT.PA8MD = 0x7; /* Set MII_TXD2 output (EtherC) */
|
||||
PFC.PACRL2.BIT.PA7MD = 0x7; /* Set MII_TXD3 output (EtherC) */
|
||||
PFC.PACRL2.BIT.PA6MD = 0x7; /* Set TX_ER output (EtherC) */
|
||||
PFC.PDCRH4.BIT.PD31MD = 0x7; /* Set RX_DV input (EtherC) */
|
||||
PFC.PDCRH4.BIT.PD30MD = 0x7; /* Set RX_ER input (EtherC) */
|
||||
PFC.PDCRH4.BIT.PD29MD = 0x7; /* Set MII_RXD3 input (EtherC) */
|
||||
PFC.PDCRH4.BIT.PD28MD = 0x7; /* Set MII_RXD2 input (EtherC) */
|
||||
PFC.PDCRH3.BIT.PD27MD = 0x7; /* Set MII_RXD1 input (EtherC) */
|
||||
PFC.PDCRH3.BIT.PD26MD = 0x7; /* Set MII_RXD0 input (EtherC) */
|
||||
PFC.PDCRH3.BIT.PD25MD = 0x7; /* Set RX_CLK input (EtherC) */
|
||||
PFC.PDCRH3.BIT.PD24MD = 0x7; /* Set CRS input (EtherC) */
|
||||
PFC.PDCRH2.BIT.PD23MD = 0x7; /* Set COL input (EtherC) */
|
||||
PFC.PDCRH2.BIT.PD22MD = 0x7; /* Set WOL output (EtherC) */
|
||||
PFC.PDCRH2.BIT.PD21MD = 0x7; /* Set EXOUT output (EtherC) */
|
||||
PFC.PDCRH2.BIT.PD20MD = 0x7; /* Set MDC output (EtherC) */
|
||||
PFC.PDCRH1.BIT.PD19MD = 0x7; /* Set LINKSTA input (EtherC) */
|
||||
PFC.PDCRH1.BIT.PD18MD = 0x7; /* Set MDIO input/output (EtherC) */
|
||||
|
||||
STB.CR4.BIT._ETHER = 0x0;
|
||||
EDMAC.EDMR.BIT.SWR = 1;
|
||||
|
||||
/* Crude wait for reset to complete. */
|
||||
vTaskDelay( 500 / portTICK_RATE_MS );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvConfigureEtherCAndEDMAC( void )
|
||||
{
|
||||
/* Initialisation code taken from Renesas example project. */
|
||||
|
||||
/* TODO: Check bit 5 */
|
||||
EtherC.ECSR.LONG = 0x00000037; /* Clear all EtherC statuS BFR, PSRTO, LCHNG, MPD, ICD */
|
||||
|
||||
/* TODO: Check bit 5 */
|
||||
EtherC.ECSIPR.LONG = 0x00000020; /* Disable EtherC status change interrupt */
|
||||
EtherC.RFLR.LONG = 1518; /* Ether payload is 1500+ CRC */
|
||||
EtherC.IPGR.LONG = 0x00000014; /* Intergap is 96-bit time */
|
||||
|
||||
/* EDMAC */
|
||||
EDMAC.EESR.LONG = 0x47FF0F9F; /* Clear all EtherC and EDMAC status bits */
|
||||
EDMAC.RDLAR = ( void * ) xCurrentRxDesc; /* Initialaize Rx Descriptor List Address */
|
||||
EDMAC.TDLAR = &( xTxDescriptors[ 0 ] ); /* Initialaize Tx Descriptor List Address */
|
||||
EDMAC.TRSCER.LONG = 0x00000000; /* Copy-back status is RFE & TFE only */
|
||||
EDMAC.TFTR.LONG = 0x00000000; /* Threshold of Tx_FIFO */
|
||||
EDMAC.FDR.LONG = 0x00000000; /* Transmit fifo & receive fifo is 256 bytes */
|
||||
EDMAC.RMCR.LONG = 0x00000003; /* Receive function is normal mode(continued) */
|
||||
|
||||
/* Set the EDMAC interrupt priority - the interrupt priority must be
|
||||
configKERNEL_INTERRUPT_PRIORITY no matter which peripheral is used to
|
||||
generate the tick interrupt. */
|
||||
INTC.IPR19.BIT._EDMAC = portKERNEL_INTERRUPT_PRIORITY;
|
||||
EDMAC.EESIPR.LONG = emacTX_END_INTERRUPT | emacRX_END_INTERRUPT; /* Enable Rx and Tx end interrupts. */
|
||||
|
||||
/* Clear the interrupt flag. */
|
||||
CMT0.CMCSR.BIT.CMF = 0;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vEMAC_ISR_Handler( void )
|
||||
{
|
||||
unsigned long ul = EDMAC.EESR.LONG;
|
||||
long lHigherPriorityTaskWoken = pdFALSE;
|
||||
extern xSemaphoreHandle xEMACSemaphore;
|
||||
static long ulTxEndInts = 0;
|
||||
|
||||
/* Has a Tx end occurred? */
|
||||
if( ul & emacTX_END_INTERRUPT )
|
||||
{
|
||||
++ulTxEndInts;
|
||||
if( ulTxEndInts >= 2 )
|
||||
{
|
||||
/* Only return the buffer to the pool once both Txes have completed. */
|
||||
prvReturnBuffer( ( void * ) xTxDescriptors[ 0 ].buf_p );
|
||||
ulTxEndInts = 0;
|
||||
}
|
||||
EDMAC.EESR.LONG = emacTX_END_INTERRUPT;
|
||||
}
|
||||
|
||||
/* Has an Rx end occurred? */
|
||||
if( ul & emacRX_END_INTERRUPT )
|
||||
{
|
||||
/* Make sure the Ethernet task is not blocked waiting for a packet. */
|
||||
xSemaphoreGiveFromISR( xEMACSemaphore, &lHigherPriorityTaskWoken );
|
||||
portYIELD_FROM_ISR( lHigherPriorityTaskWoken );
|
||||
EDMAC.EESR.LONG = emacRX_END_INTERRUPT;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
;/*
|
||||
; FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.
|
||||
;
|
||||
;
|
||||
; ***************************************************************************
|
||||
; * *
|
||||
; * FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
; * Complete, revised, and edited pdf reference manuals are also *
|
||||
; * available. *
|
||||
; * *
|
||||
; * Purchasing FreeRTOS documentation will not only help you, by *
|
||||
; * ensuring you get running as quickly as possible and with an *
|
||||
; * in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
; * the FreeRTOS project to continue with its mission of providing *
|
||||
; * professional grade, cross platform, de facto standard solutions *
|
||||
; * for microcontrollers - completely free of charge! *
|
||||
; * *
|
||||
; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
; * *
|
||||
; * Thank you for using FreeRTOS, and thank you for your support! *
|
||||
; * *
|
||||
; ***************************************************************************
|
||||
;
|
||||
;
|
||||
; This file is part of the FreeRTOS distribution.
|
||||
;
|
||||
; FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
; the terms of the GNU General Public License (version 2) as published by the
|
||||
; Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
; >>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
; distribute a combined work that includes FreeRTOS without being obliged to
|
||||
; provide the source code for proprietary components outside of the FreeRTOS
|
||||
; kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
; can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
; by writing to Richard Barry, contact details for whom are available on the
|
||||
; FreeRTOS WEB site.
|
||||
;
|
||||
; 1 tab == 4 spaces!
|
||||
;
|
||||
; 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.
|
||||
;*/
|
||||
|
||||
.import _vEMAC_ISR_Handler
|
||||
.import _pxCurrentTCB
|
||||
.export _vEMAC_ISR_Wrapper
|
||||
|
||||
.INCLUDE "ISR_Support.inc"
|
||||
|
||||
.section P
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
_vEMAC_ISR_Wrapper:
|
||||
|
||||
portSAVE_CONTEXT
|
||||
|
||||
mov.l #_vEMAC_ISR_Handler, r0
|
||||
jsr @r0
|
||||
nop
|
||||
|
||||
portRESTORE_CONTEXT
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
.end
|
||||
|
|
@ -0,0 +1,254 @@
|
|||
/**
|
||||
* \addtogroup httpd
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* Web server script interface
|
||||
* \author
|
||||
* Adam Dunkels <adam@sics.se>
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2001-2006, Adam Dunkels.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior
|
||||
* written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the uIP TCP/IP stack.
|
||||
*
|
||||
* $Id: httpd-cgi.c,v 1.2 2006/06/11 21:46:37 adam Exp $
|
||||
*
|
||||
*/
|
||||
#include "net/uip.h"
|
||||
#include "net/psock.h"
|
||||
#include "apps/httpd/httpd.h"
|
||||
#include "apps/httpd/httpd-cgi.h"
|
||||
#include "apps/httpd/httpd-fs.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
HTTPD_CGI_CALL( file, "file-stats", file_stats );
|
||||
HTTPD_CGI_CALL( tcp, "tcp-connections", tcp_stats );
|
||||
HTTPD_CGI_CALL( net, "net-stats", net_stats );
|
||||
HTTPD_CGI_CALL( rtos, "rtos-stats", rtos_stats );
|
||||
HTTPD_CGI_CALL( run, "run-time", run_time );
|
||||
HTTPD_CGI_CALL( io, "led-io", led_io );
|
||||
|
||||
static const struct httpd_cgi_call *calls[] = { &file, &tcp, &net, &rtos, &run, &io, NULL };
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static PT_THREAD( nullfunction ( struct httpd_state *s, char *ptr ) )
|
||||
{
|
||||
PSOCK_BEGIN( &s->sout );
|
||||
( void ) ptr;
|
||||
PSOCK_END( &s->sout );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
httpd_cgifunction httpd_cgi( char *name )
|
||||
{
|
||||
const struct httpd_cgi_call **f;
|
||||
|
||||
/* Find the matching name in the table, return the function. */
|
||||
for( f = calls; *f != NULL; ++f )
|
||||
{
|
||||
if( strncmp((*f)->name, name, strlen((*f)->name)) == 0 )
|
||||
{
|
||||
return( *f )->function;
|
||||
}
|
||||
}
|
||||
|
||||
return nullfunction;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static unsigned short generate_file_stats( void *arg )
|
||||
{
|
||||
char *f = ( char * ) arg;
|
||||
return sprintf( ( char * ) uip_appdata, "%5u", httpd_fs_count(f) );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static PT_THREAD( file_stats ( struct httpd_state *s, char *ptr ) )
|
||||
{
|
||||
PSOCK_BEGIN( &s->sout );
|
||||
|
||||
PSOCK_GENERATOR_SEND( &s->sout, generate_file_stats, strchr(ptr, ' ') + 1 );
|
||||
|
||||
PSOCK_END( &s->sout );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static const char closed[] = /* "CLOSED",*/ { 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0 };
|
||||
static const char syn_rcvd[] = /* "SYN-RCVD",*/ { 0x53, 0x59, 0x4e, 0x2d, 0x52, 0x43, 0x56, 0x44, 0 };
|
||||
static const char syn_sent[] = /* "SYN-SENT",*/ { 0x53, 0x59, 0x4e, 0x2d, 0x53, 0x45, 0x4e, 0x54, 0 };
|
||||
static const char established[] = /* "ESTABLISHED",*/ { 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0 };
|
||||
static const char fin_wait_1[] = /* "FIN-WAIT-1",*/ { 0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 0x54, 0x2d, 0x31, 0 };
|
||||
static const char fin_wait_2[] = /* "FIN-WAIT-2",*/ { 0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 0x54, 0x2d, 0x32, 0 };
|
||||
static const char closing[] = /* "CLOSING",*/ { 0x43, 0x4c, 0x4f, 0x53, 0x49, 0x4e, 0x47, 0 };
|
||||
static const char time_wait[] = /* "TIME-WAIT,"*/ { 0x54, 0x49, 0x4d, 0x45, 0x2d, 0x57, 0x41, 0x49, 0x54, 0 };
|
||||
static const char last_ack[] = /* "LAST-ACK"*/ { 0x4c, 0x41, 0x53, 0x54, 0x2d, 0x41, 0x43, 0x4b, 0 };
|
||||
|
||||
static const char *states[] = { closed, syn_rcvd, syn_sent, established, fin_wait_1, fin_wait_2, closing, time_wait, last_ack };
|
||||
|
||||
static unsigned short generate_tcp_stats( void *arg )
|
||||
{
|
||||
struct uip_conn *conn;
|
||||
struct httpd_state *s = ( struct httpd_state * ) arg;
|
||||
|
||||
conn = &uip_conns[s->count];
|
||||
return sprintf( ( char * ) uip_appdata,
|
||||
"<tr><td>%d</td><td>%u.%u.%u.%u:%u</td><td>%s</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n", htons(conn->lport),
|
||||
htons(conn->ripaddr.u16[0]) >> 8, htons(conn->ripaddr.u16[0]) & 0xff, htons(conn->ripaddr.u16[1]) >> 8,
|
||||
htons(conn->ripaddr.u16[1]) & 0xff, htons(conn->rport), states[conn->tcpstateflags & UIP_TS_MASK], conn->nrtx, conn->timer,
|
||||
(uip_outstanding(conn)) ? '*' : ' ', (uip_stopped(conn)) ? '!' : ' ' );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static PT_THREAD( tcp_stats ( struct httpd_state *s, char *ptr ) )
|
||||
{
|
||||
PSOCK_BEGIN( &s->sout );
|
||||
( void ) ptr;
|
||||
for( s->count = 0; s->count < UIP_CONNS; ++s->count )
|
||||
{
|
||||
if( (uip_conns[s->count].tcpstateflags & UIP_TS_MASK) != UIP_CLOSED )
|
||||
{
|
||||
PSOCK_GENERATOR_SEND( &s->sout, generate_tcp_stats, s );
|
||||
}
|
||||
}
|
||||
|
||||
PSOCK_END( &s->sout );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static unsigned short generate_net_stats( void *arg )
|
||||
{
|
||||
struct httpd_state *s = ( struct httpd_state * ) arg;
|
||||
return sprintf( ( char * ) uip_appdata, "%5u\n", (( uip_stats_t * ) &uip_stat)[s->count] );
|
||||
}
|
||||
|
||||
static PT_THREAD( net_stats ( struct httpd_state *s, char *ptr ) )
|
||||
{
|
||||
PSOCK_BEGIN( &s->sout );
|
||||
( void ) ptr;
|
||||
#if UIP_STATISTICS
|
||||
for( s->count = 0; s->count < sizeof(uip_stat) / sizeof(uip_stats_t); ++s->count )
|
||||
{
|
||||
PSOCK_GENERATOR_SEND( &s->sout, generate_net_stats, s );
|
||||
}
|
||||
|
||||
#endif /* UIP_STATISTICS */
|
||||
|
||||
PSOCK_END( &s->sout );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
extern void vTaskList( signed char *pcWriteBuffer );
|
||||
extern char *pcGetTaskStatusMessage( void );
|
||||
static char cCountBuf[128];
|
||||
long lRefreshCount = 0;
|
||||
static unsigned short generate_rtos_stats( void *arg )
|
||||
{
|
||||
( void ) arg;
|
||||
lRefreshCount++;
|
||||
sprintf( cCountBuf, "<p><br>Refresh count = %d<p><br>%s", ( int ) lRefreshCount, pcGetTaskStatusMessage() );
|
||||
vTaskList( uip_appdata );
|
||||
strcat( uip_appdata, cCountBuf );
|
||||
|
||||
return strlen( uip_appdata );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static PT_THREAD( rtos_stats ( struct httpd_state *s, char *ptr ) )
|
||||
{
|
||||
PSOCK_BEGIN( &s->sout );
|
||||
( void ) ptr;
|
||||
PSOCK_GENERATOR_SEND( &s->sout, generate_rtos_stats, NULL );
|
||||
PSOCK_END( &s->sout );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
char *pcStatus;
|
||||
unsigned long ulString;
|
||||
|
||||
static unsigned short generate_io_state( void *arg )
|
||||
{
|
||||
extern long lParTestGetLEDState( void );
|
||||
( void ) arg;
|
||||
|
||||
/* Get the state of the LEDs that are on the FIO1 port. */
|
||||
if( lParTestGetLEDState() )
|
||||
{
|
||||
pcStatus = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
pcStatus = "checked";
|
||||
}
|
||||
|
||||
sprintf( uip_appdata, "<input type=\"checkbox\" name=\"LED0\" value=\"1\" %s>LED<p><p>", pcStatus );
|
||||
|
||||
return strlen( uip_appdata );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
extern void vTaskGetRunTimeStats( signed char *pcWriteBuffer );
|
||||
static unsigned short generate_runtime_stats( void *arg )
|
||||
{
|
||||
( void ) arg;
|
||||
lRefreshCount++;
|
||||
sprintf( cCountBuf, "<p><br>Refresh count = %d", ( int ) lRefreshCount );
|
||||
vTaskGetRunTimeStats( uip_appdata );
|
||||
strcat( uip_appdata, cCountBuf );
|
||||
|
||||
return strlen( uip_appdata );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static PT_THREAD( run_time ( struct httpd_state *s, char *ptr ) )
|
||||
{
|
||||
PSOCK_BEGIN( &s->sout );
|
||||
( void ) ptr;
|
||||
PSOCK_GENERATOR_SEND( &s->sout, generate_runtime_stats, NULL );
|
||||
PSOCK_END( &s->sout );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static PT_THREAD( led_io ( struct httpd_state *s, char *ptr ) )
|
||||
{
|
||||
PSOCK_BEGIN( &s->sout );
|
||||
( void ) ptr;
|
||||
PSOCK_GENERATOR_SEND( &s->sout, generate_io_state, NULL );
|
||||
PSOCK_END( &s->sout );
|
||||
}
|
||||
|
||||
/** @} */
|
|
@ -0,0 +1,8 @@
|
|||
<html>
|
||||
<body bgcolor="white">
|
||||
<center>
|
||||
<h1>404 - file not found</h1>
|
||||
<h3>Go <a href="/">here</a> instead.</h3>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>FreeRTOS.org uIP WEB server demo</title>
|
||||
</head>
|
||||
<BODY onLoad="window.setTimeout("location.href='index.shtml'",100)">
|
||||
<font face="arial">
|
||||
Loading index.shtml. Click <a href="index.shtml">here</a> if not automatically redirected.
|
||||
</font>
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>FreeRTOS.org uIP WEB server demo</title>
|
||||
</head>
|
||||
<BODY onLoad="window.setTimeout("location.href='index.shtml'",2000)">
|
||||
<font face="arial">
|
||||
<a href="index.shtml">Task Stats</a> <b>|</b> <a href="runtime.shtml">Run Time Stats</a> <b>|</b> <a href="stats.shtml">TCP Stats</a> <b>|</b> <a href="tcp.shtml">Connections</a> <b>|</b> <a href="http://www.freertos.org/">FreeRTOS Homepage</a> <b>|</b> <a href="io.shtml">IO</a> <b>|</b> <a href="logo.jpg">37K jpg</a>
|
||||
<br><p>
|
||||
<hr>
|
||||
<br><p>
|
||||
<h2>Task statistics</h2>
|
||||
Page will refresh every 2 seconds.<p>
|
||||
<font face="courier"><pre>Task State Priority Stack #<br>************************************************<br>
|
||||
%! rtos-stats
|
||||
</pre></font>
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>FreeRTOS.org uIP WEB server demo</title>
|
||||
</head>
|
||||
<BODY>
|
||||
<font face="arial">
|
||||
<a href="index.shtml">Task Stats</a> <b>|</b> <a href="runtime.shtml">Run Time Stats</a> <b>|</b> <a href="stats.shtml">TCP Stats</a> <b>|</b> <a href="tcp.shtml">Connections</a> <b>|</b> <a href="http://www.freertos.org/">FreeRTOS Homepage</a> <b>|</b> <a href="io.shtml">IO</a> <b>|</b> <a href="logo.jpg">37K jpg</a>
|
||||
<br><p>
|
||||
<hr>
|
||||
<b>LED and LCD IO</b><br>
|
||||
|
||||
<p>
|
||||
|
||||
Use the check box to turn on or off LED 4, then click "Update IO".
|
||||
|
||||
|
||||
<p>
|
||||
<form name="aForm" action="/io.shtml" method="get">
|
||||
%! led-io
|
||||
<p>
|
||||
<input type="submit" value="Update IO">
|
||||
</form>
|
||||
<br><p>
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>FreeRTOS.org uIP WEB server demo</title>
|
||||
</head>
|
||||
<BODY onLoad="window.setTimeout("location.href='runtime.shtml'",2000)">
|
||||
<font face="arial">
|
||||
<a href="index.shtml">Task Stats</a> <b>|</b> <a href="runtime.shtml">Run Time Stats</a> <b>|</b> <a href="stats.shtml">TCP Stats</a> <b>|</b> <a href="tcp.shtml">Connections</a> <b>|</b> <a href="http://www.freertos.org/">FreeRTOS Homepage</a> <b>|</b> <a href="io.shtml">IO</a> <b>|</b> <a href="logo.jpg">37K jpg</a>
|
||||
<br><p>
|
||||
<hr>
|
||||
<br><p>
|
||||
<h2>Run-time statistics</h2>
|
||||
Page will refresh every 2 seconds.<p>
|
||||
<font face="courier"><pre>Task Abs Time % Time<br>****************************************<br>
|
||||
%! run-time
|
||||
</pre></font>
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>FreeRTOS.org uIP WEB server demo</title>
|
||||
</head>
|
||||
<BODY>
|
||||
<font face="arial">
|
||||
<a href="index.shtml">Task Stats</a> <b>|</b> <a href="runtime.shtml">Run Time Stats</a> <b>|</b> <a href="stats.shtml">TCP Stats</a> <b>|</b> <a href="tcp.shtml">Connections</a> <b>|</b> <a href="http://www.freertos.org/">FreeRTOS Homepage</a> <b>|</b> <a href="io.shtml">IO</a> <b>|</b> <a href="logo.jpg">37K jpg</a>
|
||||
<br><p>
|
||||
<hr>
|
||||
<br><p>
|
||||
<h2>Network statistics</h2>
|
||||
<table width="300" border="0">
|
||||
<tr><td align="left"><font face="courier"><pre>
|
||||
IP Packets received
|
||||
Packets sent
|
||||
Forwaded
|
||||
Dropped
|
||||
IP errors IP version/header length
|
||||
IP length, high byte
|
||||
IP length, low byte
|
||||
IP fragments
|
||||
Header checksum
|
||||
Wrong protocol
|
||||
ICMP Packets received
|
||||
Packets sent
|
||||
Packets dropped
|
||||
Type errors
|
||||
Checksum errors
|
||||
TCP Packets received
|
||||
Packets sent
|
||||
Packets dropped
|
||||
Checksum errors
|
||||
Data packets without ACKs
|
||||
Resets
|
||||
Retransmissionsa
|
||||
Syn to closed port
|
||||
UDP Packets dropped
|
||||
Packets received
|
||||
Packets sent
|
||||
Packets chkerr
|
||||
No connection avaliable
|
||||
</pre></font></td><td><font face="courier"><pre>%! net-stats
|
||||
</pre></font></td></table>
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>FreeRTOS.org uIP WEB server demo</title>
|
||||
</head>
|
||||
<BODY>
|
||||
<font face="arial">
|
||||
<a href="index.shtml">Task Stats</a> <b>|</b> <a href="runtime.shtml">Run Time Stats</a> <b>|</b> <a href="stats.shtml">TCP Stats</a> <b>|</b> <a href="tcp.shtml">Connections</a> <b>|</b> <a href="http://www.freertos.org/">FreeRTOS Homepage</a> <b>|</b> <a href="io.shtml">IO</a> <b>|</b> <a href="logo.jpg">37K jpg</a>
|
||||
<br><p>
|
||||
<hr>
|
||||
<br>
|
||||
<h2>Network connections</h2>
|
||||
<p>
|
||||
<table>
|
||||
<tr><th>Local</th><th>Remote</th><th>State</th><th>Retransmissions</th><th>Timer</th><th>Flags</th></tr>
|
||||
%! tcp-connections
|
||||
</pre></font>
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,78 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
open(OUTPUT, "> httpd-fsdata.c");
|
||||
|
||||
chdir("httpd-fs");
|
||||
|
||||
opendir(DIR, ".");
|
||||
@files = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);
|
||||
closedir(DIR);
|
||||
|
||||
foreach $file (@files) {
|
||||
|
||||
if(-d $file && $file !~ /^\./) {
|
||||
print "Processing directory $file\n";
|
||||
opendir(DIR, $file);
|
||||
@newfiles = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);
|
||||
closedir(DIR);
|
||||
printf "Adding files @newfiles\n";
|
||||
@files = (@files, map { $_ = "$file/$_" } @newfiles);
|
||||
next;
|
||||
}
|
||||
}
|
||||
|
||||
foreach $file (@files) {
|
||||
if(-f $file) {
|
||||
|
||||
print "Adding file $file\n";
|
||||
|
||||
open(FILE, $file) || die "Could not open file $file\n";
|
||||
|
||||
$file =~ s-^-/-;
|
||||
$fvar = $file;
|
||||
$fvar =~ s-/-_-g;
|
||||
$fvar =~ s-\.-_-g;
|
||||
# for AVR, add PROGMEM here
|
||||
print(OUTPUT "static const unsigned char data".$fvar."[] = {\n");
|
||||
print(OUTPUT "\t/* $file */\n\t");
|
||||
for($j = 0; $j < length($file); $j++) {
|
||||
printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));
|
||||
}
|
||||
printf(OUTPUT "0,\n");
|
||||
|
||||
|
||||
$i = 0;
|
||||
while(read(FILE, $data, 1)) {
|
||||
if($i == 0) {
|
||||
print(OUTPUT "\t");
|
||||
}
|
||||
printf(OUTPUT "%#02x, ", unpack("C", $data));
|
||||
$i++;
|
||||
if($i == 10) {
|
||||
print(OUTPUT "\n");
|
||||
$i = 0;
|
||||
}
|
||||
}
|
||||
print(OUTPUT "0};\n\n");
|
||||
close(FILE);
|
||||
push(@fvars, $fvar);
|
||||
push(@pfiles, $file);
|
||||
}
|
||||
}
|
||||
|
||||
for($i = 0; $i < @fvars; $i++) {
|
||||
$file = $pfiles[$i];
|
||||
$fvar = $fvars[$i];
|
||||
|
||||
if($i == 0) {
|
||||
$prevfile = "NULL";
|
||||
} else {
|
||||
$prevfile = "file" . $fvars[$i - 1];
|
||||
}
|
||||
print(OUTPUT "const struct httpd_fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");
|
||||
print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");
|
||||
print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");
|
||||
}
|
||||
|
||||
print(OUTPUT "#define HTTPD_FS_ROOT file$fvars[$i - 1]\n\n");
|
||||
print(OUTPUT "#define HTTPD_FS_NUMFILES $i\n");
|
|
@ -0,0 +1,163 @@
|
|||
/**
|
||||
* \addtogroup uipopt
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* \name Project-specific configuration options
|
||||
* @{
|
||||
*
|
||||
* uIP has a number of configuration options that can be overridden
|
||||
* for each project. These are kept in a project-specific uip-conf.h
|
||||
* file and all configuration names have the prefix UIP_CONF.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2006, Swedish Institute of Computer Science.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the uIP TCP/IP stack
|
||||
*
|
||||
* $Id: uip-conf.h,v 1.6 2006/06/12 08:00:31 adam Exp $
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* An example uIP configuration file
|
||||
* \author
|
||||
* Adam Dunkels <adam@sics.se>
|
||||
*/
|
||||
|
||||
#ifndef __UIP_CONF_H__
|
||||
#define __UIP_CONF_H__
|
||||
|
||||
#define UIP_CONF_EXTERNAL_BUFFER
|
||||
#define UIP_CONF_PROCESS_HTTPD_FORMS 1
|
||||
|
||||
/**
|
||||
* 8 bit datatype
|
||||
*
|
||||
* This typedef defines the 8-bit type used throughout uIP.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
typedef unsigned char u8_t;
|
||||
|
||||
/**
|
||||
* 16 bit datatype
|
||||
*
|
||||
* This typedef defines the 16-bit type used throughout uIP.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
typedef unsigned short u16_t;
|
||||
|
||||
typedef unsigned long u32_t;
|
||||
|
||||
/**
|
||||
* Statistics datatype
|
||||
*
|
||||
* This typedef defines the dataype used for keeping statistics in
|
||||
* uIP.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
typedef unsigned short uip_stats_t;
|
||||
|
||||
/**
|
||||
* Maximum number of TCP connections.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_MAX_CONNECTIONS 40
|
||||
|
||||
/**
|
||||
* Maximum number of listening TCP ports.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_MAX_LISTENPORTS 40
|
||||
|
||||
/**
|
||||
* uIP buffer size.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_BUFFER_SIZE 1480
|
||||
|
||||
/**
|
||||
* CPU byte order.
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_BYTE_ORDER UIP_BIG_ENDIAN
|
||||
|
||||
/**
|
||||
* Logging on or off
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_LOGGING 0
|
||||
|
||||
/**
|
||||
* UDP support on or off
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_UDP 0
|
||||
|
||||
/**
|
||||
* UDP checksums on or off
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_UDP_CHECKSUMS 1
|
||||
|
||||
/**
|
||||
* uIP statistics on or off
|
||||
*
|
||||
* \hideinitializer
|
||||
*/
|
||||
#define UIP_CONF_STATISTICS 1
|
||||
|
||||
/* Here we include the header file for the application(s) we use in
|
||||
our project. */
|
||||
/*#include "smtp.h"*/
|
||||
/*#include "hello-world.h"*/
|
||||
/*#include "telnetd.h"*/
|
||||
#include "webserver.h"
|
||||
/*#include "dhcpc.h"*/
|
||||
/*#include "resolv.h"*/
|
||||
/*#include "webclient.h"*/
|
||||
|
||||
#define CCIF
|
||||
#define CC_REGISTER_ARG
|
||||
|
||||
#endif /* __UIP_CONF_H__ */
|
||||
|
||||
/** @} */
|
||||
/** @} */
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Copyright (c) 2002, Adam Dunkels.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior
|
||||
* written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the uIP TCP/IP stack
|
||||
*
|
||||
* $Id: webserver.h,v 1.2 2006/06/11 21:46:38 adam Exp $
|
||||
*
|
||||
*/
|
||||
#ifndef __WEBSERVER_H__
|
||||
#define __WEBSERVER_H__
|
||||
|
||||
#include "apps/httpd/httpd.h"
|
||||
|
||||
typedef struct httpd_state uip_tcp_appstate_t;
|
||||
/* UIP_APPCALL: the name of the application function. This function
|
||||
must return void and take no arguments (i.e., C type "void
|
||||
appfunc(void)"). */
|
||||
#define UIP_APPCALL httpd_appcall
|
||||
|
||||
|
||||
#endif /* __WEBSERVER_H__ */
|
Loading…
Add table
Add a link
Reference in a new issue