PSOC6: add ARMC6 support (fix issue #9830)

Update PDL syslib driver to 2.30.
Update startup assembly and linker scripts.
pull/10413/head
Hennadiy Kytsun 2019-04-11 18:34:14 +03:00 committed by Oren Cohen
parent 248013aca8
commit ef19fb6ebb
30 changed files with 316 additions and 49 deletions

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
; The first line specifies a preprocessor command that the linker invokes
; to pass a scatter file through a C preprocessor.
@ -268,5 +268,31 @@ CYMETA 0x90500000
.cymeta +0 { * (.cymeta) }
}
/* The following symbols used by the cymcuelftool. */
/* Flash */
#define __cy_memory_0_start 0x10000000
#define __cy_memory_0_length 0x00200000
#define __cy_memory_0_row_size 0x200
/* Emulated EEPROM Flash area */
#define __cy_memory_1_start 0x14000000
#define __cy_memory_1_length 0x8000
#define __cy_memory_1_row_size 0x200
/* Supervisory Flash */
#define __cy_memory_2_start 0x16000000
#define __cy_memory_2_length 0x8000
#define __cy_memory_2_row_size 0x200
/* XIP */
#define __cy_memory_3_start 0x18000000
#define __cy_memory_3_length 0x08000000
#define __cy_memory_3_row_size 0x200
/* eFuse */
#define __cy_memory_4_start 0x90700000
#define __cy_memory_4_length 0x100000
#define __cy_memory_4_row_size 1
/* [] END OF FILE */

View File

@ -1,6 +1,6 @@
/***************************************************************************//**
* \file system_psoc6.h
* \version 2.30
* \version 2.40
*
* \brief Device system header file.
*
@ -322,6 +322,7 @@
* <tr>
* <td>2.40</td>
* <td>Updated assembler files, C files, linker scripts.</td>
* <td>Added Arm Compiler 6 support.</td>
* </tr>
* <tr>
* <td rowspan="2">2.30</td>
@ -543,7 +544,11 @@ extern "C" {
* \addtogroup group_system_config_system_functions
* \{
*/
extern void SystemInit(void);
#if defined(__ARMCC_VERSION)
extern void SystemInit(void) __attribute__((constructor));
#else
extern void SystemInit(void);
#endif /* (__ARMCC_VERSION) */
extern void SystemCoreClockUpdate(void);
/** \} group_system_config_system_functions */

View File

@ -526,6 +526,7 @@ void Cy_SysIpcPipeIsrCm4(void)
}
#endif
/*******************************************************************************
* Function Name: Cy_MemorySymbols
****************************************************************************//**
@ -535,7 +536,7 @@ void Cy_SysIpcPipeIsrCm4(void)
* linker configuration files. The following symbols used by the cymcuelftool.
*
*******************************************************************************/
#if defined (__ARMCC_VERSION)
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
__asm void Cy_MemorySymbols(void)
{
/* Flash */
@ -588,8 +589,7 @@ __cy_memory_4_start EQU __cpp(0x90700000)
__cy_memory_4_length EQU __cpp(0x100000)
__cy_memory_4_row_size EQU __cpp(1)
}
#endif /* defined (__ARMCC_VERSION) */
#endif /* defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050) */
/* [] END OF FILE */

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
; The first line specifies a preprocessor command that the linker invokes
; to pass a scatter file through a C preprocessor.
@ -268,5 +268,31 @@ CYMETA 0x90500000
.cymeta +0 { * (.cymeta) }
}
/* The following symbols used by the cymcuelftool. */
/* Flash */
#define __cy_memory_0_start 0x10000000
#define __cy_memory_0_length 0x00100000
#define __cy_memory_0_row_size 0x200
/* Emulated EEPROM Flash area */
#define __cy_memory_1_start 0x14000000
#define __cy_memory_1_length 0x8000
#define __cy_memory_1_row_size 0x200
/* Supervisory Flash */
#define __cy_memory_2_start 0x16000000
#define __cy_memory_2_length 0x8000
#define __cy_memory_2_row_size 0x200
/* XIP */
#define __cy_memory_3_start 0x18000000
#define __cy_memory_3_length 0x08000000
#define __cy_memory_3_row_size 0x200
/* eFuse */
#define __cy_memory_4_start 0x90700000
#define __cy_memory_4_length 0x100000
#define __cy_memory_4_row_size 1
/* [] END OF FILE */

