龙芯+FreeRTOS+LVGL实战笔记(新)——01准备开发环境

news2024/9/21 4:30:19

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

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

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

        本篇是笔者开发环境的简介,并没有什么技术含量,主要是考虑到某些师生朋友是第一次使用龙芯来做嵌入式开发,一上来免不了要折腾一番开发工具。另一方面,也明确一下工具的版本,希望各位朋友与之保持一致,避免一些由于版本不同导致的程序报错。

一、开发工具的安装与配置

        必备开发工具当然龙芯的运行环境、IDE、编译工具链和驱动,选装的工具包括超级终端或串口助手、数码管或点阵取模、图片取模等。下面笔者就将自己的开发环境做一个介绍,主要都是从龙芯IDE官网下载的。由于工具的安装都比较简单,几乎就是一路“下一步”,所以安装过程就不截图了,只是明确一下版本和注意事项。龙芯IDE官网链接如下:

龙芯嵌入式开发工具|Loongson Embedded Developmen…|关于我们|龙芯嵌入式开发工具|苏州天晟软件|ide|loongarch

1.1 安装MSYS2运行环境

        LoongIDE 使用在 MingW 环境下编译的 GNU 工具链,在使用 gcc、gdb 等 GNU 工具时,需要 MingW 运行环境的支持。因此,第一步就是安装该运行环境 MSYS2,下载来源如图3所示。安装过程几乎是一路“下一步”,只是安装路径不要出现中文,最好连空格也不要有,切记!装好之后桌面上会出现图4所示的图标。

图3 MSYS2的下载来源
图4 MSYS2的桌面图标

1.2 安装龙芯IDE

        加下来,就可以安装龙芯嵌入式集成开发环境了,下载来源如图5所示,注意版本是1.2。安装过程也是一路“下一步”,路径中也不要出现中文和空格。此外,安装向导最后,还需要安装 LxLink 驱动程序,如图6所示。如果这一步没安装 LxLink 驱动,安装目录下的 driver 子目录中的 CDM21228_Setup_x86 中保存有 LxLink 的驱动程序,用户可以通过 Windows 的“设备管理器”进行安装。如果安装失败(Win7可能出现,Win10和Win11没遇到过),可以参考图7所示文档中的解决方案。

图5 LoongIDE下载来源
图6 安装LxLink驱动程序
图7 LxLink驱动常见问题文档

1.3 安装工具链

        LoongIDE 可以使用 SDE Lite for MIPS 工具链、RTEMS GCC for MIPS 工具链、LoongArch64 ELF 工具链、RTEMS GCC for LoongArch64 工具链来实现项目的编译和调试。用户可以在 LoongIDE 中安装一个或者多个工具链,使用时根据项目的实际情况来选择适用的工具链。笔者选择的是 SDE Lite 4.9.2 工具链,下载来源如图8所示,安装的时候选择 LoongIDE 所在的目录即可,一路“下一步”。

图8 工具链下载来源

1.4 配置IDE和工具链

        以上所有软件都装好后,启动 LoongIDE,可以看到界面是全中文的,版本号是1.2,如图9所示。接下来,按照图9所示选择“工具”菜单下的“GNU C/C++ 工具链”,然后按照图10和图11的示意来选择对应的工具链。

图9 配置工具链入口
图10 添加工具链按钮
图11 选择工具链所在目录

1.5 安装串口调试终端

        做嵌入式开发,像串口调试助手这类的工具肯定是少不了的,可选的也很多了。笔者这里推荐使用 MobaXterm 作为终端调试软件,功能强大而且免费(也有收费版)。当然,和谐后的版本也是很容易搜到的,这里就不展开了,附上一张笔者调试中的截图吧,如图12所示,大家可以感受一下软件的界面和支持的功能。

图12 MobaXterm调试终端

        至此,就算是完成了最基本的开发环境配置,其他与工程有关的配置放到后面用到了再说。如果您已经习惯了 Keil 或 IAR 这些 IDE,那么使用 LoongIDE 还需要有一段适应过程,比如没有函数名和变量名自动补全,打开工程或添加文件有点慢等等。

二、关于开发板与开发文档

