目录
概述
1 下载源码
1.1 登录LVGL git地址
1.2 LVGL linux平台上的库文件介绍
1.3 下载代码
1.3.1 下载lvgl
1.3.2 下载lv_drivers
1.3.3 下载lv_port_linux_frame_buffer
2 配置编译环境
2.1 创建工程目录
2.2 完善工程目录下的文件
2.2.1 构建工程文件
2.2.2 匹配文件(lv_drv_conf.h)
2.2.3 匹配文件(lv_conf.h)
2.3 配置交叉编译环境和编译
2.3.1 配置makefile
2.3.2 编译
3 测试
3.1 挂载NFS
3.2 运行代码
4 总结
源代码下载地址:
lvgl-v8.2-demo-proj.tar.bz2-mini2440资源-CSDN文库
概述
本文主要介绍将lvgl-v8.2移植到mini2440的详尽步骤,笔者通过实操的方法详细的记录移植过程的每个步骤,并将每一个步骤需要修改的代码或者修改的文件记录下来,方便日后追溯流程。
1 下载源码
1.1 登录LVGL git地址
LVGL 库在git上的路径:
https://github.com/lvgl/
登录网址之后,可以看见
1.2 LVGL linux平台上的库文件介绍
在lvgl的仓库中,有太多的代码,这里主要选择3个代码库,下载其代码:
函数库下载地址和功能介绍:
代码库名称 | git地址 | 说明 |
---|---|---|
lvgl | GitHub - lvgl/lvgl: Embedded graphics library to create beautiful UIs for any MCU, MPU and display type. | Embedded graphics library to create beautiful UIs for any MCU, MPU and display type. |
lv_drivers | GitHub - lvgl/lv_drivers: TFT and touch pad drivers for LVGL embedded GUI library | TFT and touch pad drivers for LVGL embedded GUI library |
lv_port_linux_frame_buffer | GitHub - lvgl/lv_port_linux_frame_buffer: LVGL configured to work with a standard Linux framebuffer | LVGL configured to work with a standard Linux framebuffer |
1.3 下载代码
笔者选择现在v8.2 版本,其具体下载方法如下:
1.3.1 下载lvgl
在ubuntu下使用命令:
git clone https://github.com/lvgl/lvgl
下载完成后,进入代lvgl目录,查看所有的版本信息,使用如下命令:
git branch --all
下载release v8.2 使用命令如下:
git checkout release/v8.2
执行命令后:
1.3.2 下载lv_drivers
在ubuntu上使用命令:
git clone https://github.com/lvgl/lv_drivers
下载完成后,进入代lv_drivers目录,查看所有的版本信息,使用如下命令:
git branch --all
下载release v8.2 使用命令如下:
git checkout release/v8.2
1.3.3 下载lv_port_linux_frame_buffer
在ubuntu上使用命令:
git clone https://github.com/lvgl/lv_port_linux_frame_buffer
下载完成后,进入代lv_port_linux_frame_buffer目录,查看所有的版本信息,使用如下命令:
git branch --all
下载release v8.2 使用命令如下:
git checkout release/v8.2
2 配置编译环境
2.1 创建工程目录
下载完成所需要的代码包后,可以创建工程,在源代码的同级目录下创建project目录,使用命令:
mkdir demo_proj
执行命令后,在该文件夹中可以看见:
2.2 完善工程目录下的文件
2.2.1 构建工程文件
Step -1: copy lv_port_linux_frame_buffer 目录下的文件至demo_proj
Step -2: copy lv_drivers和lvg两个文件夹至demo_proj
2.2.2 匹配文件(lv_drv_conf.h)
step -1: 匹配文件
1)使能该文件的功能
2)使能linux环境下的驱动
3)使能触摸屏驱动
2.2.3 匹配文件(lv_conf.h)
1) 使能该驱动文件的功能
2) 根据板卡硬件的情况调整buf空间
通过以上步骤,完成项目文件的构建工作。
2.3 配置交叉编译环境和编译
2.3.1 配置makefile
在demo_proj目录中配置makefile的内容,主要是编译器地址
/home/mftang/ctools/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc
2.3.2 编译
在demo_proj目录中执行make命令,编译代码
make
执行过程如下:
编译完成后:
3 测试
3.1 挂载NFS
挂载NFS服务器命令:
mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.11:/home/mftang/nfs /mnt
将demo_lvgl文件copy到/home/mftang/nfs目录中,使用命令:
cp demo_lvgl /home/mftang/nfs
执行命令后:
在板卡的mnt目录下,可以找到该文件:
3.2 运行代码
运行代码后,lvgl并不能正常工作,说明当前代码存在问题:
Error 问题log:
./demo_lvgl: line 1:ELF: not found
./demo_lvgl: line 2: p: not found
./demo_lvgl: line 3: ▒: not found
./demo_lvgl: line 3: g: not found
./demo_lvgl: line 3: ▒▒▒o▒▒▒▒p▒b▒GNUe▒m: not found
./demo_lvgl: line 4: : not found
./demo_lvgl: line 5: syntax error: word unexpected
4 总结
将lvgl直接移植到mini2440并不能工作,具体是什么原因笔者还没有详尽去分析,后续有时间再来看看什么原因引起代码不能正常运行。