View File

@ -322,6 +322,7 @@
* <tr>
* <td>2.40</td>
* <td>Updated assembler files, C files, linker scripts.</td>
* <td>Added Arm Compiler 6 support.</td>
* </tr>
* <tr>
* <td rowspan="2">2.30</td>
@ -543,7 +544,11 @@ extern "C" {
* \addtogroup group_system_config_system_functions
* \{
*/
extern void SystemInit(void);
#if defined(__ARMCC_VERSION)
extern void SystemInit(void) __attribute__((constructor));
#else
extern void SystemInit(void);
#endif /* (__ARMCC_VERSION) */
extern void SystemCoreClockUpdate(void);
/** \} group_system_config_system_functions */

View File

@ -526,6 +526,7 @@ void Cy_SysIpcPipeIsrCm4(void)
}
#endif
/*******************************************************************************
* Function Name: Cy_MemorySymbols
****************************************************************************//**
@ -535,7 +536,7 @@ void Cy_SysIpcPipeIsrCm4(void)
* linker configuration files. The following symbols used by the cymcuelftool.
*
*******************************************************************************/
#if defined (__ARMCC_VERSION)
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
__asm void Cy_MemorySymbols(void)
{
/* Flash */
@ -588,8 +589,7 @@ __cy_memory_4_start EQU __cpp(0x90700000)
__cy_memory_4_length EQU __cpp(0x100000)
__cy_memory_4_row_size EQU __cpp(1)
}
#endif /* defined (__ARMCC_VERSION) */
#endif /* defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050) */
/* [] END OF FILE */

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m0
; The first line specifies a preprocessor command that the linker invokes
; to pass a scatter file through a C preprocessor.
@ -46,10 +46,26 @@
#define MBED_ROM_START 0x10000000
#endif
;* MBED_APP_START is being used by the bootloader build script and
;* will be calculate by the system. Without bootloader the MBED_APP_START
;* is equal to MBED_ROM_START
;*
#if !defined(MBED_APP_START)
#define MBED_APP_START MBED_ROM_START
#endif
#if !defined(MBED_ROM_SIZE)
#define MBED_ROM_SIZE 0x80000
#endif
;* MBED_APP_SIZE is being used by the bootloader build script and
;* will be calculate by the system. Without bootloader the MBED_APP_SIZE
;* is equal to MBED_ROM_SIZE
;*
#if !defined(MBED_APP_SIZE)
#define MBED_APP_SIZE MBED_ROM_SIZE
#endif
#if !defined(MBED_RAM_START)
#define MBED_RAM_START 0x08000000
#endif
@ -88,8 +104,8 @@
#define PUBLIC_RAM_START MBED_PUBLIC_RAM_START
#define PUBLIC_RAM_SIZE MBED_PUBLIC_RAM_SIZE
; Flash
#define FLASH_START MBED_ROM_START
#define FLASH_SIZE MBED_ROM_SIZE
#define FLASH_START MBED_APP_START
#define FLASH_SIZE MBED_APP_SIZE
; The following defines describe a 32K flash region used for EEPROM emulation.
; This region can also be used as the general purpose flash.
@ -164,7 +180,7 @@ LR_IROM1 FLASH_START (FLASH_SIZE - 0x8000)
{
* (.noinit)
}
RW_IRAM2 PUBLIC_RAM_START UNINIT
{
* (.cy_sharedmem)
@ -177,7 +193,7 @@ LR_IROM1 FLASH_START (FLASH_SIZE - 0x8000)
}
; Stack region growing down
ARM_LIB_STACK RAM_START+RAM_SIZE -Stack_Size
ARM_LIB_STACK RAM_START+RAM_SIZE -Stack_Size
{
* (STACK)
}
@ -264,5 +280,31 @@ CYMETA 0x90500000
.cymeta +0 { * (.cymeta) }
}
/* The following symbols used by the cymcuelftool. */
/* Flash */
#define __cy_memory_0_start 0x10000000
#define __cy_memory_0_length 0x00100000
#define __cy_memory_0_row_size 0x200
/* Emulated EEPROM Flash area */
#define __cy_memory_1_start 0x14000000
#define __cy_memory_1_length 0x8000
#define __cy_memory_1_row_size 0x200
/* Supervisory Flash */
#define __cy_memory_2_start 0x16000000
#define __cy_memory_2_length 0x8000
#define __cy_memory_2_row_size 0x200
/* XIP */
#define __cy_memory_3_start 0x18000000
#define __cy_memory_3_length 0x08000000
#define __cy_memory_3_row_size 0x200
/* eFuse */
#define __cy_memory_4_start 0x90700000
#define __cy_memory_4_length 0x100000
#define __cy_memory_4_row_size 1
/* [] END OF FILE */

