硬汉嵌入式论坛

 找回密码
 立即注册
查看: 351|回复: 4
收起左侧

[FreeRTOS] freeRTOS死机

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2025-7-14 17:57:09 | 显示全部楼层 |阅读模式
写flash任务中,写flash前,进入函数执行结构体赋值后,退出函数时死机。

目前检查无越界的情况。
在此函数末尾增加一句打印,就不会死;或者进入单步调试也不死;又或者上午(获取rtc后,hour < 12),从而执行if(hour < 12)的子函数,也不死
请问各位有思路吗
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2025-7-18 13:55:26 | 显示全部楼层
大概率数组越界检查一下指针数据是否正常
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-19 17:42:33 | 显示全部楼层
考虑将这个写Flash任务设置为最低优先级,且里面不要做开关中断和关闭调度。看看写入后,其他高优先级任务还能正常运行不,如果不能正常运行,那可能是程序跑飞了,比如任务栈开小了之类的问题。


回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2025-7-22 11:17:15 | 显示全部楼层
eric2013 发表于 2025-7-19 17:42
考虑将这个写Flash任务设置为最低优先级,且里面不要做开关中断和关闭调度。看看写入后,其他高优先级任务 ...

任务栈还剩非常多,只开写flash这一个任务,别的任务都不开,自己给自己发消息写,也会死

在开启RTOS之前,一直循环调用这个函数没有任何问题
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-23 09:48:55 | 显示全部楼层
a1386 发表于 2025-7-22 11:17
任务栈还剩非常多,只开写flash这一个任务,别的任务都不开,自己给自己发消息写,也会死

在开启RTOS ...

得开别的任务,看下别的任务死机了没。别的任务也死机了说明你的系统调度已经死机了。

也就是说你的这个Flash擦写实现是有bug的,仅可以裸机使用,OS下不行。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 03:10 , Processed in 0.039611 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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