完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在做一个基于多微控制器的项目,其中我有两个 PSoC5 微控制器。 当前,当其中一个微控制器出现 WDT 超时时,只会对该芯片进行复位。 我需要执行一个系统级别(两个微控制器),当两个微控制器出现WDT超时时,需要重置。
我遇到过各种帖子,其中提到如果在引导加载程序执行应用程序代码之前读取 CyResetStatus 变量的值,则 CAN 读取此代码。 但是一直以来,我只能得到 CyresetStatus 的值为 0X80 或 0XA0。 有没有办法读取重置的原因并将状态保存到内部EEPROM位置。 有人帮助我解决问题CAN ? |
|
相关推荐
2个回答
|
|
当 CPU 重置时,它会执行它的 Reset () 向量。
几行之后,RESET Status 寄存器(32 位)被读取(然后自动清除),并临时存储在另一个未使用的 32 位寄存器中。 * (reg32 *) (CYREG_PHUB_CFGMEM23_CFG1) = * (reg32 *) (CYREG_RESET_SR0); 然后,如果引导加载程序存在,则运行它。(您已表明它存在于您的项目中。) 在 main () 被调用之前的某个时候,会调用 initialize_psoc (void)。 在这个例程中,CyresetStatus 全局变量使用重置时重置状态寄存器的 LSB 进行设置。 注意:此值暂时存储在 CYREG_PHUB_CFGMEM23_CFG1 中,现在已加载到 cyresetStat us 中。 cyresetStatus = CY_GET_REG8 (CYREG_PHUB_CFGMEM23_CFGMEM23_CFG1); 只要引导加载程序不使用 CYREG_PHUB_CFGMEM23_CFG1,cy resetStatus 就应该反映出重置的原因。 这是另一个观察:你注意到了\"但是我一直只能得到 CyresetStatus 的值为 0X80 或 0XA0。\" 设置的位是用户可控制的寄存器的 msb 2 位。 这些是应用程序(或引导加载程序) CAN 设置为在软重置中保留的位。 我建议你检查你的引导加载程序,看看它在放弃控制权之前是否修改了 CYREG_PHUB_CFGMEM23_CFG1 寄存器或 Cy resetStatus 变量。 |
|
|
|
在PSoC5微控制器中,你可以使用CySysGetResetReason()函数来读取重置的原因。该函数返回一个整数,代表了重置原因的位掩码。你可以根据不同的位掩码值来确定重置的原因,例如WDT超时。然后,你可以通过将该值保存到内部EEPROM位置来记录重置的原因。
以下是一个示例代码片段,演示了如何使用CySysGetResetReason()函数读取重置的原因并保存到EEPROM位置: ```c #include #define RESET_REASON_ADDR 0x100 // EEPROM地址用于保存重置原因 int main(void) { CyGlobalIntEnable; /* Enable global interrupts. */ /* Read reset reason */ uint32 resetReason = CySysGetResetReason(); /* Save reset reason to EEPROM */ CY_EEPROM_Write((uint8 *)&resetReason, RESET_REASON_ADDR, sizeof(resetReason)); for(;;) { /* Place your application code here. */ } } ``` 这段代码中,重置原因首先被读取到resetReason变量中。然后,使用CY_EEPROM_Write()函数将resetReason的值写入到EEPROM的RESET_REASON_ADDR地址处。写入完成后,你可以在之后的重置过程中读取该地址的值来获取上次重置的原因。 请注意,保存到EEPROM的值将在芯片断电或复位时保持不变,因此你需要在每次程序重启后重新读取重置原因并决定下一步的操作。 希望对你有帮助! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
536 浏览 0 评论
531 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
794 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
922 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核启动流程
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12160 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 20:35 , Processed in 1.071135 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号