cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC Creator & Designer Software

kun120510
New Contributor

CY8C4126AXI 在编译时报错 Build error: L6985E: 详情如下图所示问题详情 2021-07-14.png

0 Likes
1 Solution
Roy_Liu
Moderator
Moderator

是的 ,EEPROM 会造成此问题,参考一下EmEEPROM component datasheet.

Creator里的EePROM code example 针对MDK/GCC 和IAR 编译器是有宏定义的:

#if defined (__ICCARM__)
#pragma data_alignment = CY_FLASH_SIZEOF_ROW
const uint8_t Em_EEPROM_em_EepromStorage[Em_EEPROM_PHYSICAL_SIZE] = {0u};
#else
const uint8_t Em_EEPROM_em_EepromStorage[Em_EEPROM_PHYSICAL_SIZE]
__ALIGNED(CY_FLASH_SIZEOF_ROW) = {0u};
#endif /* defined (__ICCARM__) */

Roy Liu

View solution in original post

0 Likes
4 Replies
LinglingG_46
Moderator
Moderator

1: 你的这个错误是在什么情况下面发生的?

2: 你在project,build-setting里面选择的编译器是什么?

3: 从提示来看这是一个内存分配的错误,你可以把你的工程打包放在这里,我看看我这里是否可以复现问题。

4:有一些资料可以参考,你可以看一下,是否对你有帮助:

https://www.21ic.com/app/mcu/201812/778980.htm

0 Likes
kun120510
New Contributor

1:错误发生是在把编译器由IAR换成MDK时发生的。我这边有两个工程,将编译器由IAR换成MDK时,一个工程报错,一个工程正常;经查看报错工程比正常的工程多用了EEPROM,不知EEPROM是否会造成此问题的出现。

2、project,build-setting里面选择的编译器是MDK

 

 

0 Likes
Roy_Liu
Moderator
Moderator

是的 ,EEPROM 会造成此问题,参考一下EmEEPROM component datasheet.

Creator里的EePROM code example 针对MDK/GCC 和IAR 编译器是有宏定义的:

#if defined (__ICCARM__)
#pragma data_alignment = CY_FLASH_SIZEOF_ROW
const uint8_t Em_EEPROM_em_EepromStorage[Em_EEPROM_PHYSICAL_SIZE] = {0u};
#else
const uint8_t Em_EEPROM_em_EepromStorage[Em_EEPROM_PHYSICAL_SIZE]
__ALIGNED(CY_FLASH_SIZEOF_ROW) = {0u};
#endif /* defined (__ICCARM__) */

Roy Liu

View solution in original post

0 Likes
LinglingG_46
Moderator
Moderator

你说的从IAR换到MDK,按照我的理解IAR是个集成开发环境,MDK是个编译器。

你想表达的是什么呢?

你把有问题的工程的EEPROM的操作先注释掉,看是否还有问题?这样可以排除是由其它地方内存使用错误导致的。如果去掉了就没有问题,有下面两个解决方法供参考:

1:我第一次回复的链接的解决方法。

2:按照EEPROM的datasheet中的方法,把EEPROM放到你知道的合法的位置,然后再看是否有问题。

0 Likes