硬汉嵌入式论坛

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

[emWin] 关于,RTX5 All In One(2024-08-30 V2.0)测试Button按钮控件显示流位图(QSPI),多BUTTON,多图片问题。

[复制链接]

6

主题

36

回帖

54

积分

初级会员

积分
54
发表于 2024-9-11 15:25:40 | 显示全部楼层 |阅读模式
本帖最后由 gdgn_526345 于 2024-9-11 15:49 编辑

关于,RTX5 All In One(2024-08-30 V2.0)测试Button按钮控件显示流位图(QSPI),多BUTTON控件,多图片问题。


依据  V7-572_emWin6.x实验_Button按钮控件显示流位图(QSPI Flash RTOS)步骤,设置了ROM地址以及添加了
QSPI的下载算法,在RTX5 All In One(2024-08-30 V2.0)测试Button按钮控件显示流位图(QSPI),多BUTTON控件,程序能正常下载和写入。


1、多个BUTTON控件使用单个(相同) 流位图(QSPI)时,页面显示、BUTTON操作均正常(代码如下)。

GUI_HMEM hMemButtonStreamBitmap;
GUI_BITMAP Bitmap1;
GUI_LOGPALETTE Palette1;        

GUI_BITMAP Bitmap2;
GUI_LOGPALETTE Palette2;        



#define ID_WINDOW_0                                                             (GUI_ID_USER + 0x00)
#define ID_TEXT_HANDER_BAR                                             (GUI_ID_USER + 0x01)
#define ID_BUTTON_SETUP                                                   (GUI_ID_USER + 0x02)
#define ID_BUTTON_USER                                                    (GUI_ID_USER + 0x03)




/*
*********************************************************************************************************
*                               GUI_WIDGET_CREATE_INFO类型数组
*********************************************************************************************************
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate_TPS_IntelligentControl_8105_MainFunctionSel_DisPage[] = {
  { WINDOW_CreateIndirect,  "WINDOW",            ID_WINDOW_0,           0,  0,  480,800,0,0},
        { BUTTON_CreateIndirect, " ", ID_BUTTON_SETUP, 130, 235, 82, 82, 0, 0 },        
        { BUTTON_CreateIndirect, " ", ID_BUTTON_USER, 270, 235, 82, 82, 0, 0 },               

};

                        //两个控用同样的图片时,程序正常

                        hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_SETUP);
                    //GUI_CreateBitmapFromStream(&Bitmap, &Palette, _acsetup_icon_80x80);
                        GUI_CreateBitmapFromStream(&Bitmap1, &Palette1, _acsetup_gear_80x80);
                        //BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap, 1, 1);        
                        BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap1);                        


                        hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_USER);
                    //GUI_CreateBitmapFromStream(&Bitmap, &Palette, _acsetup_icon_80x80);
                        GUI_CreateBitmapFromStream(&Bitmap2, &Palette2, _acsetup_gear_80x80);
                        //BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap, 1, 1);        
                        BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap2);        



2、多个BOTTON控件使用不同,流位图(QSPI)时,一进入页面,就死机(特意给每一个BOTTON控制都单独定义了GUI_BITMAP Bitmap和GUI_LOGPALETTE Palette),见以下代码。


GUI_HMEM hMemButtonStreamBitmap;
GUI_BITMAP Bitmap1;
GUI_LOGPALETTE Palette1;        

GUI_BITMAP Bitmap2;
GUI_LOGPALETTE Palette2;        

#define ID_WINDOW_0                                                             (GUI_ID_USER + 0x00)


#define ID_TEXT_HANDER_BAR                                             (GUI_ID_USER + 0x01)
#define ID_BUTTON_SETUP                                                   (GUI_ID_USER + 0x02)
#define ID_BUTTON_USER                                                    (GUI_ID_USER + 0x03)




/*
*********************************************************************************************************
*                               GUI_WIDGET_CREATE_INFO类型数组
*********************************************************************************************************
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate_TPS_IntelligentControl_8105_MainFunctionSel_DisPage[] = {
  { WINDOW_CreateIndirect,  "WINDOW",            ID_WINDOW_0,           0,  0,  480,800,0,0},
        { BUTTON_CreateIndirect, " ", ID_BUTTON_SETUP, 130, 235, 82, 82, 0, 0 },        
        { BUTTON_CreateIndirect, " ", ID_BUTTON_USER, 270, 235, 82, 82, 0, 0 },               

};

                       //两个BUTTON 控件用同样的图片时,程序进入画面就会死掉,

                        hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_SETUP);
                    //GUI_CreateBitmapFromStream(&Bitmap1, &Palette, _acsetup_icon_80x80);
                        GUI_CreateBitmapFromStream(&Bitmap1, &Palette1, _acsetup_gear_80x80);
                        //BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap1, 1, 1);        
                        BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap1);                        


                        hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_USER);
                    //GUI_CreateBitmapFromStream(&Bitmap2, &Palette, _acsetup_icon_80x80);
                        GUI_CreateBitmapFromStream(&Bitmap2, &Palette2, _acsetup_icon_80x80);
                        //BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap2, 1, 1);        
                        BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap2);        



JLINK仿真发现程序停在以下位置。


ROM地址

ROM地址

下载算法文件

下载算法文件

QSPI图片文件及地址

QSPI图片文件及地址

死停位置

死停位置
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117535
QQ
发表于 2024-9-12 07:53:15 | 显示全部楼层
MDK调试状态看下faults reports的错误类型是不是对齐错误。
回复

使用道具 举报

6

主题

36

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-9-12 08:02:31 | 显示全部楼层
eric2013 发表于 2024-9-12 07:53
MDK调试状态看下faults reports的错误类型是不是对齐错误。

流位图.c文件,数组加入 对齐关键字(__attribute__((aligned(4)))),问题解决。
__attribute__((aligned(4))) const unsigned char _acsetup_icon_50x50[10016UL + 1] = {
  0x42, 0x4D, 0x10, 0x00, 0x32, 0x00, 0x32, 0x00, 0xC8, 0x00, 0x20, 0x00, 0x00, 0x00,
..........................................
}
感谢老大!
回复

使用道具 举报

6

主题

36

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-9-12 08:15:13 | 显示全部楼层
这是没有加入 __attribute__((aligned(4))) 前的 MDK调试状态的Peripherals->Core Peripherals-> Fault Reports,错误报告。(见图片)

错误报告

错误报告

非对齐错误提示

非对齐错误提示
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2024-9-12 08:59:43 | 显示全部楼层
gdgn_526345 发表于 2024-9-12 08:15
这是没有加入 __attribute__((aligned(4))) 前的 MDK调试状态的Peripherals->Core Peripherals-> Fault Rep ...

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-13 09:48 , Processed in 0.049670 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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