Add FreeRTOS-Plus directory.

This commit is contained in:
Richard Barry 2012-08-11 21:34:11 +00:00
parent 7bd5f21ad5
commit f508a5f653
6798 changed files with 134949 additions and 19 deletions

View file

@ -0,0 +1,146 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=0
Virtual CPU File=wv907e4.dll
Core ID=0
Monitor Load=1
Monitor Load Condition=Enable
Mode=FFFFFFFF
[Device]
Communication=RS COM1 115200
ProductID=0
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=
Non AutoMap=Disable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=0 0 0 0
AssemblyState=0
AssemblyFGColor=0 0 255
RegisterSize=0 0 0 0
RegisterState=0
MemorySize=0 0 0 0
MemoryState=0
CommandSize=0 0 0 0
CommandState=0
Assembly Address=H'000000
Memory Address=H'000000
Memory Mode=H'FFFFFFFF
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
Coverage Address=H'000000
Coverage Type=H'00000000
Coverage SplitRow=0
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
Undef=On
Inrom Access=Off
Inrom=Off
Inrom Image=On
Area0=00000180 0000037F 7 1 0
Area1=00002240 00007FFF 7 1 0
Area2=00000000 000000EF 3 1 0
Area3=00000100 0000017F 3 1 0
Area4=00000380 00000BFF 3 1 0
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=0
[Break Environment]
Flag=Enable
[Emulation Environment]
Flag=Enable
RunMode=0
Verify=1
EventMode=0
Limit Volt MB2198=5.75 2.5
WatchDoc=0
Resource=0
External Pin=0
DefaultBreak=0
DebugArea1=105 34A066E 49356 1234724 0
DebugArea2=0 326508 13702376 1237400 0
ParallelPort=-1 0
Performance Break=2
Coverage Status=0
Frequency=40
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=1000
Receive=800
[Trace Environment]
Trace Break=0
Trace Status=1
Trace StartPosition=1
Trace BufferfulStop=0
Trace Instruction=1
Trace Verbose=0
Trace DataArea1=1 00000000 FFFFFFFF 7
Trace DataArea2=2 00000000 FFFFFFFF 0

View file

@ -0,0 +1,146 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=0
Virtual CPU File=wv907e4.dll
Core ID=0
Monitor Load=1
Monitor Load Condition=Enable
Mode=FFFFFFFF
[Device]
Communication=RS COM2 115200
ProductID=2002
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=
Non AutoMap=Disable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=0 0 0 0
AssemblyState=0
AssemblyFGColor=0 0 255
RegisterSize=0 0 0 0
RegisterState=0
MemorySize=0 0 0 0
MemoryState=0
CommandSize=0 0 0 0
CommandState=0
Assembly Address=H'000000
Memory Address=H'000000
Memory Mode=H'FFFFFFFF
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
Coverage Address=H'000000
Coverage Type=H'00000000
Coverage SplitRow=0
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
Undef=On
Inrom Access=Off
Inrom=Off
Inrom Image=On
Area0=00000180 0000037F 7 1 0
Area1=00002240 00007FFF 7 1 0
Area2=00000000 000000EF 3 1 0
Area3=00000100 0000017F 3 1 0
Area4=00000380 00000BFF 3 1 0
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=0
[Break Environment]
Flag=Enable
[Emulation Environment]
Flag=Enable
RunMode=0
Verify=1
EventMode=0
Limit Volt MB2198=5.75 2.5
WatchDoc=0
Resource=0
External Pin=0
DefaultBreak=0
DebugArea1=105 34A0671 49356 1234724 0
DebugArea2=0 326358 13702376 1237400 0
ParallelPort=-1 0
Performance Break=2
Coverage Status=0
Frequency=40
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=1000
Receive=800
[Trace Environment]
Trace Break=0
Trace Status=1
Trace StartPosition=1
Trace BufferfulStop=0
Trace Instruction=1
Trace Verbose=0
Trace DataArea1=1 00000000 FFFFFFFF 7
Trace DataArea2=2 00000000 FFFFFFFF 0

View file

@ -0,0 +1,46 @@
[Information]
DebChangeFlag=1
MCUChangeFlag=1
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=0
Virtual CPU File=wv907e4.dll
Core ID=0
Monitor Load=1
Monitor Load Condition=Enable
ChangeFlag=Enable
[Device]
Communication=LAN 127.0.0.1
ProductID=0
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=
[Start]
Batch File=
[Window]
Flag=Enable
[Path Environment]
Flag=Enable
[Map]
Flag=Enable
[Radix Environment]
Flag=Enable
[Watch Environment]
Flag=Enable
[Exec Environment]
Flag=Enable
[Break Environment]
Flag=Enable
[Emulation Environment]
Flag=Enable
[Monitor Environment]
Flag=Enable
[Error]
Flag=Enable
[Color]
Flag=Enable

View file

@ -0,0 +1,146 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=0
Virtual CPU File=wv907e4.dll
Core ID=0
Monitor Load=1
Monitor Load Condition=Enable
Mode=FFFFFFFF
[Device]
Communication=USB
ProductID=2002
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=
Non AutoMap=Disable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=0 0 420 240
AssemblyState=0
AssemblyFGColor=0 0 255
RegisterSize=0 0 0 0
RegisterState=0
MemorySize=0 0 0 0
MemoryState=0
CommandSize=0 0 0 0
CommandState=0
Assembly Address=H'0FFC00
Memory Address=H'000000
Memory Mode=H'FFFFFFFF
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
Coverage Address=H'000000
Coverage Type=H'00000000
Coverage SplitRow=0
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
Undef=On
Inrom Access=Off
Inrom=Off
Inrom Image=On
Area0=00000180 0000037F 7 1 0
Area1=00002240 00007FFF 7 1 0
Area2=00000000 000000EF 3 1 0
Area3=00000100 0000017F 3 1 0
Area4=00000380 00000BFF 3 1 0
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=0
[Break Environment]
Flag=Enable
[Emulation Environment]
Flag=Enable
RunMode=0
Verify=1
EventMode=0
Limit Volt MB2198=5.75 2.5
WatchDoc=0
Resource=0
External Pin=0
DefaultBreak=0
DebugArea1=105 33A066B 49356 1234724 0
DebugArea2=0 325A58 13702376 1237400 0
ParallelPort=-1 0
Performance Break=2
Coverage Status=0
Frequency=40
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=63992
Receive=32000
[Trace Environment]
Trace Break=0
Trace Status=1
Trace StartPosition=1
Trace BufferfulStop=0
Trace Instruction=1
Trace Verbose=0
Trace DataArea1=1 00000000 FFFFFFFF 7
Trace DataArea2=2 00000000 FFFFFFFF 0

View file

@ -0,0 +1,257 @@
/*
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.
*/
/*
* Defines the 'dice' tasks as described at the top of main.c
*/
/* Kernel includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "semphr.h"
/* Delays used within the dice functionality. All delays are defined in milliseconds. */
#define diceDELAY_BETWEEN_RANDOM_NUMBERS_ms ( 20 / portTICK_RATE_MS )
#define diceSHAKE_TIME ( ( 2000 / portTICK_RATE_MS ) / diceDELAY_BETWEEN_RANDOM_NUMBERS_ms )
#define diceSHORT_PAUSE_BEFORE_SHAKE ( 250 / portTICK_RATE_MS )
#define diceDELAY_WHILE_DISPLAYING_RESULT ( 5000 / portTICK_RATE_MS )
/* Macro to access the display ports. */
#define dice7SEG_Value( x ) ( *( pucDisplayOutput[ x ] ) )
/* Checks the semaphore use to communicate button push events. A block time
can be specified - this is the time to wait for a button push to occur should
one have not already occurred. */
#define prvButtonHit( ucIndex, xTicksToWait ) xSemaphoreTake( xSemaphores[ ucIndex ], xTicksToWait )
/* Defines the outputs required for each digit on the display. */
static const char cDisplaySegments[ 2 ][ 11 ] =
{
{ 0x48, 0xeb, 0x8c, 0x89, 0x2b, 0x19, 0x18, 0xcb, 0x08, 0x09, 0xf7 }, /* Left display. */
{ 0xa0, 0xf3, 0xc4, 0xc1, 0x93, 0x89, 0x88, 0xe3, 0x80, 0x81, 0x7f } /* Right display. */
};
/* The semaphores used to communicate button push events between the button
input interrupt handlers and the dice tasks. Two dice tasks are created so two
semaphores are required. */
static xSemaphoreHandle xSemaphores[ 2 ] = { 0 };
/* Defines the ports used to write to the display. This variable is defined in
partest.c, which contains the LED set/clear/toggle functions. */
extern volatile unsigned char *pucDisplayOutput[ 2 ];
/*-----------------------------------------------------------*/
/*
* Defines the 'dice' tasks as described at the top of main.c
*/
void vDiceTask( void *pvParameters )
{
unsigned char ucDiceValue, ucIndex;
unsigned long ulDiceRunTime;
extern void vSuspendFlashTasks( unsigned char ucIndex, short sSuspendTasks );
/* Two instances of this task are created so the task parameter is used
to pass in a constant that indicates whether this task is controlling
the left side or right side display. The constant is used as an index
into the arrays defined at file scope within this file. */
ucIndex = ( unsigned char ) pvParameters;
/* A binary semaphore is used to signal button push events. Create the
semaphore before it is used. */
vSemaphoreCreateBinary( xSemaphores[ ucIndex ] );
/* Make sure the semaphore starts in the wanted state - no button pushes
pending. This call will just clear any button pushes that are latched.
Passing in 0 as the block time means the call will not wait for any further
button pushes but instead return immediately. */
prvButtonHit( ucIndex, 0 );
/* Seed the random number generator. */
srand( ( unsigned char ) diceSHAKE_TIME );
/* Start the task proper. A loop will be performed each time a button is
pushed. The task will remain in the blocked state (sleeping) until a
button is pushed. */
for( ;; )
{
/* Wait for a button push. This task will enter the Blocked state
(will not run again) until after a button has been pushed. */
prvButtonHit( ucIndex, portMAX_DELAY );
/* The next line will only execute after a button has been pushed -
initialise the variable used to control the time the dice is shaken
for. */
ulDiceRunTime = diceSHAKE_TIME;
/* Suspend the flash tasks so this task has exclusive access to the
display. */
vSuspendFlashTasks( ucIndex, pdTRUE );
/* Clear the display and pause for a short time, before starting to
shake. */
*pucDisplayOutput[ ucIndex ] = 0xff;
vTaskDelay( diceSHORT_PAUSE_BEFORE_SHAKE );
/* Keep generating and displaying random numbers until the shake time
expires. */
while( ulDiceRunTime > 0 )
{
ulDiceRunTime--;
/* Generate and display a random number. */
ucDiceValue = rand() % 6 + 1;
dice7SEG_Value( ucIndex ) = ( dice7SEG_Value( ucIndex ) | 0xf7 ) & cDisplaySegments[ ucIndex ][ ucDiceValue ];
/* Block/sleep for a very short time before generating the next
random number. */
vTaskDelay( diceDELAY_BETWEEN_RANDOM_NUMBERS_ms );
}
/* Clear any button pushes that are pending because a button bounced, or
was pressed while the dice were shaking. Again a block time of zero is
used so the function does not wait for any pushes but instead returns
immediately. */
prvButtonHit( ucIndex, 0 );
/* Delay for a short while to display the dice shake result. Use a queue
peek here instead of a vTaskDelay() allows the delay to be interrupted by
a button push. If a button is pressed xQueuePeek() will return but the
button push will remain pending to be read again at the top of this for
loop. It is safe to uses a queue function on a semaphore handle as
semaphores are implemented as macros that uses queues, so the two are
basically the same thing. */
xQueuePeek( xSemaphores[ ucIndex ], NULL, diceDELAY_WHILE_DISPLAYING_RESULT );
/* Clear the display then resume the tasks or co-routines that were using
the segments of the display. */
*pucDisplayOutput[ ucIndex ] = 0xff;
vSuspendFlashTasks( ucIndex, pdFALSE );
}
}
/*-----------------------------------------------------------*/
/* Handler for the SW2 button push interrupt. */
__interrupt void vExternalInt8Handler( void )
{
short sHigherPriorityTaskWoken = pdFALSE;
/* Reset the interrupt. */
EIRR1_ER8 = 0;
/* Check the semaphore has been created before attempting to use it. */
if( xSemaphores[ configLEFT_DISPLAY ] != NULL )
{
/* Send a message via the semaphore to the dice task that controls the
left side display. This will unblock the task if it is blocked waiting
for a button push. */
xSemaphoreGiveFromISR( xSemaphores[ configLEFT_DISPLAY ], &sHigherPriorityTaskWoken );
}
/* If sending the semaphore unblocked a task, and the unblocked task has a
priority that is higher than the currently running task, then force a context
switch. */
if( sHigherPriorityTaskWoken != pdFALSE )
{
portYIELD_FROM_ISR();
}
}
/*-----------------------------------------------------------*/
/* As per vExternalInt8Handler(), but for SW3 and the right side display. */
__interrupt void vExternalInt9Handler( void )
{
short sHigherPriorityTaskWoken = pdFALSE;
/* Reset the interrupt. */
EIRR1_ER9 = 0;
if( xSemaphores[ configRIGHT_DISPLAY ] != NULL )
{
xSemaphoreGiveFromISR( xSemaphores[ configRIGHT_DISPLAY ], &sHigherPriorityTaskWoken );
}
if( sHigherPriorityTaskWoken != pdFALSE )
{
portYIELD_FROM_ISR();
}
}

