完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现在找到的原因就是在ucos下的硬件定时器中断都会导致hardfault!想请原子哥给解释一下,我移植的原子的ucos系统,是不是系统的原因导致的呢?
|
|
|
|
说明你的代码存在bug,至于具体原因,仿真看看是哪一步进入的hardfault。
|
|
|
|
跟踪一下啊
|
|
|
|
我单步调试找它进入hardfault的代码是在ucos系统切换的api函数里面。
|
|
|
|
什么意思?单步调试吗?单步调试找到的进入hardfault的程序为ucos系统里面的函数。
|
|
|
|
void TIM3_IRQHandler(void) //TIM3ÖD¶Ï
{ float i; // float angle;//½óêÕμ½μÄêÇ»¡¶è£¬èç1ûêǽǶ裬»1μýøDD»»Ëã OSIntEnter(); if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //¼ì2éTIM3¸üDÂÖD¶Ï·¢éúóë·ñ { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //Çå3yTIMx¸üDÂÖD¶Ï±êÖ¾ if(canflag1==1) { Can_Send_Msg(0x321,"01234567",8); } if(canflag2==1) { Can_Send_Msg(0x322,"01234567",8); i=sin(angle1*3.14/180.00); deepth=(int)(longth*(i-sin(sen1*3.14/180.00))); } } OSIntExit(); } 这是我的定时器中断服务函数的程序;就是通过can发送命令,然后can的中断函数得到角度值angle1.运行的过程中此中断函数就会导致程序运行出错,也没有访问越界什么的原因啊! |
|
|
|
void TIM3_IRQHandler(void) //TIM3ÖD¶Ï
{ float i; // float angle;//½óêÕμ½μÄêÇ»¡¶è£¬èç1ûêǽǶ裬»1μýøDD»»Ëã OSIntEnter(); if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //¼ì2éTIM3¸üDÂÖD¶Ï·¢éúóë·ñ { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //Çå3yTIMx¸üDÂÖD¶Ï±êÖ¾ if(canflag1==1) { Can_Send_Msg(0x321,"01234567",8); } if(canflag2==1) { Can_Send_Msg(0x322,"01234567",8); i=sin(angle1*3.14/180.00); deepth=(int)(longth*(i-sin(sen1*3.14/180.00))); } } OSIntExit(); } 这是我的定时器中断服务函数的程序;就是通过can发送命令,然后can的中断函数得到角度值angle1.运行的过程中此中断函数就会导致程序运行出错,也没有访问越界什么的原因啊! 而且我也跟踪了,通过r6的地址得到hardfault之前的程序是OS_Start函数,真的不知道是什么原因了。大神能给个回复吗 |
|
|
|
而且我也跟踪了,通过r6的地址得到hardfault之前的程序是OS_Start函数,真的不知道是什么原因了。大神能给个回复吗
|
|
|
|
好好查查哪里溢出了,硬件错误一搬都是内存错误造成。
|
|
|
|
不要在中断里面直接调用CAN的发送函数,置标志位或发送OS事件,到任务里面去发送。
|
|
|
|
为什么啊?在中断里面发送不行吗?
|
|
|
|
中断里面尽量少做事,你可以把发送函数屏蔽了再看看还有没有报错。
|
|
|
|
是,中断里面少做事,但我这个中断里面就一个can的发送函数,还多吗?如果我不在这里发送的话,我就不能保证时间的精确性了吧?
|
|
|
|
这个就不清楚了,你先排除问题出在哪里吧。找到进HARD FAULT的原因。
|
|
|
|
这个就不清楚了,你先排除问题出在哪里吧。找到进HARD FAULT的原因。
|
|
|
|
这个就不清楚了,你先排除问题出在哪里吧。找到进HARD FAULT的原因。
|
|
|
|
这个就不清楚了,你先排除问题出在哪里吧。找到进HARD FAULT的原因。
|
|
|
|
这个就不清楚了,你先排除问题出在哪里吧。找到进HARD FAULT的原因。
|
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:03 , Processed in 1.437604 second(s), Total 113, Slave 93 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号