mirror of https://github.com/ARMmbed/mbed-os.git
Prepare support for ARMCC 5.03 (mainline microlib)
parent
a44371aa5c
commit
a6cad7b15e
|
@ -46,9 +46,17 @@
|
||||||
|
|
||||||
using namespace mbed;
|
using namespace mbed;
|
||||||
|
|
||||||
|
#if defined(__MICROLIB) && (__ARMCC_VERSION>5030000)
|
||||||
|
// Before version 5.03, we were using a patched version of microlib with proper names
|
||||||
|
extern const char __stdin_name[] = ":tt";
|
||||||
|
extern const char __stdout_name[] = ":tt";
|
||||||
|
extern const char __stderr_name[] = ":tt";
|
||||||
|
|
||||||
|
#else
|
||||||
extern const char __stdin_name[] = "/stdin";
|
extern const char __stdin_name[] = "/stdin";
|
||||||
extern const char __stdout_name[] = "/stdout";
|
extern const char __stdout_name[] = "/stdout";
|
||||||
extern const char __stderr_name[] = "/stderr";
|
extern const char __stderr_name[] = "/stderr";
|
||||||
|
#endif
|
||||||
|
|
||||||
/* newlib has the filehandle field in the FILE struct as a short, so
|
/* newlib has the filehandle field in the FILE struct as a short, so
|
||||||
* we can't just return a Filehandle* from _open and instead have to
|
* we can't just return a Filehandle* from _open and instead have to
|
||||||
|
|
|
@ -128,7 +128,7 @@ class mbedToolchain:
|
||||||
CORTEX_SYMBOLS = {
|
CORTEX_SYMBOLS = {
|
||||||
"Cortex-M3" : ["__CORTEX_M3", "ARM_MATH_CM3"],
|
"Cortex-M3" : ["__CORTEX_M3", "ARM_MATH_CM3"],
|
||||||
"Cortex-M0" : ["__CORTEX_M0", "ARM_MATH_CM0"],
|
"Cortex-M0" : ["__CORTEX_M0", "ARM_MATH_CM0"],
|
||||||
"Cortex-M0+": ["__CORTEX_M0", "ARM_MATH_CM0"],
|
"Cortex-M0+": ["__CORTEX_M0PLUS", "ARM_MATH_CM0"],
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, target, notify=None):
|
def __init__(self, target, notify=None):
|
||||||
|
@ -486,6 +486,7 @@ class ARM_STD(ARM):
|
||||||
|
|
||||||
class ARM_MICRO(ARM):
|
class ARM_MICRO(ARM):
|
||||||
NAME = 'uARM' # In the future we want to rename it ARM_MICRO
|
NAME = 'uARM' # In the future we want to rename it ARM_MICRO
|
||||||
|
PATCHED_LIBRARY = True
|
||||||
|
|
||||||
def __init__(self, target, notify=None):
|
def __init__(self, target, notify=None):
|
||||||
ARM.__init__(self, target, notify)
|
ARM.__init__(self, target, notify)
|
||||||
|
@ -496,7 +497,12 @@ class ARM_MICRO(ARM):
|
||||||
self.cppc += ["--library_type=microlib", "-D__MICROLIB"]
|
self.cppc += ["--library_type=microlib", "-D__MICROLIB"]
|
||||||
|
|
||||||
# Linker
|
# Linker
|
||||||
self.ld += ["--library_type=microlib", "--noscanlib"]
|
self.ld.append("--library_type=microlib")
|
||||||
|
|
||||||
|
# We had to patch microlib to add C++ support
|
||||||
|
# In later releases this patch should have entered mainline
|
||||||
|
if ARM_MICRO.PATCHED_LIBRARY:
|
||||||
|
self.ld.append("--noscanlib")
|
||||||
|
|
||||||
# System Libraries
|
# System Libraries
|
||||||
self.sys_libs.extend([join(MY_ARM_CLIB, lib+".l") for lib in ["mc_p", "mf_p", "m_ps"]])
|
self.sys_libs.extend([join(MY_ARM_CLIB, lib+".l") for lib in ["mc_p", "mf_p", "m_ps"]])
|
||||||
|
@ -656,10 +662,14 @@ class GCC_CW(GCC):
|
||||||
def __init__(self, target, notify=None):
|
def __init__(self, target, notify=None):
|
||||||
tool_path = join(GCC_CW_PATH, "Cross_Tools/arm-none-eabi-gcc-4_6_2/bin")
|
tool_path = join(GCC_CW_PATH, "Cross_Tools/arm-none-eabi-gcc-4_6_2/bin")
|
||||||
GCC.__init__(self, target, notify, tool_path)
|
GCC.__init__(self, target, notify, tool_path)
|
||||||
self.CIRCULAR_DEPENDENCIES = False
|
|
||||||
|
|
||||||
|
# Compiler
|
||||||
|
self.cc.append('-mfloat-abi=soft')
|
||||||
|
|
||||||
|
# Linker
|
||||||
lib_path = join(GCC_CW_PATH, "MCU/ARM_GCC_Support/ewl/lib", GCC_CW.ARCH_LIB[target.core])
|
lib_path = join(GCC_CW_PATH, "MCU/ARM_GCC_Support/ewl/lib", GCC_CW.ARCH_LIB[target.core])
|
||||||
self.sys_libs = []
|
self.sys_libs = []
|
||||||
|
self.CIRCULAR_DEPENDENCIES = False
|
||||||
self.ld = [join(tool_path, "arm-none-eabi-g++"),
|
self.ld = [join(tool_path, "arm-none-eabi-g++"),
|
||||||
"-Xlinker", "--gc-sections",
|
"-Xlinker", "--gc-sections",
|
||||||
"-L%s" % lib_path,
|
"-L%s" % lib_path,
|
||||||
|
|
Loading…
Reference in New Issue