View file

@ -0,0 +1,74 @@
/*
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.
*/
#ifndef DICE_TASK_H
#define DICE_TASK_H
void vDiceTask( void *pvParameters );
#endif

View file

@ -0,0 +1,140 @@
/*
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.
*/
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
#include "mb96356rs.h"
/*
* The below define should be same as the option selected by the Memory
* Model (Project->Setup Project->C Compiler->Category->Target Depend )
*
* Valid settings here include:
* ------- Memory models --------- Data Code
* portSMALL 16 Bit 16 Bit
* portMEDIUM 16 Bit 24 Bit
* portCOMPACT 24 Bit 16 Bit
* portLARGE 24 Bit 24 Bit
*/
#define configMEMMODEL portMEDIUM
/* Demo specific definition - set this to 1 if you want to include the task
that writes trace and debug information to the UART. If it is set to 0 then
the ComTest tasks will be included in place of the trace task. */
#define INCLUDE_TraceListTasks 0
/*-----------------------------------------------------------
* 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.
*----------------------------------------------------------*/
#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 180 ) /* This can be greatly reduced when using the small or medium memory model. */
#define configCPU_CLOCK_HZ ( ( unsigned long ) 56000000 ) /* Clock setup from start.asm in the demo application. */
#define configCLKP1_CLOCK_HZ ( ( unsigned long ) 56000000 ) /* Clock setup from start.asm in the demo application. */
#define configTICK_RATE_HZ ( (portTickType) 1000 )
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 6 )
#define configTOTAL_HEAP_SIZE ( (size_t) (5000) )
#define configMAX_TASK_NAME_LEN ( 20 )
#define configUSE_16_BIT_TICKS 1
#define configIDLE_SHOULD_YIELD 1
#define configUSE_MUTEXES 1
#define configUSE_TRACE_FACILITY 0
#define configCHECK_FOR_STACK_OVERFLOW 0
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 1
#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 0
#define INCLUDE_uxTaskPriorityGet 0
#define INCLUDE_vTaskDelete 0
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_vResumeFromISR 0
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_xTaskGetSchedulerState 0
#define INCLUDE_xTaskGetCurrentTaskHandle 0
#define configKERNEL_INTERRUPT_PRIORITY 6
/* Passed into the Dice tasks to let then know if they are controlling the
display on the left side or the right side. */
#define configLEFT_DISPLAY 0
#define configRIGHT_DISPLAY 1
#endif /* FREERTOS_CONFIG_H */

View file

@ -0,0 +1,13 @@
-g
-w 2
-linf ON
-lsrc ON
-lsec ON
-lcros OFF
-linc ON
-lexp OBJ
-pl 60
-pw 100
-tab 8
-cwno
-cpu MB96F356RSA

View file

@ -0,0 +1,22 @@
-dt s,d,r,a
-pl 60
-pw 132
-g
-cwno
-cpu MB96F356RSA
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\ABS\RTOSDemo.abs"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\vectors.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\main.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\mb96356rs.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\START.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\tasks.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\list.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\queue.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\port.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\__STD_LIB_sbrk.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\heap_1.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\croutine.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\DiceTask.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\ParTest.obj"
-a "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\SegmentToggleTasks.obj"

View file

@ -0,0 +1,17 @@
-g
-w 3
-INF LIST
-D _16FX_SOFTUNE
-I "."
-I "..\Common\Include"
-I "..\..\Source\Include"
-O 1
-model MEDIUM
-B
-K NOEOPT
-K NOLIB
-K NOUNROLL
-c
-cwno
-cpu MB96F356RSA
-INF srcin

View file

@ -0,0 +1,40 @@
-g
-AL 2
-ra _INRAM01=0x005240/0x007FFF
-ro _INROM01=0xFC0000/0xFFFFFF
-ro _INROM02=0xDF0000/0xDF7FFF
-sc CONST/Const/BYTE=0xFF8000
-check_rora
-check_locate
-rg 0
-m "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\LST\RTOSDemo.mp1"
-pl 60
-pw 132
-alin "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\LST"
-alout "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\LST"
-Xals
-Xalr
-na
-NCI0302LIB
-w 2
-cwno
-a
-cpu MB96F356RSA
-Xset_rora
-o "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\ABS\RTOSDemo.abs"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\vectors.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\main.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\mb96356rs.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\START.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\tasks.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\list.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\queue.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\port.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\__STD_LIB_sbrk.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\heap_1.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\croutine.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\DiceTask.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\ParTest.obj"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\OBJ\SegmentToggleTasks.obj"

View file

@ -0,0 +1,3 @@
-cwno
-o "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\ABS\RTOSDemo.mhx"
"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\ABS\RTOSDemo.abs"

View file

@ -0,0 +1,177 @@
/*
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 parallel port IO routines.
*-----------------------------------------------------------*/
/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "task.h"
/* Demo includes. */
#include "partest.h"
#define partstTOTAL_NUM_LEDs 16
#define partstNUM_LEDs_PER_DISPLAY 8
volatile unsigned char *pucDisplayOutput[ 2 ] = { ( unsigned portCHAR * ) 3, ( unsigned portCHAR * ) 5 };
void vParTestInitialise( void )
{
/* In this case all the initialisation is performed in prvSetupHardware()
in main.c. */
}
/*-----------------------------------------------------------*/
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
{
unsigned portBASE_TYPE uxLEDMask = 0x01;
if( uxLED < partstNUM_LEDs_PER_DISPLAY )
{
uxLEDMask <<= uxLED;
taskENTER_CRITICAL();
{
if( xValue )
{
*pucDisplayOutput[ 0 ] &= ~uxLEDMask;
}
else
{
*pucDisplayOutput[ 0 ] |= uxLEDMask;
}
}
taskEXIT_CRITICAL();
}
else if( uxLED < partstTOTAL_NUM_LEDs )
{
uxLED -= partstNUM_LEDs_PER_DISPLAY;
uxLEDMask <<= uxLED;
taskENTER_CRITICAL();
{
if( xValue )
{
*pucDisplayOutput[ 1 ] &= ~uxLEDMask;
}
else
{
*pucDisplayOutput[ 1 ] |= uxLEDMask;
}
}
taskEXIT_CRITICAL();
}
}
/*-----------------------------------------------------------*/
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
{
unsigned portBASE_TYPE uxLEDMask = 0x01;
if( uxLED < partstNUM_LEDs_PER_DISPLAY )
{
uxLEDMask <<= uxLED;
taskENTER_CRITICAL();
{
if( *pucDisplayOutput[ 0 ] & uxLEDMask )
{
*pucDisplayOutput[ 0 ] &= ~uxLEDMask;
}
else
{
*pucDisplayOutput[ 0 ] |= uxLEDMask;
}
}
taskEXIT_CRITICAL();
}
else if( uxLED < partstTOTAL_NUM_LEDs )
{
uxLED -= partstNUM_LEDs_PER_DISPLAY;
uxLEDMask <<= uxLED;
taskENTER_CRITICAL();
{
if( *pucDisplayOutput[ 1 ] & uxLEDMask )
{
*pucDisplayOutput[ 1 ] &= ~uxLEDMask;
}
else
{
*pucDisplayOutput[ 1 ] |= uxLEDMask;
}
}
taskEXIT_CRITICAL();
}
}

View file

