[STM32F0] 求教,STM32F0+UCOSIII,配置外部中断时会进入死循环中断

[复制链接]
1070|7
 楼主| 过路人1024 发表于 2019-4-17 09:13 | 显示全部楼层 |阅读模式
我的程序在调用UCOSIII相关初始化函数前,初始化了一系列外围IC,其中有个ic用到了外部中断。当初始化了这些外围IC后,执行OSIni、创建任务、OSStart。然后在执行SStart这个函数时会进入HardFault_Handler中断死循环。在网上找了各种方法,最常见的是PendSVHandler函数问题。但我这个UCOSIII例程上直接从UCOS官网上下载的UCOSIII_F051的例程来的。这个数应该不会有错的。最后发现屏蔽了那个初始化配置了外部中断的函数就不会进入HardFault_Handler中断了。把这个中断初始化配置的函数放到一个任务中调用(这个任务执行一次会自我删除),也不会进入中断了。在此之前也尝试了中断优先级,响应优先级、抢占优先级的各种组合,也不行。请问其他人有遇到类似的问题吗?貌似中断配置只要不是放在OS跑起来之前的话就不会有问题。
请叫我树人 发表于 2019-4-17 09:23 | 显示全部楼层
怎么回事???
kingkits 发表于 2019-4-17 10:07 | 显示全部楼层
本帖最后由 kingkits 于 2019-4-17 10:09 编辑

你确定你的系统必须用UCOSIII么,难道UCOSII不够用?
一般能放在任务里进行的工作都尽可能放在任务里
逆天凡凡 发表于 2019-4-17 10:37 | 显示全部楼层
求大神来解答
Ketose 发表于 2019-4-17 12:03 | 显示全部楼层
最好是能看到你的代码!不然再牛、逼的大神也帮不了你。
 楼主| 过路人1024 发表于 2019-4-17 13:50 | 显示全部楼层
kingkits 发表于 2019-4-17 10:07
你确定你的系统必须用UCOSIII么,难道UCOSII不够用?
一般能放在任务里进行的工作都尽可能放在任务里
...

UCOSIII或UCOSII这不重要,有这个问题我得弄清楚问题在哪啊。只执行一次的初始化函数一般都是放在OS之前的把。
kingkits 发表于 2019-4-17 14:18 | 显示全部楼层
出现这种现象,只通过几句话描述来分析原因是不太现实的。你还是自己去跟踪一下,然后研究研究原因。可以在HardFault_Handler加一个陷阱,然后强行返回,看看到底发生了什么
HappyXue 发表于 2019-4-17 17:19 | 显示全部楼层
这个需要调试跟踪,看看到底是哪条指令、哪个地址引起的HardFault。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

39

帖子

0

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