硬汉嵌入式论坛

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

[ThreadX全家桶] GUIX在FREERTOS上面的移植!

  [复制链接]

5

主题

40

回帖

55

积分

初级会员

积分
55
发表于 2021-7-11 22:39:23 | 显示全部楼层 |阅读模式
因为比较熟悉Freertos,也用得比较多,想尝试下使用Freertos移植一个GUIX,照着UCOS-III的模板套了一遍,没有成功!!有没有哪位坛友有捣鼓过,指点一下呢?自己移植的RTOS适配文件: gx_system_rtos_bind.c (18.58 KB, 下载次数: 24)

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-7-12 01:06:25 | 显示全部楼层
有时间了,我做个分享下。
回复

使用道具 举报

4

主题

30

回帖

42

积分

新手上路

积分
42
发表于 2021-7-12 11:42:11 | 显示全部楼层
我有移植过RTT的, 你也可以参考一下
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2021-7-12 13:15:31 | 显示全部楼层
miss-you 发表于 2021-7-12 11:42
我有移植过RTT的, 你也可以参考一下

可以分享一下吗?
回复

使用道具 举报

5

主题

40

回帖

55

积分

初级会员

积分
55
 楼主| 发表于 2021-7-12 14:10:38 | 显示全部楼层
miss-you 发表于 2021-7-12 11:42
我有移植过RTT的, 你也可以参考一下

看到你的帖子了,感谢!我研究下
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
发表于 2021-12-27 18:04:51 | 显示全部楼层
兄弟移植GUIX到freeRTOS成功了没,可否参考一下,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2021-12-28 00:40:18 | 显示全部楼层
flyflyfly001 发表于 2021-12-27 18:04
兄弟移植GUIX到freeRTOS成功了没,可否参考一下,谢谢!

后面我做个,分享给大家。
回复

使用道具 举报

2

主题

9

回帖

15

积分

新手上路

积分
15
发表于 2021-12-28 09:23:55 | 显示全部楼层
eric2013 发表于 2021-12-28 00:40
后面我做个,分享给大家。

好的,感谢版主,持续关注!
回复

使用道具 举报

24

主题

119

回帖

191

积分

初级会员

积分
191
发表于 2021-12-30 19:41:19 来自手机 | 显示全部楼层
可以考虑移植一下threadx,比freertos强
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-17 01:25:08 | 显示全部楼层
eric2013 发表于 2021-7-12 01:06
有时间了,我做个分享下。

GUIX 移植到 FREERTOS上了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2022-6-17 10:21:35 | 显示全部楼层
ccschen 发表于 2022-6-17 01:25
GUIX 移植到 FREERTOS上了?

还没着手做。
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-17 22:34:22 | 显示全部楼层

我这边试着参考本贴的文件,然后把那个UCOS的部分,拿来修改了下,看了,GUIX任务和定里器都跑起来了,就是屏幕上不显示内容。。。
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-18 13:46:20 | 显示全部楼层
大佬弄好了么?
回复

使用道具 举报

1

主题

83

回帖

86

积分

初级会员

积分
86
发表于 2022-6-18 13:52:23 | 显示全部楼层
我移植到了CMSIS_RTOS2,你可以用这个试下
回复

使用道具 举报

1

主题

83

回帖

86

积分

初级会员

积分
86
发表于 2022-6-18 13:53:00 | 显示全部楼层
可以测下

gx_system_rtos_bind.c

14.7 KB, 下载次数: 19

回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-18 22:12:28 | 显示全部楼层
参考这个楼主的,以及RTT的,移植好了。只是感觉GUIX对按键不太友好。。。
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-18 23:52:17 | 显示全部楼层
本帖最后由 ccschen 于 2022-6-19 16:24 编辑

谢谢。你这个是FREERTOS V2?我这边已经移植好了,但现在出现新问题了,就是在界面上增加个定时器,用来刷新参数和数据,结果先进页面的回调启动定时器比,这时GUIX的定时器还没建立,然后就挂了,进断言了。如果在gx_generic_rtos_initialize就初始化GUIX任务和定时器,会进错误中断。

gx_system_rtos_bind.c

38.54 KB, 下载次数: 6

app_guix.c

4.02 KB, 下载次数: 4

回复

使用道具 举报

1

主题

83

回帖

86

积分

初级会员

积分
86
发表于 2022-6-19 17:23:13 | 显示全部楼层
ccschen 发表于 2022-6-18 23:52
谢谢。你这个是FREERTOS V2?我这边已经移植好了,但现在出现新问题了,就是在界面上增加个定时器,用来 ...

不要关定时器任务
回复

使用道具 举报

1

主题

83

回帖

86

积分

初级会员

积分
86
发表于 2022-6-19 17:25:19 | 显示全部楼层
ccschen 发表于 2022-6-18 23:52
谢谢。你这个是FREERTOS V2?我这边已经移植好了,但现在出现新问题了,就是在界面上增加个定时器,用来 ...

初始化的时候不要把定时器任务挂起
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-19 22:31:23 | 显示全部楼层
唐伯虎点蚊香 发表于 2022-6-19 17:25
初始化的时候不要把定时器任务挂起