@ -0,0 +1,325 @@
# Simulator only:
# Copy ROM-mirror area to bank 0x00
if %EVAL(ROMM_CONFIG & 0x01) == 0x01
set variable ROMM_BANK = %EVAL(ROMM_CONFIG >> 4)
set variable ROMM_SIZE = %EVAL((ROMM_CONFIG >> 1) & 0x03)
print "\n\n>Set ROM-mirror memory map...\n"
if %ROMM_SIZE == 0
set map /read H'00E000..H'00FFFF
if %ROMM_BANK == 0x00
show map
move H'f0e000..H'F0FFFF,H'e000
elseif %ROMM_BANK == 0x01
show map
move H'f1e000..H'F1FFFF,H'e000
elseif %ROMM_BANK == 0x02
show map
move H'f2e000..H'F2FFFF,H'e000
elseif %ROMM_BANK == 0x03
show map
move H'f3e000..H'F3FFFF,H'e000
elseif %ROMM_BANK == 0x04
show map
move H'f4e000..H'F4FFFF,H'e000
elseif %ROMM_BANK == 0x05
show map
move H'f5e000..H'F5FFFF,H'e000
elseif %ROMM_BANK == 0x06
show map
move H'f6e000..H'F6FFFF,H'e000
elseif %ROMM_BANK == 0x07
show map
move H'f7e000..H'F7FFFF,H'e000
elseif %ROMM_BANK == 0x08
show map
move H'f8e000..H'F8FFFF,H'e000
elseif %ROMM_BANK == 0x09
show map
move H'f9e000..H'F9FFFF,H'e000
elseif %ROMM_BANK == 0x0A
show map
move H'fAe000..H'FAFFFF,H'e000
elseif %ROMM_BANK == 0x0B
show map
move H'fBe000..H'FBFFFF,H'e000
elseif %ROMM_BANK == 0x0B
show map
move H'fBe000..H'FBFFFF,H'e000
elseif %ROMM_BANK == 0x0C
show map
move H'fCe000..H'FCFFFF,H'e000
elseif %ROMM_BANK == 0x0D
show map
move H'fde000..H'FDFFFF,H'e000
elseif %ROMM_BANK == 0x0E
show map
move H'fee000..H'FEFFFF,H'e000
elseif %ROMM_BANK == 0x0F
show map
move H'ffe000..H'FFFFFF,H'e000
endif # ROMM_BANK selection
elseif %ROMM_SIZE == 1
set map /read H'00C000..H'00FFFF
if %ROMM_BANK == 0x00
show map
move H'f0c000..H'F0FFFF,H'c000
elseif %ROMM_BANK == 0x01
show map
move H'f1c000..H'F1FFFF,H'c000
elseif %ROMM_BANK == 0x02
show map
move H'f2c000..H'F2FFFF,H'c000
elseif %ROMM_BANK == 0x03
show map
move H'f3c000..H'F3FFFF,H'c000
elseif %ROMM_BANK == 0x04
show map
move H'f4c000..H'F4FFFF,H'c000
elseif %ROMM_BANK == 0x05
show map
move H'f5c000..H'F5FFFF,H'c000
elseif %ROMM_BANK == 0x06
show map
move H'f6c000..H'F6FFFF,H'c000
elseif %ROMM_BANK == 0x07
show map
move H'f7c000..H'F7FFFF,H'c000
elseif %ROMM_BANK == 0x08
show map
move H'f8c000..H'F8FFFF,H'c000
elseif %ROMM_BANK == 0x09
show map
move H'f9c000..H'F9FFFF,H'c000
elseif %ROMM_BANK == 0x0A
show map
move H'fAc000..H'FAFFFF,H'c000
elseif %ROMM_BANK == 0x0B
show map
move H'fBc000..H'FBFFFF,H'c000
elseif %ROMM_BANK == 0x0B
show map
move H'fBc000..H'FBFFFF,H'c000
elseif %ROMM_BANK == 0x0C
show map
move H'fCc000..H'FCFFFF,H'c000
elseif %ROMM_BANK == 0x0D
show map
move H'fdc000..H'FDFFFF,H'c000
elseif %ROMM_BANK == 0x0E
show map
move H'fec000..H'FEFFFF,H'c000
elseif %ROMM_BANK == 0x0F
show map
move H'ffc000..H'FFFFFF,H'c000
endif # ROMM_BANK selection
elseif %ROMM_SIZE == 2
set map /read H'00A000..H'00FFFF
if %ROMM_BANK == 0x00
show map
move H'f0a000..H'F0FFFF,H'a000
elseif %ROMM_BANK == 0x01
show map
move H'f1a000..H'F1FFFF,H'a000
elseif %ROMM_BANK == 0x02
show map
move H'f2a000..H'F2FFFF,H'a000
elseif %ROMM_BANK == 0x03
show map
move H'f3a000..H'F3FFFF,H'a000
elseif %ROMM_BANK == 0x04
show map
move H'f4a000..H'F4FFFF,H'a000
elseif %ROMM_BANK == 0x05
show map
move H'f5a000..H'F5FFFF,H'a000
elseif %ROMM_BANK == 0x06
show map
move H'f6a000..H'F6FFFF,H'a000
elseif %ROMM_BANK == 0x07
show map
move H'f7a000..H'F7FFFF,H'a000
elseif %ROMM_BANK == 0x08
show map
move H'f8a000..H'F8FFFF,H'a000
elseif %ROMM_BANK == 0x09
show map
move H'f9a000..H'F9FFFF,H'a000
elseif %ROMM_BANK == 0x0A
show map
move H'fAa000..H'FAFFFF,H'a000
elseif %ROMM_BANK == 0x0B
show map
move H'fBa000..H'FBFFFF,H'a000
elseif %ROMM_BANK == 0x0B
show map
move H'fBa000..H'FBFFFF,H'a000
elseif %ROMM_BANK == 0x0C
show map
move H'fCa000..H'FCFFFF,H'a000
elseif %ROMM_BANK == 0x0D
show map
move H'fda000..H'FDFFFF,H'a000
elseif %ROMM_BANK == 0x0E
show map
move H'fea000..H'FEFFFF,H'a000
elseif %ROMM_BANK == 0x0F
show map
move H'ffa000..H'FFFFFF,H'a000
endif # ROMM_BANK selection
elseif %ROMM_SIZE == 3
set map /read H'008000..H'00FFFF
if %ROMM_BANK == 0x00
show map
move H'f08000..H'F0FFFF,H'8000
elseif %ROMM_BANK == 0x01
show map
move H'f18000..H'F1FFFF,H'8000
elseif %ROMM_BANK == 0x02
show map
move H'f28000..H'F2FFFF,H'8000
elseif %ROMM_BANK == 0x03
show map
move H'f38000..H'F3FFFF,H'8000
elseif %ROMM_BANK == 0x04
show map
move H'f48000..H'F4FFFF,H'8000
elseif %ROMM_BANK == 0x05
show map
move H'f58000..H'F5FFFF,H'8000
elseif %ROMM_BANK == 0x06
show map
move H'f68000..H'F6FFFF,H'8000
elseif %ROMM_BANK == 0x07
show map
move H'f78000..H'F7FFFF,H'8000
elseif %ROMM_BANK == 0x08
show map
move H'f88000..H'F8FFFF,H'8000
elseif %ROMM_BANK == 0x09
show map
move H'f98000..H'F9FFFF,H'8000
elseif %ROMM_BANK == 0x0A
show map
move H'fA8000..H'FAFFFF,H'8000
elseif %ROMM_BANK == 0x0B
show map
move H'fB8000..H'FBFFFF,H'8000
elseif %ROMM_BANK == 0x0B
show map
move H'fB8000..H'FBFFFF,H'8000
elseif %ROMM_BANK == 0x0C
show map
move H'fC8000..H'FCFFFF,H'8000
elseif %ROMM_BANK == 0x0D
show map
move H'fd8000..H'FDFFFF,H'8000
elseif %ROMM_BANK == 0x0E
show map
move H'fe8000..H'FEFFFF,H'8000
elseif %ROMM_BANK == 0x0F
show map
move H'ff8000..H'FFFFFF,H'8000
endif # ROMM_BANK selection
endif # ROMM_SIZE selection
print ">Copy ROMCONST for simulation..."
print "OK"
print "\n-----------------------------------------------------------"
print "\nUse command \"batch prc\\romconst.prc\" after each download"
print "\n-----------------------------------------------------------"
else
print "\n----------------------"
print "\nROM Mirror disabled!!!"
print "\n----------------------"
endif
print "\n-------------------------------------------------------------------"
print "\nSetting CKMR to 0xF0 to allow for the Clock Wait in that start.asm."
print "\n-------------------------------------------------------------------"
set MEM /byte 0x0403 = 0xF0

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,263 @@
/*
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.
*/
/**
* Defines the tasks and co-routines used to toggle the segments of the two
* seven segment displays, as described at the top of main.c
*/
#include <stdlib.h>
/* Scheduler include files. */
#include "FreeRTOS.h"
#include "task.h"
#include "croutine.h"
/* Demo program include files. */
#include "partest.h"
/*-----------------------------------------------------------*/
/* One task per segment of the left side display. */
#define ledNUM_OF_LED_TASKS ( 7 )
/* Each task toggles at a frequency that is a multiple of 333ms. */
#define ledFLASH_RATE_BASE ( ( portTickType ) 333 )
/* One co-routine per segment of the right hand display. */
#define ledNUM_OF_LED_CO_ROUTINES 7
/* All co-routines run at the same priority. */
#define ledCO_ROUTINE_PRIORITY 0
/*-----------------------------------------------------------*/
/* The task that is created 7 times. */
static void vLEDFlashTask( void *pvParameters );
/* The co-routine that is created 7 times. */
static void prvFixedDelayCoRoutine( xCoRoutineHandle xHandle, unsigned short usIndex );
/* This task is created once, but itself creates 7 co-routines. */
static void vLEDCoRoutineControlTask( void *pvParameters );
/* Handles to each of the 7 tasks. Used so the tasks can be suspended
and resumed. */
static xTaskHandle xFlashTaskHandles[ ledNUM_OF_LED_TASKS ] = { 0 };
/* Handle to the task in which the co-routines run. Used so the
co-routines can be suspended and resumed. */
static xTaskHandle xCoroutineTask;
/*-----------------------------------------------------------*/
/**
* Creates the tasks and co-routines used to toggle the segments of the two
* seven segment displays, as described at the top of main.c
*/
void vCreateFlashTasksAndCoRoutines( void )
{
signed short sLEDTask;
/* Create the tasks that flash segments on the first LED. */
for( sLEDTask = 0; sLEDTask < ledNUM_OF_LED_TASKS; ++sLEDTask )
{
/* Spawn the task. */
xTaskCreate( vLEDFlashTask, ( signed char * ) "LEDt", configMINIMAL_STACK_SIZE, ( void * ) sLEDTask, ( tskIDLE_PRIORITY + 1 ), &( xFlashTaskHandles[ sLEDTask ] ) );
}
/* Create the task in which the co-routines run. The co-routines themselves
are created within the task. */
xTaskCreate( vLEDCoRoutineControlTask, ( signed char * ) "LEDc", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xCoroutineTask );
}
/*-----------------------------------------------------------*/
void vSuspendFlashTasks( unsigned char ucIndex, short sSuspendTasks )
{
short sLEDTask;
if( ucIndex == configLEFT_DISPLAY )
{
/* Suspend or resume the tasks that are toggling the segments of the
left side display. */
for( sLEDTask = 0; sLEDTask < ledNUM_OF_LED_TASKS; ++sLEDTask )
{
if( xFlashTaskHandles[ sLEDTask ] != NULL )
{
if( sSuspendTasks == pdTRUE )
{
vTaskSuspend( xFlashTaskHandles[ sLEDTask ] );
}
else
{
vTaskResume( xFlashTaskHandles[ sLEDTask ] );
}
}
}
}
else
{
/* Suspend or resume the task in which the co-routines are running. The
co-routines toggle the segments of the right side display. */
if( sSuspendTasks == pdTRUE )
{
vTaskSuspend( xCoroutineTask );
}
else
{
vTaskResume( xCoroutineTask );
}
}
}
/*-----------------------------------------------------------*/
static void vLEDFlashTask( void * pvParameters )
{
portTickType xFlashRate, xLastFlashTime;
unsigned short usLED;
/* The LED to flash is passed in as the task parameter. */
usLED = ( unsigned short ) pvParameters;
/* Calculate the rate at which this task is going to toggle its LED. */
xFlashRate = ledFLASH_RATE_BASE + ( ledFLASH_RATE_BASE * ( portTickType ) usLED );
xFlashRate /= portTICK_RATE_MS;
/* We will turn the LED on and off again in the delay period, so each
delay is only half the total period. */
xFlashRate /= ( portTickType ) 2;
/* We need to initialise xLastFlashTime prior to the first call to
vTaskDelayUntil(). */
xLastFlashTime = xTaskGetTickCount();
for(;;)
{
/* Delay for half the flash period then turn the LED on. */
vTaskDelayUntil( &xLastFlashTime, xFlashRate );
vParTestToggleLED( usLED );
/* Delay for half the flash period then turn the LED off. */
vTaskDelayUntil( &xLastFlashTime, xFlashRate );
vParTestToggleLED( usLED );
}
}
/*-----------------------------------------------------------*/
static void vLEDCoRoutineControlTask( void *pvParameters )
{
unsigned short usCoroutine;
( void ) pvParameters;
/* Create the co-routines - one of each segment of the right side display. */
for( usCoroutine = 0; usCoroutine < ledNUM_OF_LED_CO_ROUTINES; usCoroutine++ )
{
xCoRoutineCreate( prvFixedDelayCoRoutine, ledCO_ROUTINE_PRIORITY, usCoroutine );
}
/* This task has nothing else to do except scheduler the co-routines it just
created. */
for( ;; )
{
vCoRoutineSchedule();
}
}
/*-----------------------------------------------------------*/
static void prvFixedDelayCoRoutine( xCoRoutineHandle xHandle, unsigned short usIndex )
{
/* The usIndex parameter of the co-routine function is used as an index into
the xFlashRates array to obtain the delay period to use. */
static const portTickType xFlashRates[ ledNUM_OF_LED_CO_ROUTINES ] = { 150 / portTICK_RATE_MS,
300 / portTICK_RATE_MS,
450 / portTICK_RATE_MS,
600 / portTICK_RATE_MS,
750 / portTICK_RATE_MS,
900 / portTICK_RATE_MS,
1050 / portTICK_RATE_MS };
/* Co-routines MUST start with a call to crSTART. */
crSTART( xHandle );
for( ;; )
{
/* Toggle the LED. An offset of 8 is used to skip over the segments of
the left side display which use the low numbers. */
vParTestToggleLED( usIndex + 8 );
/* Delay until it is time to toggle the segment that this co-routine is
controlling again. */
crDELAY( xHandle, xFlashRates[ usIndex ] );
}
/* Co-routines MUST end with a call to crEND. */
crEND();
}
/*-----------------------------------------------------------*/

