mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Merge pull request #10390 from kjbracey-arm/armc6_fpu_sel
Correct some CPU selections in toolspull/10503/head
						commit
						c0feb1a659
					
				| 
						 | 
				
			
			@ -1347,7 +1347,7 @@
 | 
			
		|||
    "KW24D": {
 | 
			
		||||
        "supported_form_factors": ["ARDUINO"],
 | 
			
		||||
        "core": "Cortex-M4",
 | 
			
		||||
        "supported_toolchains": ["ARMC5", "GCC_ARM", "IAR"],
 | 
			
		||||
        "supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
 | 
			
		||||
        "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"],
 | 
			
		||||
        "is_disk_virtual": true,
 | 
			
		||||
        "macros": ["CPU_MKW24D512VHA5", "FSL_RTOS_MBED"],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,16 +82,11 @@ class ARM(mbedToolchain):
 | 
			
		|||
            if "--library_type=microlib" not in self.flags['common']:
 | 
			
		||||
                self.flags['common'].append("--library_type=microlib")
 | 
			
		||||
 | 
			
		||||
        if target.core == "Cortex-M0+":
 | 
			
		||||
            cpu = "Cortex-M0"
 | 
			
		||||
        elif target.core == "Cortex-M4F":
 | 
			
		||||
            cpu = "Cortex-M4.fp"
 | 
			
		||||
        elif target.core == "Cortex-M7FD":
 | 
			
		||||
            cpu = "Cortex-M7.fp.dp"
 | 
			
		||||
        elif target.core == "Cortex-M7F":
 | 
			
		||||
            cpu = "Cortex-M7.fp.sp"
 | 
			
		||||
        else:
 | 
			
		||||
            cpu = target.core
 | 
			
		||||
        cpu = {
 | 
			
		||||
            "Cortex-M0+": "Cortex-M0plus",
 | 
			
		||||
            "Cortex-M4F": "Cortex-M4.fp.sp",
 | 
			
		||||
            "Cortex-M7F": "Cortex-M7.fp.sp",
 | 
			
		||||
            "Cortex-M7FD": "Cortex-M7.fp.dp"}.get(target.core, target.core)
 | 
			
		||||
 | 
			
		||||
        ARM_BIN = join(TOOLCHAIN_PATHS['ARM'], "bin")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -559,38 +554,32 @@ class ARMC6(ARM_STD):
 | 
			
		|||
        self.SHEBANG += " -mcpu=%s" % cpu
 | 
			
		||||
 | 
			
		||||
        # 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("-mfloat-abi=hard")
 | 
			
		||||
            self.flags['ld'].append("--cpu=cortex-m4")
 | 
			
		||||
        elif core == "Cortex-M7F":
 | 
			
		||||
        elif core == "Cortex-M7F" or core.startswith("Cortex-M33F"):
 | 
			
		||||
            self.flags['common'].append("-mfpu=fpv5-sp-d16")
 | 
			
		||||
            self.flags['common'].append("-mfloat-abi=hard")
 | 
			
		||||
            self.flags['ld'].append("--cpu=cortex-m7.fp.sp")
 | 
			
		||||
        elif core == "Cortex-M7FD":
 | 
			
		||||
            self.flags['common'].append("-mfpu=fpv5-d16")
 | 
			
		||||
            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 = {
 | 
			
		||||
            "Cortex-M0+": "Cortex-M0",
 | 
			
		||||
            "Cortex-M4F": "Cortex-M4.fp",
 | 
			
		||||
        asm_ld_cpu = {
 | 
			
		||||
            "Cortex-M0+": "Cortex-M0plus",
 | 
			
		||||
            "Cortex-M4": "Cortex-M4.no_fp",
 | 
			
		||||
            "Cortex-M4F": "Cortex-M4",
 | 
			
		||||
            "Cortex-M7": "Cortex-M7.no_fp",
 | 
			
		||||
            "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-M33E": "Cortex-M33.no_fp",
 | 
			
		||||
            "Cortex-M33F": "Cortex-M33.no_dsp",
 | 
			
		||||
            "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.flags['common'] + self.flags['c'])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,11 +78,15 @@ class GCC(mbedToolchain):
 | 
			
		|||
            "Cortex-M4F": "cortex-m4",
 | 
			
		||||
            "Cortex-M7F": "cortex-m7",
 | 
			
		||||
            "Cortex-M7FD": "cortex-m7",
 | 
			
		||||
            "Cortex-M33": "cortex-m33+nodsp",
 | 
			
		||||
            "Cortex-M33E": "cortex-m33",
 | 
			
		||||
            "Cortex-M33F": "cortex-m33+nodsp",
 | 
			
		||||
            "Cortex-M33FE": "cortex-m33"}.get(core, core)
 | 
			
		||||
 | 
			
		||||
        if core == "Cortex-M33":
 | 
			
		||||
        if cpu == "cortex-m33+nodsp":
 | 
			
		||||
            self.cpu.append("-march=armv8-m.main")
 | 
			
		||||
        elif cpu == "cortex-m33":
 | 
			
		||||
            self.cpu.append("-march=armv8-m.main+dsp")
 | 
			
		||||
        else:
 | 
			
		||||
            self.cpu.append("-mcpu={}".format(cpu.lower()))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -93,15 +97,12 @@ class GCC(mbedToolchain):
 | 
			
		|||
        if core == "Cortex-M4F":
 | 
			
		||||
            self.cpu.append("-mfpu=fpv4-sp-d16")
 | 
			
		||||
            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("-mfloat-abi=softfp")
 | 
			
		||||
        elif core == "Cortex-M7FD":
 | 
			
		||||
            self.cpu.append("-mfpu=fpv5-d16")
 | 
			
		||||
            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":
 | 
			
		||||
            self.cpu.append("-mthumb-interwork")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,9 +69,10 @@ class IAR(mbedToolchain):
 | 
			
		|||
                self.flags["ld"] += ["--import_cmse_lib_out=%s" % secure_file]
 | 
			
		||||
 | 
			
		||||
        cpu = {
 | 
			
		||||
            "Cortex-M7FD": "Cortex-M7.fp.dp",
 | 
			
		||||
            "Cortex-M7F": "Cortex-M7.fp.sp",
 | 
			
		||||
            "Cortex-M7FD": "Cortex-M7.fp.dp",
 | 
			
		||||
            "Cortex-M33": "Cortex-M33.no_dsp",
 | 
			
		||||
            "Cortex-M33E": "Cortex-M33",
 | 
			
		||||
            "Cortex-M33F": "Cortex-M33.fp.no_dsp",
 | 
			
		||||
            "Cortex-M33FE": "Cortex-M33.fp"}.get(core, core)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue