完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们在使用你们的CYBL11573加入OTA功能时,发现一个很奇怪的问题:我们在快速的给芯片上电和断电的过程中会出现芯片永久死机的情况,除非重新烧录程序,否则永远不能恢复正常,好像放在芯片内的flash程序已经被破坏了一样!
一下是在main中为OTA增加的代码:通过一个按键来进入OTA模式,如果去掉这部分代码,就不会出现上面的问题了。 int main() { CyGlobalIntEnable; #if !defined(__ARMCC_VERSION) InitializeBootloaderSRAM(); #endif /* Checks if Self Project Image is updated and Runs for the First time */ AfterImageUpdate(); CyBle_Start(AppCallBack); Button_Init(); Led_Init(); if((~(Port1_Pins_Read()) 0x1f) == VOLDOWN_BUTTON_MASK) { CyDelay(3000u); //3s if((~(Port1_Pins_Read()) 0x1f) == VOLDOWN_BUTTON_MASK) { Bootloadable_SetActiveApplication(0); Bootloadable_Load(); CySoftwareReset(); } } 。。。。。。。。。。。。。。。 } 以上问题, 帮忙分析一下原因 谢谢! |
|
相关推荐
1个回答
|
|
1. 程序逻辑问题:您的代码中可能存在某些逻辑错误,导致芯片进入不稳定的状态。请确保您的代码在处理快速上电和断电的情况时的处理流程是正确的,并避免潜在的死锁或资源冲突。
2. 电源问题:快速的上电和断电可能导致电源干扰或电源电压不稳定。请确保您的电源提供足够的稳定电压和电流,并使用合适的电源过滤器和电源线路设计来减小电源噪声和干扰。 3. OTP(One-Time Programmable)配置问题:在CYBL11573中,某些特殊的配置信息(例如硬件加密密钥)存储在OTP区域中,可能会被闪存操作中的错误写入覆盖。确保在进行OTA固件更新之前,将这些特殊配置信息备份,并在恢复芯片时正确地恢复这些信息。 4. 错误的编程或熔丝位设置:如果您使用的开发工具链或芯片配置工具不正确地设置了编程选项或熔丝位信息,可能会导致芯片无法正确启动。请确保您的编程工具链和熔丝位配置正确,并按照正确的步骤进行编程。 5. 芯片硬件故障:尽管不常见,但芯片硬件故障也可能导致永久死机的情况。如果所有其他可能的原因都已排除,并且问题仍然存在,那么可能是芯片本身存在问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12043 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 03:32 , Processed in 0.624549 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号