[STM32F0] STM32F030 RCC_GetClocksFreq(&rcc_clocks)异常

[复制链接]
2981|16
 楼主| frankie17 发表于 2016-2-21 22:03 | 显示全部楼层 |阅读模式
求赐教,主程序一添加“RCC_GetClocksFreq(&rcc_clocks);”就会挂在启动程序中:
Default_Handler:
    Infinite_Loop:
        b Infinite_Loop
请赐教,谢谢!
注释掉该函数,一切正常!!!!
nstel 发表于 2016-2-21 23:32 | 显示全部楼层
小系统用汇编,是不是更好点?
 楼主| frankie17 发表于 2016-2-22 18:12 | 显示全部楼层
nstel 发表于 2016-2-21 23:32
小系统用汇编,是不是更好点?

汇编用的少了吧,这个问题是:主程序一添加“RCC_GetClocksFreq(&rcc_clocks)函数,系统启动时,就会挂在启动.s文件里,跳到上面的无限循环。
nstel 发表于 2016-2-22 18:21 | 显示全部楼层
如果你用汇编,就能跟踪每条指令。很容易发现问题。起动时,看看是不是有异常中断出现?是什么异常?查一查M0的异常表,就能发现问题了。还有,就是FLASH的加速器(也叫预取缓冲)开了没有?
 楼主| frankie17 发表于 2016-2-22 18:32 | 显示全部楼层
nstel 发表于 2016-2-22 18:21
如果你用汇编,就能跟踪每条指令。很容易发现问题。起动时,看看是不是有异常中断出现?是什么异常?查一查 ...

嗯,好的,多谢指导,我仔细看看
 楼主| frankie17 发表于 2016-2-22 19:27 | 显示全部楼层
nstel 发表于 2016-2-22 18:21
如果你用汇编,就能跟踪每条指令。很容易发现问题。起动时,看看是不是有异常中断出现?是什么异常?查一查 ...

更换了启动文件, .s文件里提示 undefined reference to `_estack',不明白啊

1

1

2

2
Ryze 发表于 2016-2-22 21:05 | 显示全部楼层
FLASH的加速器开了没有
nstel 发表于 2016-2-22 21:13 | 显示全部楼层
堆栈没有设置。M0系列的汇编级的第一条指令必须是堆栈指针。C编程的话,请参照执行。
 楼主| frankie17 发表于 2016-2-24 20:53 | 显示全部楼层
Ryze 发表于 2016-2-22 21:05
FLASH的加速器开了没有

flash加速器根本不懂啊,第一次用STM32F0
 楼主| frankie17 发表于 2016-2-24 20:54 | 显示全部楼层
nstel 发表于 2016-2-22 21:13
堆栈没有设置。M0系列的汇编级的第一条指令必须是堆栈指针。C编程的话,请参照执行。 ...

我是C编程,启动文件里的堆栈怎么设置啊
 楼主| frankie17 发表于 2016-2-25 21:41 | 显示全部楼层
每次启动都是卡在这里。。。怎么搞

图片

图片
lemonboard 发表于 2016-2-25 22:33 | 显示全部楼层
可能是堆栈溢出,或者全局变量越界吧
楼主 这个时候也只能一步一步分析了。
lemonboard 发表于 2016-2-25 22:34 | 显示全部楼层
frankie17 发表于 2016-2-25 21:41
每次启动都是卡在这里。。。怎么搞

窗口看门狗??楼主开启了吗?
Bermanrep 发表于 2016-2-26 09:08 | 显示全部楼层
那就说明时钟设置的不对吧
gcy_eyic 发表于 2016-2-26 12:45 | 显示全部楼层
这个调用的是库函数,你单步执行进到函数内部看看程序死在哪里,然后在对照语句看文档。
 楼主| frankie17 发表于 2016-2-26 19:12 | 显示全部楼层
压根进不了主程序,一直卡在.s启动文件里,直接硬件中断错误
 楼主| frankie17 发表于 2016-2-28 09:31 | 显示全部楼层
从别的IDE换到了MDK,就正常了,估计还是跟.s启动文件有关。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部