完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
通过SPI往SD卡写数据出现bus hard_fault 有一定概率产生此问题。大致工作过程为接收来自另一线程的消息队列,memcpy数据然后写卡。(图有点糊,各位见谅),最后定位到位置出在底层库函数上,不太清楚从何下手解决。 系统配置 STM32F412,主频100M,SPI配置:8线制,MODE_0, MSB,cfg.max_hz 400K bug追溯 hard_falut hard_fault产生时函数调用关系及寄存器值 最后死在查询标志位上,底层的原因有点摸不着头脑。SPI所有寄存器都变成了0XAAAAAAAA???? LR及PC指针对应位置 两次cmbacktrace捕捉到的错误点 gettick???难道是系统时钟不稳定么,设备测试一次,大约需要写卡2.5w次,有概率会出现这个bug,但出现一次hard_fault就裂开了。 请各位老师支支招,万分感谢 |
|
相关推荐
4个回答
|
|
hspi->instance明显被篡改了,问题和SPI以及SD卡无关,而是其它程序引发的。
建议对 hspi->instance 下一个写断点,问题一下就找出来了,因为这里一旦初始化后就不会改变了。 |
|
|
|
感谢您的建议,不过我还是有点不太明白。判断出Instance被篡改,可是从哪追溯篡改源呢?对instcance改变设置回调函数或者触发中断?
|
|
|
|
|
|
|
|
好的,抽空试试,又学到一招
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
830 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2916 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1391 浏览 0 评论
2006 浏览 0 评论
1553 浏览 0 评论
75088 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 04:25 , Processed in 0.749031 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号