龙芯+FreeRTOS+LVGL实战笔记(新)——02准备工程和驱动文件

news2025/4/5 18:57:07

        本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了完善与优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为:

借助RT-Thread和LVGL,在龙芯板上搞定两个RGB灯的小任务_哔哩哔哩_bilibili

图1 《龙芯+RT-Thread+LVGL实战笔记》所有文章
图2 笔者在B站上的龙芯视频合集

        此外,关于专栏的收费,无非就是笔者想增加一些创作的动力。由于上个专栏受到了厂家关注并请求本人下架,但是已收费的资源不可下架,所以只能无奈的上调了价格(涨价了就无法降价)。而本专栏笔者不再顾忌,将维持该定价,希望朋友们理解和支持。 


        本文是这个实战系列的开始,笔者会手把手教大家把 FreeRTOS 和 LVGL 文件移植到工程项目中,形成一个最基础的工程项目。

一、创建最初的项目

        这一步没啥技术含量,按照新建项目的向导,一步步选择最匹配和最需要的即可,这里把向导的每一步进行了截图(图3~图7),大家跟着选就行了。这里只强调一点,工程名和目录名都不要出现中文和空格。

图3 新建项目向导
图4 确定工程目录和名称
图5 选择处理器型号、工具链版本和操作系统类型
图6 选择所需的LVGL组件
图7 保留默认的添加框架源代码

二、触摸屏驱动文件的准备

        由于后续所有任务的交互都是依赖触摸屏来完成,因此移植触摸屏的驱动就成了当务之急。而且,移植不是简单的把驱动文件加进工程,还要与 LVGL 输入和输出设备的相关代码结合起来。这个部分不难,就是步骤和内容比较多。下面,请跟着笔者先把触摸屏的驱动文件准备好。

2.1 关于输出/输入驱动文件

        其实,上面刚创建好的工程已经包含了屏幕的显示输出驱动文件 ls1x_fb.c 和 ls1x_fb.h(所在目录如图8和图9所示),以及触摸输入驱动文件 gt1151.c 和 gt1151.h(所在目录如图10和图11所示)。

图8 ls1x_fb.c文件所在目录
图9 ls1x_fb.h文件所在目录
图10 gt1151.c文件所在目录
图11 gt1151.h文件所在目录

         但是,这里有个很纠结的问题,前者的显示输出驱动文件是针对横版屏幕(800×480)编写的,而后者的触摸输入驱动文件是针对竖版屏幕(480×800)编写的。因此,必须想办法让两者对屏幕采取一致的驱动方式。笔者选择的是横版屏幕,因此需要把后者的竖版输入替换成横版输入。

2.2 替换触摸输入驱动文件

        龙芯官方已经写好了针对横版的触摸输入驱动文件 gt1151q.c 和 gt1151q.h,放在了开发板的配套例程 10_LCD_touch 中(如图12所示),那接下来我们就用这两个文件去替换工程里原有的 gt1151.c 和 gt1151.h

图12 配套例程里的横版触摸输入驱动文件

        替换这一步也很简单,把工程里原有的触摸输入驱动文件删除,拷入新的文件,并将其添加进当前工程(添加 .c 文件即可),如图13~图15所示。

图13 替换为gt1151q.c文件
图14 替换为gt1151q.h文件
图15 把新的驱动文件加入工程

2.3 补充头文件路径

        这一点没什么可解释的,C的工程要求把所有头文件所在的路径都添加进来,按照当前的工程目录,图16所示的几个路径是需要手动添加的,如果你自己还规划了其他目录放头文件,也请一并加进来。

图16 补充的头文件路径

        关于触摸屏驱动文件的准备,到这里先告一段落,下一篇笔者将着手对相关文件中的代码进行修改,完成后续的移植工作。

(本文完)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java的图书推荐系统的设计与实现(论文+源码)_kaic

摘要 随着中国城市现代化的发展进程越来越快,网络信息无论是数量还是传播速度早已超过纸质传媒,图书推荐系统是否能提供高效和优质的服务己成为图书阅读的重要环节。因此,需要构建一套基于Java编程语言的图书推荐系统。本系统使用Java语言和S…

嵌入式全栈开发学习笔记---shell脚本

目录 shell脚本有什么用? 第一个shell脚本 shell基本语法 shell变量 shell三种变量 环境级变量 用户级变量 系统级变量 在shell脚本中进行数学运算 shell数组 基本数组 关联数组 流程控制 If语句 Case语句 循环语句 While语句 For语句 上节我们学…

这可能是你在编程学习中最容易忽视的一课

引言 在编程学习的道路上,你是否曾感到困惑,面对着一堆复杂的术语和工具,不知道从何下手?刚开始编程时,是不是总觉得像走进了一片迷雾?别担心,你并不孤单。这篇文章将为你揭示“计算机教育中缺…

深度学习资料集合

社区推荐 AIQ 是一个专注于人工智能和机器学习的交流平台,旨在推动行业内的知识分享与技术交流。 专知 是一个聚焦于前沿科技和多领域知识的平台,提供丰富的文章和讨论,使用户能够深入理解机器学习及其应用。 DataTau DataTau 是一个数据…

Facebook与区块链:构建更安全的社交网络生态

