Skip to content

Commit 26bd46f

Browse files
committed
Add a method to the exporter to choose the toolchain. Add initial LPC812 uvision template
1 parent 8f1c636 commit 26bd46f

File tree

4 files changed

+634
-3
lines changed

4 files changed

+634
-3
lines changed

workspace_tools/export/exporters.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,12 @@ def __init__(self, target, inputDir, program_name, build_url_resolver):
1818
self.inputDir = inputDir
1919
self.target = target
2020
self.program_name = program_name
21-
self.toolchain = TOOLCHAIN_CLASSES[self.TOOLCHAIN](TARGET_MAP[target])
21+
self.toolchain = TOOLCHAIN_CLASSES[self.get_toolchain()](TARGET_MAP[target])
2222
self.build_url_resolver = build_url_resolver
2323

24+
def get_toolchain(self):
25+
return self.TOOLCHAIN
26+
2427
def __scan_and_copy(self, src_path, trg_path):
2528
resources = self.toolchain.scan_resources(src_path)
2629

workspace_tools/export/uvision4.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@
2020

2121
class Uvision4(Exporter):
2222
NAME = 'uVision4'
23-
TOOLCHAIN = 'ARM'
24-
TARGETS = ['LPC1768', 'LPC11U24', 'KL25Z', 'LPC1347', 'LPC1114', 'LPC4088']
23+
24+
TARGETS = ['LPC1768', 'LPC11U24', 'KL25Z', 'LPC1347', 'LPC1114', 'LPC4088', 'LPC812']
25+
26+
USING_MICROLIB = ['LPC11U24', 'LPC1114', 'LPC812']
27+
2528
FILE_TYPES = {
2629
'c_sources':'1',
2730
'cpp_sources':'8',
@@ -30,6 +33,9 @@ class Uvision4(Exporter):
3033
# By convention uVision projects do not show header files in the editor:
3134
# 'headers':'5',
3235

36+
def get_toolchain(self):
37+
return 'uARM' if (self.target in self.USING_MICROLIB) else 'ARM'
38+
3339
def generate(self):
3440
source_files = []
3541
for r_type, n in Uvision4.FILE_TYPES.iteritems():
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
2+
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
3+
4+
<SchemaVersion>1.0</SchemaVersion>
5+
6+
<Header>### uVision Project, (C) Keil Software</Header>
7+
8+
<Extensions>
9+
<cExt>*.c</cExt>
10+
<aExt>*.s*; *.src; *.a*</aExt>
11+
<oExt>*.obj</oExt>
12+
<lExt>*.lib</lExt>
13+
<tExt>*.txt; *.h; *.inc</tExt>
14+
<pExt>*.plm</pExt>
15+
<CppX>*.cpp</CppX>
16+
</Extensions>
17+
18+
<DaveTm>
19+
<dwLowDateTime>0</dwLowDateTime>
20+
<dwHighDateTime>0</dwHighDateTime>
21+
</DaveTm>
22+
23+
<Target>
24+
<TargetName>mbed LPC812</TargetName>
25+
<ToolsetNumber>0x4</ToolsetNumber>
26+
<ToolsetName>ARM-ADS</ToolsetName>
27+
<TargetOption>
28+
<CLKADS>12000000</CLKADS>
29+
<OPTTT>
30+
<gFlags>1</gFlags>
31+
<BeepAtEnd>1</BeepAtEnd>
32+
<RunSim>1</RunSim>
33+
<RunTarget>0</RunTarget>
34+
</OPTTT>
35+
<OPTHX>
36+
<HexSelection>1</HexSelection>
37+
<FlashByte>65535</FlashByte>
38+
<HexRangeLowAddress>0</HexRangeLowAddress>
39+
<HexRangeHighAddress>0</HexRangeHighAddress>
40+
<HexOffset>0</HexOffset>
41+
</OPTHX>
42+
<OPTLEX>
43+
<PageWidth>79</PageWidth>
44+
<PageLength>66</PageLength>
45+
<TabStop>8</TabStop>
46+
<ListingPath>.\build\</ListingPath>
47+
</OPTLEX>
48+
<ListingPage>
49+
<CreateCListing>1</CreateCListing>
50+
<CreateAListing>1</CreateAListing>
51+
<CreateLListing>1</CreateLListing>
52+
<CreateIListing>0</CreateIListing>
53+
<AsmCond>1</AsmCond>
54+
<AsmSymb>1</AsmSymb>
55+
<AsmXref>0</AsmXref>
56+
<CCond>1</CCond>
57+
<CCode>0</CCode>
58+
<CListInc>0</CListInc>
59+
<CSymb>0</CSymb>
60+
<LinkerCodeListing>0</LinkerCodeListing>
61+
</ListingPage>
62+
<OPTXL>
63+
<LMap>1</LMap>
64+
<LComments>1</LComments>
65+
<LGenerateSymbols>1</LGenerateSymbols>
66+
<LLibSym>1</LLibSym>
67+
<LLines>1</LLines>
68+
<LLocSym>1</LLocSym>
69+
<LPubSym>1</LPubSym>
70+
<LXref>0</LXref>
71+
<LExpSel>0</LExpSel>
72+
</OPTXL>
73+
<OPTFL>
74+
<tvExp>1</tvExp>
75+
<tvExpOptDlg>0</tvExpOptDlg>
76+
<IsCurrentTarget>1</IsCurrentTarget>
77+
</OPTFL>
78+
<CpuCode>8</CpuCode>
79+
<Books>
80+
<Book>
81+
<Number>0</Number>
82+
<Title>Data Sheet</Title>
83+
<Path>DATASHTS\NXP\LPC8xx\LPC81XM.pdf</Path>
84+
</Book>
85+
<Book>
86+
<Number>1</Number>
87+
<Title>User Manual</Title>
88+
<Path>DATASHTS\NXP\LPC8xx\UM10601.pdf</Path>
89+
</Book>
90+
<Book>
91+
<Number>2</Number>
92+
<Title>Technical Reference Manual</Title>
93+
<Path>datashts\arm\cortex_m0p\r0p0\DDI0484B_CORTEX_M0P_R0P0_TRM.PDF</Path>
94+
</Book>
95+
<Book>
96+
<Number>3</Number>
97+
<Title>Generic User Guide</Title>
98+
<Path>datashts\arm\cortex_m0p\r0p0\DUI0662A_CORTEX_M0P_R0P0_DGUG.PDF</Path>
99+
</Book>
100+
</Books>
101+
<DllOpt>
102+
<SimDllName>SARMCM3.DLL</SimDllName>
103+
<SimDllArguments></SimDllArguments>
104+
<SimDlgDllName>DARMCM1.DLL</SimDlgDllName>
105+
<SimDlgDllArguments>-pCM0+</SimDlgDllArguments>
106+
<TargetDllName>SARMCM3.DLL</TargetDllName>
107+
<TargetDllArguments></TargetDllArguments>
108+
<TargetDlgDllName>TARMCM1.DLL</TargetDlgDllName>
109+
<TargetDlgDllArguments>-pCM0+</TargetDlgDllArguments>
110+
</DllOpt>
111+
<DebugOpt>
112+
<uSim>0</uSim>
113+
<uTrg>1</uTrg>
114+
<sLdApp>1</sLdApp>
115+
<sGomain>1</sGomain>
116+
<sRbreak>1</sRbreak>
117+
<sRwatch>1</sRwatch>
118+
<sRmem>1</sRmem>
119+
<sRfunc>1</sRfunc>
120+
<sRbox>1</sRbox>
121+
<tLdApp>1</tLdApp>
122+
<tGomain>1</tGomain>
123+
<tRbreak>1</tRbreak>
124+
<tRwatch>1</tRwatch>
125+
<tRmem>1</tRmem>
126+
<tRfunc>0</tRfunc>
127+
<tRbox>1</tRbox>
128+
<sRunDeb>0</sRunDeb>
129+
<sLrtime>0</sLrtime>
130+
<nTsel>14</nTsel>
131+
<sDll></sDll>
132+
<sDllPa></sDllPa>
133+
<sDlgDll></sDlgDll>
134+
<sDlgPa></sDlgPa>
135+
<sIfile></sIfile>
136+
<tDll></tDll>
137+
<tDllPa></tDllPa>
138+
<tDlgDll></tDlgDll>
139+
<tDlgPa></tDlgPa>
140+
<tIfile></tIfile>
141+
<pMon>BIN\CMSIS_AGDI.dll</pMon>
142+
</DebugOpt>
143+
<TargetDriverDllRegistry>
144+
<SetRegEntry>
145+
<Number>0</Number>
146+
<Key>UL2CM3</Key>
147+
<Name>UL2CM3(-O4303 -S0 -C0 -FO7 -FN1 -FC800 -FD10000000 -FF0LPC8xx_16 -FL04000 -FS00</Name>
148+
</SetRegEntry>
149+
<SetRegEntry>
150+
<Number>0</Number>
151+
<Key>CMSIS_AGDI</Key>
152+
<Name>-X"MBED CMSIS-DAP" -U -O4303 -S0 -C0 -P00 -FO7 -FD10000000 -FC800 -FN1 -FF0LPC8xx_16 -FS00 -FL04000</Name>
153+
</SetRegEntry>
154+
</TargetDriverDllRegistry>
155+
<Breakpoint/>
156+
<Tracepoint>
157+
<THDelay>0</THDelay>
158+
</Tracepoint>
159+
<DebugFlag>
160+
<trace>0</trace>
161+
<periodic>1</periodic>
162+
<aLwin>0</aLwin>
163+
<aCover>0</aCover>
164+
<aSer1>0</aSer1>
165+
<aSer2>0</aSer2>
166+
<aPa>0</aPa>
167+
<viewmode>0</viewmode>
168+
<vrSel>0</vrSel>
169+
<aSym>0</aSym>
170+
<aTbox>0</aTbox>
171+
<AscS1>0</AscS1>
172+
<AscS2>0</AscS2>
173+
<AscS3>0</AscS3>
174+
<aSer3>0</aSer3>
175+
<eProf>0</eProf>
176+
<aLa>0</aLa>
177+
<aPa1>0</aPa1>
178+
<AscS4>0</AscS4>
179+
<aSer4>0</aSer4>
180+
<StkLoc>0</StkLoc>
181+
<TrcWin>0</TrcWin>
182+
<newCpu>0</newCpu>
183+
<uProt>0</uProt>
184+
</DebugFlag>
185+
<LintExecutable></LintExecutable>
186+
<LintConfigFile></LintConfigFile>
187+
</TargetOption>
188+
</Target>
189+
190+
<Group>
191+
<GroupName>src</GroupName>
192+
<tvExp>1</tvExp>
193+
<tvExpOptDlg>0</tvExpOptDlg>
194+
<cbSel>0</cbSel>
195+
<RteFlg>0</RteFlg>
196+
</Group>
197+
198+
</ProjectOpt>

0 commit comments

Comments
 (0)