2.1 关于开发板

        百科荣创提供给各个学校的龙芯开发板和配件各不相同,笔者接触到的就有三款(图13~图15),本教程针对的是图14中的这款。各款的核心板和屏幕是一样的,差异主要体现在部分外设的布局和驱动电路上。因此,如果各位手里的板子与教程里的不同,请在编写程序的时候一定要有针对性的修改,不过脑子的完全照搬是不可取的。

图13 大赛配套的龙芯板(2022款)
图14 大赛配套的龙芯板(2023款)
图15 大赛配套的龙芯板(2023~2024款)

2.2 关于开发文档

        龙芯的开发文档确实少的可怜,先把图16所示的这几个文档准备好吧,也是我们仅有的几份有价值的文档,有些关键信息就是从这些文档里获悉的。

图16 官方提供的开发文档

        此外,由于教程中使用了大量的 LVGL 组件,关于各类组件的用法,推荐参考《百问网LVGL中文教程手册文档》http://lvgl.100ask.net/7.11/,如图17所示。注意,一定要选 LVGL7.11 的版本。虽然最新的 LVGL9 已发布,成熟的 LVGL8 已广泛使用,但 LoongIDE 里自带的仍然是 LVGL7,所以本专栏与之保持一致。(PS:笔者也尝试移植过 LVGL8.2,但未完全成功,还在摸索之中。)

图17 百问网LVGL7的中文手册文档

        以上就是笔者针对龙芯嵌入式开发所做的准备工作,下一篇我们将会把BSP、FreeRTOS和LVGL相关的文件移植到工程中,形成一个最基本的项目雏形。

(本文完)

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

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

相关文章

C++STL之vector类:相关习题解析

目录 只出现一次的数字| 只出现一次的数字|| 只出现一次的数字||| 杨辉三角(vector>的理解) 删除排序数组中的重复项 删除排序数组中的重复项|| 数组中出现次数超过一半的数字 只出现一次的数字| . - 力扣(LeetCode) 思路: 我们都…

★ 算法OJ题 ★ 力扣15 - 三数之和

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;芝麻凛将和大家一起做一道双指针算法题--三数之和~ 目录 一 题目 二 算法解析 三 编写算法 一 题目 15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 二 算法解析 解法一&#xff1a;排序 暴力枚举 利…

JavaEE:多线程进阶(常见的锁策略)

文章目录 常见的锁策略各种锁的概念 synchronized特点加锁过程 锁消除(编译器的优化策略)锁粗化(编译器的优化策略) 常见的锁策略 锁是一个非常广义的问题. synchronized只是市面上五花八门的锁的一种典型的实现.它是Java内置的,推荐使用的锁. 各种锁的概念 下面这些概念,一…

JavaScript程序结构

程序结构有三种&#xff1a;选择结构、循环结构 、顺序结构 一、选择结构 1、简介 根据条件进行判断&#xff0c;从而执行不同的操作&#xff0c;称为选择结构&#xff08;分支结构&#xff09;&#xff0c;其实就是条件判断 选择结构的类型&#xff1a;if、switch 2、if结…

第十七篇——九变篇:紧扣战略重心,别跑题

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 九变种前面偏向宏观给讲解了九变的含义&#xff1b;这一篇通过更加微观的…

如何基于numpy和scipy实现曲面的最大梯度计算与显示

大家在做三维可视化研究过程中,经常需要做三维曲面的绘制和相交分析,在不知道三维曲面方程的情况下,如何基于曲面散点数据计算曲面的最大梯度点和梯度线的三维可视化是大家基于曲面分析研究中的重点关注的问题,本文在python环境下,基于numpy、pandas、scipy和matplotlib等…

MYSQL————联合查询

联合多个表进行查询 设计数据时把表进行拆分&#xff0c;为了消除表中字段的依赖关系&#xff0c;比如部分函数依赖&#xff0c;传递依赖&#xff0c;这时会导致一条SQL查出来的数据&#xff0c;对于业务来说是不完整的&#xff0c;我们就可以使用联合查询把关系中的数据全部查…

dk安装redis

docker search redis docker pull redis 由于我是使用的镜像 所以我的拉取命令就是 docker pull dockerpull.com/redis 拉下镜像之后&#xff0c;点击下面地址选择自己需要的 redis 版本的配置文件 redis/redis.conf at 6.2.6 redis/redis GitHubRedis is an in-memory data…