随着数字化时代的不断推进,社交网络的安全性和隐私保护成为了用户最为关注的问题之一。Facebook,作为全球领先的社交媒体平台,正在探索如何利用区块链技术来增强其平台的安全性和透明度。这一探索不仅是对现有技术的补充,更是对未…

Android运行时权限详解

文章目录 Android运行时权限详解Android权限机制详解在程序运行时申请权限 Android运行时权限详解 Android的权限机制并不是什么新鲜事物,从系统的第一个版本开始就已经存在了。但其实之前Android的权限机制在保护用户安全和隐私等方面起到的作用比较有限&#xff…

利用OSINT追踪勒索组织活动

0X00前言 众所周知,勒索组织一直是臭名昭著的代名词。在当今网络世界上时时刻刻都存在着勒索软件的身影。正所谓,不知攻,焉知防。我们可以更据OSINT的方法,去追踪分析各大勒索组织的活动,以及状态。为应对可能的勒索攻…

【Python基础】元组类型

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、Python 元组2.1 创建特殊元组2.2 访问元组2.3 删除元组2.4 元组截取2.5 元组运算符2.6 元组内置函…

佰朔资本:9月券商金股出炉,这类股获机构力推

现在,券商新一批月度金股近期连续出炉。到9月1日,14家券商发布9月月度金股,举荐的104只金股会集分布在电子、机械设备、传媒、汽车等工作中。从个股来看,比亚迪、我国安全、阳光电源获2家以上券商共同举荐。别的,北方华…

30 静态路由

静态路由 一、配置静态路由 (一)静态路由特点 ​ 主要特点: ​ 由管理员手工配置,为单向条目通信双方的边缘路由器都需要指定,否则会导致数据包有去无回 (二)静态路由配置 ​ 使用ip rout…

开学季儿童护眼台灯怎么选择?盘点央视公布十大护眼灯!

随着年级的升高和学习内容的增加,学生的休闲娱乐时间逐渐减少,相反,他们在书桌前度过的时间却越来越多。近年来,由于电子产品的广泛使用,我国青少年的用眼负担显著增加。据权威机构预测,到2050年&#xff0…

ActiViz实战:使用vtkDistanceWidget实现两点测距功能

文章目录 一、效果图预览二、实现步骤三、C#完整实例代码一、效果图预览 二、实现步骤 1、通过vtkCellPicker拾取点坐标 2、通过vtkDistanceRepresentation2D设置起始点和结束点位置 3、通过vtkDistanceRepresentation2D的GetAxis()获取vtkAxisActor2D对象,并设置连线的样式 …

前端安全:如何防范跨站脚本攻击(XSS)

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端安全:如何防范跨站脚本攻击 (XSS)1. 引言2. 什么是跨站脚本攻击 (XSS)?2.1 XSS的分类 3. XSS攻击的危害4. XSS的常见攻击手法4.1 注入恶意脚本4.2 伪造表单和链接4.3 操纵DOM结构 5. 如何防范XSS攻击5.1…

Git使用(命令+idea快捷)

目录 一、概述 1.什么是Git 2.Git能干什么 3.简介 4.下载和安装 二、Git代码托管服务 1.常用的Git代码托管服务 2.使用码云代码托管服务 三、Git全局设置(常用命令) 1.命令 2.实现 四、获取Git仓库(常用命令) 1.两种方…

基于 cuda sdk 12.4.1安装cudnn8.9.7 步骤备忘——与cudnn9有差别

cuda环境崩了,运行 nvidia-smi后无法 连接 drvier,重装了 cuda 12.4.1 cudnn 8.9.7 因为看到pytorch daily 代码目前是支持 12.4的。发现 cudnn8 与 nv官网提供的cudnn9的安装时在文字上稍微有些差别, 主要是 cudnn8: sudo apt-get -y i…

水凝胶支架进行4D生化光定制?有啥用?快来看看!

大家好,今天我们来了解一项关于水凝胶支架的技术——4D生化光定制——《4D Biochemical Photocustomization of Hydrogel Scaffolds for Biomimetic Tissue Engineering》发表于《Accounts of Materials Research》。随着科技的发展,人们对组织工程和生物…

【C++】C++STL 揭秘:Strng背后的底层逻辑

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用 在上篇介绍string类的使用与理解,本篇将为大家来带关于string的底层实现逻辑&…

「SpEL Validator」使用指南(一套无敌的参数校验组件)

前言 这是一套全新的参数校验组件,并非造轮子。 看完本文你可能会觉得用不上或不屑于使用,但这玩意确实有应用场景,你不妨稍微留意一下,日后你总会发现有用得上的时候。 此乃系列文章,当前为第②篇,其他…

Puppeteer的高级用法:如何在Node.js中实现复杂的Web Scraping

概述 随着互联网的发展,网页数据抓取(Web Scraping)已成为数据分析和市场调研的重要手段之一。Puppeteer作为一款强大的无头浏览器自动化工具,能够在Node.js环境中模拟用户行为,从而高效地抓取网页数据。然而&#xf…

Java基于微信小程序的实习管理系统

简介 本次开发的实习生管理系统实现了字典管理、公告管理、公司管理、简历管理、老师管理、实习管理、实习日志管理、通知管理、学生管理、职位招聘管理、职位收藏管理、职位留言管理、简历投递管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库&am…