Skip to content

Commit d595ee7

Browse files
committed
Merge pull request #1100 from stevew817/master
[Silicon Labs] Update exporter for Simplicity Studio
2 parents 7bc3af6 + 8cad2b8 commit d595ee7

File tree

3 files changed

+53
-3
lines changed

3 files changed

+53
-3
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,13 @@ Nordic:
8585
Renesas:
8686
* [RZ-A1H](http://developer.mbed.org/platforms/Renesas-GR-PEACH/) (Cortex-A9)
8787

88+
Silicon Labs:
89+
* [EFM32 Zero Gecko] (https://developer.mbed.org/platforms/EFM32-Zero-Gecko/) (Cortex-M0+)
90+
* [EFM32 Happy Gecko] (https://developer.mbed.org/platforms/EFM32-Happy-Gecko/) (Cortex-M0+)
91+
* [EFM32 Leopard Gecko] (https://developer.mbed.org/platforms/EFM32-Leopard-Gecko/) (Cortex-M3)
92+
* [EFM32 Giant Gecko] (https://developer.mbed.org/platforms/EFM32-Giant-Gecko/) (Cortex-M3)
93+
* [EFM32 Wonder Gecko] (https://developer.mbed.org/platforms/EFM32-Wonder-Gecko/) (Cortex-M4)
94+
8895

8996
Supported Toolchains and IDEs
9097
-----------------------------

workspace_tools/export/simplicityv3.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class SimplicityV3(Exporter):
7878
'EFM32ZG_STK3200': 'com.silabs.kit.si32.efm32.efm32zg.stk3200',
7979
'EFM32LG_STK3600': 'com.silabs.kit.si32.efm32.efm32lg.stk3600',
8080
'EFM32WG_STK3800': 'com.silabs.kit.si32.efm32.efm32wg.stk3800',
81-
'EFM32HG_STK3400': 'com.silabs.kit.si32.efm32.efm32hg.stk3400'
81+
'EFM32HG_STK3400': 'com.silabs.kit.si32.efm32.efm32hg.slstk3400a'
8282
}
8383

8484
FILE_TYPES = {
@@ -87,6 +87,15 @@ class SimplicityV3(Exporter):
8787
's_sources':'1'
8888
}
8989

90+
EXCLUDED_LIBS = [
91+
'm',
92+
'c',
93+
'gcc',
94+
'nosys',
95+
'supc++',
96+
'stdc++'
97+
]
98+
9099
DOT_IN_RELATIVE_PATH = False
91100

92101
orderedPaths = Folder("Root")
@@ -108,6 +117,15 @@ def generate(self):
108117

109118
main_files = []
110119

120+
EXCLUDED_LIBS = [
121+
'm',
122+
'c',
123+
'gcc',
124+
'nosys',
125+
'supc++',
126+
'stdc++'
127+
]
128+
111129
for r_type in ['s_sources', 'c_sources', 'cpp_sources']:
112130
r = getattr(self.resources, r_type)
113131
if r:
@@ -120,7 +138,8 @@ def generate(self):
120138
libraries = []
121139
for lib in self.resources.libraries:
122140
l, _ = splitext(basename(lib))
123-
libraries.append(l[3:])
141+
if l[3:] not in EXCLUDED_LIBS:
142+
libraries.append(l[3:])
124143

125144
defines = []
126145
for define in self.get_symbols():

workspace_tools/export/simplicityv3_slsproj.tmpl

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<project xmlns:model="http://www.silabs.com/sls/IDE.ecore" name="{{ name }}" kitCompatibility="{{ kit }}"
33
partCompatibility="{{ part }}"
44
toolchainCompatibility="com.silabs.ide.si32.gcc:4.8.3.20131129"
5-
sdkCompatibility="com.silabs.sdk.si32.efm32.sls:2.0.5"
5+
sdkCompatibility="com.silabs.sdk.si32.efm32"
66
propertyScope="project"
77
contentRoot=".">
88
{# Hierarchically include all folders into the project #}
@@ -55,6 +55,18 @@
5555
${workspace_loc:/${ProjName}/{{ file }}}{% if not loop.last %} {% endif %}
5656
{%- endfor -%}"/>
5757
{%- endif %}
58+
{# Manually override linker ordering #}
59+
{%- if libraries %}
60+
<toolOption toolId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.cpp.linker.base" optionId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.cpp.linker.category.ordering.selection" value="
61+
{%- if object_files -%}
62+
{%- for file in object_files -%}
63+
${workspace_loc:/${ProjName}/{{ file }}};
64+
{%- endfor -%}
65+
{%- endif -%}
66+
{%- for library in libraries -%}
67+
${-l{{ library }}}{% if not loop.last %};{% endif %}
68+
{%- endfor -%}"/>
69+
{%- endif %}
5870
{# Define mbed-specific linker file #}
5971
<toolOption toolId="com.silabs.ide.si32.gcc.cdt.managedbuild.toolchain.exe" optionId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.c.linker.usescript" value="true"/>
6072
<toolOption toolId="com.silabs.ide.si32.gcc.cdt.managedbuild.toolchain.exe" optionId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.c.linker.script" value="${workspace_loc:/${ProjName}/{{ linker_script }}}"/>
@@ -100,6 +112,18 @@
100112
${workspace_loc:/${ProjName}/{{ file }}}{% if not loop.last %} {% endif %}
101113
{%- endfor -%}"/>
102114
{%- endif %}
115+
{# Manually override linker ordering #}
116+
{%- if libraries %}
117+
<toolOption toolId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.cpp.linker.base" optionId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.cpp.linker.category.ordering.selection" value="
118+
{%- if object_files -%}
119+
{%- for file in object_files -%}
120+
${workspace_loc:/${ProjName}/{{ file }}};
121+
{%- endfor -%}
122+
{%- endif -%}
123+
{%- for library in libraries -%}{% if not loop.last %};{% endif %}
124+
${-l{{ library }}}
125+
{%- endfor -%}"/>
126+
{%- endif %}
103127
{# Define mbed-specific linker file #}
104128
<toolOption toolId="com.silabs.ide.si32.gcc.cdt.managedbuild.toolchain.exe" optionId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.c.linker.usescript" value="true"/>
105129
<toolOption toolId="com.silabs.ide.si32.gcc.cdt.managedbuild.toolchain.exe" optionId="com.silabs.ide.si32.gcc.cdt.managedbuild.tool.gnu.c.linker.script" value="${workspace_loc:/${ProjName}/{{ linker_script }}}"/>

0 commit comments

Comments
 (0)