linux(全志)初始环境到移植lvgl

这篇具有很好参考价值的文章主要介绍了linux(全志)初始环境到移植lvgl。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、开发环境搭建

0.准备工作

安装vim:

sudo apt-get install vim

安装git工具

sudo apt-get install git

1.交叉编译工具链安装

对于F1C200S,使用的交叉工具链必须高于,使用的交叉工具链必须高于6.0。
本文选择7.2.1进行u-boot和kernel的编译。
官网下载链接:https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
下载后解压

tar -vxjf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz

或右键提取

在/usr/local目录下新建arm-linux-gcc目录

sudo mkdir /usr/local/arm-linux-gcc

进入解压目录下:

cd gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/

将该目录下 的所有文件复制到新建的目录下:

sudo cp -rd * /usr/local/arm-linux-gcc/

最后需要添加该工具链的环境变量使其可以在任何目录下执行,打开/etc/profile文件

sudo vim /etc/profile

在文件末尾 添加以下内容

 PATH=$PATH:/usr/local/arm-linux-gcc/bin

添加完毕,使路径生效

source /etc/profile

linux移植lvgl,# Linux,stm32,单片机,arm
验证:

    arm-linux-gnueabi-gcc -v

linux移植lvgl,# Linux,stm32,单片机,arm

安装32位动态链接库
为了后续移植Linux系统中出现库缺失问题,这里可以一次系统中出现库缺失问题,这里可以一次性将可能需要的库全部安装,执行如下命令即。

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev gcc-multilib x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib tofrodos python-markdown libxml2-utils libssl-dev swig python-dev

2. u-boot移植

这里采用licheePI nano的u-boot来进行移植。在终端输入如下命令克隆u-boot:

git clone https://github.com/Lichee-Pi/u-boot.git -b nano-v2018.01

克隆完毕文件会保存在当前目录 下,进入该目录

cd u-boot

在该文件夹下有很多分支,我们可以查看所使用如命令:

 git branch -a

现在我们使用的是nano开发板,所以将当前分支切换到nano分支,命令如下:

 git checkout nano-v2018.01

或者直接下载切换到分支下载zip

u-boot默认的没有指定交叉工具链和架构,因此在编译之前需要芯片默认的没有指定交叉工具链和架构,因此在编译之前需要芯片u-boot的交叉编译器在u-boot的根目录下中Makefile文件中定义了。打开文件中定义了。打开Makefile文件。
将# set default to nothing for native builds下面改为

ARCH=arm
CROSS_COMPILE=arm-linux-gnueabi-

linux移植lvgl,# Linux,stm32,单片机,arm
config文件夹中有
licheepi_nano_defconfig和licheepi_nano_spiflash_defconfig配置文件
前者表示为,前者表示为TF卡启动,后者表卡启动,后者表示从SPI设备启动,这里使用前者。
下一步:

cd ..
make licheepi_nano_defconfig

linux移植lvgl,# Linux,stm32,单片机,arm
配置完成后就可以进入图形界面行了,执make menuconfig命令:

make menuconfig

更改bootcmd

load mmc 0:1 0x80008000 zImage;
load mmc 0:1 0x80c08000 suniv-f1c100s-licheepi-nano.dtb;
bootz 0x80008000 - 0x80c08000;

linux移植lvgl,# Linux,stm32,单片机,arm

linux移植lvgl,# Linux,stm32,单片机,arm

linux移植lvgl,# Linux,stm32,单片机,arm

传参bootarg
Y 选中 Enable boot arguments
linux移植lvgl,# Linux,stm32,单片机,arm
下面一行Enter输入参数

console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw

编译u-boot

make -j2

编译生成

u-boot-sunxi-with-spl.bin

3. kernel 移植

下载kernel
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.7.1.tar.gz
修改主目录Makefile

ARCH    		?=arm
CROSS_COMPILE   ?=arm-linux-gnueabi-

linux移植lvgl,# Linux,stm32,单片机,arm
下载licheepi_nano的配置文件
linux-licheepi_nano_defconfig文件;链接:
http://dl.sipeed.com/LICHEE/Nano/SDK/config
然后将其放到arch/arm/configs/目录下
linux移植lvgl,# Linux,stm32,单片机,arm
回到主目录,

make linux-licheepi_nano_defconfig

编译

make -j2

编译完毕后在就会生成zImage文件和dtb文件,zImage在arch/arm/boot目录下,dtb在arch/arm/boot/dts目录下目录下。
linux移植lvgl,# Linux,stm32,单片机,arm

4 rootfs移植

安装buildroot2018.2.11版本 https://buildroot.org/downloads/
linux移植lvgl,# Linux,stm32,单片机,arm

make clean
make menuconfig

进入Target options
linux移植lvgl,# Linux,stm32,单片机,arm
linux移植lvgl,# Linux,stm32,单片机,arm
linux移植lvgl,# Linux,stm32,单片机,arm