View file

@ -0,0 +1,196 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=1
Virtual CPU File=wv907f3.dll
Monitor Load=1
Monitor Load Condition=Disable
Core ID=0
Monitor Combination Version=10100
Mcu Name=MB96F356RSA
Monitor Select Count=0
[Device]
Communication=LAN 141.187.6.53
ProductID=0
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=Prc\romconst.prc
Non AutoMap=Disable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=0 0 420 240
AssemblyState=0
AssemblyFGColor=0 0 255
Assembly Address=H'FC0001
Memory Address=H'FE0000
Memory Mode=H'00000001
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
Coverage Address=H'000000
Coverage Type=H'00000000
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
CommandSize=282 414 875 700
CommandState=0
MemorySize=0 0 420 160
MemoryState=2
Coverage SplitRow=0
RegisterSize=756 3 872 397
RegisterState=0
Register Select0=H'00000000
Register Select1=H'00000003
Register Select2=H'00000004
Register Select3=H'00000005
Register Select4=H'00000006
Register Select5=H'00000007
Register Select6=H'00000008
Register Select7=H'00000010
Register Select8=H'00000011
Register Select9=H'00000012
Register Select10=H'00000013
Register Select11=H'00000014
Register Select12=H'00000015
Register Select13=H'00000016
Register Select14=H'00000017
Register Select15=H'00000018
Register Select16=H'00000022
Register Select17=H'00000023
Register Select18=H'00000024
Register Select19=H'00000025
Register Select20=H'00000026
Register Select21=H'00000027
Register Select22=H'00000028
Register Select23=H'00000029
Register Select24=H'00000035
Memory Line Byte=H'00000000
Assembly Coverage Mode=Disable
Source Coverage Mode=Disable
Abs Coverage Mode=Disable
Abs Sort Mode=H'00000001
Memory Change Color=255 0 0
Memory Mark Color0=192 192 192
Memory Mark Color1=192 0 0
Memory Mark Color2=255 255 0
Memory Mark Color3=0 255 0
Memory Mark Color4=0 255 255
Memory Mark Color5=0 128 192
Memory Mark Color6=255 128 64
Source Executed Color=0 128 0
Source UnExecuted Color=128 0 0
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
Area0=00000000 00000BFF 3 0 0
Area2=00001000 00001501 3 0 0
Area3=00001502 000021FF 7 0 0
Area4=00002200 00002523 3 0 0
Area5=00002524 0000523F 7 0 0
Area6=00005240 000055FF 3 0 0
Area7=00005600 00007FFF 7 0 0
Area8=00008000 0000FFFF 1 0 0
Area9=00010000 0001FFFF 7 0 0
Area11=000F0000 000F0FFF 3 0 0
Area13=000FE000 000FFFFF 5 0 0
Area15=00DE0000 00DE00AA 5 0 0
Area17=00DF0000 00DF007F 5 0 0
Area19=00FC0000 00FC0467 5 0 0
Area21=00FE0000 00FFFFFF 5 0 0
Inrom Image=Off
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=0
[Break Environment]
Flag=Enable
[Emulation Environment]
Flag=Disable
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=1000
Receive=64
[Trace Environment]
Trace Break=0
Trace Status=1
[Coverage Environment]
Coverage Status=0

View file

