打印
[技术问答]

HC32F030F8TA移植RT_Thread在创建任务完成进入任务调度中出错跑飞怎么处理?

[复制链接]
1108|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2024-3-10 16:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
使用小华半导体MCU HC32F030F8TA 64KB 8KB keil5.35
移植RT_Thread后 LED状态常亮 并没有按逻辑闪烁 调试发现在任务调度中出错
位置:rt_system_scheduler_start();


望大佬们解答 谢谢


使用特权

评论回复
沙发
alxd| | 2024-8-15 14:48 | 只看该作者
在移植RT-Thread到HC32F030F8TA微控制器时,如果在创建任务并进入任务调度后出现程序跑飞(即程序异常退出或进入未知状态),可以按照检查栈空间进行排查和处理

使用特权

评论回复
板凳
Betty996| | 2024-8-15 15:59 | 只看该作者
确保每个任务的栈空间足够大。栈空间不足可能导致栈溢出,从而引起程序跑飞

使用特权

评论回复
地板
Estelle1999| | 2024-8-15 17:02 | 只看该作者
可以使用RT-Thread提供的栈溢出检测机制(如果支持)来检查栈是否溢出

使用特权

评论回复
5
Alina艾| | 2024-8-15 18:13 | 只看该作者
保证RT-Thread的中断优先级配置正确。RT-Thread需要一个或多个中断优先级来处理系统时钟和调度。检查中断优先级是否与其他外设的中断优先级冲突

使用特权

评论回复
6
Charlene沙| | 2024-8-15 19:15 | 只看该作者
要确认,系统时钟配置正确,特别是系统滴答时钟(SysTick)的配置。系统滴答时钟是RT-Thread进行任务调度和时间管理的基础

使用特权

评论回复
7
Annie556| | 2024-8-15 20:25 | 只看该作者
检查内存对齐,确保所有数据结构和变量按照HC32F030F8TA的要求进行对齐。不对齐的内存访问可能导致硬件异常

使用特权

评论回复
8
Charlotte夏| | 2024-8-16 08:36 | 只看该作者
其实一般需要检查一下任务创建和初始化的代码没有错误,特别是任务入口函数和参数传递。检查任务入口函数是否正确返回,或者是否在任务中执行了可能导致程序跑飞的代码

使用特权

评论回复
9
Carina卡| | 2024-8-16 09:38 | 只看该作者
使用调试器(如J-Link)连接到HC32F030F8TA,设置断点并单步执行代码,观察程序在跑飞前的状态。检查寄存器状态和内存内容,找出可能导致程序跑飞的原因

使用特权

评论回复
10
B1lanche| | 2024-8-16 10:06 | 只看该作者
一般要检查RT-Thread的配置文件(如rtconfig.h)正确配置了HC32F030F8TA的相关参数。特别是与硬件相关的配置,如时钟频率、中断向量表、内存映射等

使用特权

评论回复
11
Betty1299| | 2024-8-16 12:17 | 只看该作者
检查硬件连接,必须保证硬件连接正确,特别是电源和复位电路。不稳定的电源或复位信号可能导致程序跑飞

使用特权

评论回复
12
jcky001|  楼主 | 2024-8-19 16:37 | 只看该作者
与硬件相关的配置设置是否正确。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1499

主题

4482

帖子

6

粉丝