Python和Java及MATLAB和CUDA显微镜导图

&#x1f3af;要点 交互式设备控制和图像处理图像背景和阴影校正可视化萤光团位置算法和读取光学图像读写转换显微镜图像生物医学细胞图像分析荧光图像算法计算亮度数据和模拟表征新型染料和缓冲液强度估计细菌图像分析扫描透射和高分辨率透射图像模拟多模态成像分割可视化透射…

python安装protobuf记录

需求背景 客户需要protobuf环境配置以及插件安装&#xff0c;我主要通过在pycharm里面配置参数&#xff0c;将问题解决&#xff01; 导语 Python中的protobuf(Protocol Buffers)是一种用于序列化结构化数据的语言无关、平台无关、可扩展的机制。它能够让您在不同的应用程序和语…

搭建基于QT的TCP服务器与客户端

1、实现功能 1、服务器和客户端能够建立连接 2、服务器可以给客户端发送信息 3、客户端可以给服务器发送信息 2、server 2-1、widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QTcpSocket> QT_BEGIN_NA…

2024 年 IBM 量子开发者大会:等你来

在 2024 年 IBM Quantum™ 开发者大会上&#xff0c;与会者将获得 IBM Quantum 尖端工具和即将推出的路线图更新的独家、亲身预览&#xff0c;所有这些都围绕一个主题 — — Qiskit 的性能。 2024 年 IBM 量子开发者大会 在此申请 重要日期 7 月 24 日&#xff1a; 开放申请 8 …

leetcode 902. Numbers At Most N Given Digit Set

题目链接 Given an array of digits which is sorted in non-decreasing order. You can write numbers using each digits[i] as many times as we want. For example, if digits [1,3,5], we may write numbers such as 13, 551, and 1351315. Return the number of posit…

Docker续6:容器网络

1.bridge-utils 一个用于Linux系统的网络桥接工具集。它提供了一些命令行工具&#xff0c;帮助用户创建、管理和配置网络桥接。网络桥接是一种将多个网络接口连接在一起&#xff0c;以使它们能够作为单个网络段进行通信的技术。 bridge-utils 常用的命令包括&#xff1a; b…

大阪OSAKA分子泵电源TC163HTC203TC353TC523TC1104TC553TC1813手侧

大阪OSAKA分子泵电源TC163HTC203TC353TC523TC1104TC553TC1813手侧

六、泛型事件框架

一、创建一个BaseEventSO的 基类 写一个泛型事件《T》 启动事件?.Invoke 二、创建一个监听类 同样泛型匹配Event的监听事件 创建OnEable在其中注册事件&#xff1b;OnDisable中注销事件 写一个if语句进行判断是否为空 三、创建一个ObjectEvent 传递Object 原因&#xf…

axios发送post请求实例

在body中的数据格式又有两种&#xff0c;一种是 json 数据格式&#xff0c;另一种是 字符串。具体要用哪种格式取决于后端入参的格式。 如果后端接收json数据类型&#xff0c;post 的 headers 需要设置 { ‘content-type’: ’application/json’ }&#xff0c;传给后端的数…

初学流量分析

一、基本知识 比赛中提供一个包含流量数据的 PCAP 文件&#xff0c;有时候也会需要选手们先进行修复或重构传输文件后&#xff0c;再进行分析。 PCAP 这一块作为重点&#xff0c;复杂的地方在于数据包里充满着大量无关的流量信息&#xff0c;因此如何分类和过滤数据是参赛者需…

stm32f103c8t6引脚功能

STM32F103C8T6拥有丰富的引脚功能&#xff0c;主要包括广泛的GPIO引脚、多种通信接口和特定的调试及电源管理引脚。 STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器&#xff0c;广泛应用于各种嵌入式系统设计中。它具有72MHz的处理速度&#xff0c;搭载128KB的Flash内存…

行业寒冬下的职场生态:卷与痛的交响曲

在2024年的初春&#xff0c;当万物复苏的季节理应带来希望与机遇之时&#xff0c;职场却笼罩在一片前所未有的“寒冬”之中。经济的波动、技术的快速迭代以及市场需求的微妙变化&#xff0c;共同编织了一幅复杂而严峻的行业图景。工作岗位的数量锐减&#xff0c;质量下滑&#…