Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: export/uvision/__init__.py
- Revision:
- 35:da9c89f8be7d
- Parent:
- 31:8ea194f6145b
- Child:
- 36:96847d42f010
--- a/export/uvision/__init__.py Mon Feb 13 09:29:13 2017 -0600
+++ b/export/uvision/__init__.py Wed Feb 15 13:53:18 2017 -0600
@@ -155,34 +155,27 @@
def format_flags(self):
"""Format toolchain flags for Uvision"""
flags = copy.deepcopy(self.flags)
+ # to be preprocessed with armcc
asm_flag_string = '--cpreproc --cpreproc_opts=-D__ASSERT_MSG,' + \
",".join(flags['asm_flags'])
- # asm flags only, common are not valid within uvision project,
- # they are armcc specific
flags['asm_flags'] = asm_flag_string
- # cxx flags included, as uvision have them all in one tab
- flags['c_flags'] = list(set(['-D__ASSERT_MSG']
- + flags['common_flags']
- + flags['c_flags']
- + flags['cxx_flags']))
- # not compatible with c99 flag set in the template
- try: flags['c_flags'].remove("--c99")
- except ValueError: pass
- # cpp is not required as it's implicit for cpp files
- try: flags['c_flags'].remove("--cpp")
- except ValueError: pass
- # we want no-vla for only cxx, but it's also applied for C in IDE,
- # thus we remove it
- try: flags['c_flags'].remove("--no_vla")
- except ValueError: pass
- flags['c_flags'] =" ".join(flags['c_flags'])
+ # All non-asm flags are in one template field
+ c_flags = list(set(flags['c_flags'] + flags['cxx_flags'] +flags['common_flags']))
+ # These flags are in template to be set by user i n IDE
+ template = ["--no_vla", "--cpp", "--c99"]
+ # Flag is invalid if set in template
+ # Optimizations are also set in the template
+ invalid_flag = lambda x: x in template or re.match("-O(\d|time)", x)
+ flags['c_flags'] = [flag for flag in c_flags if not invalid_flag(flag)]
+ flags['c_flags'] = " ".join(flags['c_flags'])
return flags
def format_src(self, srcs):
"""Make sources into the named tuple for use in the template"""
grouped = self.group_project_files(srcs)
for group, files in grouped.items():
- grouped[group] = self.uv_files(files)
+ grouped[group] = sorted(list(self.uv_files(files)),
+ key=lambda (_, __, name): name.lower())
return grouped
def generate(self):
@@ -198,11 +191,13 @@
'name': self.project_name,
# project_files => dict of generators - file group to generator of
# UVFile tuples defined above
- 'project_files': self.format_src(srcs),
+ 'project_files': sorted(list(self.format_src(srcs).iteritems()),
+ key=lambda (group, _): group.lower()),
'linker_script':self.resources.linker_script,
'include_paths': '; '.join(self.resources.inc_dirs).encode('utf-8'),
'device': DeviceUvision(self.target),
}
+ ctx['cputype'] = ctx['device'].core.rstrip("FD")
# Turn on FPU optimizations if the core has an FPU
ctx['fpu_setting'] = 1 if 'f' not in ctx['device'].core.lower() \
or 'd' in ctx['device'].core.lower() else 2
