主题中讨论的其他器件:HALCOGEN
大家好、
我的 emifGetConfigValue 函数有问题。 我每隔100ms 在我的软件中读取 EMIF 配置寄存器(否则为情况)。 100ms 的激活通过中断来实现。
软件工作正常、但在保持(1到4小时)后、出现数据中止。
在数据中止情况下、我读出以下信息:
LR 寄存器(堆栈指针)
seteDataFaultAddress =_sl_get_DataFault_Address ();
seteDataFaultStatus =_sl_get_DataFault_Status ();
堆栈指针和故障地址都显示在 EMIF 寄存器中的一个(红色标记)。
void emifGetConfigValue (EMIF_CONFIG_REG_t * CONFIG_REG、CONFIG_value_type_t 类型)
{
if (type == InitialValue)
{
CONFIG_REG->CONFIG_AWCC = EMIF_AWCC_CONFIGVALUE;
CONFIG_REG->CONFIG_SDCR = EMIF_SDCR_CONFIGVALUE;
CONFIG_REG->CONFIG_SDRCR = EMIF_SDRCR_CONFIGVALUE;
CONFIG_REG->CONFIG_CE2CFG = EMIF_CE2CFG_CONFIGVALUE;
CONFIG_REG->CONFIG_CE3CFG = EMIF_CE3CFG_CONFIGVALUE;
CONFIG_REG->CONFIG_CE4CFG = EMIF_CE4CFG_CONFIGVALUE;
CONFIG_REG->CONFIG_CE5CFG = EMIF_CE5CFG_CONFIGVALUE;
CONFIG_REG->CONFIG_SDTIMR = EMIF_SDTIMR_CONFIGVALUE;
CONFIG_REG->CONFIG_SDSRETR = EMIF_SDSRETR_CONFIGVALUE;
CONFIG_REG->CONFIG_INTMSK = EMIF_INTMSK_CONFIGVALUE;
CONFIG_REG->CONFIG_PMCR = EMIF_PMCR_CONFIGVALUE;
}
其他
{
/*SAFETYMCUSW 134 S MR:12.2. "LDRA 工具问题"*/
CONFIG_REG->CONFIG_AWCC = emifREG->AWCC;
CONFIG_REG->CONFIG_SDCR = emifREG->SDCR;
CONFIG_REG->CONFIG_SDRCR = emifREG->SDRCR;
CONFIG_REG->CONFIG_CE2CFG = emifREG->CE2CFG;
CONFIG_REG->CONFIG_CE3CFG = emifREG->CE3CFG;
CONFIG_REG->CONFIG_CE4CFG = emifREG->CE4CFG;
CONFIG_REG->CONFIG_CE5CFG = emifREG->CE5CFG;
CONFIG_REG->CONFIG_SDTIMR = emifREG->SDTIMR;
CONFIG_REG->CONFIG_SDSRETR = emifREG->SDSRETR;
CONFIG_REG->CONFIG_INTMSK = emifREG->INTMSK;
CONFIG_REG->CONFIG_PMCR = emifREG->PMCR;
}
}
我的 EMIF 时钟频率为10MHz、我使用 HalCoGen 的默认设置、但我实现了一个100的 MAX_EXT_WAIT。
你有什么想法吗?
此致
Lars