mirror of https://github.com/ARMmbed/mbed-os.git
PSOC6: add ARMC6 support (fix issue #9830)
Update PDL syslib driver to 2.30. Update startup assembly and linker scripts.pull/10413/head
parent
248013aca8
commit
ef19fb6ebb
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;-------------------------------------------------------------------------------
|
||||
; \file cy_syslib_mdk.s
|
||||
; \version 2.20
|
||||
; \version 2.30
|
||||
;
|
||||
; \brief Assembly routines for ARMCC.
|
||||
;
|
|
@ -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) */
|
||||
|
||||
|
||||
|
|
|
@ -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": [
|
||||
|
|
Loading…
Reference in New Issue