View File

@ -691,7 +691,7 @@ void Cy_SysIpcPipeIsrCm0(void)
* linker configuration files. The following symbols used by the cymcuelftool.
*
*******************************************************************************/
#if defined (__ARMCC_VERSION)
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
__asm void Cy_MemorySymbols(void)
{
/* Flash */
@ -719,7 +719,6 @@ __asm void Cy_MemorySymbols(void)
EXPORT __cy_memory_4_length
EXPORT __cy_memory_4_row_size
/* Flash */
__cy_memory_0_start EQU __cpp(CY_FLASH_BASE)
__cy_memory_0_length EQU __cpp(CY_FLASH_SIZE)
@ -745,7 +744,7 @@ __cy_memory_4_start EQU __cpp(0x90700000)
__cy_memory_4_length EQU __cpp(0x100000)
__cy_memory_4_row_size EQU __cpp(1)
}
#endif /* defined (__ARMCC_VERSION) */
#endif /* defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050) */
/* [] END OF FILE */

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
; The first line specifies a preprocessor command that the linker invokes
; to pass a scatter file through a C preprocessor.
@ -268,5 +268,31 @@ CYMETA 0x90500000
.cymeta +0 { * (.cymeta) }
}
/* The following symbols used by the cymcuelftool. */
/* Flash */
#define __cy_memory_0_start 0x10000000
#define __cy_memory_0_length 0x00100000
#define __cy_memory_0_row_size 0x200
/* Emulated EEPROM Flash area */
#define __cy_memory_1_start 0x14000000
#define __cy_memory_1_length 0x8000
#define __cy_memory_1_row_size 0x200
/* Supervisory Flash */
#define __cy_memory_2_start 0x16000000
#define __cy_memory_2_length 0x8000
#define __cy_memory_2_row_size 0x200
/* XIP */
#define __cy_memory_3_start 0x18000000
#define __cy_memory_3_length 0x08000000
#define __cy_memory_3_row_size 0x200
/* eFuse */
#define __cy_memory_4_start 0x90700000
#define __cy_memory_4_length 0x100000
#define __cy_memory_4_row_size 1
/* [] END OF FILE */

View File

@ -526,6 +526,7 @@ void Cy_SysIpcPipeIsrCm4(void)
}
#endif
/*******************************************************************************
* Function Name: Cy_MemorySymbols
****************************************************************************//**
@ -535,7 +536,7 @@ void Cy_SysIpcPipeIsrCm4(void)
* linker configuration files. The following symbols used by the cymcuelftool.
*
*******************************************************************************/
#if defined (__ARMCC_VERSION)
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
__asm void Cy_MemorySymbols(void)
{
/* Flash */
@ -588,8 +589,7 @@ __cy_memory_4_start EQU __cpp(0x90700000)
__cy_memory_4_length EQU __cpp(0x100000)
__cy_memory_4_row_size EQU __cpp(1)
}
#endif /* defined (__ARMCC_VERSION) */
#endif /* defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050) */
/* [] END OF FILE */

