804 Star 2.4K Fork 1.2K

GVPHuawei LiteOS / LiteOS

 / 详情

问题:运行kernel demo 出现 fault in task

进行中
创建于  
2021-06-24 18:21

烧录后复位

通过串口建立连接

报错信息

复位后从串口收到:
OsAppInit
cpu 0 entering scheduler
TaskName = Swt_Task
TaskId = 0
Task stackSize = 800
System mem addr = 0x20002ad0
Phase = fault in task
Type = 0xff11
FaultAddr = 0xabababab
intNumOrTaskId = 0x0
R0 = 0x0
R1 = 0x1010101
R2 = 0x2020202
R3 = 0x3030303
R4 = 0xcacacaca
R5 = 0x4040404
R6 = 0x5050505
R7 = 0x6060606
R8 = 0x7070707
R9 = 0x8080808
R10 = 0x9090909
R11 = 0x10101010
R12 = 0x20003dd8
PriMask = 0x11111111
SP = 0x0
LR = 0x8006fe1
PC = 0x8003448
xPSR = 0x21000000

评论 (12)

WatterCutter 创建了任务
WatterCutter 关联仓库设置为Huawei LiteOS/LiteOS
WatterCutter 修改了描述
WatterCutter 修改了标题
展开全部操作日志

什么平台 什么开发板

@bing_wang_165747 stm32f103 Fire_Arbitrary

bing 负责人设置为Lyb

您好,经我们这边验证,没有出现该问题,能说一下你的操作步骤吗。我们复现一下

Swt_Task是板级外设相关的吗?
按照官方文档移植到F103VET6的开发板上也会出现相同的信息。
1、这边是先把bin文件转成hex
2、然后通过串口烧录
3、运行后硬件初始化是正常的,端口电平可以设置
4、运行到OsStart()之前的动作是可预见的
5、通过liteos的serialport工具连接到开发板
6、复位
7、串口工具显示出信息

OsAppInit
cpu 0 entering scheduler
TaskName = Swt_Task
TaskId = 0
Task stackSize = 800
System mem addr = 0x20002ad0
Phase = fault in task
Type = 0xff11
FaultAddr = 0xabababab
intNumOrTaskId = 0x0
R0 = 0x0
R1 = 0x1010101
R2 = 0x2020202
R3 = 0x3030303
R4 = 0xcacacaca
R5 = 0x4040404
R6 = 0x5050505
R7 = 0x6060606
R8 = 0x7070707
R9 = 0x8080808
R10 = 0x9090909
R11 = 0x10101010
R12 = 0x20003dd8
PriMask = 0x11111111
SP = 0x0
LR = 0x8006fe1
PC = 0x8003448
xPSR = 0x21000000

最新版代码的103的kernel demo运行测试正常,上面报错显示的在初始化完成开始调度后,Swt_Task任务中出现错误,可以通过查看out/STM32F103_FIRE_Arbitrary/Huawei_LiteOS.asm中查看pc和lr的值来查看问题点。也可以通过make menuconfig来配置kernel demo中DemoEntry的task demo或者queue demo来测试对应demo。

@WatterCutter swt_task任务的栈空间改大一点 改成2048 ,你可以在OsMain函数入口中找到他的初始化,将栈空间改大。
修改地址:.config中的LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE的值改为2048。

Lyb 任务状态待办的 修改为进行中

@WatterCutter 问题得到解决了吗。

暂时没有。
swt的栈空间即使拓宽到4096仍然会报错。
之前老版本(那个版本比较老,入口函数还是LOS_xx)跑调度器是没问题的,工作顺畅。
这次从gitee获取的新版源码就还是卡在这儿,后面再用最新的master版本试试。
顺便问一下,LiteOs Studio自动生成的工程是从gitee 的master分枝同步的吗?

根据前面ouyk复现结果,使用最新版本,同样的开发板,是没有这个问题的,调试是OK的,建议再验证一下。
另外,Studio自动生成的工程 请@ouyk帮解答一下。

@WatterCutter studio生成的代码是啥,有具体的介绍吗。我这边测试是正常的,方便上传你的代码并提供链接吗,如果我们有板子就帮你跑跑看看。

我也遇到了这个问题,感谢@ouyk。。。 我发现所有的用户任务要在user_task.c中的app_init中去创建,之前我是在main函数中直接创建了任务,导致和楼主一样的错误

你好,基于现在3.2release 还可以用这种解决方法吗?目前在3.2release上 适配stm32h753 也遇到了同样得问题,请路过的前辈们指导一下 感谢 :pray:

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(6)
9280259 wattercutter 1647168169 5414201 lyb9 1659666159
C
1
https://gitee.com/LiteOS/LiteOS.git
git@gitee.com:LiteOS/LiteOS.git
LiteOS
LiteOS
LiteOS

搜索帮助