usmart test_fun引起 HardFault

2019-07-21 03:41发布

STM32F407开发板原装, 源程序未改动, 现象:
        1. 全速运行时, 通过串口调用test_fun(0X8000288,0),卡死.
        2. 全速运行时, 通过串口调用led_set(0)正常.
       
 3. 在test_fun内设断点执后单步执行(Step in), 不死.
        4. 在test_fun内设断点后,重新全速执行,死.
        5. 不再test_fun内使用函数指针,而直接调用led_set(0), 运行正常.
        死的时候, DS0不再闪烁. Stop后, 发现在HardFault_Handler里.

        求大神指点...

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 08:31
led_set的地址是多少?
xBrain
2楼-- · 2019-07-21 14:27
回复【2楼】正点原子:
---------------------------------
我的是0X8000288, 单步执行正常
//LED状态设置函数
void led_set(u8 sta)
{
LED1=sta; //* 若在此处设断电, 运行到这里前就HardFault了 *******************

//函数参数调用测试函数
void test_fun(void(*ledset)(u8),u8 sta)
{
ledset(sta); //* 若在此处设断电, 然后单步执行(Step In) 无HardFault  *******************
}
正点原子
3楼-- · 2019-07-21 18:38
 精彩回答 2  元偷偷看……

一周热门 更多>