@ -0,0 +1,654 @@
[WorkState_v1_2.Frames.ChildFrames.Document-1]
ptn_Child1=ViewFrame-0
[WorkState_v1_2.Frames.ChildFrames.Document-1.ViewFrame-0]
DocPathName=
DocumentString=EUROSScope Document
DocTemplateIndex=0
WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPIOPPPPPPGBAAAAAAHBAAAAAANACAAAAAHNAAAAAA
IsActiveChildFrame=False
IsFrameVisible=True
[WorkState_v1_2.Frames.ChildFrames.Document-2]
ptn_Child1=ViewFrame-0
[WorkState_v1_2.Frames.ChildFrames.Document-2.ViewFrame-0]
DocPathName=
DocumentString=EUROSScope Document
DocTemplateIndex=0
WindowPlacement=MCAAAAAACAAAAAAADAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPIOPPPPPPMCAAAAAAOCAAAAAAHHDAAAAAMKBAAAAA
IsActiveChildFrame=True
IsFrameVisible=True
[WorkState_v1_2.SourceController_1]
FollowPC=False
DisplayLineNumbers=True
StepIntoModulesWithoutSource=False
[WorkState_v1_2.SourceController_2]
FollowPC=False
DisplayLineNumbers=True
StepIntoModulesWithoutSource=False
[WorkState_v1_2]
CpuName=F2MC16 LX/FX
TargetConnectionName=Fujitsu 16FXBootROM (RS232)
ObjectName=C:\Temp\dice\dicekit16fx_dice2-v10\ABS\dicekit16fx_dice2-v10.abs
ObjectFileCPU=8
FlashName=
TargetConfigurationFileName=
EnableTargetConfigurationFile=True
ExecuteInitScriptAfterConnect=True
ExecuteInitScriptAfterReset=True
EnableSmartDownload=False
BootstrapLoader=Fujitsu F16LX Bootstrap Loader
nSourcePathEntries=2
SourcePathEntry0=C:\Temp\dice\dicekit16fx_dice2-v10\Src\
SourcePathEntry1=\
SubstituteSourcePath=
SubstituteSourcePathWith=
CustomColor0=16777215
CustomColor1=16777215
CustomColor2=16777215
CustomColor3=16777215
CustomColor4=16777215
CustomColor5=16777215
CustomColor6=16777215
CustomColor7=16777215
CustomColor8=16777215
CustomColor9=16777215
CustomColor10=16777215
CustomColor11=16777215
CustomColor12=16777215
CustomColor13=16777215
CustomColor14=16777215
CustomColor15=16777215
FontName=Courier New
FontSize=90
FlashBaseAddress=0
FlashMergeGap=0
DotExecutableFileName=
DefaultSFRFile=C:\devtools\EUROScope\sfr\default.sfr
PreferHardwareBreakpoints=True
PreferBreakpointsHexAddr=False
AskToSaveConfigurationOnClose=True
ptn_Child1=DockState
ptn_Child2=ToolBarMgr
ptn_Child3=OpenedFiles
ptn_Child4=Frames
ptn_Child5=Fujitsu F16LX Bootstrap Loader
ptn_Child6=none
ptn_Child7=Target Memory Emulation
ptn_Child8=EUROSMon (Virtual)
ptn_Child9=RDTMon (RS232)
ptn_Child10=Fujitsu 16FXBootROM (RS232)
ptn_Child11=EUROSMon (RS232)
ptn_Child12=CodeWnd_0
ptn_Child13=CallWnd_0
ptn_Child14=RegisterWnd_0
ptn_Child15=MemoryWnd_0
ptn_Child16=BreakpointWnd_0
ptn_Child17=VariableTabWnd_0
ptn_Child18=VariableWndLocal_0
ptn_Child19=VariableWndGlobal_0
ptn_Child20=VariableWndWatch_0
ptn_Child21=VariableWndThis_0
ptn_Child22=VariableWndTrack_0
ptn_Child23=VTrackListWnd_0
ptn_Child24=SourceController_0
[WorkState_v1_2.DockState]
Bars=13
ScreenCX=1680
ScreenCY=1050
ptn_Child1=Bar-0
ptn_Child2=Bar-1
ptn_Child3=Bar-2
ptn_Child4=Bar-3
ptn_Child5=Bar-4
ptn_Child6=Bar-5
ptn_Child7=Bar-6
ptn_Child8=Bar-7
ptn_Child9=Bar-8
ptn_Child10=Bar-9
ptn_Child11=Bar-10
ptn_Child12=Bar-11
ptn_Child13=Bar-12
[WorkState_v1_2.DockState.Bar-0]
BarID=59393
Style=32768
ExStyle=0
PrevFloating=False
MDIChild=False
PctWidth=1000000
MRUFloatCX=0
MRUFloatCY=0
MRUHorzDockCX=0
MRUHorzDockCY=0
MRUVertDockCX=0
MRUVertDockCY=0
MRUDockingState=0
DockingStyle=0
TypeID=0
ClassName=SECStatusBar
WindowName=Workspace file is C:\Temp\dice\dicekit16fx_dice2-v10\debug.cfg
ResourceID=0
[WorkState_v1_2.DockState.Bar-1]
BarID=59419
Bars=5
Bar#0=0
Bar#1=59647
Bar#2=0
Bar#3=59392
Bar#4=0
Style=0
ExStyle=0
PrevFloating=False
MDIChild=False
PctWidth=0
MRUFloatCX=0
MRUFloatCY=0
MRUHorzDockCX=0
MRUHorzDockCY=0
MRUVertDockCX=0
MRUVertDockCY=0
MRUDockingState=0
DockingStyle=0
TypeID=0
ClassName=
WindowName=
ResourceID=0
[WorkState_v1_2.DockState.Bar-2]
BarID=59422
Bars=3
Bar#0=0
Bar#1=263
Bar#2=0
Style=0
ExStyle=0
PrevFloating=False
MDIChild=False
PctWidth=0
MRUFloatCX=0
MRUFloatCY=0
MRUHorzDockCX=0
MRUHorzDockCY=0
MRUVertDockCX=0
MRUVertDockCY=0
MRUDockingState=0
DockingStyle=0
TypeID=0
ClassName=
WindowName=
ResourceID=0
[WorkState_v1_2.DockState.Bar-3]
BarID=59420
Bars=4
Bar#0=0
Bar#1=256
Bar#2=257
Bar#3=0
Style=0
ExStyle=0
PrevFloating=False
MDIChild=False
PctWidth=0
MRUFloatCX=0
MRUFloatCY=0
MRUHorzDockCX=0
MRUHorzDockCY=0
MRUVertDockCX=0
MRUVertDockCY=0
MRUDockingState=0
DockingStyle=0
TypeID=0
ClassName=
WindowName=
ResourceID=0
[WorkState_v1_2.DockState.Bar-4]
BarID=59421
Bars=5
Bar#0=0
Bar#1=259
Bar#2=260
Bar#3=261
Bar#4=0
Style=0
ExStyle=0
PrevFloating=False
MDIChild=False
PctWidth=0
MRUFloatCX=0
MRUFloatCY=0
MRUHorzDockCX=0
MRUHorzDockCY=0
MRUVertDockCX=0
MRUVertDockCY=0
MRUDockingState=0
DockingStyle=0
TypeID=0
ClassName=
WindowName=
ResourceID=0
[WorkState_v1_2.DockState.Bar-5]
BarID=59647
Docking=True
MRUDockID=0
MRUDockLeftPos=-1
MRUDockTopPos=-1
MRUDockRightPos=1679
MRUDockBottomPos=26
MRUFloatStyle=8196
MRUFloatXPos=-2147483648
MRUFloatYPos=0
Style=12220
ExStyle=131980
PrevFloating=False
MDIChild=False
PctWidth=1000000
MRUFloatCX=0
MRUFloatCY=0
MRUHorzDockCX=1680
MRUHorzDockCY=27
MRUVertDockCX=0
MRUVertDockCY=0
MRUDockingState=0
DockingStyle=61440
TypeID=14947
ClassName=SECMDIMenuBar
WindowName=Menu bar
ResourceID=0
ptn_Child1=ToolBarInfoEx
[WorkState_v1_2.DockState.Bar-5.ToolBarInfoEx]
Title=Menu bar
Buttons=BAAAAAAIAACAAAAAAIAADAAAAAAIAAEAAAAAAIAAFAAAAAAIAAGAAAAAAIAAHAAAAAAIAAIAAAAAAIAA
[WorkState_v1_2.DockState.Bar-6]
BarID=59392
YPos=26
Docking=True
MRUDockID=0
MRUDockLeftPos=-1
MRUDockTopPos=26
MRUDockRightPos=678
MRUDockBottomPos=57
MRUFloatStyle=8196
MRUFloatXPos=-2147483648
MRUFloatYPos=0
Style=12212
ExStyle=131852
PrevFloating=False
MDIChild=False
PctWidth=1000000
MRUFloatCX=0
MRUFloatCY=0
MRUHorzDockCX=679
MRUHorzDockCY=31
MRUVertDockCX=0
MRUVertDockCY=0
MRUDockingState=0
DockingStyle=61440
TypeID=14946
ClassName=SECCustomToolBar
WindowName=Standard menu
ResourceID=0
ptn_Child1=ToolBarInfoEx
[WorkState_v1_2.DockState.Bar-6.ToolBarInfoEx]
Title=Standard menu
Buttons_BinCount=2
Buttons_BinVal0=BABOAAAAAABCAIAAAAAAAGAIAAAAAABGAIAAAAAAAAAAAAAAAAMDAIAAAAAAAAAAAAAAAAJDAIAAAAAAPBAIAAAAAAACAIAAAAAAAAAAAAAAAABDAIAAAAAAANPHAAAAAAFGAIAAAAAAAAAAAAAAAALCAIAAAAAAAAAAAAAAAAFIAIAAAAAAAAAAAAAAAALAAIAAAAAAJEAIAAAAAAHEAIAAAAAAAAAAAAAAAAPIAIAAAAAAAAAAAAAAAA
Buttons_BinVal1=ECIKAAAAAAFCIKAAAAAAGCIKAAAAAAHCIKAAAAAAICIKAAAAAAJCIKAAAAAAKCIKAAAAAALCIKAAAAAAMCIKAAAAAA
[WorkState_v1_2.DockState.Bar-7]
BarID=256
XPos=0
YPos=-2
Docking=True
MRUDockID=0
MRUDockLeftPos=0
MRUDockTopPos=-2
MRUDockRightPos=320
MRUDockBottomPos=395
MRUFloatStyle=4
MRUFloatXPos=-2147483648
MRUFloatYPos=1054
Style=8084
ExStyle=69473
PrevFloating=False
MDIChild=False
PctWidth=670000
MRUFloatCX=300
MRUFloatCY=180
MRUHorzDockCX=300
MRUHorzDockCY=180
MRUVertDockCX=320
MRUVertDockCY=397
MRUDockingState=0
DockingStyle=61440
TypeID=0
ClassName=CCodeBar
WindowName=Code: 0xFC01F9 (main: _main + 0x136)
ResourceID=0
[WorkState_v1_2.DockState.Bar-8]
BarID=257
XPos=0
YPos=401
Docking=True
MRUDockID=0
MRUDockLeftPos=0
MRUDockTopPos=401
MRUDockRightPos=320
MRUDockBottomPos=599
MRUFloatStyle=4
MRUFloatXPos=-2147483648
MRUFloatYPos=1054
Style=8084
ExStyle=69473
PrevFloating=False
MDIChild=False
PctWidth=330000
MRUFloatCX=300
MRUFloatCY=180
MRUHorzDockCX=300
MRUHorzDockCY=180
MRUVertDockCX=320
MRUVertDockCY=198
MRUDockingState=0
DockingStyle=61440
TypeID=0
ClassName=CCallBar
WindowName=Callstack
ResourceID=0
[WorkState_v1_2.DockState.Bar-9]
BarID=259
XPos=5
YPos=-2
Docking=True
MRUDockID=0
MRUDockLeftPos=5
MRUDockTopPos=-2
MRUDockRightPos=325
MRUDockBottomPos=261
MRUFloatStyle=4
MRUFloatXPos=-2147483648
MRUFloatYPos=0
Style=20372
ExStyle=69473
PrevFloating=False
MDIChild=False
PctWidth=448899
MRUFloatCX=300
MRUFloatCY=180
MRUHorzDockCX=300
MRUHorzDockCY=180
MRUVertDockCX=320
MRUVertDockCY=263
MRUDockingState=0
DockingStyle=61440
TypeID=0
ClassName=CRegisterBar
WindowName=Register: Long Word General-purpose Register RL0
ResourceID=0
[WorkState_v1_2.DockState.Bar-10]
BarID=260
XPos=5
YPos=267
Docking=True
MRUDockID=0
MRUDockLeftPos=5
MRUDockTopPos=267
MRUDockRightPos=325
MRUDockBottomPos=396
MRUFloatStyle=4
MRUFloatXPos=-2147483648
MRUFloatYPos=0
Style=20372
ExStyle=69473
PrevFloating=False
MDIChild=False
PctWidth=221099
MRUFloatCX=300
MRUFloatCY=180
MRUHorzDockCX=300
MRUHorzDockCY=180
MRUVertDockCX=320
MRUVertDockCY=129
MRUDockingState=0
DockingStyle=61440
TypeID=0
ClassName=CMemoryBar
WindowName=Memory: 0x0 (MB96356RS: __pdr00)
ResourceID=0
[WorkState_v1_2.DockState.Bar-11]
BarID=261
XPos=5
YPos=402
Docking=True
MRUDockID=0
MRUDockLeftPos=5
MRUDockTopPos=402
MRUDockRightPos=325
MRUDockBottomPos=599
MRUFloatStyle=4
MRUFloatXPos=-2147483648
MRUFloatYPos=0
Style=20372
ExStyle=69473
PrevFloating=False
MDIChild=False
PctWidth=330000
MRUFloatCX=300
MRUFloatCY=180
MRUHorzDockCX=300
MRUHorzDockCY=180
MRUVertDockCX=320
MRUVertDockCY=197
MRUDockingState=0
DockingStyle=61440
TypeID=0
ClassName=CBreakpointBar
WindowName=Breakpoints
ResourceID=0
[WorkState_v1_2.DockState.Bar-12]
BarID=263
XPos=1
YPos=5
Docking=True
MRUDockID=0
MRUDockLeftPos=1
MRUDockTopPos=5
MRUDockRightPos=1680
MRUDockBottomPos=325
MRUFloatStyle=4
MRUFloatXPos=-2147483648
MRUFloatYPos=0
Style=36756
ExStyle=69473
PrevFloating=False
MDIChild=False
PctWidth=1000000
MRUFloatCX=300
MRUFloatCY=180
MRUHorzDockCX=1679
MRUHorzDockCY=320
MRUVertDockCX=300
MRUVertDockCY=180
MRUDockingState=0
DockingStyle=61440
TypeID=0
ClassName=CVariableBar
WindowName=Variables
ResourceID=0
[WorkState_v1_2.ToolBarMgr]
ToolTips=True
CoolLook=True
LargeButtons=False
[WorkState_v1_2.OpenedFiles]
LoadedObjectFile=C:\Temp\dice\dicekit16fx_dice2-v10\ABS\dicekit16fx_dice2-v10.abs
OpenedSourceDocument0=C:\Temp\dice\dicekit16fx_dice2-v10\Src\main.c
OpenedSourceDocumentCount=1
[WorkState_v1_2.Frames]
ptn_Child1=MainFrame
ptn_Child2=ChildFrames
[WorkState_v1_2.Frames.MainFrame]
WindowPlacement=MCAAAAAACAAAAAAADAAAAAAAPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGMAAAAAAPMAAAAAACLFAAAAALLDAAAAA
Title=EUROScope - [C:\Temp\dice\dicekit16fx_dice2-v10\Src\main.c]
[WorkState_v1_2.Frames.ChildFrames]
ptn_Child1=Document-0
[WorkState_v1_2.Frames.ChildFrames.Document-0]
ptn_Child1=ViewFrame-0
[WorkState_v1_2.Frames.ChildFrames.Document-0.ViewFrame-0]
DocPathName=
DocumentString=EUROSScope Document
DocTemplateIndex=0
WindowPlacement=MCAAAAAACAAAAAAADAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPIOPPPPPPAAAAAAAAAAAAAAAAHEDAAAAAKHBAAAAA
IsActiveChildFrame=True
IsFrameVisible=True
[WorkState_v1_2.Fujitsu F16LX Bootstrap Loader]
BootFileName=bootloader
MonitorFileName=monitor
DeviceName=COM1
BaudRate=38400
ByteSize=8
Parity=0
StopBits=0
fDtrControl=0
fRtsControl=0
fInX=0
fOutX=0
fOutxCtsFlow=0
fOutxDsrFlow=0
fDsrSensitivity=0
TargetSpeed=0
[WorkState_v1_2.none]
BootFileName=bootloader
MonitorFileName=monitor
[WorkState_v1_2.Target Memory Emulation]
CpuID=-1
[WorkState_v1_2.EUROSMon (Virtual)]
NamedPipeName=pipe\com1
NamedPipeHost=.
EnableBreak=1
CommunicationRetries=3
TimeoutCommand=500
TimeoutCommandSlow=5000
TimeoutFlashErase=60000
[WorkState_v1_2.RDTMon (RS232)]
DeviceName=COM1
BaudRate=38400
ByteSize=8
Parity=0
StopBits=0
fDtrControl=0
fRtsControl=0
fInX=0
fOutX=0
fOutxCtsFlow=0
fOutxDsrFlow=0
fDsrSensitivity=0
EnableBreak=1
[WorkState_v1_2.Fujitsu 16FXBootROM (RS232)]
Selected16FXBootROMRS232Port=COM1
Selected16FXBootROMRS232Baud=115200
Selected16FXBootROMRS232Break=1
Selected16FXBootROMRS232FD=1
Selected16FXBootROMRS232CM=1
SelectedNumberofHWBreakpoints=8
SerialCommunicationModeClock= 4 MHz
[WorkState_v1_2.EUROSMon (RS232)]
DeviceName=COM1
BaudRate=38400
ByteSize=8
Parity=0
StopBits=0
fDtrControl=0
fRtsControl=0
fInX=0
fOutX=0
fOutxCtsFlow=0
fOutxDsrFlow=0
fDsrSensitivity=0
EnableBreak=1
CommunicationRetries=3
TimeoutCommand=500
TimeoutCommandSlow=5000
TimeoutFlashErase=60000
[WorkState_v1_2.CodeWnd_0]
BackgroundColor=16777215
FollowPC=1
ShowBytes=0
ShowLineNumbers=1
ShowLTI=0
ShowModule=0
ShowStackAdjust=0
ShowStackUsage=0
[WorkState_v1_2.CallWnd_0]
ColumnWidth_0=100
ColumnWidth_1=100
ColumnWidth_2=60
BackgroundColor=16777215
[WorkState_v1_2.RegisterWnd_0]
BackgroundColor=16777215
[WorkState_v1_2.MemoryWnd_0]
BackgroundColor=16777215
FirstAddress=0
CursorAddress=0
MemoryWidth=2
ByteOrder=2
ShowASCII=1
ColorizeSymbols=True
[WorkState_v1_2.BreakpointWnd_0]
ColumnWidth_0=100
ColumnWidth_1=100
ColumnWidth_2=60
ColumnWidth_3=60
BackgroundColor=16777215
[WorkState_v1_2.VariableTabWnd_0]
ActiveTab=0
[WorkState_v1_2.VariableWndLocal_0]
ColumnWidth_0=150
ColumnWidth_1=200
ColumnWidth_2=150
ColumnWidth_3=100
ColumnWidth_4=100
ColumnWidth_5=100
ColumnWidth_6=100
ColumnWidth_7=0
BackgroundColor=16777215
ShowStrings=1
DecimalInts=1
[WorkState_v1_2.VariableWndGlobal_0]
ColumnWidth_0=150
ColumnWidth_1=200
ColumnWidth_2=150
ColumnWidth_3=100
ColumnWidth_4=100
ColumnWidth_5=100
ColumnWidth_6=100
ColumnWidth_7=0
BackgroundColor=13160660
ShowStrings=1
DecimalInts=1
[WorkState_v1_2.VariableWndWatch_0]
ColumnWidth_0=150
ColumnWidth_1=200
ColumnWidth_2=150
ColumnWidth_3=100
ColumnWidth_4=100
ColumnWidth_5=100
ColumnWidth_6=100
ColumnWidth_7=0
BackgroundColor=16777215
ShowStrings=1
DecimalInts=1
[WorkState_v1_2.VariableWndThis_0]
ColumnWidth_0=150
ColumnWidth_1=200
ColumnWidth_2=150
ColumnWidth_3=100
ColumnWidth_4=100
ColumnWidth_5=100
ColumnWidth_6=100
ColumnWidth_7=0
BackgroundColor=13160660
ShowStrings=1
DecimalInts=1
[WorkState_v1_2.VariableWndTrack_0]
BackgroundColor=13160660
ShowStrings=1
DecimalInts=1
[WorkState_v1_2.SourceController_0]
FollowPC=False
DisplayLineNumbers=True
StepIntoModulesWithoutSource=False

