嵌入式技术论坛
直播中

张丽

7年用户 1485经验值
私信 关注
[问答]

MDK536+SWM34S平台移植LVGL8.3.3定义数组使用ALIGN()对齐时编译报错?

使用MDK536 SWM34S单片机 ENV下添加LVGL软件包8.3.3后,编译工程报错。提示出错在定义数组时使用ALIGN字节对齐,在lv_rt_thread_port.c中和一些样例代码文件中出现此错误,不知道是什么原因导致的,请教一下各位大神。
具体问题如下:
lv_rt_thread_port.c中 Line37:


static ALIGN(8) rt_uint8_t lvgl_thread_stack[PKG_LVGL_THREAD_STACK_SIZE];
会编译报错


img_cogwheel_indexed16.c等一些样例文件中,定义数组处,例如


const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_IMG_COGWHEEL_INDEXED16 uint8_t img_cogwheel_indexed16_map[] = {...};
会编译报错。
查看 LV_ATTRIBUTE_MEM_ALIGN 是在lv_lv_rt_thread_conf.h文件中,Line74处定义


#define LV_ATTRIBUTE_MEM_ALIGN ALIGN(4)

1.jpg
2.jpg
3.jpg
1.jpg
2.jpg

回帖(3)

王丽

2023-5-17 11:01:10
rtt 已经是小写的 rt_align 了
看起来是软件包和rtt版本不匹配
举报

张丽

2023-5-17 11:01:17
我用的rtt是4.1.1版本的,您说的问题我再查看一下,感谢回复。
举报

张丽

2023-5-17 11:01:23
在lv_rt_thread_config.h文件中 LINE75 处,把

#define LV_ATTRIBUTE_MEM_ALIGN ALIGN(4)
修改成

#define LV_ATTRIBUTE_MEM_ALIGN rt_align(4)  //20230328
lv_rt_thread_port.c文件中 LINE37处,把

static ALIGN(8) rt_uint8_t lvgl_thread_stack[PKG_LVGL_THREAD_STACK_SIZE];
修改成

static rt_align(8) rt_uint8_t lvgl_thread_stack[PKG_LVGL_THREAD_STACK_SIZE];
解决了问题。

感谢帮助!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分