硬汉嵌入式论坛

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

[ThreadX全家桶] zynq mpsoc ultrascale平台的tx_thread_sleep循环

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2024-11-13 15:35:38 | 显示全部楼层 |阅读模式
小白初学RTOS,首先threadx版本用的5.1。在sample demo的线程中只要使用了tx_thread_sleep就会在thread_schedule中无限月读,查阅了论坛中许多解决方法,看到有个帖子是配置系统时钟就可以了,但在tx_initialize_low_level中没有相关设置没法配置系统时钟
所以想问问老哥们有在zynq ultrascale上有实现过的吗?
111.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-11-14 09:45:42 | 显示全部楼层
升级下到6.x试试
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2024-11-26 11:17:13 | 显示全部楼层
有6.x 移植到zynq的工程吗?我看论坛里面都是5.x的
回复

使用道具 举报

19

主题

336

回帖

393

积分

高级会员

积分
393
发表于 2024-11-27 00:05:39 | 显示全部楼层
在thread_schedule中无限月读这个是 threadx 的一个特点,threadx 并没有向其他 OS 一样系统没事干的时候在 idle task 中运行。
threadx 在整个系统都处于空闲状态的时候,就是在thread_schedule中不停的检查当前是否有就绪的任务,如果有就绪的任务立刻就会发生任务切换。

你这里的无限月读应该就是没有就绪的任务发生。

没有就绪任务的发生,可能的原因有:
1. 检查 demo 工程的测试用例在干什么事情,可以尝试建立两个任务,使用2个信号量来进行乒乓唤醒。
2. 检查是否有对接系统心跳时钟。因为没有对接系统时钟,OS TICK 的值就不会增加,当你调用 sleep 之后,时间没有变化肯定就检查不到有任务已经就绪了。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2024-12-11 15:47:11 | 显示全部楼层
cccyou 发表于 2024-11-26 11:17
有6.x 移植到zynq的工程吗?我看论坛里面都是5.x的

我是自己找的源码,对应论坛的修改
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2024-12-11 15:49:08 | 显示全部楼层

试过了,不是源码的问题,感觉像是demo里的线程调度问题
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2024-12-11 16:13:21 | 显示全部楼层
王海靖 发表于 2024-11-27 00:05
在thread_schedule中无限月读这个是 threadx 的一个特点,threadx 并没有向其他 OS 一样系统没事干的时候在 ...

官方给的sample里有队列的发送和接收,这部分任务我单步调试来看是没问题的,查了很多解决方案都倾向于系统时钟配置不完备,自己也有初始化TTC。想问下老哥你说的对接具体指什么呢?谢谢!
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-1-23 16:50:12 | 显示全部楼层
可算跑成功了。用的xillinx的zcu102_cortex-a53_smp_full_source(可以在csdn上找到)。
之前一直采用的是这个帖子的代码(https://www.armbbs.cn/forum.php?mod=viewthread&tid=109603)。
里面board_setup对LONG的定义会与tx_port.h 有冲突,自己当初把tx_port头文件里面的对LONG的定义修改了之后,也许因为内存占用率高和缓存命中率(猜测),会卡在中断向量表的一个空中断上。
接下来跑一下两个core看看行不行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 21:24 , Processed in 0.301120 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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