智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6767|回复: 14
打印 上一主题 下一主题

野火FX烧程序卡死在while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK))

[复制链接]

10

主题

346

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3064
威望
1392
贡献
1084
兑换币
707
注册时间
2014-1-1
在线时间
294 小时
跳转到指定楼层
1#
发表于 2015-3-28 19:56:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
野火FX烧程序卡死在while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK)),而且LED不断闪烁,请教大神是什么问题
回复

使用道具 举报

4

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
威望
155
贡献
80
兑换币
84
注册时间
2016-1-11
在线时间
27 小时
毕业学校
广东海洋大学
推荐
发表于 2016-6-3 21:35:31 | 只看该作者
编写浮点运算程序时,虽然编译器正确产生了V指令来进行浮点运算,但是因为systemXXX.c文件没有启用FPU,因此CPU执行时只认为是遇到非法指令而跳转到HardFault_Handler()中断中原地踏步。因此要保证这个错误不发生,必须要在system_init()函数里面添加如下代码:

    SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));
添加在system_xxx.c中的:
void start(void)
{
    wdog_disable();     // 关闭看门狗

    common_startup();   // 复制中断向量表 和 必要的数据到 RAM里

    sysinit();          // 系统初始化,设置系统频率,初始化printf端口

    //为了防止 main 函数 里 复用了 下载口,导致 下载失败,此处增加 按下 KEY_A 就进入死循环
    SRART_CHECK();

    gpio_init(PTA4,GPO,1);  //初始化为输出1,即 禁用了 NMI 中断

    SCB->CPACR |=((3UL << 10*2)|(3UL << 11*2));     //开硬件浮点运算
        
    main();             // 执行用户主函数

    while(1);           // 死循环
}
回复 支持 1 反对 0

使用道具 举报

3

主题

627

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13759
威望
6042
贡献
3549
兑换币
3764
注册时间
2014-8-12
在线时间
2084 小时
毕业学校
w
2#
发表于 2015-3-29 14:03:43 | 只看该作者
进入默认中断或断言失败
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
150
威望
76
贡献
44
兑换币
46
注册时间
2015-1-26
在线时间
15 小时
毕业学校
浙江工业大学
3#
发表于 2015-4-1 22:21:35 | 只看该作者
那为什么会出现这个问题呢?
回复 支持 反对

使用道具 举报

1

主题

89

帖子

0

精华

高级会员

Rank: 4

积分
615
威望
279
贡献
232
兑换币
125
注册时间
2014-10-31
在线时间
52 小时
毕业学校
4#
发表于 2015-4-1 22:25:13 | 只看该作者
Mars_zhangjh 发表于 2015-4-1 22:21
那为什么会出现这个问题呢?

中断优先级设置有问题或者是你的程序初始化有问题
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
150
威望
76
贡献
44
兑换币
46
注册时间
2015-1-26
在线时间
15 小时
毕业学校
浙江工业大学
5#
发表于 2015-4-1 22:54:19 | 只看该作者
释放 发表于 2015-4-1 22:25
中断优先级设置有问题或者是你的程序初始化有问题

程序初始化?相当于我在进入中断没有问题,然后在进入中断的一个函数时就跳出来了
回复 支持 反对

使用道具 举报

10

主题

346

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3064
威望
1392
贡献
1084
兑换币
707
注册时间
2014-1-1
在线时间
294 小时
6#
 楼主| 发表于 2015-4-3 19:14:36 | 只看该作者
Mars_zhangjh 发表于 2015-4-1 22:54
程序初始化?相当于我在进入中断没有问题,然后在进入中断的一个函数时就跳出来了

你是和我一样的问题吗?我看了山外的论坛,如果出现和我一样的情况的话,接一个串口,山外的板子会发关于问题的信息到串口上的。
回复 支持 反对

使用道具 举报

2

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
588
威望
302
贡献
176
兑换币
196
注册时间
2013-11-20
在线时间
55 小时
毕业学校
理工大学
7#
发表于 2015-5-13 18:22:49 | 只看该作者
请问你是怎么解决的?
回复 支持 反对

使用道具 举报

10

主题

346

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3064
威望
1392
贡献
1084
兑换币
707
注册时间
2014-1-1
在线时间
294 小时
8#
 楼主| 发表于 2015-5-26 21:41:18 | 只看该作者
nndz 发表于 2015-5-13 18:22
请问你是怎么解决的?

之前有一段时间没上论坛。。。原因跑飞了,PWM超过设定值,使用了没初始化的端口都可能造成这种现象,我当时是靠单步执行,看哪里跑飞以及野火串口能输出错误信息判断
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

高级会员

Rank: 4

积分
552
威望
255
贡献
137
兑换币
158
注册时间
2015-5-1
在线时间
80 小时
毕业学校
郑州科技学院
9#
发表于 2015-6-4 22:13:30 | 只看该作者
我用硬件I2C MPU6050,我的也是死在while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK)),咋办啊
谢谢,两天了都没搞出来,我把SysTick_CSR_COUNTFLAG_MASK=1后,又死在滴答定时器
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
51
威望
37
贡献
10
兑换币
12
注册时间
2016-4-14
在线时间
2 小时
毕业学校
兰州交通大学
10#
发表于 2016-4-14 19:27:53 | 只看该作者
请问你们解决了的大神怎么搞的?我的刚刚下载进去就这样了,不行了.连main都没进去
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-20 14:00 , Processed in 0.053445 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表