mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Create full Keil project for XMC boot kit (not yet tested).
This commit is contained in:
parent
3fe6974bf9
commit
f0a2688200
|
@ -70,23 +70,83 @@
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
|
||||||
|
/* Hardware includes. */
|
||||||
|
#include <XMC1300.h>
|
||||||
|
|
||||||
/* Standard demo include. */
|
/* Standard demo include. */
|
||||||
#include "partest.h"
|
#include "partest.h"
|
||||||
|
|
||||||
|
/* The port bits on which LEDs are connected. */
|
||||||
|
static const unsigned long ulLEDBits[] =
|
||||||
|
{
|
||||||
|
1UL << 0, /* P0.0 */
|
||||||
|
1UL << 2, /* P0.2 */
|
||||||
|
1UL << 5, /* P0.5 */
|
||||||
|
1UL << 6, /* P0.6 */
|
||||||
|
1UL << 7 /* P0.7 */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define partstNUM_LEDS ( sizeof( ulLEDBits ) / sizeof( unsigned long ) )
|
||||||
|
|
||||||
|
/* Shift the LED bit into the correct position within the POW register to
|
||||||
|
perform the desired operation. */
|
||||||
|
#define partstON_SHIFT ( 16UL )
|
||||||
|
#define partstOFF_SHIFT ( 0UL )
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vParTestInitialise( void )
|
void vParTestInitialise( void )
|
||||||
{
|
{
|
||||||
|
/* Configure relevant port P0 to push pull output to drive LEDs. */
|
||||||
|
|
||||||
|
/* P0.0 */
|
||||||
|
PORT0->IOCR0 &= ~( ( 0xFFUL << 0 ) );
|
||||||
|
PORT0->IOCR0 |= ( 0x80UL << 0 );
|
||||||
|
|
||||||
|
/* P0.2 */
|
||||||
|
PORT0->IOCR0 &= ~( ( 0xFFUL << 16 ) );
|
||||||
|
PORT0->IOCR0 |= ( 0x80UL << 16 );
|
||||||
|
|
||||||
|
/* P0.5 */
|
||||||
|
PORT0->IOCR4 &= ~( ( 0xFFUL << 8 ) );
|
||||||
|
PORT0->IOCR4 |= ( 0x80UL << 8 );
|
||||||
|
|
||||||
|
/* P0.6 */
|
||||||
|
PORT0->IOCR4 &= ~( ( 0xFFUL << 16 ) );
|
||||||
|
PORT0->IOCR4 |= ( 0x80UL << 16 );
|
||||||
|
|
||||||
|
/* P0.7 */
|
||||||
|
PORT0->IOCR4 &= ~( ( 0xFFUL << 24 ) );
|
||||||
|
PORT0->IOCR4 |= ( 0x80UL << 24 );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vParTestSetLED( unsigned long ulLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned long ulLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
|
if( ulLED < partstNUM_LEDS )
|
||||||
|
{
|
||||||
|
if( xValue == pdTRUE )
|
||||||
|
{
|
||||||
|
/* Turn the LED on. */
|
||||||
|
PORT0->OMR = ( ulLEDBits[ ulLED ] << partstON_SHIFT );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Turn the LED off. */
|
||||||
|
PORT0->OMR = ( ulLEDBits[ ulLED ] << partstOFF_SHIFT );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned long ulLED )
|
void vParTestToggleLED( unsigned long ulLED )
|
||||||
{
|
{
|
||||||
|
if( ulLED < partstNUM_LEDS )
|
||||||
|
{
|
||||||
|
/* Setting both the ON and OFF bits simultaneously results in the bit
|
||||||
|
being toggled. */
|
||||||
|
PORT0->OMR = ( ulLEDBits[ ulLED ] << partstON_SHIFT ) | ( ulLEDBits[ ulLED ] << partstOFF_SHIFT );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
<uSim>1</uSim>
|
<uSim>1</uSim>
|
||||||
<uTrg>0</uTrg>
|
<uTrg>0</uTrg>
|
||||||
<sLdApp>1</sLdApp>
|
<sLdApp>1</sLdApp>
|
||||||
<sGomain>1</sGomain>
|
<sGomain>0</sGomain>
|
||||||
<sRbreak>1</sRbreak>
|
<sRbreak>1</sRbreak>
|
||||||
<sRwatch>1</sRwatch>
|
<sRwatch>1</sRwatch>
|
||||||
<sRmem>1</sRmem>
|
<sRmem>1</sRmem>
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
<tRtrace>1</tRtrace>
|
<tRtrace>1</tRtrace>
|
||||||
<sRunDeb>0</sRunDeb>
|
<sRunDeb>0</sRunDeb>
|
||||||
<sLrtime>0</sLrtime>
|
<sLrtime>0</sLrtime>
|
||||||
<nTsel>1</nTsel>
|
<nTsel>0</nTsel>
|
||||||
<sDll></sDll>
|
<sDll></sDll>
|
||||||
<sDllPa></sDllPa>
|
<sDllPa></sDllPa>
|
||||||
<sDlgDll></sDlgDll>
|
<sDlgDll></sDlgDll>
|
||||||
|
@ -142,25 +142,52 @@
|
||||||
<pMon>BIN\UL2CM3.DLL</pMon>
|
<pMon>BIN\UL2CM3.DLL</pMon>
|
||||||
</DebugOpt>
|
</DebugOpt>
|
||||||
<TargetDriverDllRegistry>
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGDARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMDBGFLAGS</Key>
|
||||||
|
<Name>-T0</Name>
|
||||||
|
</SetRegEntry>
|
||||||
<SetRegEntry>
|
<SetRegEntry>
|
||||||
<Number>0</Number>
|
<Number>0</Number>
|
||||||
<Key>UL2CM3</Key>
|
<Key>UL2CM3</Key>
|
||||||
<Name>UL2CM3(-O207 -S0 -C0 -FO7 -FN1 -FC800 -FD20000000 -FF0XMC1300_200 -FL032000 -FS010001000</Name>
|
<Name>UL2CM3(-O207 -S0 -C0 -FO7 -FN1 -FC800 -FD20000000 -FF0XMC1300_200 -FL032000 -FS010001000</Name>
|
||||||
</SetRegEntry>
|
</SetRegEntry>
|
||||||
</TargetDriverDllRegistry>
|
</TargetDriverDllRegistry>
|
||||||
<Breakpoint/>
|
<Breakpoint>
|
||||||
|
<Bp>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Type>0</Type>
|
||||||
|
<LineNumber>132</LineNumber>
|
||||||
|
<EnabledFlag>1</EnabledFlag>
|
||||||
|
<Address>0</Address>
|
||||||
|
<ByteObject>0</ByteObject>
|
||||||
|
<HtxType>0</HtxType>
|
||||||
|
<ManyObjects>0</ManyObjects>
|
||||||
|
<SizeOfObject>0</SizeOfObject>
|
||||||
|
<BreakByAccess>0</BreakByAccess>
|
||||||
|
<BreakIfRCount>0</BreakIfRCount>
|
||||||
|
<Filename>C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M0_Infineon_Boot_Kits_IAR_Keil\startup_XMC1300.s</Filename>
|
||||||
|
<ExecCommand></ExecCommand>
|
||||||
|
<Expression></Expression>
|
||||||
|
</Bp>
|
||||||
|
</Breakpoint>
|
||||||
<Tracepoint>
|
<Tracepoint>
|
||||||
<THDelay>0</THDelay>
|
<THDelay>0</THDelay>
|
||||||
</Tracepoint>
|
</Tracepoint>
|
||||||
<DebugFlag>
|
<DebugFlag>
|
||||||
<trace>0</trace>
|
<trace>0</trace>
|
||||||
<periodic>1</periodic>
|
<periodic>1</periodic>
|
||||||
<aLwin>0</aLwin>
|
<aLwin>1</aLwin>
|
||||||
<aCover>0</aCover>
|
<aCover>0</aCover>
|
||||||
<aSer1>0</aSer1>
|
<aSer1>0</aSer1>
|
||||||
<aSer2>0</aSer2>
|
<aSer2>0</aSer2>
|
||||||
<aPa>0</aPa>
|
<aPa>0</aPa>
|
||||||
<viewmode>0</viewmode>
|
<viewmode>1</viewmode>
|
||||||
<vrSel>0</vrSel>
|
<vrSel>0</vrSel>
|
||||||
<aSym>0</aSym>
|
<aSym>0</aSym>
|
||||||
<aTbox>0</aTbox>
|
<aTbox>0</aTbox>
|
||||||
|
@ -175,7 +202,7 @@
|
||||||
<aSer4>0</aSer4>
|
<aSer4>0</aSer4>
|
||||||
<StkLoc>0</StkLoc>
|
<StkLoc>0</StkLoc>
|
||||||
<TrcWin>0</TrcWin>
|
<TrcWin>0</TrcWin>
|
||||||
<newCpu>3</newCpu>
|
<newCpu>0</newCpu>
|
||||||
<uProt>0</uProt>
|
<uProt>0</uProt>
|
||||||
</DebugFlag>
|
</DebugFlag>
|
||||||
<LintExecutable></LintExecutable>
|
<LintExecutable></LintExecutable>
|
||||||
|
@ -185,7 +212,7 @@
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>System</GroupName>
|
<GroupName>System</GroupName>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
|
@ -195,10 +222,10 @@
|
||||||
<FileType>2</FileType>
|
<FileType>2</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<Focus>0</Focus>
|
<Focus>0</Focus>
|
||||||
<ColumnNumber>26</ColumnNumber>
|
<ColumnNumber>0</ColumnNumber>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<TopLine>128</TopLine>
|
<TopLine>130</TopLine>
|
||||||
<CurrentLine>129</CurrentLine>
|
<CurrentLine>132</CurrentLine>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>.\startup_XMC1300.s</PathWithFileName>
|
<PathWithFileName>.\startup_XMC1300.s</PathWithFileName>
|
||||||
<FilenameWithoutPath>startup_XMC1300.s</FilenameWithoutPath>
|
<FilenameWithoutPath>startup_XMC1300.s</FilenameWithoutPath>
|
||||||
|
@ -225,7 +252,7 @@
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>FreeRTOS source</GroupName>
|
<GroupName>FreeRTOS source</GroupName>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
|
@ -299,10 +326,10 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<Focus>0</Focus>
|
<Focus>0</Focus>
|
||||||
<ColumnNumber>0</ColumnNumber>
|
<ColumnNumber>9</ColumnNumber>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<TopLine>1</TopLine>
|
<TopLine>265</TopLine>
|
||||||
<CurrentLine>1</CurrentLine>
|
<CurrentLine>279</CurrentLine>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>..\..\Source\portable\RVDS\ARM_CM0\port.c</PathWithFileName>
|
<PathWithFileName>..\..\Source\portable\RVDS\ARM_CM0\port.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>port.c</FilenameWithoutPath>
|
<FilenameWithoutPath>port.c</FilenameWithoutPath>
|
||||||
|
@ -329,7 +356,7 @@
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>Demo App Source</GroupName>
|
<GroupName>Demo App Source</GroupName>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
|
@ -339,10 +366,10 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<Focus>0</Focus>
|
<Focus>0</Focus>
|
||||||
<ColumnNumber>0</ColumnNumber>
|
<ColumnNumber>9</ColumnNumber>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<TopLine>0</TopLine>
|
<TopLine>115</TopLine>
|
||||||
<CurrentLine>0</CurrentLine>
|
<CurrentLine>134</CurrentLine>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>.\ParTest.c</PathWithFileName>
|
<PathWithFileName>.\ParTest.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>ParTest.c</FilenameWithoutPath>
|
<FilenameWithoutPath>ParTest.c</FilenameWithoutPath>
|
||||||
|
@ -384,22 +411,6 @@
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>3</GroupNumber>
|
<GroupNumber>3</GroupNumber>
|
||||||
<FileNumber>12</FileNumber>
|
<FileNumber>12</FileNumber>
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<Focus>0</Focus>
|
|
||||||
<ColumnNumber>0</ColumnNumber>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<TopLine>0</TopLine>
|
|
||||||
<CurrentLine>0</CurrentLine>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>.\main-full.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>main-full.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>3</GroupNumber>
|
|
||||||
<FileNumber>13</FileNumber>
|
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<Focus>0</Focus>
|
<Focus>0</Focus>
|
||||||
|
@ -413,6 +424,110 @@
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>13</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<Focus>0</Focus>
|
||||||
|
<ColumnNumber>36</ColumnNumber>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<TopLine>293</TopLine>
|
||||||
|
<CurrentLine>311</CurrentLine>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\main-full.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>main-full.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>14</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<Focus>0</Focus>
|
||||||
|
<ColumnNumber>5</ColumnNumber>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<TopLine>142</TopLine>
|
||||||
|
<CurrentLine>143</CurrentLine>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\RegTest.s</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>RegTest.s</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>Common Demo Tasks</GroupName>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>4</GroupNumber>
|
||||||
|
<FileNumber>15</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<Focus>0</Focus>
|
||||||
|
<ColumnNumber>0</ColumnNumber>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<TopLine>0</TopLine>
|
||||||
|
<CurrentLine>0</CurrentLine>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\Common\Minimal\dynamic.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>dynamic.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>4</GroupNumber>
|
||||||
|
<FileNumber>16</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<Focus>0</Focus>
|
||||||
|
<ColumnNumber>0</ColumnNumber>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<TopLine>0</TopLine>
|
||||||
|
<CurrentLine>0</CurrentLine>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\Common\Minimal\recmutex.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>recmutex.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>4</GroupNumber>
|
||||||
|
<FileNumber>17</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<Focus>0</Focus>
|
||||||
|
<ColumnNumber>0</ColumnNumber>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<TopLine>0</TopLine>
|
||||||
|
<CurrentLine>0</CurrentLine>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\Common\Minimal\blocktim.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>blocktim.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>4</GroupNumber>
|
||||||
|
<FileNumber>18</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<Focus>0</Focus>
|
||||||
|
<ColumnNumber>0</ColumnNumber>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<TopLine>0</TopLine>
|
||||||
|
<CurrentLine>0</CurrentLine>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>..\Common\Minimal\countsem.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>countsem.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
</ProjectOpt>
|
</ProjectOpt>
|
||||||
|
|
|
@ -119,7 +119,7 @@
|
||||||
<Simulator>
|
<Simulator>
|
||||||
<UseSimulator>1</UseSimulator>
|
<UseSimulator>1</UseSimulator>
|
||||||
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
<RunToMain>1</RunToMain>
|
<RunToMain>0</RunToMain>
|
||||||
<RestoreBreakpoints>1</RestoreBreakpoints>
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
<RestoreWatchpoints>1</RestoreWatchpoints>
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
<RestoreTracepoints>1</RestoreTracepoints>
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
</Target>
|
</Target>
|
||||||
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||||
<TargetSelection>1</TargetSelection>
|
<TargetSelection>0</TargetSelection>
|
||||||
<SimDlls>
|
<SimDlls>
|
||||||
<CpuDll></CpuDll>
|
<CpuDll></CpuDll>
|
||||||
<CpuDllArguments></CpuDllArguments>
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
@ -162,12 +162,12 @@
|
||||||
<UseExternalTool>0</UseExternalTool>
|
<UseExternalTool>0</UseExternalTool>
|
||||||
<RunIndependent>0</RunIndependent>
|
<RunIndependent>0</RunIndependent>
|
||||||
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
||||||
<Capability>0</Capability>
|
<Capability>1</Capability>
|
||||||
<DriverSelection>-1</DriverSelection>
|
<DriverSelection>4096</DriverSelection>
|
||||||
</Flash1>
|
</Flash1>
|
||||||
<bUseTDR>1</bUseTDR>
|
<bUseTDR>1</bUseTDR>
|
||||||
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
<Flash2>BIN\UL2CM3.DLL</Flash2>
|
||||||
<Flash3></Flash3>
|
<Flash3>"" ()</Flash3>
|
||||||
<Flash4></Flash4>
|
<Flash4></Flash4>
|
||||||
</Utilities>
|
</Utilities>
|
||||||
<TargetArmAds>
|
<TargetArmAds>
|
||||||
|
@ -457,56 +457,46 @@
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>.\main-blinky.c</FilePath>
|
<FilePath>.\main-blinky.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<FileName>main-full.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>.\main-full.c</FilePath>
|
|
||||||
<FileOption>
|
|
||||||
<CommonProperty>
|
|
||||||
<UseCPPCompiler>2</UseCPPCompiler>
|
|
||||||
<RVCTCodeConst>0</RVCTCodeConst>
|
|
||||||
<RVCTZI>0</RVCTZI>
|
|
||||||
<RVCTOtherData>0</RVCTOtherData>
|
|
||||||
<ModuleSelection>0</ModuleSelection>
|
|
||||||
<IncludeInBuild>0</IncludeInBuild>
|
|
||||||
<AlwaysBuild>2</AlwaysBuild>
|
|
||||||
<GenerateAssemblyFile>2</GenerateAssemblyFile>
|
|
||||||
<AssembleAssemblyFile>2</AssembleAssemblyFile>
|
|
||||||
<PublicsOnly>2</PublicsOnly>
|
|
||||||
<StopOnExitCode>11</StopOnExitCode>
|
|
||||||
<CustomArgument></CustomArgument>
|
|
||||||
<IncludeLibraryModules></IncludeLibraryModules>
|
|
||||||
</CommonProperty>
|
|
||||||
<FileArmAds>
|
|
||||||
<Cads>
|
|
||||||
<interw>2</interw>
|
|
||||||
<Optim>0</Optim>
|
|
||||||
<oTime>2</oTime>
|
|
||||||
<SplitLS>2</SplitLS>
|
|
||||||
<OneElfS>2</OneElfS>
|
|
||||||
<Strict>2</Strict>
|
|
||||||
<EnumInt>2</EnumInt>
|
|
||||||
<PlainCh>2</PlainCh>
|
|
||||||
<Ropi>2</Ropi>
|
|
||||||
<Rwpi>2</Rwpi>
|
|
||||||
<wLevel>0</wLevel>
|
|
||||||
<uThumb>2</uThumb>
|
|
||||||
<uSurpInc>2</uSurpInc>
|
|
||||||
<VariousControls>
|
|
||||||
<MiscControls></MiscControls>
|
|
||||||
<Define></Define>
|
|
||||||
<Undefine></Undefine>
|
|
||||||
<IncludePath></IncludePath>
|
|
||||||
</VariousControls>
|
|
||||||
</Cads>
|
|
||||||
</FileArmAds>
|
|
||||||
</FileOption>
|
|
||||||
</File>
|
|
||||||
<File>
|
<File>
|
||||||
<FileName>FreeRTOSConfig.h</FileName>
|
<FileName>FreeRTOSConfig.h</FileName>
|
||||||
<FileType>5</FileType>
|
<FileType>5</FileType>
|
||||||
<FilePath>.\FreeRTOSConfig.h</FilePath>
|
<FilePath>.\FreeRTOSConfig.h</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>main-full.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\main-full.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>RegTest.s</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\RegTest.s</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Common Demo Tasks</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>dynamic.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\Common\Minimal\dynamic.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>recmutex.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\Common\Minimal\recmutex.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>blocktim.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\Common\Minimal\blocktim.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>countsem.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>..\Common\Minimal\countsem.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
</Groups>
|
</Groups>
|
||||||
|
|
|
@ -1,80 +1,83 @@
|
||||||
/*
|
;/*
|
||||||
FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.
|
; FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.
|
||||||
|
;
|
||||||
|
; VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
|
||||||
|
;
|
||||||
|
; ***************************************************************************
|
||||||
|
; * *
|
||||||
|
; * FreeRTOS provides completely free yet professionally developed, *
|
||||||
|
; * robust, strictly quality controlled, supported, and cross *
|
||||||
|
; * platform software that has become a de facto standard. *
|
||||||
|
; * *
|
||||||
|
; * Help yourself get started quickly and support the FreeRTOS *
|
||||||
|
; * project by purchasing a FreeRTOS tutorial book, reference *
|
||||||
|
; * manual, or both from: http://www.FreeRTOS.org/Documentation *
|
||||||
|
; * *
|
||||||
|
; * Thank you! *
|
||||||
|
; * *
|
||||||
|
; ***************************************************************************
|
||||||
|
;
|
||||||
|
; 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. Full license text is available from the following
|
||||||
|
; link: http://www.freertos.org/a00114.html
|
||||||
|
;
|
||||||
|
; 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, books, training, latest versions,
|
||||||
|
; license and Real Time Engineers Ltd. contact details.
|
||||||
|
;
|
||||||
|
; http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
||||||
|
; including FreeRTOS+Trace - an indispensable productivity tool, a DOS
|
||||||
|
; compatible FAT file system, and our tiny thread aware UDP/IP stack.
|
||||||
|
;
|
||||||
|
; http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
|
||||||
|
; Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS
|
||||||
|
; licenses offer ticketed support, indemnification and middleware.
|
||||||
|
;
|
||||||
|
; http://www.SafeRTOS.com - High Integrity Systems also provide a safety
|
||||||
|
; engineered and independently SIL3 certified version for use in safety and
|
||||||
|
; mission critical applications that require provable dependability.
|
||||||
|
;
|
||||||
|
; 1 tab == 4 spaces!
|
||||||
|
;*/
|
||||||
|
|
||||||
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
|
PRESERVE8
|
||||||
|
THUMB
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
IMPORT ulRegTest1LoopCounter
|
||||||
* *
|
IMPORT ulRegTest2LoopCounter
|
||||||
* FreeRTOS provides completely free yet professionally developed, *
|
|
||||||
* robust, strictly quality controlled, supported, and cross *
|
|
||||||
* platform software that has become a de facto standard. *
|
|
||||||
* *
|
|
||||||
* Help yourself get started quickly and support the FreeRTOS *
|
|
||||||
* project by purchasing a FreeRTOS tutorial book, reference *
|
|
||||||
* manual, or both from: http://www.FreeRTOS.org/Documentation *
|
|
||||||
* *
|
|
||||||
* Thank you! *
|
|
||||||
* *
|
|
||||||
***************************************************************************
|
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
EXPORT vRegTest1Task
|
||||||
|
EXPORT vRegTest2Task
|
||||||
|
|
||||||
|
AREA |.text|, CODE, READONLY
|
||||||
|
|
||||||
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
|
vRegTest1Task PROC
|
||||||
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
|
|
||||||
|
|
||||||
>>! NOTE: The modification to the GPL is included to allow you to distribute
|
;/* Fill the core registers with known values. This is only done once. */
|
||||||
>>! 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. Full license text is available from the following
|
|
||||||
link: http://www.freertos.org/a00114.html
|
|
||||||
|
|
||||||
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, books, training, latest versions,
|
|
||||||
license and Real Time Engineers Ltd. contact details.
|
|
||||||
|
|
||||||
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
|
|
||||||
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
|
|
||||||
compatible FAT file system, and our tiny thread aware UDP/IP stack.
|
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
|
|
||||||
Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS
|
|
||||||
licenses offer ticketed support, indemnification and middleware.
|
|
||||||
|
|
||||||
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
|
|
||||||
engineered and independently SIL3 certified version for use in safety and
|
|
||||||
mission critical applications that require provable dependability.
|
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
|
||||||
*/
|
|
||||||
|
|
||||||
RSEG CODE:CODE(2)
|
|
||||||
thumb
|
|
||||||
|
|
||||||
EXTERN ulRegTest1LoopCounter
|
|
||||||
EXTERN ulRegTest2LoopCounter
|
|
||||||
|
|
||||||
PUBLIC vRegTest1Task
|
|
||||||
PUBLIC vRegTest2Task
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
|
||||||
vRegTest1Task
|
|
||||||
|
|
||||||
/* Fill the core registers with known values. This is only done once. */
|
|
||||||
movs r1, #101
|
movs r1, #101
|
||||||
movs r2, #102
|
movs r2, #102
|
||||||
movs r3, #103
|
movs r3, #103
|
||||||
|
@ -95,8 +98,8 @@ vRegTest1Task
|
||||||
movs r0, #100
|
movs r0, #100
|
||||||
|
|
||||||
reg1_loop
|
reg1_loop
|
||||||
/* Repeatedly check that each register still contains the value written to
|
;/* Repeatedly check that each register still contains the value written to
|
||||||
it when the task started. */
|
;it when the task started. */
|
||||||
cmp r0, #100
|
cmp r0, #100
|
||||||
bne reg1_error_loop
|
bne reg1_error_loop
|
||||||
cmp r1, #101
|
cmp r1, #101
|
||||||
|
@ -129,7 +132,7 @@ reg1_loop
|
||||||
cmp r12, r0
|
cmp r12, r0
|
||||||
bne reg1_error_loop
|
bne reg1_error_loop
|
||||||
|
|
||||||
/* Everything passed, increment the loop counter. */
|
;/* Everything passed, increment the loop counter. */
|
||||||
push { r1 }
|
push { r1 }
|
||||||
ldr r0, =ulRegTest1LoopCounter
|
ldr r0, =ulRegTest1LoopCounter
|
||||||
ldr r1, [r0]
|
ldr r1, [r0]
|
||||||
|
@ -137,21 +140,22 @@ reg1_loop
|
||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
pop { r1 }
|
pop { r1 }
|
||||||
|
|
||||||
/* Start again. */
|
;/* Start again. */
|
||||||
movs r0, #100
|
movs r0, #100
|
||||||
b reg1_loop
|
b reg1_loop
|
||||||
|
|
||||||
reg1_error_loop
|
reg1_error_loop
|
||||||
/* If this line is hit then there was an error in a core register value.
|
;/* If this line is hit then there was an error in a core register value.
|
||||||
The loop ensures the loop counter stops incrementing. */
|
;The loop ensures the loop counter stops incrementing. */
|
||||||
b reg1_error_loop
|
b reg1_error_loop
|
||||||
nop
|
nop
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vRegTest2Task
|
vRegTest2Task PROC
|
||||||
|
|
||||||
/* Fill the core registers with known values. This is only done once. */
|
;/* Fill the core registers with known values. This is only done once. */
|
||||||
movs r1, #1
|
movs r1, #1
|
||||||
movs r2, #2
|
movs r2, #2
|
||||||
movs r3, #3
|
movs r3, #3
|
||||||
|
@ -172,8 +176,8 @@ vRegTest2Task
|
||||||
movs r0, #10
|
movs r0, #10
|
||||||
|
|
||||||
reg2_loop
|
reg2_loop
|
||||||
/* Repeatedly check that each register still contains the value written to
|
;/* Repeatedly check that each register still contains the value written to
|
||||||
it when the task started. */
|
;it when the task started. */
|
||||||
cmp r0, #10
|
cmp r0, #10
|
||||||
bne reg2_error_loop
|
bne reg2_error_loop
|
||||||
cmp r1, #1
|
cmp r1, #1
|
||||||
|
@ -206,7 +210,7 @@ reg2_loop
|
||||||
cmp r12, r0
|
cmp r12, r0
|
||||||
bne reg2_error_loop
|
bne reg2_error_loop
|
||||||
|
|
||||||
/* Everything passed, increment the loop counter. */
|
;/* Everything passed, increment the loop counter. */
|
||||||
push { r1 }
|
push { r1 }
|
||||||
ldr r0, =ulRegTest2LoopCounter
|
ldr r0, =ulRegTest2LoopCounter
|
||||||
ldr r1, [r0]
|
ldr r1, [r0]
|
||||||
|
@ -214,14 +218,15 @@ reg2_loop
|
||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
pop { r1 }
|
pop { r1 }
|
||||||
|
|
||||||
/* Start again. */
|
;/* Start again. */
|
||||||
movs r0, #10
|
movs r0, #10
|
||||||
b reg2_loop
|
b reg2_loop
|
||||||
|
|
||||||
reg2_error_loop
|
reg2_error_loop
|
||||||
/* If this line is hit then there was an error in a core register value.
|
;/* If this line is hit then there was an error in a core register value.
|
||||||
The loop ensures the loop counter stops incrementing. */
|
;The loop ensures the loop counter stops incrementing. */
|
||||||
b reg2_error_loop
|
b reg2_error_loop
|
||||||
nop
|
nop
|
||||||
|
ENDP
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
|
@ -139,7 +139,8 @@ multiple of this. */
|
||||||
#define mainFLASH_TIMER_BASE_RATE ( 200UL / portTICK_RATE_MS )
|
#define mainFLASH_TIMER_BASE_RATE ( 200UL / portTICK_RATE_MS )
|
||||||
|
|
||||||
/* The LED toggle by the check timer. */
|
/* The LED toggle by the check timer. */
|
||||||
#define mainCHECK_LED ( 3 )
|
#define mainCHECK_LED ( 1 )
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue