硬汉嵌入式论坛

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

[ThreadX全家桶] 移植ThreadX GUI的芯片版,有一个重要的底层函数(文件)没有可供参考的

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2020-5-29 00:34:34 | 显示全部楼层 |阅读模式
电脑端是下面这个函数,这个函数看不到源代码。

6.png

芯片端,ThreadX的Github上只有一个F7的案例上带了一个。

但是这个案例里面有一个重要的文件:

gx_display_driver_stm32f746g-dico_24xrgb.c,这个文件被封装到了库里面看不到。

QQ截图20200529003301.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2020-5-29 02:19:03 | 显示全部楼层
这个问题解决了,移植就方便很多了。
回复

使用道具 举报

16

主题

203

回帖

251

积分

高级会员

积分
251
发表于 2020-5-29 08:43:32 | 显示全部楼层
eric2013 发表于 2020-5-29 02:19
这个问题解决了,移植就方便很多了。

UINT stm32f429_graphics_driver_setup_24xrgb(GX_DISPLAY *display)
{
    /* initialize the low-level drawing function pointers

       for windows, these are always just the generic funcions,
       but for some hardware, these will be customized,
       optimized functions specific to that hardware
    */
    _gx_display_driver_24xrgb_setup(display, (VOID*)STM32F746G_DISCO_SCREEN_HANDLE, stm32f429_24xrgb_buffer_toggle);

    #if defined(GX_TIMING_ENABLE)
    display->gx_display_driver_drawing_initiate     = gx_chromeart_drawing_initiate;
    display->gx_display_driver_drawing_complete     = gx_chromeart_drawing_complete;
    #endif


    #if defined(GX_CHROMEART_ENABLE)
    /* override those functions that can be accelerated with DMA2D */
    display->gx_display_driver_horizontal_line_draw = gx_chromeart_horizontal_line_draw;
    display -> gx_display_driver_vertical_line_draw = gx_chromeart_vertical_line_draw;
    display -> gx_display_driver_canvas_copy        = gx_chromeart_canvas_copy;
    display -> gx_display_driver_pixelmap_draw      = gx_chromeart_pixelmap_draw;
    display -> gx_display_driver_pixelmap_blend     = gx_chromeart_pixelmap_blend;
    display -> gx_display_driver_8bit_glyph_draw    = gx_chromeart_glyph_8bit_draw;
    //display -> gx_display_driver_callback_assign    = gx_display_wait_function_set;


    //display -> gx_display_driver_canvas_blend                  = _gx_display_driver_24xrgb_canvas_blend;
    //display -> gx_display_driver_4bit_glyph_draw               =  _gx_display_driver_generic_glyph_4bit_draw;
    //display -> gx_display_driver_1bit_glyph_draw               =  _gx_display_driver_24bpp_glyph_1bit_draw;

    #endif

    /* Hardware Initialization */
    BSP_LCD_Init();

    BSP_LCD_LayerDefaultInit(0, (uint32_t)&frame_buffer);
    BSP_LCD_SelectLayer(0);


    // clear the frame buffer
    memset(frame_buffer, 0, STM32F746G_DISCO_SCREEN_WIDTH * STM32F746G_DISCO_SCREEN_HEIGHT * 4);

    // configure default DMA params
    DefaultDmaInitStruct();

    BSP_LCD_DisplayOn();
   
    // drive the timing pins high
    TIMING_FRAME_CALC_END
    TIMING_CPU_WORK_END

    /* Return successful status.  */
    return(GX_SUCCESS);
}
回复

使用道具 举报

16

主题

203

回帖

251

积分

高级会员

积分
251
发表于 2020-5-29 08:46:40 | 显示全部楼层
eric2013 发表于 2020-5-29 02:19
这个问题解决了,移植就方便很多了。


还是把文件一起上传吧

gx_display_driver_stm32f746g-disco_24xrgb.7z (4.88 KB, 下载次数: 57)

回复

使用道具 举报

16

主题

203

回帖

251

积分

高级会员

积分
251
发表于 2020-5-29 08:51:31 | 显示全部楼层
eric2013 发表于 2020-5-29 02:19
这个问题解决了,移植就方便很多了。

基本上所有的文件都有,就是那些库也可以自己编译的,每个库都有工程。。。就是在F7的那两个压缩包中。。。
1.PNG

评分

参与人数 1金币 +10 收起 理由
abcde1224 + 10 很给力!

查看全部评分

回复

使用道具 举报

610

主题

3063

回帖

4913

积分

至尊会员

积分
4913
发表于 2020-5-29 09:21:20 | 显示全部楼层
期待大神们的作品啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2020-5-29 09:36:10 | 显示全部楼层
yjwpm 发表于 2020-5-29 08:51
基本上所有的文件都有,就是那些库也可以自己编译的,每个库都有工程。。。就是在F7的那两个压缩包中。。 ...

太给力了,原来在这里,准备继续搞搞。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2020-5-29 10:35:50 | 显示全部楼层
我说我这里怎么没有,细看了下,我一直用的是Github的原始GUIX软件包,里面没有底层移植。
回复

使用道具 举报

3

主题

1233

回帖

1242

积分

至尊会员

积分
1242
发表于 2020-5-29 11:58:19 | 显示全部楼层
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2020-5-29 14:47:32 | 显示全部楼层
继续测试,官网的这个测试案例有问题,没法用,直接放弃。

https://docs.microsoft.com/en-us/azure/rtos/guix/guix-example

评分

参与人数 1金币 +10 收起 理由
abcde1224 + 10 很给力!

查看全部评分

回复

使用道具 举报

0

主题

57

回帖

57

积分

初级会员

积分
57
发表于 2020-5-30 09:42:08 | 显示全部楼层
你所引用的测试案例是针对win32,你可以考虑安装GUIX Studio,用它里面的库函数来编译运行guix-example.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2020-5-30 11:03:20 | 显示全部楼层
yuxinzhou 发表于 2020-5-30 09:42
你所引用的测试案例是针对win32,你可以考虑安装GUIX Studio,用它里面的库函数来编译运行guix-example.

谢谢已经解决,移植成功。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 00:38 , Processed in 0.332562 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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