FreeRTOS-Kernel/FreeRTOS/Demo/AVR_ATmega328PB_Xplained_mini_GCC/RTOSDemo/RTOSDemo.cproj
Yuhui Zheng 8b079bc394
ATmega328PB Xplained Mini -- demo project for ATmega port. (#70)
* Bootstrap a demo from START. No driver is added in this commit.

* Add FreeRTOS source code to project. Remove unnecessary folder nesting.

Heap_4 is used here.

* Copy over main.c, FreeRTOSConfig.h, and regtest.{c, h}.

This commit compiles, but will need some work on timer used.

* This port has 2KB RAM. We are using 1KB for heap.

Further decreasing minimum stack size, and also use stack overflow check 1 to save some stack space.

* Preserve EEPROM set to false.

* End of the line.

* Reduce register test stack size.

32 8-bit register + 10 bytes for stack frame cost. Round up to 50.

* Adding Queue test in Integer test.

- g3 to easy debugging.
- mainCHECK_PERIOD is set to 1000 ticks. Note that this port for now use WDT as tick timer, and period is set to 15ms.
- vErrorChecks, is of highest priority. So if this task gets run before other tasks, the very first check will fail.

* Avoid false alarm.

Since we don't know in which order the tasks are scheduled, clearing any error for the first entry of vErrorChecks.

Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>

* ParTest.c to init, set, toggle onboard user LED at PB5.

* Added a task to blink onboard user LED.

Need a magic number for stack size.

Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>

* Explicitly setting timing slicing to 0.
This is to avoid unecessary context switch when multiple tasks are of the same priority.


Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>

* Add taskYIELD() at the end of the loop in each register test task.

This is to give other tasks of the same priority a chance to run, regardless of scheduling algorithm.

Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>

* minor, update comment in main.c.
2020-05-27 10:44:03 -07:00

436 lines
No EOL
19 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>dce6c7e3-ee26-4d79-826b-08594b9ad897</ProjectGuid>
<avrdevice>ATmega328PB</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>RTOSDemo</AssemblyName>
<Name>RTOSDemo</Name>
<RootNamespace>RTOSDemo</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress>0x20000000</RamSnippetAddress>
<UncachedRange />
<preserveEEPROM>false</preserveEEPROM>
<OverrideVtorValue>exception_table</OverrideVtorValue>
<BootSegment>2</BootSegment>
<ResetRule>0</ResetRule>
<eraseonlaunchrule>1</eraseonlaunchrule>
<EraseKey />
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.48.0" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<atStartFilePath>.atmelstart\atmel_start_config.atstart</atStartFilePath>
<GpdscFilePath>.atmelstart\AtmelStart.gpdsc</GpdscFilePath>
<AcmeProjectConfig>
<AcmeProjectConfig xmlns="">
<TopLevelComponents>
<AcmeProjectComponent IsAutoGenerated="false" CClass="AtmelStart" Cgroup="Framework" CVersion="1.0.0" />
<AcmeProjectComponent IsAutoGenerated="false" CClass="CMSIS" Cgroup="CORE" />
<AcmeProjectComponent IsAutoGenerated="false" CClass="Device" Cgroup="Startup" CVersion="1.4.0" />
</TopLevelComponents>
<AcmeActionInfos>
<AcmeProjectActionInfo Action="File" Source="main.c" IsConfig="false" Hash="k0AH7j+BrmdFhBPzCCMptA" />
<AcmeProjectActionInfo Action="File" Source="src/driver_init.c" IsConfig="false" Hash="qeQ0WqMZjsnF6L9FCEvMww" />
<AcmeProjectActionInfo Action="File" Source="include/driver_init.h" IsConfig="false" Hash="0xllaI+xStXB+dxt9wajlQ" />
<AcmeProjectActionInfo Action="File" Source="include/atmel_start_pins.h" IsConfig="false" Hash="f3YIsjuEOTfZNtPCil6buA" />
<AcmeProjectActionInfo Action="File" Source="driver_isr.c" IsConfig="false" Hash="RPVBKpBZfVQn6i4UEJhoAQ" />
<AcmeProjectActionInfo Action="File" Source="include/port.h" IsConfig="false" Hash="bUvfk9QRsIq0MLJHYTT8OQ" />
<AcmeProjectActionInfo Action="File" Source="include/protected_io.h" IsConfig="false" Hash="GtWCoxY2zHZ4GTLcem4qFg" />
<AcmeProjectActionInfo Action="File" Source="include/sysctrl.h" IsConfig="false" Hash="IkUARTtq5CXjH/ULGaOphg" />
<AcmeProjectActionInfo Action="File" Source="include/system.h" IsConfig="false" Hash="sWTcwXpHdzy4Y1ON/P1yWQ" />
<AcmeProjectActionInfo Action="File" Source="src/protected_io.S" IsConfig="false" Hash="xMwVxkDny+gUjOkARvQSWA" />
<AcmeProjectActionInfo Action="File" Source="utils/assembler.h" IsConfig="false" Hash="jaaWqpCXnRJMciuXpjSfgQ" />
<AcmeProjectActionInfo Action="File" Source="utils/assembler/gas.h" IsConfig="false" Hash="wV+34zXWOOJ7jfwQibBgLQ" />
<AcmeProjectActionInfo Action="File" Source="utils/assembler/iar.h" IsConfig="false" Hash="re7qP3QC0FK72z2UZ4UoFg" />
<AcmeProjectActionInfo Action="File" Source="utils/atomic.h" IsConfig="false" Hash="f/dASgnDZRhtSN3raDvdUw" />
<AcmeProjectActionInfo Action="File" Source="utils/compiler.h" IsConfig="false" Hash="0nu900aD8XpfP0ala86h3g" />
<AcmeProjectActionInfo Action="File" Source="utils/interrupt_avr8.h" IsConfig="false" Hash="we4I4zgUjI72u99X4E868Q" />
<AcmeProjectActionInfo Action="File" Source="utils/utils.h" IsConfig="false" Hash="GAJR4maoUA79075ETSBiAQ" />
<AcmeProjectActionInfo Action="File" Source="utils/utils_assert.h" IsConfig="false" Hash="lJZG/QWOeOnUhe4wcXVztA" />
<AcmeProjectActionInfo Action="File" Source="atmel_start.h" IsConfig="false" Hash="ZPe6iT3s4OihW8t8wDF53g" />
<AcmeProjectActionInfo Action="File" Source="atmel_start.c" IsConfig="false" Hash="1RHIE7zTtYK4DURNPUqF9w" />
<AcmeProjectActionInfo Action="File" Source="config/clock_config.h" IsConfig="true" Hash="8qEsKlGuttlBavFalcsPNA" />
</AcmeActionInfos>
<NonsecureFilesInfo />
</AcmeProjectConfig>
</AcmeProjectConfig>
<avrtool>com.atmel.avrdbg.tool.medbg</avrtool>
<avrtoolserialnumber>ATML2523052700004152</avrtoolserialnumber>
<avrdeviceexpectedsignature>0x1E9516</avrdeviceexpectedsignature>
<com_atmel_avrdbg_tool_medbg>
<ToolOptions>
<InterfaceProperties>
</InterfaceProperties>
<InterfaceName>debugWIRE</InterfaceName>
</ToolOptions>
<ToolType>com.atmel.avrdbg.tool.medbg</ToolType>
<ToolNumber>ATML2523052700004152</ToolNumber>
<ToolName>mEDBG</ToolName>
</com_atmel_avrdbg_tool_medbg>
<avrtoolinterface>debugWIRE</avrtoolinterface>
<com_atmel_avrdbg_tool_simulator>
<ToolOptions xmlns="">
<InterfaceProperties>
</InterfaceProperties>
<InterfaceName>
</InterfaceName>
</ToolOptions>
<ToolType xmlns="">com.atmel.avrdbg.tool.simulator</ToolType>
<ToolNumber xmlns="">
</ToolNumber>
<ToolName xmlns="">Simulator</ToolName>
</com_atmel_avrdbg_tool_simulator>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega328pb -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.4.351\gcc\dev\atmega328pb"</avrgcc.common.Device>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>../Config</Value>
<Value>../include</Value>
<Value>../utils</Value>
<Value>../utils/assembler</Value>
<Value>../</Value>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\1.4.351\include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>../Config</Value>
<Value>../include</Value>
<Value>../utils</Value>
<Value>../utils/assembler</Value>
<Value>../</Value>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\1.4.351\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega328pb -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.4.351\gcc\dev\atmega328pb"</avrgcc.common.Device>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>../Config</Value>
<Value>../include</Value>
<Value>../utils</Value>
<Value>../utils/assembler</Value>
<Value>../</Value>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\1.4.351\include</Value>
<Value>../../../../Source/include</Value>
<Value>../../../../Source/portable/ThirdParty/GCC/ATmega</Value>
<Value>../../../Common/include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Maximum (-g3)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -fstack-usage</avrgcc.compiler.miscellaneous.OtherFlags>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>../Config</Value>
<Value>../include</Value>
<Value>../utils</Value>
<Value>../utils/assembler</Value>
<Value>../</Value>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\1.4.351\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\..\..\Source\croutine.c">
<SubType>compile</SubType>
<Link>FreeRTOS\croutine.c</Link>
</Compile>
<Compile Include="..\..\..\Source\event_groups.c">
<SubType>compile</SubType>
<Link>FreeRTOS\event_groups.c</Link>
</Compile>
<Compile Include="..\..\..\Source\include\atomic.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\atomic.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\croutine.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\croutine.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\deprecated_definitions.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\deprecated_definitions.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\event_groups.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\event_groups.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\FreeRTOS.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\FreeRTOS.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\list.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\list.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\message_buffer.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\message_buffer.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\mpu_prototypes.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\mpu_prototypes.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\mpu_wrappers.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\mpu_wrappers.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\portable.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\portable.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\projdefs.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\projdefs.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\queue.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\queue.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\semphr.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\semphr.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\StackMacros.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\StackMacros.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\stack_macros.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\stack_macros.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\stream_buffer.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\stream_buffer.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\task.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\task.h</Link>
</Compile>
<Compile Include="..\..\..\Source\include\timers.h">
<SubType>compile</SubType>
<Link>FreeRTOS\include\timers.h</Link>
</Compile>
<Compile Include="..\..\..\Source\list.c">
<SubType>compile</SubType>
<Link>FreeRTOS\list.c</Link>
</Compile>
<Compile Include="..\..\..\Source\portable\MemMang\heap_4.c">
<SubType>compile</SubType>
<Link>FreeRTOS\portable\MemMang\heap_4.c</Link>
</Compile>
<Compile Include="..\..\..\Source\portable\ThirdParty\GCC\ATmega\port.c">
<SubType>compile</SubType>
<Link>FreeRTOS\portable\ATmega\port.c</Link>
</Compile>
<Compile Include="..\..\..\Source\portable\ThirdParty\GCC\ATmega\portmacro.h">
<SubType>compile</SubType>
<Link>FreeRTOS\portable\ATmega\portmacro.h</Link>
</Compile>
<Compile Include="..\..\..\Source\queue.c">
<SubType>compile</SubType>
<Link>FreeRTOS\queue.c</Link>
</Compile>
<Compile Include="..\..\..\Source\stream_buffer.c">
<SubType>compile</SubType>
<Link>FreeRTOS\stream_buffer.c</Link>
</Compile>
<Compile Include="..\..\..\Source\tasks.c">
<SubType>compile</SubType>
<Link>FreeRTOS\tasks.c</Link>
</Compile>
<Compile Include="..\..\..\Source\timers.c">
<SubType>compile</SubType>
<Link>FreeRTOS\timers.c</Link>
</Compile>
<Compile Include="..\..\Common\Minimal\integer.c">
<SubType>compile</SubType>
<Link>Minimal\integer.c</Link>
</Compile>
<Compile Include="..\..\Common\Minimal\PollQ.c">
<SubType>compile</SubType>
<Link>Minimal\PollQ.c</Link>
</Compile>
<Compile Include="atmel_start.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="atmel_start.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Config\clock_config.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Config\RTE_Components.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="driver_isr.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="FreeRTOSConfig.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="include\atmel_start_pins.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="include\driver_init.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="include\port.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="include\protected_io.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="include\sysctrl.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="include\system.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="main.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="ParTest.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="regtest.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="regtest.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="src\driver_init.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="src\protected_io.S">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\assembler.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\assembler\gas.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\assembler\iar.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\atomic.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\compiler.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\interrupt_avr8.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\utils.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="utils\utils_assert.h">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Folder Include="Config\" />
<Folder Include="doxygen\" />
<Folder Include="doxygen\generator\" />
<Folder Include="FreeRTOS\include" />
<Folder Include="FreeRTOS\portable" />
<Folder Include="FreeRTOS\portable\MemMang" />
<Folder Include="FreeRTOS\portable\ATmega" />
<Folder Include="include\" />
<Folder Include="FreeRTOS" />
<Folder Include="Minimal" />
<Folder Include="src\" />
<Folder Include="utils\" />
<Folder Include="utils\assembler\" />
</ItemGroup>
<ItemGroup>
<None Include="doxygen\generator\doxyfile.doxygen">
<SubType>compile</SubType>
</None>
<None Include="doxygen\generator\DoxygenLayout.xml">
<SubType>compile</SubType>
</None>
<None Include="doxygen\mainpage.dox">
<SubType>compile</SubType>
</None>
<None Include="doxygen\system.dox">
<SubType>compile</SubType>
</None>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>