硬汉嵌入式论坛

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

[ThreadX全家桶] threadx加guix不能满足需求,请问使用threadx和stemwin能满足需求吗

[复制链接]

3

主题

7

回帖

16

积分

新手上路

积分
16
发表于 6 天前 | 显示全部楼层 |阅读模式
你好 硬汉哥,请教一个问题,
先说以下我的硬件情况

stm32H743IIT6(480Mhz,外部晶振) sdram(W9825G6KH 16bit模式,240Mhz 2分频后是120Mhz), 屏幕是10.1寸   1024*768的屏幕,刷新率最高60hz(型号京东方 GV104X0M-N10 LTDC配置是60mhz),
软件和配置上

驱动使用ltdc单层 RGB565dma2d模式驱动屏幕(双缓冲模式),  spi从机(时钟是120mhz)接收spi主机的数据(每4ms接收一次数据长度60个字节的数据
rtos使用threadx6.4.0,配置的tick是1000(1秒1千次),gui使用guix6.4.0进行界面展示(guix使用dma2d进行画图)
实现内容  spi部分每4ms接受一次数据长度是60个字节的数据,并将数据在界面中同时展示出三个波形出来(展示的效果类似您二代示波器的展示效果)。
由于我的波形是需要满足25mm/s移动的要求,通过屏幕分辨率和屏幕尺寸我需要guix 8ms一次处理一次波形数据并展示出来(spi是4ms一次给我数据,guix两次数据进行运算展示一次波形数据),guix我使用了自带的guix定时器接口gx_system_timer_start((GX_WIDGET *)&window_Main, WAVEFORM_TIMER, 8, 8); 定时器到时间以后我是不断把波形按照一个guix定时器一个像素的往右画(8ms往右画一个像素点),我的波形数据是固定的展示模式,
每次定时器更新波形的时候我也是把脏数据窗口调的尽量小(三个波形的脏区域基本上是15*20, 20*30, 20*30)
现在的问题是我的gx_system_timer_start定时器不能满足每次都是8ms触发,可能连续十次能够8ms触发一次update波形,第十一次定时器就会超时到25ms才会触发一次update波形,问题出现的频率是不固定的
任务优先级上   ltdc中断和dma2d和spi的优先级最高(对应优先级2,2,1),guix的界面展示优先级是10。
我尝试使用threadx加ltdc和dma2d直接驱动屏幕不使用guix进行波形的展示,是能满足我的需求的,难道是guix比较慢?
后面我又使用guix6.4先不更新波形,直接使用8ms定时器更新界面里配置的numeric prompt的值, 使用接口 gx_numeric_prompt_value_set进行数字更新,定时器依然会超时20ms左右,
难道guix就这么慢吗
因为没用过stemwin,是不是可以使用threadx和stemwin来满足我的需求?麻烦硬汉哥了


回复

使用道具 举报

3

主题

7

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 6 天前 | 显示全部楼层
cpu上我没有监测使用率是多少
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
122743
QQ
发表于 5 天前 | 显示全部楼层
主要是我这边,GUIX的高速波刷新方案没深入研究,得后面专门深入研究下。

emWin高速波形刷新方案弄好了

开源三代示波器的高速波形刷新方案开源,支持VNC远程桌面,手机,Pad,电脑均可访问(2024-11-11)
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=126398

点评

好的 感谢硬汉哥  详情 回复 发表于 5 天前
回复

使用道具 举报

3

主题

7

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 5 天前 | 显示全部楼层
eric2013 发表于 2026-5-20 09:13
主要是我这边,GUIX的高速波刷新方案没深入研究,得后面专门深入研究下。

emWin高速波形刷新方案弄好了
...

好的  感谢硬汉哥
回复

使用道具 举报

5

主题

334

回帖

349

积分

高级会员

积分
349
发表于 4 天前 | 显示全部楼层
16bit sdram带宽带不动1024*768 60hz的屏,不是gui的问题。
这里算一下,16bit sdram理论带宽16*120/8=240MB/s,我自己实测的32bit变量连续读速度是165MB/s
刷屏需要的带宽不考虑那6个屏幕参数,1024*768*2*60=94.3MB/s,这是60hz刷新率时固定占用的,由像素时钟和颜色格式硬性决定,也就是说不跑ui光使能ltdc点屏就会吃掉这么多
光点个屏就吃掉一半带宽了,而且内核、dma2d、ui缓冲区、图片字体资源全在抢sdram,导致总线竞争,本就不宽裕的带宽更加雪上加霜,肯定也就不流畅了
所以大于800*480分辨率的屏幕,如果ui要求丝滑流畅,必须上32bit sdram
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-25 16:03 , Processed in 0.678951 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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