View file

@ -0,0 +1,236 @@
[Version]
DLLVer=02.3005.01.0
PRJVer=1
[PRJKIND]
mode=1
[CPUTYPE]
CpuSerise=907
[DirInfo]
PRJ=C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\
[PrjInfo]
Count=1
PrjInfo-0=Debug
Active=Debug
[MEMBER]
F0=17
F1=0 f Include Files
F2=0 f FreeRTOS Source
F3=0 c ..\..\Source\portable\Softune\MB96340\__STD_LIB_sbrk.c
F4=0 c ..\..\Source\croutine.c
F5=0 c ..\..\Source\portable\MemMang\heap_1.c
F6=0 c ..\..\Source\list.c
F7=0 c ..\..\Source\portable\Softune\MB96340\port.c
F8=0 c ..\..\Source\queue.c
F9=0 c ..\..\Source\tasks.c
F10=0 f Demo Source
F11=0 c DiceTask.c
F12=0 c main.c
F13=0 a mb96356rs.asm
F14=0 c ParTest\ParTest.c
F15=0 c SegmentToggleTasks.c
F16=0 a START.ASM
F17=0 c vectors.c
[OPTIONFILE]
FILE=options.dat
[CPUTYPE-Debug]
CsvFile=Lib\907\907.csv
CpuName=MB96F356RSA
Count=0
[DirInfo-Debug]
CONFIG=.\
OBJ=OBJ\
LST=LST\
OPT=OPT\
[MEMBER-Debug]
F0=15
F1=0 m 1 ABS\RTOSDemo.abs
F2=2 c 1 vectors.c
F2-1=- mb96356rs.h
F2-2=- FreeRTOSConfig.h
F3=12 c 1 main.c
F3-1=- mb96356rs.h
F3-2=- ..\..\Source\Include\FreeRTOS.h
F3-3=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F3-4=- ..\..\Source\Include\projdefs.h
F3-5=- FreeRTOSConfig.h
F3-6=- ..\..\Source\Include\portable.h
F3-7=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F3-8=- DiceTask.h
F3-9=- ..\..\Source\Include\task.h
F3-10=- ..\..\Source\Include\list.h
F3-11=- ..\Common\Include\ParTest.h
F3-12=- ..\Common\Include\Flash.h
F4=0 a 1 mb96356rs.asm
F5=0 a 1 START.ASM
F6=14 c 1 ..\..\Source\tasks.c
F6-1=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdio.h
F6-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F6-3=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdarg.h
F6-4=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdlib.h
F6-5=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\string.h
F6-6=- ..\..\Source\Include\FreeRTOS.h
F6-7=- ..\..\Source\Include\projdefs.h
F6-8=- ..\..\Source\Include\portable.h
F6-9=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F6-10=- ..\..\Source\Include\task.h
F6-11=- ..\..\Source\Include\list.h
F6-12=- ..\..\Source\Include\StackMacros.h
F6-13=- FreeRTOSConfig.h
F6-14=- mb96356rs.h
F7=9 c 1 ..\..\Source\list.c
F7-1=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdlib.h
F7-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F7-3=- ..\..\Source\Include\FreeRTOS.h
F7-4=- ..\..\Source\Include\projdefs.h
F7-5=- ..\..\Source\Include\portable.h
F7-6=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F7-7=- ..\..\Source\Include\list.h
F7-8=- FreeRTOSConfig.h
F7-9=- mb96356rs.h
F8=12 c 1 ..\..\Source\queue.c
F8-1=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdlib.h
F8-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F8-3=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\string.h
F8-4=- ..\..\Source\Include\FreeRTOS.h
F8-5=- ..\..\Source\Include\projdefs.h
F8-6=- ..\..\Source\Include\portable.h
F8-7=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F8-8=- ..\..\Source\Include\task.h
F8-9=- ..\..\Source\Include\list.h
F8-10=- ..\..\Source\Include\croutine.h
F8-11=- FreeRTOSConfig.h
F8-12=- mb96356rs.h
F9=9 c 1 ..\..\Source\portable\Softune\MB96340\port.c
F9-1=- ..\..\Source\Include\FreeRTOS.h
F9-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F9-3=- ..\..\Source\Include\projdefs.h
F9-4=- ..\..\Source\Include\portable.h
F9-5=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F9-6=- ..\..\Source\Include\task.h
F9-7=- ..\..\Source\Include\list.h
F9-8=- FreeRTOSConfig.h
F9-9=- mb96356rs.h
F10=4 c 1 ..\..\Source\portable\Softune\MB96340\__STD_LIB_sbrk.c
F10-1=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdlib.h
F10-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F10-3=- FreeRTOSConfig.h
F10-4=- mb96356rs.h
F11=10 c 1 ..\..\Source\portable\MemMang\heap_1.c
F11-1=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdlib.h
F11-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F11-3=- ..\..\Source\Include\FreeRTOS.h
F11-4=- ..\..\Source\Include\projdefs.h
F11-5=- FreeRTOSConfig.h
F11-6=- mb96356rs.h
F11-7=- ..\..\Source\Include\portable.h
F11-8=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F11-9=- ..\..\Source\Include\task.h
F11-10=- ..\..\Source\Include\list.h
F12=10 c 1 ..\..\Source\croutine.c
F12-1=- ..\..\Source\Include\FreeRTOS.h
F12-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F12-3=- ..\..\Source\Include\projdefs.h
F12-4=- FreeRTOSConfig.h
F12-5=- mb96356rs.h
F12-6=- ..\..\Source\Include\portable.h
F12-7=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F12-8=- ..\..\Source\Include\task.h
F12-9=- ..\..\Source\Include\list.h
F12-10=- ..\..\Source\Include\croutine.h
F13=11 c 1 DiceTask.c
F13-1=- ..\..\Source\Include\FreeRTOS.h
F13-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F13-3=- ..\..\Source\Include\projdefs.h
F13-4=- FreeRTOSConfig.h
F13-5=- mb96356rs.h
F13-6=- ..\..\Source\Include\portable.h
F13-7=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F13-8=- ..\..\Source\Include\task.h
F13-9=- ..\..\Source\Include\list.h
F13-10=- ..\..\Source\Include\semphr.h
F13-11=- ..\..\Source\Include\queue.h
F14=10 c 1 ParTest\ParTest.c
F14-1=- ..\..\Source\Include\FreeRTOS.h
F14-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F14-3=- ..\..\Source\Include\projdefs.h
F14-4=- FreeRTOSConfig.h
F14-5=- mb96356rs.h
F14-6=- ..\..\Source\Include\portable.h
F14-7=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F14-8=- ..\..\Source\Include\task.h
F14-9=- ..\..\Source\Include\list.h
F14-10=- ..\Common\Include\ParTest.h
F15=12 c 1 SegmentToggleTasks.c
F15-1=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stdlib.h
F15-2=- ..\..\..\..\..\..\devtools\Softune\LIB\907\INCLUDE\stddef.h
F15-3=- ..\..\Source\Include\FreeRTOS.h
F15-4=- ..\..\Source\Include\projdefs.h
F15-5=- FreeRTOSConfig.h
F15-6=- mb96356rs.h
F15-7=- ..\..\Source\Include\portable.h
F15-8=- ..\..\Source\portable\Softune\MB96340\portmacro.h
F15-9=- ..\..\Source\Include\task.h
F15-10=- ..\..\Source\Include\list.h
F15-11=- ..\..\Source\Include\croutine.h
F15-12=- ..\Common\Include\ParTest.h
[BUILDMODE-Debug]
kernel=0
ABI=0
[RUNSET-Debug]
CONVERT=1
CONVERTKIND=0
[DebState-Debug]
SupCount=1
Supfile-0=.\Simulator.sup
Current=Simulator.sup
AliasFile=
CPURunMode=16,16,16,16,0,1,0x0:0x0,,0,0xFF
[AsmBefore]
Count=0
[AsmAfter]
Count=0
[CcBefore]
Count=0
[CcAfter]
Count=0
[LnkBefore]
Count=0
[LnkAfter]
Count=0
[LibBefore]
Count=0
[LibAfter]
Count=0
[CnvBefore]
Count=0
[CnvAfter]
Count=0
[ConfigBefore]
Count=0
[ConfigAfter]
Count=0

View file

@ -0,0 +1,22 @@
[CPUTYPE]
CpuSerise=907
[PrjFile]
Count=1
FILE-0=dicekit16fx_dice2-v10.prj
ActivePrj=dicekit16fx_dice2-v10.prj
[SubPrj-dicekit16fx_dice2-v10.prj]
Count=0
[DebState]
AutoSave=1
Exec=0
AutoLoad=1
[DirInfo]
WSP=C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\MB96350_Softune_Dice_Kit\
[EditState]
Count=0

View file

@ -0,0 +1,234 @@
/*
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.
*/
/*****
*
* See http://www.freertos.org/Documentation/FreeRTOS-documentation-and-book.html
* for an introductory guide to using real time kernels, and FreeRTOS in
* particular.
*
*****
*
* The DICE-KIT-16FX has two 7 segment displays and two buttons that can
* generate interrupts. This example uses this IO as follows:
*
*
* - Left 7 segment display -
*
* 7 'flash' tasks are created, each of which toggles a single segment of the
* left display. Each task executes at a fixed frequency, with a different
* frequency being used by each task.
*
* When button SW2 is pressed an interrupt is generated that wakes up a 'dice'
* task. The dice task suspends the 7 tasks that are accessing the left display
* before simulating a dice being thrown by generating a random number between
* 1 and 6. After the number has been generated the task sleeps for 5 seconds,
* if SW2 is pressed again within the 5 seconds another random number is
* generated, if SW2 is not pressed within the 5 seconds then the 7 tasks are
* un-suspended and will once again toggle the segments of the left hand display.
*
*
* - Right 7 segment display -
*
* Control of the right side 7 segment display is very similar to that of the
* left, except co-routines are used to toggle the segments instead of tasks,
* and button SW3 is used instead of SW2.
*
*
* - Notes -
*
* Only one dice task is actually defined. Two instances of this single
* definition are created, the first to simulate a dice being thrown on the left
* display, and the other to simulate a dice being thrown on the right display.
* The task parameter is used to let the dice tasks know which display to
* control.
*
* Both dice tasks and the flash tasks operate completely independently under
* the control of FreeRTOS. 11 tasks and 7 co-routines are created in total,
* including the idle task.
*
* The co-routines all execute within a single low priority task.
*
*
*
* When this demo is executing as expected:
*
* + Every segment of both displays will toggle at a fixed frequency - with each
* segment using a different frequency.
* + When a button is pushed the segment toggling will temporarily stop and the
* dice 'throw' will start whereby the display will show a fast changing random
* number for a few seconds before the dice value is chosen and displayed.
* + If the button is not pushed again within five seconds of the dice value being
* displayed the segment toggling will commence again.
*
*****/
/* Kernel includes. */
#include "FreeRTOS.h"
#include "Task.h"
/* Demo includes. */
#include "DiceTask.h"
#include "ParTest.h"
#include "Flash.h"
/* The priority at which the dice task execute. */
#define mainDICE_PRIORITY ( tskIDLE_PRIORITY + 2 )
/*
* Sets up the MCU IO for the 7 segment displays and the button inputs.
*/
static void prvSetupHardware( void );
/*
* The function that creates the flash tasks and co-routines (the tasks and
* co-routines that toggle the 7 segment display segments.
*/
extern vCreateFlashTasksAndCoRoutines( void );
/*-----------------------------------------------------------*/
void main( void )
{
/* Setup the MCU IO. */
prvSetupHardware();
/* Create the tasks and co-routines that toggle the display segments. */
vCreateFlashTasksAndCoRoutines();
/* Create a 'dice' task to control the left hand display. */
xTaskCreate( vDiceTask, ( signed char * ) "Dice1", configMINIMAL_STACK_SIZE, ( void * ) configLEFT_DISPLAY, mainDICE_PRIORITY, NULL );
/* Create a 'dice' task to control the right hand display. */
xTaskCreate( vDiceTask, ( signed char * ) "Dice2", configMINIMAL_STACK_SIZE, ( void * ) configRIGHT_DISPLAY, mainDICE_PRIORITY, NULL );
/* Start the scheduler running. */
vTaskStartScheduler();
/* If this loop is executed then there was insufficient heap memory for the
idle task to be created - causing vTaskStartScheduler() to return. */
while( 1 );
}
/*-----------------------------------------------------------*/
static void prvSetupHardware( void )
{
/* Setup interrupt hardware - interrupts are kept disabled for now to
prevent any interrupts attempting to cause a context switch before the
scheduler has been started. */
InitIrqLevels();
portDISABLE_INTERRUPTS();
__set_il( 7 );
/* Set Port3 as output (7Segment Display). */
DDR03 = 0xff;
/* Use Port 5 as I/O-Port. */
ADER1 = 0;
PDR05 = 0x7f;
/* Set Port5 as output (7Segment Display). */
DDR05 = 0xff;
/* Disable inputs on the following ports. */
PIER02 = 0x00;
PDR02 = 0x00;
DDR02 = 0xff;
PIER03 = 0x00;
PDR03 = 0xff;
PIER05 = 0x00;
PDR05 = 0x00;
PIER06 = 0x00;
PDR06 = 0x00;
DDR06 = 0xff;
/* Enable P00_0/INT8 and P00_1/INT9 as input. */
PIER00 = 0x03;
/* Enable external interrupt 8. */
PIER00_IE0 = 1;
/* LB0, LA0 = 11 -> falling edge. */
ELVRL1_LB8 = 1;
ELVRL1_LA8 = 1;
/* Reset and enable the interrupt request. */
EIRR1_ER8 = 0;
ENIR1_EN8 = 1;
/* Enable external interrupt 9. */
PIER00_IE1 = 1;
/* LB1, LA1 = 11 -> falling edge. */
ELVRL1_LB9 = 1;
ELVRL1_LA9 = 1;
/* Reset and enable the interrupt request. */
EIRR1_ER9 = 0;
ENIR1_EN9 = 1;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,87 @@
$CPUSERIES-907
$Prj-Debug
$0
-g
-w 3
-INF LIST
-D _16FX_SOFTUNE
-I "."
-I "..\Common\Include"
-I "..\..\Source\Include"
-O 1
-model MEDIUM
-B
-Xdof
-K NOEOPT
-K NOLIB
-K NOUNROLL
$other
-INF srcin
$time
1232224954
$end
$1
-g
-w 2
-linf ON
-lsrc ON
-lsec ON
-lcros OFF
-linc ON
-lexp OBJ
-pl 60
-pw 100
-tab 8
-lf
-Xdof
$other
$time
1232224863
$end
$2
-g
-AL 2
-ra _INRAM01=0x005240/0x007FFF
-ro _INROM01=0xFC0000/0xFFFFFF
-ro _INROM02=0xDF0000/0xDF7FFF
-sc CONST/Const/BYTE=0xFF8000
-check_rora
-check_locate
-rg 0
-m
-pl 60
-pw 132
-Xals
-Xalr
-na
-NCI0302LIB
-w 2
-Xdof
$other
-Xset_rora
$time
1233411019
$end
$3
-dt s,d,r,a
-pl 60
-pw 132
-g
-Xdof
$other
$time
1233411019
$end
$4
-Xdof
$other
$time
1232224863
$end
$5
$other
$time
1232224863
$end
$Prjend
$CPUSERIESEND

View file

@ -0,0 +1,39 @@
==========================================================================
DICE2 Project for DICE-KIT-16FX Evaluation Board
==========================================================================
Fujitsu Microelectronics Europe GmbH
The following software is for demonstration purposes only. It is not
fully tested, nor validated in order to fullfill its task under all
circumstances. Therefore, this software or any part of it must only be
used in an evaluation laboratory environment.
This software is subject to the rules of our standard DISCLAIMER, that is
delivered with our SW-tools on the Fujitsu Microcontrollers DVD
(V5.0 or higher "\START.HTM").
==========================================================================
History
Date Ver Author Softune Description
2008-04-28 1.0 AVo/HWe V30L34R06 original version
==========================================================================
This is Demoproject for the DICE-KIT-16FX Evaluation-Board.
It includes some basic settings for e.g. Linker, C-Compiler
which must be checked and modified in detail,
corresponding to the user application.
Description:
This projects simulates two dices.
SEG1 is dice1 and can be started by pressing key SW2 (INT8)
SEG2 is dice2 and can be started by pressing key SW3 (INT9)
After a while the started dice will stop displaying a value from 1..6.
Note:
Remove jumper JP2 (External watchdog is not supported by this project)
Clock settings:
---------------
Crystal: 4 MHz
CLKB: 56 MHz
CLKP1: 56 MHz
CLKP2: 14 MHz

View file

@ -0,0 +1,155 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*---------------------------------------------------------------------------
VECTORS.C
- Interrupt level (priority) setting
- Interrupt vector definition
-----------------------------------------------------------------------------*/
#include "mb96356rs.h"
#include "FreeRTOSConfig.h"
/*---------------------------------------------------------------------------
InitIrqLevels()
This function pre-sets all interrupt control registers. It can be used
to set all interrupt priorities in static applications. If this file
contains assignments to dedicated resources, verify that the
appropriate controller is used.
NOTE: value 7 disables the interrupt and value 0 sets highest priority.
-----------------------------------------------------------------------------*/
#define MIN_ICR 11
#define MAX_ICR 93
#define DEFAULT_ILM_MASK 7
void InitIrqLevels(void)
{
volatile int irq;
for (irq = MIN_ICR; irq <= MAX_ICR; irq++)
{
ICR = (irq << 8) | DEFAULT_ILM_MASK;
}
ICR = ( (54 & 0xFF) << 8 ) | configKERNEL_INTERRUPT_PRIORITY; /* Reload Timer 0 */
ICR = ( (12 & 0xFF) << 8 ) | configKERNEL_INTERRUPT_PRIORITY; /* Delayed interrupt of 16FX Family */
ICR = ( (24 & 0xFF) << 8 ) | configKERNEL_INTERRUPT_PRIORITY; /* INT8 */
ICR = ( (25 & 0xFF) << 8 ) | configKERNEL_INTERRUPT_PRIORITY; /* INT9 */
}
/*---------------------------------------------------------------------------
Prototypes
Add your own prototypes here. Each vector definition needs is proto-
type. Either do it here or include a header file containing them.
-----------------------------------------------------------------------------*/
__interrupt void DefaultIRQHandler( void );
extern __interrupt void prvRLT0_TICKISR( void );
extern __interrupt void vPortYield( void );
extern __interrupt void vPortYieldDelayed( void );
extern __interrupt void vExternalInt8Handler( void );
extern __interrupt void vExternalInt9Handler( void );
/*---------------------------------------------------------------------------
Vector definiton for MB9635x
Use following statements to define vectors. All resource related
vectors are predefined. Remaining software interrupts can be added here
as well.
NOTE: If software interrupts 0 to 7 are defined here, this might
conflict with the reset vector in the start-up file.
-----------------------------------------------------------------------------*/
#pragma intvect DefaultIRQHandler 11 /* Non-maskable Interrupt */
#pragma intvect vPortYieldDelayed 12 /* Delayed Interrupt */
#pragma intvect DefaultIRQHandler 13 /* RC Timer */
#pragma intvect DefaultIRQHandler 14 /* Main Clock Timer */
#pragma intvect DefaultIRQHandler 15 /* Sub Clock Timer */
#pragma intvect DefaultIRQHandler 16 /* Reserved */
#pragma intvect DefaultIRQHandler 17 /* EXT0 */
#pragma intvect DefaultIRQHandler 18 /* EXT1 */
#pragma intvect DefaultIRQHandler 19 /* EXT2 */
#pragma intvect DefaultIRQHandler 20 /* EXT3 */
#pragma intvect DefaultIRQHandler 21 /* EXT4 */
#pragma intvect DefaultIRQHandler 22 /* EXT5 */
#pragma intvect DefaultIRQHandler 23 /* EXT7 */
#pragma intvect vExternalInt8Handler 24 /* EXT8 */
#pragma intvect vExternalInt9Handler 25 /* EXT9 */
#pragma intvect DefaultIRQHandler 26 /* EXT10 */
#pragma intvect DefaultIRQHandler 27 /* EXT11 */
#pragma intvect DefaultIRQHandler 28 /* EXT12 */
#pragma intvect DefaultIRQHandler 29 /* EXT13 */
#pragma intvect DefaultIRQHandler 30 /* EXT14 */
#pragma intvect DefaultIRQHandler 31 /* EXT15 */
#pragma intvect DefaultIRQHandler 32 /* CAN1 */
#pragma intvect DefaultIRQHandler 33 /* CAN2 */
#pragma intvect DefaultIRQHandler 34 /* PPG0 */
#pragma intvect DefaultIRQHandler 35 /* PPG1 */
#pragma intvect DefaultIRQHandler 36 /* PPG2 */
#pragma intvect DefaultIRQHandler 37 /* PPG3 */
#pragma intvect DefaultIRQHandler 38 /* PPG4 */
#pragma intvect DefaultIRQHandler 39 /* PPG5 */
#pragma intvect DefaultIRQHandler 40 /* PPG6 */
#pragma intvect DefaultIRQHandler 41 /* PPG7 */
#pragma intvect DefaultIRQHandler 42 /* PPG8 */
#pragma intvect DefaultIRQHandler 43 /* PPG9 */
#pragma intvect DefaultIRQHandler 44 /* PPG10 */
#pragma intvect DefaultIRQHandler 45 /* PPG11 */
#pragma intvect DefaultIRQHandler 46 /* PPG12 */
#pragma intvect DefaultIRQHandler 47 /* PPG13 */
#pragma intvect DefaultIRQHandler 48 /* PPG14 */
#pragma intvect DefaultIRQHandler 49 /* PPG15 */
#pragma intvect DefaultIRQHandler 50 /* PPG16 */
#pragma intvect DefaultIRQHandler 51 /* PPG17 */
#pragma intvect DefaultIRQHandler 52 /* PPG18 */
#pragma intvect DefaultIRQHandler 53 /* PPG19 */
#pragma intvect prvRLT0_TICKISR 54 /* RLT0 */
#pragma intvect DefaultIRQHandler 55 /* RLT1 */
#pragma intvect DefaultIRQHandler 56 /* RLT2 */
#pragma intvect DefaultIRQHandler 57 /* RLT3 */
#pragma intvect DefaultIRQHandler 58 /* PPGRLT - RLT6 */
#pragma intvect DefaultIRQHandler 59 /* ICU0 */
#pragma intvect DefaultIRQHandler 60 /* ICU1 */
#pragma intvect DefaultIRQHandler 63 /* ICU4 */
#pragma intvect DefaultIRQHandler 64 /* ICU5 */
#pragma intvect DefaultIRQHandler 65 /* ICU6 */
#pragma intvect DefaultIRQHandler 66 /* ICU7 */
#pragma intvect DefaultIRQHandler 71 /* OCU4 */
#pragma intvect DefaultIRQHandler 72 /* OCU5 */
#pragma intvect DefaultIRQHandler 73 /* OCU6 */
#pragma intvect DefaultIRQHandler 74 /* OCU7 */
#pragma intvect DefaultIRQHandler 77 /* FRT0 */
#pragma intvect DefaultIRQHandler 78 /* FRT1 */
#pragma intvect DefaultIRQHandler 81 /* RTC0 */
#pragma intvect DefaultIRQHandler 82 /* CAL0 */
#pragma intvect DefaultIRQHandler 83 /* I2C0 */
#pragma intvect DefaultIRQHandler 84 /* ADC */
#pragma intvect DefaultIRQHandler 85 /* LIN-UART 2 RX */
#pragma intvect DefaultIRQHandler 86 /* LIN-UART 2 TX */
#pragma intvect DefaultIRQHandler 87 /* LIN-UART 3 RX */
#pragma intvect DefaultIRQHandler 88 /* LIN-UART 3 TX */
#pragma intvect DefaultIRQHandler 89 /* LIN-UART 7 RX */
#pragma intvect DefaultIRQHandler 90 /* LIN-UART 7 TX */
#pragma intvect DefaultIRQHandler 91 /* LIN-UART 8 RX */
#pragma intvect DefaultIRQHandler 92 /* LIN-UART 8 TX */
#pragma intvect DefaultIRQHandler 93 /* MAIN FLASH IRQ */
#pragma intvect vPortYield 122 /* INT #122 */
/*---------------------------------------------------------------------------
DefaultIRQHandler()
This function is a placeholder for all vector definitions. Either use
your own placeholder or add necessary code here.
-----------------------------------------------------------------------------*/
__interrupt void DefaultIRQHandler( void )
{
__DI(); /* disable interrupts */
while( 1 )
{
__wait_nop(); /* halt system */
}
}