Merge pull request #10390 from kjbracey-arm/armc6_fpu_sel

Correct some CPU selections in tools
pull/10503/head
Anna Bridge 2019-04-26 13:32:29 +01:00 committed by GitHub
commit c0feb1a659
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 36 deletions

View File

@ -1347,7 +1347,7 @@
"KW24D": { "KW24D": {
"supported_form_factors": ["ARDUINO"], "supported_form_factors": ["ARDUINO"],
"core": "Cortex-M4", "core": "Cortex-M4",
"supported_toolchains": ["ARMC5", "GCC_ARM", "IAR"], "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
"extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
"is_disk_virtual": true, "is_disk_virtual": true,
"macros": ["CPU_MKW24D512VHA5", "FSL_RTOS_MBED"], "macros": ["CPU_MKW24D512VHA5", "FSL_RTOS_MBED"],

View File

@ -82,16 +82,11 @@ class ARM(mbedToolchain):
if "--library_type=microlib" not in self.flags['common']: if "--library_type=microlib" not in self.flags['common']:
self.flags['common'].append("--library_type=microlib") self.flags['common'].append("--library_type=microlib")
if target.core == "Cortex-M0+": cpu = {
cpu = "Cortex-M0" "Cortex-M0+": "Cortex-M0plus",
elif target.core == "Cortex-M4F": "Cortex-M4F": "Cortex-M4.fp.sp",
cpu = "Cortex-M4.fp" "Cortex-M7F": "Cortex-M7.fp.sp",
elif target.core == "Cortex-M7FD": "Cortex-M7FD": "Cortex-M7.fp.dp"}.get(target.core, target.core)
cpu = "Cortex-M7.fp.dp"
elif target.core == "Cortex-M7F":
cpu = "Cortex-M7.fp.sp"
else:
cpu = target.core
ARM_BIN = join(TOOLCHAIN_PATHS['ARM'], "bin") ARM_BIN = join(TOOLCHAIN_PATHS['ARM'], "bin")
@ -559,38 +554,32 @@ class ARMC6(ARM_STD):
self.SHEBANG += " -mcpu=%s" % cpu self.SHEBANG += " -mcpu=%s" % cpu
# FPU handling # FPU handling
if core == "Cortex-M4F": if core == "Cortex-M4" or core == "Cortex-M7" or "core" == "Cortex-M33":
self.flags['common'].append("-mfpu=none")
elif core == "Cortex-M4F":
self.flags['common'].append("-mfpu=fpv4-sp-d16") self.flags['common'].append("-mfpu=fpv4-sp-d16")
self.flags['common'].append("-mfloat-abi=hard") self.flags['common'].append("-mfloat-abi=hard")
self.flags['ld'].append("--cpu=cortex-m4") elif core == "Cortex-M7F" or core.startswith("Cortex-M33F"):
elif core == "Cortex-M7F":
self.flags['common'].append("-mfpu=fpv5-sp-d16") self.flags['common'].append("-mfpu=fpv5-sp-d16")
self.flags['common'].append("-mfloat-abi=hard") self.flags['common'].append("-mfloat-abi=hard")
self.flags['ld'].append("--cpu=cortex-m7.fp.sp")
elif core == "Cortex-M7FD": elif core == "Cortex-M7FD":
self.flags['common'].append("-mfpu=fpv5-d16") self.flags['common'].append("-mfpu=fpv5-d16")
self.flags['common'].append("-mfloat-abi=hard") self.flags['common'].append("-mfloat-abi=hard")
self.flags['ld'].append("--cpu=cortex-m7")
elif core == "Cortex-M33F":
self.flags['common'].append("-mfpu=fpv5-sp-d16")
self.flags['common'].append("-mfloat-abi=hard")
self.flags['ld'].append("--cpu=cortex-m33.no_dsp")
elif core == "Cortex-M33":
self.flags['common'].append("-mfpu=none")
self.flags['ld'].append("--cpu=cortex-m33.no_dsp.no_fp")
else:
self.flags['ld'].append("--cpu=%s" % cpu)
asm_cpu = { asm_ld_cpu = {
"Cortex-M0+": "Cortex-M0", "Cortex-M0+": "Cortex-M0plus",
"Cortex-M4F": "Cortex-M4.fp", "Cortex-M4": "Cortex-M4.no_fp",
"Cortex-M4F": "Cortex-M4",
"Cortex-M7": "Cortex-M7.no_fp",
"Cortex-M7F": "Cortex-M7.fp.sp", "Cortex-M7F": "Cortex-M7.fp.sp",
"Cortex-M7FD": "Cortex-M7.fp.dp", "Cortex-M7FD": "Cortex-M7",
"Cortex-M33": "Cortex-M33.no_dsp.no_fp", "Cortex-M33": "Cortex-M33.no_dsp.no_fp",
"Cortex-M33E": "Cortex-M33.no_fp",
"Cortex-M33F": "Cortex-M33.no_dsp", "Cortex-M33F": "Cortex-M33.no_dsp",
"Cortex-M33FE": "Cortex-M33"}.get(core, core) "Cortex-M33FE": "Cortex-M33"}.get(core, core)
self.flags['asm'].append("--cpu=%s" % asm_cpu) self.flags['asm'].append("--cpu=%s" % asm_ld_cpu)
self.flags['ld'].append("--cpu=%s" % asm_ld_cpu)
self.cc = ([join(TOOLCHAIN_PATHS["ARMC6"], "armclang")] + self.cc = ([join(TOOLCHAIN_PATHS["ARMC6"], "armclang")] +
self.flags['common'] + self.flags['c']) self.flags['common'] + self.flags['c'])

View File

@ -78,11 +78,15 @@ class GCC(mbedToolchain):
"Cortex-M4F": "cortex-m4", "Cortex-M4F": "cortex-m4",
"Cortex-M7F": "cortex-m7", "Cortex-M7F": "cortex-m7",
"Cortex-M7FD": "cortex-m7", "Cortex-M7FD": "cortex-m7",
"Cortex-M33": "cortex-m33+nodsp",
"Cortex-M33E": "cortex-m33",
"Cortex-M33F": "cortex-m33+nodsp", "Cortex-M33F": "cortex-m33+nodsp",
"Cortex-M33FE": "cortex-m33"}.get(core, core) "Cortex-M33FE": "cortex-m33"}.get(core, core)
if core == "Cortex-M33": if cpu == "cortex-m33+nodsp":
self.cpu.append("-march=armv8-m.main") self.cpu.append("-march=armv8-m.main")
elif cpu == "cortex-m33":
self.cpu.append("-march=armv8-m.main+dsp")
else: else:
self.cpu.append("-mcpu={}".format(cpu.lower())) self.cpu.append("-mcpu={}".format(cpu.lower()))
@ -93,15 +97,12 @@ class GCC(mbedToolchain):
if core == "Cortex-M4F": if core == "Cortex-M4F":
self.cpu.append("-mfpu=fpv4-sp-d16") self.cpu.append("-mfpu=fpv4-sp-d16")
self.cpu.append("-mfloat-abi=softfp") self.cpu.append("-mfloat-abi=softfp")
elif core == "Cortex-M7F": elif core == "Cortex-M7F" or core.startswith("Cortex-M33F"):
self.cpu.append("-mfpu=fpv5-sp-d16") self.cpu.append("-mfpu=fpv5-sp-d16")
self.cpu.append("-mfloat-abi=softfp") self.cpu.append("-mfloat-abi=softfp")
elif core == "Cortex-M7FD": elif core == "Cortex-M7FD":
self.cpu.append("-mfpu=fpv5-d16") self.cpu.append("-mfpu=fpv5-d16")
self.cpu.append("-mfloat-abi=softfp") self.cpu.append("-mfloat-abi=softfp")
elif core.startswith("Cortex-M33F"):
self.cpu.append("-mfpu=fpv5-sp-d16")
self.cpu.append("-mfloat-abi=softfp")
if target.core == "Cortex-A9": if target.core == "Cortex-A9":
self.cpu.append("-mthumb-interwork") self.cpu.append("-mthumb-interwork")

View File

@ -69,9 +69,10 @@ class IAR(mbedToolchain):
self.flags["ld"] += ["--import_cmse_lib_out=%s" % secure_file] self.flags["ld"] += ["--import_cmse_lib_out=%s" % secure_file]
cpu = { cpu = {
"Cortex-M7FD": "Cortex-M7.fp.dp",
"Cortex-M7F": "Cortex-M7.fp.sp", "Cortex-M7F": "Cortex-M7.fp.sp",
"Cortex-M7FD": "Cortex-M7.fp.dp",
"Cortex-M33": "Cortex-M33.no_dsp", "Cortex-M33": "Cortex-M33.no_dsp",
"Cortex-M33E": "Cortex-M33",
"Cortex-M33F": "Cortex-M33.fp.no_dsp", "Cortex-M33F": "Cortex-M33.fp.no_dsp",
"Cortex-M33FE": "Cortex-M33.fp"}.get(core, core) "Cortex-M33FE": "Cortex-M33.fp"}.get(core, core)