OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4093|回复: 3

STM32F7移植FreeRTOS在Systick中断内Hard_Fault

[复制链接]

25

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2014-7-16
在线时间
5 小时
发表于 2016-11-13 12:41:50 | 显示全部楼层 |阅读模式
5金钱
STM32F7移植FreeRTOS在Systick中断内Hard_Fault
一步步溯源,发现是在task.c中
过程
[mw_shl_code=c,true]BaseType_t xTaskIncrementTick( void )[/mw_shl_code]
里面的这一条语句
[mw_shl_code=c,true]/* The delayed list is not empty, get the value of the
                                        item at the head of the delayed list.  This is the time
                                        at which the task at the head of the delayed list must
                                        be removed from the Blocked state. */
                                        pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList );[/mw_shl_code]
执行到这一条,下一步就直接HardFault了
请问大神这如何解决?我觉得好像是因为pxDelayedTaskList未定义所致,但是既然pxDelayedTaskList未定义,为什么又会执行到这里来?

最佳答案

查看完整内容[请看2#楼]

问题找到了,不过好久不上线,现在才发。 是配置文件的问题导致Tasklist在没有初始化的情况下被调用导致内存访问越界。 我用的是STM32F7的FreeRTOS官方配置文件,可能是不通用,换了ST官方的配置文件就过了。
光圈电子科技 晓航 多多 啾儿 实验室
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2014-7-16
在线时间
5 小时
 楼主| 发表于 2016-11-13 12:41:51 | 显示全部楼层
问题找到了,不过好久不上线,现在才发。
是配置文件的问题导致Tasklist在没有初始化的情况下被调用导致内存访问越界。
我用的是STM32F7的FreeRTOS官方配置文件,可能是不通用,换了ST官方的配置文件就过了。
光圈电子科技 晓航 多多 啾儿 实验室
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-11-13 19:06:30 | 显示全部楼层
帮顶
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-7-20
在线时间
2 小时
发表于 2019-7-20 20:54:21 | 显示全部楼层
大神,我也遇到了相同的问题,能详细说明一下么? 哪一个配置文件? 我用的GCC编译的
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 13:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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