硬汉嵌入式论坛

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

[emWin] LISTVIEW的行数和显示的内容有没有限制?

[复制链接]

38

主题

91

回帖

205

积分

高级会员

积分
205
发表于 2019-3-8 15:22:25 | 显示全部楼层 |阅读模式
        列表为1000行,创建空行没有问题,每个只显示时间也没有问题,同时显示时间、编码和注释时就会死掉,界面任务找为24k

        hItem = WM_GetDialogItem(hWin, ID_LISTVIEW_0);
        LISTVIEW_DeleteAllRows(hItem);

        for(i=0; i<1000; i++)
        {
            if(i >= item)
            {
                LISTVIEW_AddRow(hItem, NULL);
                item++;
            }

            memset(buf, 0, sizeof(buf));
            k = sprintf(buf, " %04d  %04d-%02d-%02d %02d:%02d  "
                                    , (i+1),year,month,day,hour,minute);
            m = k;

            k = strlcpy(&dispbuf[m],(char *)code, 9);
            m += k;

            k = strlcpy(&dispbuf[m],"  ", 3);
            m += k;

            k = strlcpy(&dispbuf[m],"11223344556677", 15);
            m += k;

            LISTVIEW_SetItemText(hWin,0,i,dispbuf);
        }

回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2019-3-8 15:24:04 | 显示全部楼层
貌似是,列表显示的信息少,就没有问题,显示信息多,就会死掉,不知道咱回事
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-3-8 15:31:28 | 显示全部楼层
这个问题之前实测过,没问题。

任务栈和动态都加大。
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2019-3-8 15:53:10 | 显示全部楼层
#define GUI_NUMBYTES (uint32_t)((1024 * 1024* 12)) // emwin  分配12m

显示任务栈24K
xTaskCreate( Fun_enWin, "LCD_enWin",
        (configMINIMAL_STACK_SIZE*12),  //#define configMINIMAL_STACK_SIZE (unsigned short)  512
        NULL,
        (tskIDLE_PRIORITY+6UL),
        ( xTaskHandle * ) NULL );
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2019-3-8 15:55:13 | 显示全部楼层
资源应该够了,在死机前,我查看显示任务栈内存,还有剩一大半
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-3-8 15:55:55 | 显示全部楼层
xiaolun217001 发表于 2019-3-8 15:53
#define GUI_NUMBYTES (uint32_t)((1024 * 1024* 12)) // emwin  分配12m

显示任务栈24K

先显示100行,逐步加大,看看大概那个范围开始卡死,然后逐步加大动态内存和任务栈。
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2019-3-8 16:01:33 | 显示全部楼层
#define configTOTAL_HEAP_SIZE ((size_t)(64 * 1024))
回复

使用道具 举报

38

主题

91

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2019-3-8 16:50:34 | 显示全部楼层
eric2013 发表于 2019-3-8 15:55
先显示100行,逐步加大,看看大概那个范围开始卡死,然后逐步加大动态内存和任务栈。


#define configTOTAL_HEAP_SIZE ((size_t)(80 * 1024))   动态内存增加到80k,不死机了,但是有有些汉字显示不了
GUI_LANG_LoadText((uint8_t *)HunLanguage,k,0);  // 初始化是加载

显示汉字是通过GUI_LANG_GetText()获取,不知道为何突然获取不到了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-3-9 02:29:02 | 显示全部楼层
xiaolun217001 发表于 2019-3-8 16:50
#define configTOTAL_HEAP_SIZE ((size_t)(80 * 1024))   动态内存增加到80k,不死机了,但是有有些汉 ...

加大你的GUI任务栈空间
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 22:53 , Processed in 0.271668 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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