View File

@ -322,6 +322,7 @@
* <tr>
* <td>2.40</td>
* <td>Updated assembler files, C files, linker scripts.</td>
* <td>Added Arm Compiler 6 support.</td>
* </tr>
* <tr>
* <td rowspan="2">2.30</td>
@ -543,7 +544,11 @@ extern "C" {
* \addtogroup group_system_config_system_functions
* \{
*/
extern void SystemInit(void);
#if defined(__ARMCC_VERSION)
extern void SystemInit(void) __attribute__((constructor));
#else
extern void SystemInit(void);
#endif /* (__ARMCC_VERSION) */
extern void SystemCoreClockUpdate(void);
/** \} group_system_config_system_functions */

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
; The first line specifies a preprocessor command that the linker invokes
; to pass a scatter file through a C preprocessor.
@ -268,5 +268,31 @@ CYMETA 0x90500000
.cymeta +0 { * (.cymeta) }
}
/* The following symbols used by the cymcuelftool. */
/* Flash */
#define __cy_memory_0_start 0x10000000
#define __cy_memory_0_length 0x00200000
#define __cy_memory_0_row_size 0x200
/* Emulated EEPROM Flash area */
#define __cy_memory_1_start 0x14000000
#define __cy_memory_1_length 0x8000
#define __cy_memory_1_row_size 0x200
/* Supervisory Flash */
#define __cy_memory_2_start 0x16000000
#define __cy_memory_2_length 0x8000
#define __cy_memory_2_row_size 0x200
/* XIP */
#define __cy_memory_3_start 0x18000000
#define __cy_memory_3_length 0x08000000
#define __cy_memory_3_row_size 0x200
/* eFuse */
#define __cy_memory_4_start 0x90700000
#define __cy_memory_4_length 0x100000
#define __cy_memory_4_row_size 1
/* [] END OF FILE */

View File

@ -322,6 +322,7 @@
* <tr>
* <td>2.40</td>
* <td>Updated assembler files, C files, linker scripts.</td>
* <td>Added Arm Compiler 6 support.</td>
* </tr>
* <tr>
* <td rowspan="2">2.30</td>
@ -543,7 +544,11 @@ extern "C" {
* \addtogroup group_system_config_system_functions
* \{
*/
extern void SystemInit(void);
#if defined(__ARMCC_VERSION)
extern void SystemInit(void) __attribute__((constructor));
#else
extern void SystemInit(void);
#endif /* (__ARMCC_VERSION) */
extern void SystemCoreClockUpdate(void);
/** \} group_system_config_system_functions */

View File

@ -526,6 +526,7 @@ void Cy_SysIpcPipeIsrCm4(void)
}
#endif
/*******************************************************************************
* Function Name: Cy_MemorySymbols
****************************************************************************//**
@ -535,7 +536,7 @@ void Cy_SysIpcPipeIsrCm4(void)
* linker configuration files. The following symbols used by the cymcuelftool.
*
*******************************************************************************/
#if defined (__ARMCC_VERSION)
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
__asm void Cy_MemorySymbols(void)
{
/* Flash */
@ -588,8 +589,7 @@ __cy_memory_4_start EQU __cpp(0x90700000)
__cy_memory_4_length EQU __cpp(0x100000)
__cy_memory_4_row_size EQU __cpp(1)
}
#endif /* defined (__ARMCC_VERSION) */
#endif /* defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050) */
/* [] END OF FILE */

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m0
; The first line specifies a preprocessor command that the linker invokes
; to pass a scatter file through a C preprocessor.
@ -46,10 +46,26 @@
#define MBED_ROM_START 0x10000000
#endif
;* MBED_APP_START is being used by the bootloader build script and
;* will be calculate by the system. Without bootloader the MBED_APP_START
;* is equal to MBED_ROM_START
;*
#if !defined(MBED_APP_START)
#define MBED_APP_START MBED_ROM_START
#endif
#if !defined(MBED_ROM_SIZE)
#define MBED_ROM_SIZE 0x80000
#endif
;* MBED_APP_SIZE is being used by the bootloader build script and
;* will be calculate by the system. Without bootloader the MBED_APP_SIZE
;* is equal to MBED_ROM_SIZE
;*
#if !defined(MBED_APP_SIZE)
#define MBED_APP_SIZE MBED_ROM_SIZE
#endif
#if !defined(MBED_RAM_START)
#define MBED_RAM_START 0x08000000
#endif
@ -88,8 +104,8 @@
#define PUBLIC_RAM_START MBED_PUBLIC_RAM_START
#define PUBLIC_RAM_SIZE MBED_PUBLIC_RAM_SIZE
; Flash
#define FLASH_START MBED_ROM_START
#define FLASH_SIZE MBED_ROM_SIZE
#define FLASH_START MBED_APP_START
#define FLASH_SIZE MBED_APP_SIZE
; The following defines describe a 32K flash region used for EEPROM emulation.
; This region can also be used as the general purpose flash.
@ -164,7 +180,7 @@ LR_IROM1 FLASH_START (FLASH_SIZE - 0x8000)
{
* (.noinit)
}
RW_IRAM2 PUBLIC_RAM_START UNINIT
{
* (.cy_sharedmem)
@ -177,7 +193,7 @@ LR_IROM1 FLASH_START (FLASH_SIZE - 0x8000)
}
; Stack region growing down
ARM_LIB_STACK RAM_START+RAM_SIZE -Stack_Size
ARM_LIB_STACK RAM_START+RAM_SIZE -Stack_Size
{
* (STACK)
}
@ -264,5 +280,31 @@ CYMETA 0x90500000
.cymeta +0 { * (.cymeta) }
}
/* The following symbols used by the cymcuelftool. */
/* Flash */
#define __cy_memory_0_start 0x10000000
#define __cy_memory_0_length 0x00100000
#define __cy_memory_0_row_size 0x200
/* Emulated EEPROM Flash area */
#define __cy_memory_1_start 0x14000000
#define __cy_memory_1_length 0x8000
#define __cy_memory_1_row_size 0x200
/* Supervisory Flash */
#define __cy_memory_2_start 0x16000000
#define __cy_memory_2_length 0x8000
#define __cy_memory_2_row_size 0x200
/* XIP */
#define __cy_memory_3_start 0x18000000
#define __cy_memory_3_length 0x08000000
#define __cy_memory_3_row_size 0x200
/* eFuse */
#define __cy_memory_4_start 0x90700000
#define __cy_memory_4_length 0x100000
#define __cy_memory_4_row_size 1
/* [] END OF FILE */

View File

@ -681,6 +681,7 @@ void Cy_SysIpcPipeIsrCm0(void)
}
#endif
/*******************************************************************************
* Function Name: Cy_MemorySymbols
****************************************************************************//**
@ -690,7 +691,7 @@ void Cy_SysIpcPipeIsrCm0(void)
* linker configuration files. The following symbols used by the cymcuelftool.
*
*******************************************************************************/
#if defined (__ARMCC_VERSION)
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
__asm void Cy_MemorySymbols(void)
{
/* Flash */
@ -718,7 +719,6 @@ __asm void Cy_MemorySymbols(void)
EXPORT __cy_memory_4_length
EXPORT __cy_memory_4_row_size
/* Flash */
__cy_memory_0_start EQU __cpp(CY_FLASH_BASE)
__cy_memory_0_length EQU __cpp(CY_FLASH_SIZE)
@ -744,7 +744,7 @@ __cy_memory_4_start EQU __cpp(0x90700000)
__cy_memory_4_length EQU __cpp(0x100000)
__cy_memory_4_row_size EQU __cpp(1)
}
#endif /* defined (__ARMCC_VERSION) */
#endif /* defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050) */
/* [] END OF FILE */

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
; The first line specifies a preprocessor command that the linker invokes
; to pass a scatter file through a C preprocessor.
@ -268,5 +268,31 @@ CYMETA 0x90500000
.cymeta +0 { * (.cymeta) }
}
/* The following symbols used by the cymcuelftool. */
/* Flash */
#define __cy_memory_0_start 0x10000000
#define __cy_memory_0_length 0x00100000
#define __cy_memory_0_row_size 0x200
/* Emulated EEPROM Flash area */
#define __cy_memory_1_start 0x14000000
#define __cy_memory_1_length 0x8000
#define __cy_memory_1_row_size 0x200
/* Supervisory Flash */
#define __cy_memory_2_start 0x16000000
#define __cy_memory_2_length 0x8000
#define __cy_memory_2_row_size 0x200
/* XIP */
#define __cy_memory_3_start 0x18000000
#define __cy_memory_3_length 0x08000000
#define __cy_memory_3_row_size 0x200
/* eFuse */
#define __cy_memory_4_start 0x90700000
#define __cy_memory_4_length 0x100000
#define __cy_memory_4_row_size 1
/* [] END OF FILE */

