summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2017-03-09 19:39:40 +0100
committerJohnny Willemsen <jwillemsen@remedy.nl>2017-03-09 19:39:40 +0100
commitf8e7d0994daddd64ffd68bc573bf3f5a12766918 (patch)
treec186d657e3d9ab112b6f21e92d6fb778063665fa /templates
parent44f36fbb071da33d732879eecc44a5f1cf601dac (diff)
parent0dcdcc6dac43940904bb5afe9fc7a7ea038af792 (diff)
downloadMPC-f8e7d0994daddd64ffd68bc573bf3f5a12766918.tar.gz
Merge branch 'master' of https://github.com/DOCGroup/MPC
Diffstat (limited to 'templates')
-rw-r--r--templates/make.mpd4
-rw-r--r--templates/makedll.mpt17
-rw-r--r--templates/uvis.mpd736
-rw-r--r--templates/uvis.mpt19
4 files changed, 776 insertions, 0 deletions
diff --git a/templates/make.mpd b/templates/make.mpd
index 24cd8a74..306a929d 100644
--- a/templates/make.mpd
+++ b/templates/make.mpd
@@ -107,7 +107,11 @@ LIBSUFFIX = <%lib_modifier%>
EXESUFFIX = <%lib_modifier%>
<%endif%>
GENFLAGS =<%if(!contains(configuration, Release) || optimize)%> <%genflags%><%endif%>
+<%if(link_lib_name)%>
+LDLIBS =<%foreach(libs)%> "$(LIBPREFIX)<%lib%>$(LIBSUFFIX)<%lib_ext%>"<%endfor%><%foreach(lit_libs)%> "$(LIBPREFIX)<%lit_lib%><%lib_ext%>"<%endfor%><%foreach(pure_libs)%> "<%pure_lib%>"<%endfor%> <%ldlibs%>
+<%else%>
LDLIBS =<%foreach(libs)%> <%libopt%>"<%libname_prefix%><%lib%>$(LIBSUFFIX)"<%endfor%><%foreach(lit_libs)%> <%libopt%>"<%lit_lib%>"<%endfor%><%foreach(pure_libs)%> "<%pure_lib%>"<%endfor%> <%ldlibs%>
+<%endif%>
OBJS =<%if(pch_source && pchsupport)%> <%targetoutdir%><%obj_dir%><%noextension(pch_source)%>$(OBJEXT)<%endif%><%foreach(source_files)%> <%if(targetoutdir || obj_dir)%><%targetoutdir%><%obj_dir%><%transdir(source_file)%><%basenoextension(source_file)%><%else%><%noextension(source_file)%><%endif%>$(OBJEXT)<%endfor%><%if(rc)%><%foreach(resource_files)%> <%targetoutdir%><%obj_dir%><%resource_file%>$(RESEXT)<%endfor%><%endif%>
<%if(lib_ext)%>
<%if(staticname)%>
diff --git a/templates/makedll.mpt b/templates/makedll.mpt
index e12b5538..b88695d0 100644
--- a/templates/makedll.mpt
+++ b/templates/makedll.mpt
@@ -136,6 +136,18 @@ arm_elf_gcc {
covopt = -fprofile-arcs -ftest-coverage -DCOMPILER_COVERAGE
}
+arm_keil {
+ cc = armcc
+ cxx = armcc
+ ar = armar
+ ld = armlink
+ libpathopt = "--userlibpath "
+ link_lib_name = 1
+ arflags = -rcs
+ compilerflags = --gnu -DKEIL
+ platforms = cmsis_cortex_m4
+}
+
Intel {
cxx = icpc
pic = -fPIC
@@ -272,6 +284,11 @@ nucleus {
extracppflags = -mcpu=arm7tdmi -msoft-float -mthumb-interwork
}
+cmsis_cortex_m4 {
+ gnumake = 1
+ extracppflags = --cpu=Cortex-M4
+}
+
solaris {
shflags = -G
ldlibs = -lsocket -ldl -lnsl -lgen -lposix4 -lthread
diff --git a/templates/uvis.mpd b/templates/uvis.mpd
new file mode 100644
index 00000000..29eecffe
--- /dev/null
+++ b/templates/uvis.mpd
@@ -0,0 +1,736 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
+
+ <SchemaVersion>2.1</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Targets>
+ <Target>
+ <TargetName><%project_name%></TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pCCUsed>5060183::V5.06 update 2 (build 183)::ARMCC</pCCUsed>
+ <TargetOption>
+<%foreach(configurations)%>
+<%foreach(devices)%>
+ <TargetCommonOption>
+ <Device><%device%></Device>
+ <Vendor><%vendor%></Vendor>
+ <PackID>Keil.<%dfp%>_DFP.1.2.0</PackID>
+ <PackURL>http://www.keil.com/pack</PackURL>
+ <Cpu>IRAM(<%iram1_start%>,<%iram1_size%>) IRAM2(<%iram2_start%>,<%iram2_size%>) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0<%dfp%>_1024 -FS08000000 -FL0100000 -FP0($$Device:<%device%>$Flash\<%flash%>))</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:<%device%>$Device\Include\<%register%></RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:<%device%>$SVD\<%sfd%></SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\Objects\</OutputDirectory>
+ <OutputName><%if(exename)%><%exename%><%else%><%if(sharedname)%><%sharedname%><%else%><%staticname%><%endif%><%endif%></OutputName>
+ <CreateExecutable><%if(exename)%>1<%else%>0<%endif%></CreateExecutable>
+ <CreateLib><%if(exename)%>0<%else%>1<%endif%></CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation><%debuginformation%></DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\Listings\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>0</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1><%if(prebuild)%>1<%else%>0<%endif%></RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name><%eval(prebuild)%></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1><%if(postbuild)%>1<%else%>0<%endif%></RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name><%eval(postbuild)%></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>1</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName>SARMCM3.DLL</SimDllName>
+ <SimDllArguments> -REMAP -MPU</SimDllArguments>
+ <SimDlgDll>DCM.DLL</SimDlgDll>
+ <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
+ <TargetDllName>SARMCM3.DLL</TargetDllName>
+ <TargetDllArguments> -MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2CM3.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>1</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>1</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"Cortex-M4"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>2</RvdsVP>
+ <hadIRAM2>1</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>1</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk><%if(xram1_start && xram1_size)%>1<%else%>0<%endif%></Ra1Chk>
+ <Ra2Chk><%if(xram2_start && xram2_size)%>1<%else%>0<%endif%></Ra2Chk>
+ <Ra3Chk><%if(xram3_start && xram3_size)%>1<%else%>0<%endif%></Ra3Chk>
+ <Im1Chk><%if(iram1_start && iram1_size)%>1<%else%>0<%endif%></Im1Chk>
+ <Im2Chk><%if(iram2_start && iram2_size)%>1<%else%>0<%endif%></Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress><%iram1_start%></StartAddress>
+ <Size><%iram1_size%></Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x100000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x100000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress><%xram1_start(0x0)%></StartAddress>
+ <Size><%xram1_size(0x0)%></Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress><%xram2_start(0x0)%></StartAddress>
+ <Size><%xram2_size(0x0)%></Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress><%xram3_start(0x0)%></StartAddress>
+ <Size><%xram3_size(0x0)%></Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress><%iram1_start%></StartAddress>
+ <Size><%iram1_size%></Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress><%iram2_start%></StartAddress>
+ <Size><%iram2_size%></Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>1</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>0</uC99>
+ <useXO>0</useXO>
+ <v6Lang>1</v6Lang>
+ <v6LangP>1</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <VariousControls>
+ <MiscControls><%genflags%></MiscControls>
+ <Define><%foreach(macros)%><%macro%> <%endfor%>ARMCC</Define>
+ <Undefine></Undefine>
+ <IncludePath><%foreach(includes)%><%include%><%fornotlast(";")%><%endfor%></IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>0</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg><%if(scatter_file)%>0<%else%>1<%endif%></umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange>0x08000000</TextAddressRange>
+ <DataAddressRange>0x20000000</DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile><%scatter_file%></ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+<%endfor%>
+<%endfor%>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Source</GroupName>
+ <GroupOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>2</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <GroupArmAds>
+ <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>2</wLevel>
+ <uThumb>2</uThumb>
+ <uSurpInc>2</uSurpInc>
+ <uC99>2</uC99>
+ <useXO>2</useXO>
+ <v6Lang>0</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>2</vShortEn>
+ <vShortWch>2</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </GroupArmAds>
+ </GroupOption>
+ <Files>
+<%foreach(source_files)%>
+ <File>
+ <FileName><%basename(source_file)%></FileName>
+<%if(ends_with(source_file, \.s))%>
+ <FileType>2</FileType>
+<%else%>
+ <FileType>1</FileType>
+<%endif%>
+ <FilePath><%source_file%></FilePath>
+ </File>
+<%endfor%>
+ </Files>
+ </Group>
+<%if(header_files)%>
+ <Group>
+ <GroupName>Include</GroupName>
+ <Files>
+<%foreach(header_files)%>
+ <File>
+ <FileName><%basename(header_file)%></FileName>
+ <FileType>5</FileType>
+ <FilePath><%header_file%></FilePath>
+ </File>
+<%endfor%>
+ </Files>
+ </Group>
+<%endif%>
+<%if(inline_files)%>
+ <Group>
+ <GroupName>Inline</GroupName>
+ <Files>
+<%foreach(inline_files)%>
+ <File>
+ <FileName><%basename(inline_file)%></FileName>
+ <FileType>5</FileType>
+ <FilePath><%inline_file%></FilePath>
+ </File>
+<%endfor%>
+ </Files>
+ </Group>
+<%endif%>
+<%if(documentation_files)%>
+ <Group>
+ <GroupName>Misc</GroupName>
+ <Files>
+<%foreach(documentation_files)%>
+ <File>
+ <FileName><%basename(documentation_file)%></FileName>
+ <FileType>5</FileType>
+ <FilePath><%documentation_file%></FilePath>
+ </File>
+<%endfor%>
+ </Files>
+ </Group>
+<%endif%>
+<%if(exename)%>
+ <Group>
+ <GroupName>Libraries</GroupName>
+ <Files>
+<%foreach(libs lit_libs)%>
+ <File>
+ <FileName><%basename(lib)%>.lib</FileName>
+ <FileType>4</FileType>
+ <FilePath><%libpaths%>\<%lib%>.lib</FilePath>
+ </File>
+<%endfor%>
+<%foreach(pure_libs)%>
+ <File>
+ <FileName><%basename(pure_lib)%></FileName>
+ <FileType>4</FileType>
+ <FilePath><%pure_lib%></FilePath>
+ </File>
+<%endfor%>
+ </Files>
+ </Group>
+<%endif%>
+ <Group>
+ <GroupName>::Board Support</GroupName>
+ <GroupOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <GroupArmAds>
+ <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>2</wLevel>
+ <uThumb>2</uThumb>
+ <uSurpInc>2</uSurpInc>
+ <uC99>2</uC99>
+ <useXO>2</useXO>
+ <v6Lang>0</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>0</vShortEn>
+ <vShortWch>0</vShortWch>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </GroupArmAds>
+ </GroupOption>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ <GroupOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>2</AlwaysBuild>
+ <GenerateAssemblyFile>2</GenerateAssemblyFile>
+ <AssembleAssemblyFile>2</AssembleAssemblyFile>
+ <PublicsOnly>2</PublicsOnly>
+ <StopOnExitCode>11</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <GroupArmAds>
+ <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>2</wLevel>
+ <uThumb>2</uThumb>
+ <uSurpInc>2</uSurpInc>
+ <uC99>2</uC99>
+ <useXO>2</useXO>
+ <v6Lang>0</v6Lang>
+ <v6LangP>0</v6LangP>
+ <vShortEn>2</vShortEn>
+ <vShortWch>2</vShortWch>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>2</interw>
+ <Ropi>2</Ropi>
+ <Rwpi>2</Rwpi>
+ <thumb>2</thumb>
+ <SplitLS>2</SplitLS>
+ <SwStkChk>2</SwStkChk>
+ <NoWarn>2</NoWarn>
+ <uSurpInc>2</uSurpInc>
+ <useXO>2</useXO>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ </GroupArmAds>
+ </GroupOption>
+ </Group>
+ </Groups>
+ </Target>
+ </Targets>
+
+<%if(exename)%>
+<%foreach(configurations)%>
+<%foreach(devices)%>
+ <RTE>
+ <apis>
+ <api Capiversion="1.0" Cclass="CMSIS" Cgroup="RTOS" exclusive="1">
+ <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.2.0"/>
+ <targetInfos>
+ <targetInfo name="<%project_name%>"/>
+ </targetInfos>
+ </api>
+ </apis>
+ <components>
+ <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="4.1.0" condition="CMSIS Core">
+ <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.3.0"/>
+ <targetInfos>
+ <targetInfo name="<%project_name%>"/>
+ </targetInfos>
+ </component>
+ <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cvendor="ARM" Cversion="4.78.0" condition="Cortex-M Device Startup">
+ <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.3.0"/>
+ <targetInfos>
+ <targetInfo name="<%project_name%>"/>
+ </targetInfos>
+ </component>
+<%if(device_files)%>
+ <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.3" condition="<%board%> CMSIS">
+ <package name="<%dfp%>_DFP" schemaVersion="1.2" url="http://www.keil.com/pack" vendor="Keil" version="1.2.0"/>
+ <targetInfos>
+ <targetInfo name="<%project_name%>"/>
+ </targetInfos>
+ </component>
+<%endif%>
+ </components>
+ <files>
+<%foreach(cmsis_files)%>
+ <file attr="config" category="source" name="<%cmsis_file%>" version="4.70.1">
+ <instance index="0"><%cmsis_file%></instance>
+ <component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cvendor="ARM" Cversion="4.78.0" condition="Cortex-M Device Startup"/>
+ <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.3.0"/>
+ <targetInfos>
+ <targetInfo name="<%project_name%>"/>
+ </targetInfos>
+ </file>
+<%endfor%>
+<%foreach(device_files)%>
+<%if(ends_with(device_file, \.s))%>
+ <file attr="config" category="sourceAsm" condition="Compiler ARMCC" name="<%device_file%>" version="1.0.3">
+ <instance index="0"><%device_file%></instance>
+ <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.3" condition="<%board%> CMSIS"/>
+ <package name="<%dfp%>_DFP" schemaVersion="1.2" url="http://www.keil.com/pack" vendor="Keil" version="1.2.0"/>
+ <targetInfos>
+ <targetInfo name="<%project_name%>"/>
+ </targetInfos>
+ </file>
+<%else%>
+ <file attr="config" category="sourceC" name="<%device_file%>" version="1.0.3">
+ <instance index="0"><%device_file%></instance>
+ <component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.3" condition="<%board%> CMSIS"/>
+ <package name="<%dfp%>_DFP" schemaVersion="1.2" url="http://www.keil.com/pack" vendor="Keil" version="1.2.0"/>
+ <targetInfos>
+ <targetInfo name="<%project_name%>"/>
+ </targetInfos>
+ </file>
+<%endif%>
+<%endfor%>
+ </files>
+ </RTE>
+<%endfor%>
+<%endfor%>
+<%endif%>
+
+</Project>
diff --git a/templates/uvis.mpt b/templates/uvis.mpt
new file mode 100644
index 00000000..c8bcdc66
--- /dev/null
+++ b/templates/uvis.mpt
@@ -0,0 +1,19 @@
+configurations = Release
+devices = STM32L476ZGTx
+
+Debug {
+ debuginformation = 1
+}
+
+Release {
+ debuginformation = 0
+}
+
+STM32L476ZGTx {
+ board = STM32L476
+ dfp = STM32L4xx
+ vendor = STMicroelectronics
+ flash = STM32L4xx_1024.FLM
+ register = stm32l4xx.h
+ sfd = STM32L4x6.svd
+}