Skip to content

Commit 6366452

Browse files
author
deepikabhavnani
committed
Arch and CPU options for linker and Clang are different for Cortex-M33
As per the link below, options for clang and armlink are diferrent for Cortex-M33 armlink --cpu 8-M.Main --import-cmse-lib-out importlib_v1.o armclang -march=armv8-m.main -mcmse http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0773h/pge1452794854109.html
1 parent beab422 commit 6366452

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

tools/toolchains/arm.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,9 @@ def __init__(self, target, *args, **kwargs):
393393
self.flags['common'].append("-mcpu=%s" % target.core.lower()[:-1])
394394
self.flags['ld'].append("--cpu=%s" % target.core.lower()[:-1])
395395
self.SHEBANG += " -mcpu=%s" % target.core.lower()[:-1]
396-
elif not target.core.startswith("Cortex-M23") and not target.core.startswith("Cortex-M33"):
396+
elif target.core.startswith("Cortex-M33"):
397+
self.flags['ld'].append("--cpu=8-M.Main")
398+
elif not target.core.startswith("Cortex-M23"):
397399
self.flags['common'].append("-mcpu=%s" % target.core.lower())
398400
self.flags['ld'].append("--cpu=%s" % target.core.lower())
399401
self.SHEBANG += " -mcpu=%s" % target.core.lower()
@@ -410,10 +412,12 @@ def __init__(self, target, *args, **kwargs):
410412
elif target.core.startswith("Cortex-M23"):
411413
self.flags['common'].append("-march=armv8-m.base")
412414
elif target.core.startswith("Cortex-M33"):
413-
self.flags['common'].append("-march=armv8-m.main")
415+
self.flags['c'].append("-march=armv8-m.main")
416+
self.flags['cxx'].append("-march=armv8-m.main")
414417

415418
if target.core == "Cortex-M23" or target.core == "Cortex-M33":
416-
self.flags['common'].append("-mcmse")
419+
self.flags['cxx'].append("-mcmse")
420+
self.flags['c'].append("-mcmse")
417421

418422
# Create Secure library
419423
if ((target.core == "Cortex-M23" or self.target.core == "Cortex-M33") and
@@ -434,7 +438,10 @@ def __init__(self, target, *args, **kwargs):
434438
"Cortex-M23-NS": "Cortex-M23",
435439
"Cortex-M33-NS": "Cortex-M33" }.get(target.core, target.core)
436440

437-
self.flags['asm'].append("--cpu=%s" % asm_cpu)
441+
if target.core.startswith("Cortex-M33"):
442+
self.flags['asm'].append("--cpu=8-M.Main")
443+
else :
444+
self.flags['asm'].append("--cpu=%s" % asm_cpu)
438445

439446
self.cc = ([join(TOOLCHAIN_PATHS["ARMC6"], "armclang")] +
440447
self.flags['common'] + self.flags['c'])

0 commit comments

Comments
 (0)