咨询个问题,当我们用PSOC4的Em_EEPROM组件时,工程生成的Hex1文件的checksum是不包含了EEPROM的部分吧(通过Custom Linker Script调用cm0gcc.ld)。如果用户没有通过Custom Linker Script调用cm0gcc.ld,这样是不是会调用默认的cm0plusgcc.ld,从而导致生生成的Hex2文件的checksum是包含了EEPROM的部分,这样的话当芯片烧录了Hex2后运行,通过PSoC Programmer去读取芯片的checksum会是变化的吗?谢谢。
[1]main.c中的内容如下:
const uint8_t Em_EEPROM_em_EepromStorage[Em_EEPROM_PHYSICAL_SIZE]
CY_SEC
tiON(".my_emulated_eeprom") __ALIGNED(CY_FLASH_SIZEOF_ROW) = {0u};
[2]cm0gcc.ld中的有如下内容:
/***************************************************************************
* Checksum Exclude Section for non-bootloadable projects. See below.
***************************************************************************/
.cy_checksum_exclude : { KEEP(*(.cy_checksum_exclude)) } >rom
EM_EEPROM_START_ADDRESS = 0x2000;
.my_emulated_eeprom EM_EEPROM_START_ADDRESS :
{
KEEP(*(.my_emulated_eeprom))
} >rom
[3]cm0plusgcc.ld中的有如下内容:
/***************************************************************************
* Checksum Exclude Section for non-bootloadable projects. See below.
***************************************************************************/
.cy_checksum_exclude : { KEEP(*(.cy_checksum_exclude)) } >rom
.ramvectors (NOLOAD) : ALIGN(8)
{
__cy_region_start_ram = .;
KEEP(*(.ramvectors))
}