图框中指定了编译时使用的库类型,我们这里选择(both static and shared)选项,即同时使用静态库和动库。剩下的我们使用默认即可,将光标移动到上,然后按Enter保存。
保存后,回到上一级配置界面然进入第三个Toolchain选项,配置如图选项,配置如图:
黄色框中的选项尽可能勾,因为后面移植QT5的时候需要用到C++相关库,如果这里没有勾选QT5选型将无法勾选。
linux移植lvgl,# Linux,stm32,单片机,arm
第四个 System configuration配置如图:
linux移植lvgl,# Linux,stm32,单片机,arm
更改启动密码。
编译完毕后可以在output/images目录下找到rootfs.tar。

一、 格式化TF卡

1. linux命令行格式化

1.1 找到U盘位置(已挂载)

sudo fdisk -l

如图,我的在/dev/sdb
linux移植lvgl,# Linux,stm32,单片机,arm

1.2 格式化U盘

sudo  mkfs  -t  vfat  /dev/sdb

-t 后面是格式化为哪种文件系统格式,vfat就是fat32格式,最后加U盘位置
有时候被占用了无法格式化,需要先卸载u盘,挂载u盘后会在/media/user 下找到
使用umount 卸载
linux移植lvgl,# Linux,stm32,单片机,arm

2 gparted格式化 删除分区
安装 gparted

sudo apt-get install gparted

linux移植lvgl,# Linux,stm32,单片机,arm右键 卸载 删除 再确认

二、 将uboot写入到sd卡到8k偏移处

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

linux移植lvgl,# Linux,stm32,单片机,arm

三、 新建分区

1 新建BOOT分区,存放linux kernel

linux移植lvgl,# Linux,stm32,单片机,arm

2 新建rootfs分区 存放根文件系统

linux移植lvgl,# Linux,stm32,单片机,arm

3 将下列三个文件拷贝到BOOT分区

	1 boot.scr  //看了几个教程都没有提及到这个问题 要搞清楚 荔枝派自带

	2 zimage  目录 arch/arm/boot

	3 suniv-f1c100s-licheepi-nano.dtb  目录 arch/arm/boot/dts
	//命令
	sudo cp boot.scr suniv-f1c100s-licheepi-nano.dtb zImage /media/wd/BOOT -rf

linux移植lvgl,# Linux,stm32,单片机,arm

4 将rootfs.tar解压到rootfs

sudo tar -xvf rootfs.tar  -C /media/wd/rootfs

买了一张512M的卡,一键下载镜像后提示card did not respond to voltage select ,unsupported boot device

感觉是卡不行 不知道为啥
有人重新插拔一下就行我的不可以

三、应用编译

驱动开发过程中有时候需要编写简单的应用测试程序,由于编译根文件用的buildroot,所以在编译应用程序也用同样的交叉工具链。
进入buildroot主目录,进入output/host/,
在 usr/local 目录下新建一个 arm-gcc-app 目录:

sudo mkdir /usr/local/arm-gcc-app

然后将 output/host/目录下的文件全部拷贝到/usr/local/arm-gcc-app/目录下:

