完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我正在尝试为我的商业项目(使用 ESP32-WROVER IE)编写一个掉电处理例程,我想知道是否有人可以帮助我弄清楚如何做到这一点。我正在使用内部 SPIFAT、NVS 和 SD FAT。我在电路板上还有第二个 MCU,它依赖于相同的电源来执行类似的例程。
我在我所有的文件 IO 上写了一个中间层,这样我就可以防止我的所有代码在触发断电后访问这些文件。当外部比较器触发掉电时,它们应该只完成当前操作。 这个想法是电路有足够的大量能量存储来完成任何未决操作并干净地退出。当一切按预期进行时,我的 GPIO 掉电任务会降低时钟速度、关闭文件等,我得到 >800 毫秒的时间(我需要 ~400 毫秒)。问题是内部 SPI 芯片上的闪存操作很慢,并且会阻塞所有非 IRAM 代码,包括掉电任务。我已经完成了 menuconfig 并设置了选项以尽可能降低内部闪存操作的延迟/持续时间(擦除期间的收益,以及强制扇区擦除等)。处理掉电的延迟使用了太多的电力。 我想执行以下操作: 掉电输入时 IRAM 中的 GPIO ISR 处理程序: 立即降低 CPU 速度并禁用 wifi。不关心干净的deinit,只关心功耗。 非常高优先级的掉电任务: 关闭打开的文件等,然后进入睡眠状态,直到硬件主管重置电路。 我一直不了解如何从 IRAM 中的 ISR 降低 wifi 功耗的底层细节。 esp_wifi_stop() 需要很长时间才能完成,我认为也不确定它是 ISR 还是 IRAM 安全。 我应该查看较低层的代码吗?我应该写入寄存器以强制禁用某些东西吗?我可以终止 WiFi 任务吗? 其他人做同样的事情的任何想法或教训将不胜感激。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
2135个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37376 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6775 浏览 1 评论
7793 浏览 1 评论
7642 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5071 浏览 0 评论
1556浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1208浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
749浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
735浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
678浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:11 , Processed in 0.612618 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
562