Announcements
IMPORTANT: Cypress Developer Community is transitioning on October 20th. To learn more and be prepared for this change, check out our latest announcement.
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