sudo cp -a ./* /usr/local/arm-gcc-app/

接下来我们添加环境变量,打开/etc/profile 文件,在末尾添加路径:
linux移植lvgl,# Linux,stm32,单片机,arm
注意: 加export是环境变量,在/etc/profile加载后别处可以引用。不加就是普通变量了,只能文件内用。
验证:在终端中输入 arm-linux-,然后双击 Tab 按键,此时会出
现如下内容:
linux移植lvgl,# Linux,stm32,单片机,arm
测试:

四、工具安装

1.串口传输工具Lrzsz

感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,不需要下载;,找到了它位于这个目录中:
Target packages —>
Networking applications —>
[v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。
linux移植lvgl,# Linux,stm32,单片机,arm

五、问题记录

2.第一次进入linux,命令号只显示#号

解决 修改/etc/profile 

在末尾处 输入 
export PS1='[\u\@\h: \w\a]$'

linux移植lvgl,# Linux,stm32,单片机,arm

重启板子即可

3.慎用空格、TAB

在编写一个Makefile工具时,出现Makefile:7: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.这个问题,
将空格用TAB键代替
用vim编辑makefile 错误的会现红色
linux移植lvgl,# Linux,stm32,单片机,arm

5. VIM非正常退出

参考链接:https://blog.csdn.net/sunsi_10/article/details/78232207
交换文件 “~/.add.py.swp” 已存在! 以只读方式打开([O]), 直接编辑((E)), 恢复(®), 删除交换文件((D)), 退出((Q)),中止((A)):

产生原因:文件的非正常关闭。

解决办法:删除add.py.swp文件,该文件是隐藏文件所以使用la查看,使用语句rm -r add.py.swp删除该文件,再次打开文件不会产生该问题。

6 快捷方式目录

进入 /usr/share/applicatoions,找到所需的软件的快捷方式,拷贝到桌面就可以了。

参考:https://blog.csdn.net/weixin_45881223/article/details/126145992文章来源地址https://www.toymoban.com/news/detail-644808.html

到了这里,关于linux(全志)初始环境到移植lvgl的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 全志F1C100s主线linux入坑记录 (7)GBA模拟器移植

    百度网站 gpsp源码 解压文件 gpsp需要SDL环境我们先在bulidroot中添加SDL包 我们全选SDL路径下的所有选项 打开之前解压的 gpsp 文件夹配置Makefile 添加 buildroot 的 gcc 编译器 告知 SDL.h 位置以及 SDL 元件库位置 其实很简单在buildroot文件夹搜索 sdl-config 位置在哪里,然后在Makfike里替换

    2024年02月16日
    浏览(30)
  • 【快速入门 LVGL】-- 1、STM32 工程移植 LVGL

    目录 一、LVGL 简述 二、复制一个STM32工程 三、下载 LVGL 四、裁剪 源文件 五、工程添加 LVGL 文件  六、注册 显示 七、注册 触摸屏 八、LVGL 心跳、任务刷新 九、开跑 LVGL  十、控件的事件添加、响应处理 十 一、几个好玩小事情 十 二、显示中文 丰富且强大的模块化图形组

    2024年04月27日
    浏览(35)
  • STM32移植LVGL(LittleVGL)

    https://lvgl.io/ 这是LVGL的官网, http://lvgl.100ask.org/8.2/intro/index.html 这是lvgl的中文介绍网站。 先通过这两个网站大致了解一下lvgl,在后面移植时会有个大概了解,移植起来会更清晰易懂。 1、准备STM32工程 1、先准备所用到的屏幕的显示和触摸(有触摸功能的屏幕)的工程。我这

    2023年04月16日
    浏览(39)
  • stm32 移植 LVGL 基础工程

    注意:这里只是本人的一些学习心得,和对移植的理解,不明白之处还得去跟着官方教程学学! 开发板使用的是 stm32f103zet6 芯片 准备 LVGL 源码 8.3 版本 定时器实验 触摸屏实验(使用 3.5的 屏幕) 1、使用触摸屏实验为主体来配置文件 (1)把触摸屏实验改为 LVGL 移植实验 (

    2024年01月20日
    浏览(41)
  • LVGL触摸移植——stm32野火F103

    目录 系列文章目录 章目录 目标 一、认识端口文件 二、使能 lv_port_indev.c  三、接口函数 1.输入设备初始化 四、Main函数 五、过程中的疑难杂症 1.内存不足 2、LCD白屏 五、效果 总结 在显示的基础上添加触摸输入 提示:以下是本篇文章正文内容,下面案例可供参考 这两个是

    2024年02月11日
    浏览(47)
  • STM32移植LVGL+旋转编码器接口对接

    写在前面:本菜鸟结合了许多大佬的文章,成功实现了基于LVGL的GUI设计,小开心~浅浅记录一下!~ 本文以单片机STM32F103VET6为核心,利用ST7796芯片驱动分辨率为480*320的LCD液晶屏模块,移植LVGL,对接显示接口,对接外部接口——旋转编码器,完成以上两步,就可以实现LVGL的显

    2024年02月10日
    浏览(45)
  • SquareLine studio设计LVGL工程,移植到stm32的过程

            本文主要是给大家介绍一下如何将SquareLine studio设计的LVGL工程,移植到stm32的LCD液晶显示屏上。 本文做好的移植模板在这(移植模板),模板可以直接在正点原子stm32f103ze系列板子上运行测试。显示屏使用的是4.3寸屏幕(像素800*480)         ·以我自己设计的LVGL工程

    2024年02月03日
    浏览(80)
  • LVGL学习笔记(二):从0到1移植LVGL8.1到STM32平台上(完结篇)

    目录 一:TFT-LCD屏触摸 二:STM32CubeMX配置 三:FT5206触摸芯片驱动代码移植 四:LVGL 移植 4.1 源码下载 4.2 代码移植  4.3 添加源码至工程 4.4 指定头文件路径 4.5 设置编译参数  4.6 修改LVGL源文件   4.7 修改显示驱动接口    4.8 修改输入设备驱动接口  五:下载验证  六:工

    2024年02月03日
    浏览(46)
  • 【LVGL】STM32F103ZET6——LVGL_GUI_GUIDER移植过程成功

    STM32F103ZET6——LVGL_GUI_GUIDER移植过程 STM32F103ZET6——LVGL_GUI_GUIDER移植过程 使用工具: 1.LVGL库8.02 2.GUI_GUIDER 3.keil5 设计出来的总体是这样 提示:以下是本篇文章正文内容,下面案例可供参考 这部分有很多大佬已经写的很成熟了,我就不赘述了 安装包在这里硬件资源 右上角可将

    2024年02月12日
    浏览(59)
  • STM32移植LVGL8.0.2超详细的保姆级教程附移植好的工程文件

    网上教程那么多,为什么你要写这个教程? 问的好,csnd上很多类似的教程,他们写的都很好,但是有些过于简洁,对刚上手的小伙伴不太友好,移植到一半遇到bug就想放弃。一些第三方的教程很详细,但是由于lvgl的版本迭代很快,移植的过程有了一些变化,所谓失之毫厘差

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包