-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Description
Mbed OS will be upgrading to ARMc6 Toolchain with upcoming releases. We are in the process of ensuring that all currently supported targets successfully compiles/passes tests with ARMC6 toolchain but we do have some targets currently failing the build with ARMc6 toolchain. The failures are in source code under targets folder and thus needs to be updated.
The error and warning details are as follow:
When compiling with ARMc6 toolchain for FUTURE_SEQUANA(and other related targets - FUTURE_SEQUANA_M0, FUTURE_SEQUANA_PSA, FUTURE_SEQUANA_M0_PSA) build fails with following errors:
[ERROR] In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:16:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/device.h:30:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/objects.h:27:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/gpio_object.h:25:
In file included from ./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/gpio/cy_gpio.h:123:
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:457:12: warning: unknown attribute 'zero_init' ignored [-Wunknown-attributes]
extern CY_NOINIT char_t cy_assertFileName[CY_MAX_FILE_NAME_SIZE]; /**< The assert buffer */
^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:415:69: note: expanded from macro 'CY_NOINIT'
#define CY_NOINIT __attribute__ ((section(".noinit"), zero_init))
^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:458:12: warning: unknown attribute 'zero_init' ignored [-Wunknown-attributes]
extern CY_NOINIT uint32_t cy_assertLine; /**< The assert line value */
^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:415:69: note: expanded from macro 'CY_NOINIT'
#define CY_NOINIT __attribute__ ((section(".noinit"), zero_init))
^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:493:12: warning: unknown attribute 'zero_init' ignored [-Wunknown-attributes]
extern CY_NOINIT cy_stc_fault_frame_t cy_faultFrame; /**< Fault frame structure */
^
./targets/TARGET_Cypress/TARGET_PSOC6/device/drivers/peripheral/syslib/cy_syslib.h:415:69: note: expanded from macro 'CY_NOINIT'
#define CY_NOINIT __attribute__ ((section(".noinit"), zero_init))
^
./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:413:7: error: expected '(' after 'asm'
__asm void Cy_MemorySymbols(void)
^
./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:413:6: error: expected ';' after top-level asm block
__asm void Cy_MemorySymbols(void)
^
;
./targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8C63XX/TARGET_MCU_PSOC6_M4/system_psoc63_cm4.c:416:5: error: use of undeclared identifier 'EXPORT'
EXPORT __cy_memory_0_start
^
3 warnings and 3 errors generated.
Targets Affected: FUTURE_SEQUANA, FUTURE_SEQUANA_M0, FUTURE_SEQUANA_M0_PSA, FUTURE_SEQUANA_PSA
Toolchain used: ARM Compiler 6.11 (Version 6.11)
Note that there may be other changes required to make build successful for ARMc6, so please address them as well.
How to reproduce the issue?
- Install ARMC6 compiler with version 6.11
- Set ARMC6_PATH config variable as below.
mbed config --global ARMC6_PATH<Path to ARMC6 Toolchain bin directory>
- Run the compile as: mbed compile -t ARMc6 -m
<target name>
Note that you may see an "Error" when trying to use ARMc6 with "mbed compile". This is expected, but the compilation process should continue to proceed. We will be removing this Error/Warning once we switch to ARMc6 completely.
How to generate Pull Request to fix ARMc6 issues?
Please generate your pull requests addressing ARMc6 build issues with feature-armc6 as the target branch(not master branch).
Issue request type
[ ] Question
[ ] Enhancement
[x] Bug