mirror of https://github.com/ARMmbed/mbed-os.git
Proper fix for Cortex-M/Cortex-A RTOS issue
Created two new labels (CORTEX_A and CORTEX_M) that can be used to differentiate between Cortex-A and Cortex-M code in the build system.pull/663/head
parent
b5c8a23e79
commit
45ddf10698
|
@ -37,14 +37,6 @@ from workspace_tools.build_api import static_analysis_scan, static_analysis_scan
|
|||
from workspace_tools.build_api import print_build_results
|
||||
from workspace_tools.settings import CPPCHECK_CMD, CPPCHECK_MSG_FORMAT
|
||||
|
||||
# Cortex-M and Cortex-A use different RTOS sources, return the proper libs here
|
||||
def get_rtos_libs(options, mcu):
|
||||
if options.rtos:
|
||||
libs = ['rtx', 'rtos'] if mcu.core != 'Cortex-A9' else ['rtx_ca', 'rtos_ca']
|
||||
else:
|
||||
libs = []
|
||||
return libs
|
||||
|
||||
if __name__ == '__main__':
|
||||
start = time()
|
||||
|
||||
|
@ -163,6 +155,8 @@ if __name__ == '__main__':
|
|||
libraries = []
|
||||
|
||||
# Additional Libraries
|
||||
if options.rtos:
|
||||
libraries.extend(["rtx", "rtos"])
|
||||
if options.eth:
|
||||
libraries.append("eth")
|
||||
if options.usb:
|
||||
|
@ -191,7 +185,7 @@ if __name__ == '__main__':
|
|||
mcu = TARGET_MAP[target]
|
||||
# CMSIS and MBED libs analysis
|
||||
static_analysis_scan(mcu, toolchain, CPPCHECK_CMD, CPPCHECK_MSG_FORMAT, verbose=options.verbose, jobs=options.jobs)
|
||||
for lib_id in libraries + get_rtos_libs(options, mcu):
|
||||
for lib_id in libraries:
|
||||
# Static check for library
|
||||
static_analysis_scan_lib(lib_id, mcu, toolchain, CPPCHECK_CMD, CPPCHECK_MSG_FORMAT,
|
||||
options=options.options,
|
||||
|
@ -214,7 +208,7 @@ if __name__ == '__main__':
|
|||
lib_build_res = build_mbed_libs(mcu, toolchain, options=options.options,
|
||||
notify=notify, verbose=options.verbose, jobs=options.jobs, clean=options.clean,
|
||||
macros=options.macros)
|
||||
for lib_id in libraries + get_rtos_libs(options, mcu):
|
||||
for lib_id in libraries:
|
||||
notify = print_notify_verbose if options.extra_verbose_notify else None # Special notify for CI (more verbose)
|
||||
build_lib(lib_id, mcu, toolchain, options=options.options,
|
||||
notify=notify, verbose=options.verbose, clean=options.clean,
|
||||
|
|
|
@ -33,18 +33,6 @@ LIBRARIES = [
|
|||
"build_dir": RTOS_LIBRARIES,
|
||||
"dependencies": [MBED_LIBRARIES, MBED_RTX],
|
||||
},
|
||||
{
|
||||
"id": "rtx_ca",
|
||||
"source_dir": MBED_RTX_CA,
|
||||
"build_dir": RTOS_LIBRARIES,
|
||||
"dependencies": [MBED_LIBRARIES],
|
||||
},
|
||||
{
|
||||
"id": "rtos_ca",
|
||||
"source_dir": RTOS_ABSTRACTION,
|
||||
"build_dir": RTOS_LIBRARIES,
|
||||
"dependencies": [MBED_LIBRARIES, MBED_RTX_CA],
|
||||
},
|
||||
|
||||
# USB Device libraries
|
||||
{
|
||||
|
|
|
@ -49,7 +49,6 @@ MBED_RPC = join(LIB_DIR, "rpc")
|
|||
# mbed RTOS
|
||||
RTOS = join(LIB_DIR, "rtos")
|
||||
MBED_RTX = join(RTOS, "rtx")
|
||||
MBED_RTX_CA = join(RTOS, "rtx_ca")
|
||||
RTOS_ABSTRACTION = join(RTOS, "rtos")
|
||||
|
||||
RTOS_LIBRARIES = join(BUILD_DIR, "rtos")
|
||||
|
|
|
@ -16,13 +16,13 @@ limitations under the License.
|
|||
"""
|
||||
|
||||
CORE_LABELS = {
|
||||
"ARM7TDMI-S": "ARM7",
|
||||
"Cortex-M0" : "M0",
|
||||
"Cortex-M0+": "M0P",
|
||||
"Cortex-M3" : "M3",
|
||||
"Cortex-M4" : "M4",
|
||||
"Cortex-M4F" : "M4",
|
||||
"Cortex-A9" : "A9"
|
||||
"ARM7TDMI-S": ["ARM7"],
|
||||
"Cortex-M0" : ["M0", "CORTEX_M"],
|
||||
"Cortex-M0+": ["M0P", "CORTEX_M"],
|
||||
"Cortex-M3" : ["M3", "CORTEX_M"],
|
||||
"Cortex-M4" : ["M4", "CORTEX_M"],
|
||||
"Cortex-M4F" : ["M4", "CORTEX_M"],
|
||||
"Cortex-A9" : ["A9", "CORTEX_A"]
|
||||
}
|
||||
|
||||
import os
|
||||
|
@ -58,7 +58,7 @@ class Target:
|
|||
return 4 if self.is_disk_virtual else 1.5
|
||||
|
||||
def get_labels(self):
|
||||
return [self.name, CORE_LABELS[self.core]] + self.extra_labels
|
||||
return [self.name] + CORE_LABELS[self.core] + self.extra_labels
|
||||
|
||||
def init_hooks(self, hook, toolchain_name):
|
||||
pass
|
||||
|
|
Loading…
Reference in New Issue