View File

@ -526,6 +526,7 @@ void Cy_SysIpcPipeIsrCm4(void)
}
#endif
/*******************************************************************************
* Function Name: Cy_MemorySymbols
****************************************************************************//**
@ -535,7 +536,7 @@ void Cy_SysIpcPipeIsrCm4(void)
* linker configuration files. The following symbols used by the cymcuelftool.
*
*******************************************************************************/
#if defined (__ARMCC_VERSION)
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
__asm void Cy_MemorySymbols(void)
{
/* Flash */
@ -588,8 +589,7 @@ __cy_memory_4_start EQU __cpp(0x90700000)
__cy_memory_4_length EQU __cpp(0x100000)
__cy_memory_4_row_size EQU __cpp(1)
}
#endif /* defined (__ARMCC_VERSION) */
#endif /* defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050) */
/* [] END OF FILE */

View File

@ -322,6 +322,7 @@
* <tr>
* <td>2.40</td>
* <td>Updated assembler files, C files, linker scripts.</td>
* <td>Added Arm Compiler 6 support.</td>
* </tr>
* <tr>
* <td rowspan="2">2.30</td>
@ -543,7 +544,11 @@ extern "C" {
* \addtogroup group_system_config_system_functions
* \{
*/
extern void SystemInit(void);
#if defined(__ARMCC_VERSION)
extern void SystemInit(void) __attribute__((constructor));
#else
extern void SystemInit(void);
#endif /* (__ARMCC_VERSION) */
extern void SystemCoreClockUpdate(void);
/** \} group_system_config_system_functions */

View File

@ -1,6 +1,6 @@
/***************************************************************************//**
* \file cy_syslib.h
* \version 2.20
* \version 2.30
*
* Provides an API declaration of the SysLib driver.
*
@ -159,6 +159,19 @@
* <table class="doxtable">
* <tr><th>Version</th><th>Changes</th><th>Reason for Change</th></tr>
* <tr>
* <td rowspan="3">2.30</td>
* <td>Updated implementation of the Cy_SysLib_AsmInfiniteLoop() function to be compatible with ARMC6.</td>
* <td>Provided support for the ARM Compiler 6.</td>
* </tr>
* <tr>
* <td>Minor documentation edits.</td>
* <td>Documentation update and clarification.</td>
* </tr>
* <tr>
* <td>Added new macroses CY_RAMFUNC_BEGIN and CY_RAMFUNC_END for convenient placement function in RAM for all supported compilers.</td>
* <td>Improve user experience.</td>
* </tr>
* <tr>
* <td rowspan="2">2.20</td>
* <td>Updated implementation of the \ref Cy_SysLib_AssertFailed() function to be available in Release and Debug modes.</td>
* <td>Provided support for the PDL static library in Release mode.</td>
@ -440,7 +453,7 @@ typedef enum
#define CY_SYSLIB_DRV_VERSION_MAJOR 2
/** The driver minor version */
#define CY_SYSLIB_DRV_VERSION_MINOR 20
#define CY_SYSLIB_DRV_VERSION_MINOR 30
/*******************************************************************************
@ -477,19 +490,29 @@ typedef enum
* attributes at the first place of declaration/definition.
* For example: CY_NOINIT uint32_t noinitVar;
*/
#define CY_NOINIT __attribute__ ((section(".noinit"), zero_init))
#if (__ARMCC_VERSION >= 6010050)
#define CY_NOINIT __attribute__ ((section(".noinit")))
#else
#define CY_NOINIT __attribute__ ((section(".noinit"), zero_init))
#endif /* (__ARMCC_VERSION >= 6010050) */
#define CY_SECTION(name) __attribute__ ((section(name)))
#define CY_UNUSED __attribute__ ((unused))
#define CY_NOINLINE __attribute__ ((noinline))
/* Specifies the minimum alignment (in bytes) for variables of the specified type. */
#define CY_ALIGN(align) __ALIGNED(align)
#define CY_RAMFUNC_BEGIN __attribute__ ((section(".cy_ramfunc")))
#define CY_RAMFUNC_END
#elif defined (__GNUC__)
#if defined (__clang__)
#define CY_NOINIT __attribute__ ((section("__DATA, __noinit")))
#define CY_SECTION(name) __attribute__ ((section("__DATA, "name)))
#define CY_RAMFUNC_BEGIN __attribute__ ((section("__DATA, .cy_ramfunc")))
#define CY_RAMFUNC_END
#else
#define CY_NOINIT __attribute__ ((section(".noinit")))
#define CY_SECTION(name) __attribute__ ((section(name)))
#define CY_RAMFUNC_BEGIN __attribute__ ((section(".cy_ramfunc")))
#define CY_RAMFUNC_END
#endif
#define CY_UNUSED __attribute__ ((unused))
@ -501,6 +524,8 @@ typedef enum
#define CY_SECTION(name) CY_PRAGMA(location = name)
#define CY_UNUSED
#define CY_NOINLINE CY_PRAGMA(optimize = no_inline)
#define CY_RAMFUNC_BEGIN CY_PRAGMA(diag_suppress = Ta023) __ramfunc CY_PRAGMA(location = ".cy_ramfunc")
#define CY_RAMFUNC_END CY_PRAGMA(diag_default = Ta023)
#if (__VER__ < 8010001)
#define CY_ALIGN(align) CY_PRAGMA(data_alignment = align)
#else

View File

@ -1,6 +1,6 @@
;-------------------------------------------------------------------------------
; \file cy_syslib_mdk.s
; \version 2.20
; \version 2.30
;
; \brief Assembly routines for ARMCC.
;

View File

@ -1,6 +1,6 @@
/***************************************************************************//**
* \file cy_syslib.c
* \version 2.20
* \version 2.30
*
* Description:
* Provides system API implementation for the SysLib driver.
@ -52,7 +52,11 @@
#endif /* (CY_ARM_FAULT_DEBUG == CY_ARM_FAULT_DEBUG_ENABLED) */
#if defined(__ARMCC_VERSION)
static __ASM void Cy_SysLib_AsmInfiniteLoop(void) { b . };
#if (__ARMCC_VERSION >= 6010050)
static void Cy_SysLib_AsmInfiniteLoop(void) { __ASM (" b . "); };
#else
static __ASM void Cy_SysLib_AsmInfiniteLoop(void) { b . };
#endif /* (__ARMCC_VERSION >= 6010050) */
#endif /* (__ARMCC_VERSION) */

View File

@ -8145,7 +8145,7 @@
"inherits": ["Target"],
"macros": ["MBED_MPU_CUSTOM"],
"default_toolchain": "GCC_ARM",
"supported_toolchains": ["GCC_ARM", "IAR", "ARMC5"],
"supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
"core": "Cortex-M4F",
"OUTPUT_EXT": "hex",
"device_has": [