硬汉嵌入式论坛

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

[emWin] emwin GUI_CREATEFONTAA创建字体失败

[复制链接]

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2020-11-21 22:42:02 | 显示全部楼层 |阅读模式
  向群里的大佬们请教一下,新唐N32926 emwin创建ttf字体,裸机运行时用GUI_CREATEFONTAA函数能正常创建字体,并能正常显示。同样的程序运行在FreeRtos系统时,GUI_CREATEFONTAA却创建字体失败(返回值为1),不知道哪位高人能否指点一下,感谢!(说明:程序开启了cache!)
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-21 22:44:11 | 显示全部楼层
硬汉大哥,可否指点一下?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-11-22 10:07:38 | 显示全部楼层
这个用于裸机或者OS下,没有区别。看下是不是你的FreeRTOS工程有点问题。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-22 12:02:52 | 显示全部楼层
eric2013 发表于 2020-11-22 10:07
这个用于裸机或者OS下,没有区别。看下是不是你的FreeRTOS工程有点问题。

大佬,麻烦帮忙看看?附件 是main和配置文件

FreeRTOSConfig.h

5.78 KB, 下载次数: 0

main.c

10.28 KB, 下载次数: 1

回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-22 12:06:53 | 显示全部楼层
eric2013 发表于 2020-11-22 10:07
这个用于裸机或者OS下,没有区别。看下是不是你的FreeRTOS工程有点问题。

附件是main和配置文件,麻烦硬汉大哥帮忙看看?

FreeRTOSConfig.h

5.78 KB, 下载次数: 1

main.c

10.28 KB, 下载次数: 2

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-11-22 12:26:29 | 显示全部楼层
5761193jia 发表于 2020-11-22 12:06
附件是main和配置文件,麻烦硬汉大哥帮忙看看?

GUI部分发下
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-22 22:19:29 | 显示全部楼层
本帖最后由 5761193jia 于 2020-11-23 08:59 编辑

好的谢谢硬汉大哥,GUI文件发附件了。简单说明一下:
1、MainTask中通过TTF_FontCreate()来创建ttf字体,一个创建文字字体,一个创建图标字体;2、字体原文件在SD卡中,通过fatfs文件系统读入内存;

AppUI_Cfg.c

11.02 KB, 下载次数: 2

AppUI_Cfg.h

2.78 KB, 下载次数: 2

GUIDEMO_Start.c

3.15 KB, 下载次数: 2

回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-23 09:04:31 | 显示全部楼层
还一个文件怎么上传不了呢,显示一个哭脸
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-11-23 14:59:23 | 显示全部楼层
5761193jia 发表于 2020-11-22 22:19
好的谢谢硬汉大哥,GUI文件发附件了。简单说明一下:
1、MainTask中通过TTF_FontCreate()来创建ttf字体 ...

仅看你的程序也没啥问题。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-24 09:20:04 | 显示全部楼层
不知是os的配置问题,还是cache使用问题,但裸机下也是开了cache的,ttf字体创建正常。,哪位能提供一下调试思路吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-11-25 10:02:35 | 显示全部楼层
5761193jia 发表于 2020-11-24 09:20
不知是os的配置问题,还是cache使用问题,但裸机下也是开了cache的,ttf字体创建正常。,哪位能提供 ...

在你的OS工程里面将main函数里面所有的函数都注释掉,仅执行emWin看看是否正常,正常后再仅开一个任务看看正常不。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-26 15:07:55 | 显示全部楼层
eric2013 发表于 2020-11-25 10:02
在你的OS工程里面将main函数里面所有的函数都注释掉,仅执行emWin看看是否正常,正常后再仅开一个任务看 ...

在main里面初始化后仅运行MainTask(),裸机下正常,能创建TTF字体。如下:int main( void )
{
        int status,i;
        UINT32 u32PllOutHz;
        BspInit();
        MainTask();       
       
//        sysprintf("start the FreeRTOS demo\n");
//        AppTaskCreate();
//        vTaskStartScheduler();
        while(1);
}
然后开启OS,只保留如下 一个vTaskGui任务(和上机同一个MainTask),创建TTF字体函数还是失败。
static void AppTaskCreate (void)
{
  xTaskCreate( vTaskGui,           /* 任务函数  */
                 "TaskGui",             /* 任务名    */
                 4096,                       /* 任务栈大小,单位word,也就是4字节 */
                 NULL,                      /* 任务参数  */
                 TaskGui_PRIORITY,                         /* 任务优先级*/
                 &xHandleTaskGui );  /* 任务句柄  */
       
       
        // xTaskCreate( vTask2,                    /* 任务函数  */
                 // "Task2",                  /* 任务名    */
                 // 200,                         /* 任务栈大小,单位word,也就是4字节 */
                 // NULL,                        /* 任务参数  */
                 // Task2_PRIORITY,                           /* 任务优先级*/
                 // &xHandleTask2 ); /* 任务句柄  */
       
        // xTaskCreate( vTaskStart,                     /* 任务函数  */
                 // "TaskStart",                   /* 任务名    */
                 // 512,                             /* 任务栈大小,单位word,也就是4字节 */
                 // NULL,                           /* 任务参数  */
                 // TaskStart_PRIORITY,                               /* 任务优先级*/
                 // &xHandleTaskStart );  /* 任务句柄  */
               
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-11-27 01:45:05 | 显示全部楼层
5761193jia 发表于 2020-11-26 15:07
在main里面初始化后仅运行MainTask(),裸机下正常,能创建TTF字体。如下:int main( void )
{
        int sta ...

你的FreeRTOSConfig.h文件里面的heap大小配置的多少
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-11-27 14:48:03 | 显示全部楼层
eric2013 发表于 2020-11-27 01:45
你的FreeRTOSConfig.h文件里面的heap大小配置的多少

麻烦硬汉大哥了,
FreeRTOSConfig.h文件我上传了,前面能找到。截了前面几行,如下:
#define configUSE_PREEMPTION                        1
#define configUSE_IDLE_HOOK                                0
#define configUSE_TICK_HOOK                                0
//#define configCPU_CLOCK_HZ                        ( ( unsigned long ) 162000000 )        /* =12.0MHz xtal multiplied by 5 using the PLL. */
#define configTICK_RATE_HZ                                ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES                        ( 8 )
#define configMINIMAL_STACK_SIZE                ( ( unsigned short ) 512)
#define configTOTAL_HEAP_SIZE                        ( ( size_t ) ( 1024 * 512 ) )
#define configMAX_TASK_NAME_LEN                        ( 16 )
#define configUSE_TRACE_FACILITY                1
#define configUSE_16_BIT_TICKS                        0
#define configIDLE_SHOULD_YIELD                        1
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-11-28 02:45:15 | 显示全部楼层
5761193jia 发表于 2020-11-27 14:48
麻烦硬汉大哥了,
FreeRTOSConfig.h文件我上传了,前面能找到。截了前面几行,如下:
#define config ...

感觉没啥问题了,有参考过我的那个OS版的矢量字体例子没,不行参考整下。

注意启动文件xxx.s的heap大小要给够。

回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2020-12-4 15:00:11 | 显示全部楼层
eric2013 发表于 2020-11-28 02:45
感觉没啥问题了,有参考过我的那个OS版的矢量字体例子没,不行参考整下。

注意启动文件xxx.s的heap大 ...

谢谢,谢谢!问题解决了,确实是.s文件的heap没设置好!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-12-5 10:21:29 | 显示全部楼层
5761193jia 发表于 2020-12-4 15:00
谢谢,谢谢!问题解决了,确实是.s文件的heap没设置好!

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 21:07 , Processed in 0.640601 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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