请教原子哥 stm32如何追查意外进入HardFault

查看: 3195|回复: 14
使用printf函数打印出一些字符后
进入HardFault_Handler
主题帖子精华
中级会员, 积分 398, 距离下一级还需 102 积分
在线时间7 小时
Average_Voltage_Value = Average_Voltage();
printf("Voltage is %5.4f V\n",Average_Voltage_Value);&&
打印出字符串“Voltage is 3 ”& 就进入了HardFault_Handler中断了,不知道怎么回事。
主题帖子精华
在线时间97 小时
是float的原因?
有需要代写程序的联系()
主题帖子精华
金钱114050
在线时间847 小时
Average_Voltage_Value
加一个修饰词,改为:
__align(4)&float&Average_Voltage_Value
再试试。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
中级会员, 积分 398, 距离下一级还需 102 积分
在线时间7 小时
回复【3楼】正点原子:
---------------------------------
O(∩_∩)O哈哈~&&你真是知识渊博。好像情况很好了。
现在没有加__align(4)修饰的时候出现了输出错误数据。
Voltage&is&3Voltage_Buff&is&372
本来应该输出的是“Voltage&is&37257Voltage_Buff&is&372”&&&怎么不加__align(4)修饰就会这样子呢??
我做的做的是一个有关GSM的装置,
(1)GSM没有短信收发的时候,float&Average_Voltage_Value这样定义的,所有的执行都正常,采集电压温度,printf输出一切都正常。
(2)但是当有GSM短信收发的时候,如果没有加__align(4)就进入HardFault_Handler了(昨天会,不过今天好像不会,就是会输出不正常而已)。加入__align(4)之后都正常了,也不会进入HardFault_Handler,输出也正常了。
所以感觉很迷惑。我做做实验,用示波器采集一下电源电压,看是不是GSM收发短信时候将MCU电压拉低了。顺便看看你提示的__align(4)是起什么作用。
主题帖子精华
金钱114050
在线时间847 小时
回复【4楼】Julius007:
---------------------------------
/posts/list/10059.htm
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
中级会员, 积分 398, 距离下一级还需 102 积分
在线时间7 小时
回复【5楼】正点原子:
---------------------------------
谢谢这么快回复我。
这几天意识到了一个以前一直没有注意的问题,“内存越界”“堆栈溢出”等问题。这些问题很容易导致HardFault_Handler问题,特别是处理字符串的时候,字符串函数处理字符串的时候大多数要找到‘\0’才结束操作的,所以如果一个字符串漏了‘\0’,他就会一直找下去,直到处理到\0,所以就会访问别的内存或者修改别的内存内容,导致出错。
主题帖子精华
初级会员, 积分 99, 距离下一级还需 101 积分
在线时间9 小时
回复【6楼】Julius007:
---------------------------------
楼主两年前的发言解决了我一个调了一晚都调不通的程序
主题帖子精华
中级会员, 积分 299, 距离下一级还需 201 积分
在线时间4 小时
这个问题纠结的我啊,感谢楼主
选择了就别再后悔
主题帖子精华
初级会员, 积分 192, 距离下一级还需 8 积分
在线时间9 小时
回复【3楼】正点原子:
---------------------------------
我也遇见的hardfault
请问原子哥,楼主的问题为何要指定4字节对齐,根据什么来指定的?没理解
主题帖子精华
金钱114050
在线时间847 小时
回复【9楼】zxcmcu:
---------------------------------
我的根据就是会不会死机。
详细的你可以百度学习下字节对齐,然后继续深入了解sprintf,printf等函数对内存的要求。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
在线时间201 小时
回复【10楼】正点原子:
---------------------------------
怎么知道__align(4)括号里面应该写4还是8还是100呢?
主题帖子精华
高级会员, 积分 744, 距离下一级还需 256 积分
在线时间11 小时
回复【11楼】jiutianshenjian:
---------------------------------
4x8=32
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
主题帖子精华
初级会员, 积分 137, 距离下一级还需 63 积分
在线时间3 小时
回复【10楼】正点原子:
---------------------------------
深入了解sprintf,printf等函数对内存的要求。
这句话我现在才发现很重要。&
我在调试一个别人写的工程时,printf函数打印变量。运行几十条打印语句后,在某一条就进入了硬件失败函数。
我真是不懂printf函数对内存有什么要求啊?&大师能否指点下?
主题帖子精华
金钱114050
在线时间847 小时
回复【13楼】xinshou:
---------------------------------
需求是看你printf什么东东的,很明显printf浮点数,比整数,堆栈需求要大得多。
不过具体的计算公式,我也没有,处错误就往这方面想想吧。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 137, 距离下一级还需 63 积分
在线时间3 小时
回复【14楼】正点原子:
---------------------------------
非常感谢你的指点。你这里说的“堆栈需求要大得多”指的是栈的字节数还是堆的字节数?&我的理解是栈的字节数。对么?我的栈设置了8000个字节,怎么还是发现出了错误呢?
&&&&&& times++;&
&&&&&&& if(times%100000 == 0)& { WPRINT_DEBUG(( "Waiting get sema, times=%d...& \r\n", ()times)); }&
&&&&& 当times=100000时,后面的打印语句出现了错误:
&&&&&&&& Invalid State usage fault - Illegal use of EPSR was attempted
EPSR& =& Execution Program Status Register
Powered by查看: 9644|回复: 13
Uc/os -ii 2.92 调用信号量后总是进入void HardFault_Handler(void) ;怎么办???
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
OSSemPend(Sem_Sensor,5, 0 ) ;
Place_ActualPointer = *((int* )(Sem_Sensor-&OSEventPtr));
OSSemPost(Sem_Sensor);
最后是在这儿 ,
& & OS_ENTER_CRITICAL();
& & if (pevent-&OSEventCnt & 0u) { & & & & & & & & & &/* If sem. is positive, resource available ... & */
& & & & pevent-&OSEventCnt--; & & & & & & & & & & & & /* ... decrement semaphore only if positive. & & */
& & & & OS_EXIT_CRITICAL();
& & & & *perr = OS_ERR_NONE;
return 完了就进void HardFault_Handler(void) ;
求大神怎么解决
主题帖子精华
金钱114050
在线时间847 小时
你的信号量是不是没分配内存啊?
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
(void)p_&&&&&
Sem_Sensor&=&OSSemCreate(1);
&&&&Sem_Sensor-&OSEventPtr&=&&sensor_
分配了的。
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
那个return&正常应该是应该到哪儿?
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
软仿能过,J-TAG&有压力
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
回复【2楼】正点原子:
---------------------------------
软仿能过,J-TAG&总是在调用的时候出问题。
主题帖子精华
金钱114050
在线时间847 小时
那看看是不是任务堆栈分配不够?
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 83, 距离下一级还需 117 积分
在线时间0 小时
回复【楼主位】Logic:
---------------------------------
敢问楼主的ucos&ii2.92的源码在哪下载的啊??
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
回复【8楼】qihangchenqin:
---------------------------------
直接用的原子哥的。移植好了的,
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
回复【7楼】正点原子:
---------------------------------
应该不会,一个很简单的程序,我把堆栈加到了&500,依旧会这样。
主题帖子精华
初级会员, 积分 69, 距离下一级还需 131 积分
在线时间0 小时
回复【8楼】qihangchenqin:
---------------------------------
貌似是我记错了,是2.91&的
主题帖子精华
金钱114050
在线时间847 小时
回复【10楼】Logic:
---------------------------------
那我还是怀疑指针没用对。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
金钱114050
在线时间847 小时
我们不是有信号量的例程么?
你看看我们的怎么处理的?
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手上路, 积分 49, 距离下一级还需 1 积分
在线时间0 小时
看哪些地方有数组、数组操作,数组写溢出有这硬件中断问题
Powered by查看: 3378|回复: 7
HardFault_Handler NVIC问题
主题帖子精华
初级会员, 积分 170, 距离下一级还需 30 积分
在线时间0 小时
进入NVIC_Init之后马上进入HardFault_Handler,在一般的情况下不会出现这些问题。。。。但是当我移植好fatfs之后问题就开始出现了,频繁的会出现HardFault_Handler。。。但是偶尔也会有不进入HardFault_Handler的情况
主题帖子精华
金钱114050
在线时间847 小时
检查内存访问.
比如字节对齐什么的,或者没有分配内存,进行非法访问的.
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 170, 距离下一级还需 30 积分
在线时间0 小时
我正准备检查的时候莫名其妙的又可以了,我完全没有更改任何代码
主题帖子精华
初级会员, 积分 170, 距离下一级还需 30 积分
在线时间0 小时
并且在仿真的时候可以过去,但是在实际运行的时候又会被卡死。。。。。。。。。。。
主题帖子精华
初级会员, 积分 170, 距离下一级还需 30 积分
在线时间0 小时
我刚刚尝试着用同一型号的芯片分别调试。。。。发现结果居然不一样。
主题帖子精华
初级会员, 积分 170, 距离下一级还需 30 积分
在线时间0 小时
在调试时,在NVIC_Init()内部一条一条指令执行却没有发生hardFault
主题帖子精华
初级会员, 积分 170, 距离下一级还需 30 积分
在线时间0 小时
总是发现偶尔会数据越界,偶尔却不会
主题帖子精华
初级会员, 积分 170, 距离下一级还需 30 积分
在线时间0 小时
真心不明白其他的时候不会有数组溢出为嘛,这个时候会有
Powered by查看: 2450|回复: 6
请教原子哥以及各位高手,怎样模拟USB摄像头在PC上显示
主题帖子精华
新手上路, 积分 50, 距离下一级还需 0 积分
在线时间0 小时
目前通过移植程序将STM32驱动为为摄像头(但是芯片并没有和摄像头相连),我想让PC这边可以显示自己创建的矩阵为图片,要怎样编码啊
主题帖子精华
金钱114050
在线时间847 小时
回复【楼主位】yang4469:
---------------------------------
这个貌似有难度,得熟悉USB才好做.
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
新手上路, 积分 50, 距离下一级还需 0 积分
在线时间0 小时
回复【2楼】正点原子:
回复【楼主位】yang4469:
---------------------------------
这个貌似有难度,得熟悉USB才好做.
---------------------------------
USB这一块没多大问题,PC能识别为摄像头,就是不知道怎么发送二维数组,让PC打开摄像头就可以看到图片
主题帖子精华
金牌会员, 积分 1952, 距离下一级还需 1048 积分
在线时间2 小时
回复【2楼】正点原子:
---------------------------------
同意原子哥
回复【楼主位】yang4469:
---------------------------------
楼主,你是要在STM32上做USB摄像头设备这玩意,有难度。
Time?And?Relative?Dimension?In?Space.
主题帖子精华
金牌会员, 积分 1952, 距离下一级还需 1048 积分
在线时间2 小时
回复【3楼】yang4469:
---------------------------------
你已经很牛B了
Time?And?Relative?Dimension?In?Space.
主题帖子精华
新手上路, 积分 50, 距离下一级还需 0 积分
在线时间0 小时
回复【4楼】Tardis:
---------------------------------
不是做摄像头,是模拟一个摄像头,我希望不用摄像头,STM32连上PC后,打开PC的摄像头可以看到一幅图(随便一个图)。
我是想简化那个/posts/list/16677.htm
STM32实现UVC摄像头(即webcam,免驱USB摄像头),玩俄罗斯方块
主题帖子精华
金牌会员, 积分 1952, 距离下一级还需 1048 积分
在线时间2 小时
回复【6楼】yang4469:
---------------------------------
太高端,话说,我对俄罗斯方块还没多大兴趣,我对电子宠物这个兴趣浓一点,因为这玩意,陪伴我度过了4个岁月的童年。
Time?And?Relative?Dimension?In?Space.
Powered by

我要回帖

更多关于 小哥意外拯救世界 的文章

 

随机推荐