现在调整了下代码,在gx_generic_rtos_initialize初始化定时器,在GX_SYSTEM_THREAD_START中初始化GUIX任务。就没进断言或错误中断了。但是试了下TEXT控件,参照例程,定时器在更新,但文本内容没随着更新。。。
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-19 22:35:55 | 显示全部楼层
实际上进错误中断是在GX_SYSTEM_THREAD_START中新建任务引起的。
                uc_error = xTaskCreate( gx_system_thread_entry_shell,
                           "guix_task",
                            GX_THREAD_STACK_SIZE,//256,
                           NULL,
                         GX_SYSTEM_THREAD_PRIORITY,//4,
                            /*&guix_tcb*/NULL);

如果把新建任务和定里器放到gx_generic_thread_start里面,是不会进错误中断,也不进断言,但窗口不会显示出来。试了下AZURE的全家桶不会有这个问题。估计系统机制还是有区别,看了下UCOS的接口,也是后面统一启动的。不像FREE RTOS,新建任务马上就运行了。。。
回复

使用道具 举报

5

主题

11

回帖

26

积分

新手上路

积分
26
发表于 2022-6-20 09:46:42 | 显示全部楼层
ThreadX最近几个版本里,os_capability_layer里有FreeRTOS的适配层
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-20 11:24:54 | 显示全部楼层
界面上的TEXT控件,通过定里器更新显示,返回GX_SYSTEM_MEMORY_ERROR错误。。。

UINT _cbEventWindow_language(GX_WINDOW *widget, GX_EVENT *event_ptr)
{
    static uint32_t count = 6;
    char buf[1] = {0};

   
    switch (event_ptr->gx_event_type)
    {
        /* 控件显示事件 */
        case GX_EVENT_SHOW:
         
            /* 启动一个GUIX定时器 */
            gx_system_timer_start((GX_WIDGET *)widget, GUI_ID_Timer0, 1, GX_TICKS_SECOND);

            /* 默认事件处理 */
            gx_window_event_process(widget, event_ptr);
            break;

        /* 定时器时间溢出事件*/
        case GX_EVENT_TIMER:
            if (event_ptr->gx_event_payload.gx_event_timer_id == GUI_ID_Timer0)
            {
                sprintf(buf, "%d", count--);
                gx_prompt_text_set((GX_PROMPT *)&(window_language.window_language_prompt_countdown), buf);
            }
            break;

        default:
            return gx_window_event_process(widget, event_ptr);
    }

    return 0;
}
回复

使用道具 举报

1

主题

83

回帖

86

积分

初级会员

积分
86
发表于 2022-6-20 11:53:07 | 显示全部楼层
ccschen 发表于 2022-6-19 22:31
现在调整了下代码,在gx_generic_rtos_initialize初始化定时器,在GX_SYSTEM_THREAD_START中初始化GUIX任 ...

我觉得现在问题出在信号量那边
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-20 13:32:47 | 显示全部楼层
唐伯虎点蚊香 发表于 2022-6-20 11:53
我觉得现在问题出在信号量那边

本来是FREE RTOS +EMWIN的,结果EMWIN偶尔出现定时器不刷新的情况,而且自己手上一直没复现,都是在用户那里复现的,所以最简单的方法,做个备份方案,就是FREERTOS + GUIX。如果用THREAD X全家桶就工作量太大了。然后简单试了下,THREAD全家桶,更新TEXT显示,定时器中断能进,但是呢,TEXT没刷新,GX_SYSTEM_MEMORY_ERROR错误。
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-20 20:48:15 | 显示全部楼层
gx_system_memory_allocator_set(memory_allocate, memory_free);
试了,THREADX全家桶加上这句,定时器中断也可以更新数字了,一个倒计时。。。
问题是现在FREERTOS + GUIX 怎么弄。。。没得这个函数啊。。。难道要部分使用THREADX的函数?


硬汉大佬的FREERTOS+GUIX什么时候出来?
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-20 20:55:03 | 显示全部楼层
tx_byte_pool_create(&memory_pool, "guix", guix_pool_memory, 1024);

这个函数,在FREE RTOS +GUIX中,怎么修改,直接包含THREADX的源文件?
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-26 15:48:00 | 显示全部楼层
现在用了FREERTOS V2,把 threadx中的内存池,用freertos v2中的代码实现了,先试了下定时器,跑得时快时慢。不行的话就用THREADX全家桶了。。。ST也鸡贼,只推自家的TOUCH GFX,不给集成GUIX中间件。
回复

使用道具 举报

19

主题

125

回帖

182

积分

初级会员

积分
182
发表于 2022-6-26 19:48:18 | 显示全部楼层
已经换成FREERTOS V2了,里面的内存池操作。只是先分配了内存后,后面malloc内存的时候,不是按大小需要获取的。
然后出了另一个问题,定时不准,定时器刷新,中断时快时慢。。。不如THREADX全家桶中断稳定。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-1-11 20:41:56 | 显示全部楼层
ccschen 发表于 2022-6-26 19:48
已经换成FREERTOS V2了,里面的内存池操作。只是先分配了内存后,后面malloc内存的时候,不是按大小需要获 ...

我移植了 freertos + GUIX,现在出图不完整有啥思路。出来的尺寸坐标是对的,数据不对。
800*480 无论设置 ARGB 还是 RGB56,看着有效元素都只有一半
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 03:53 , Processed in 0.286863 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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