IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> RT-Thread入门教程,环境配置和第一个代码 -> 正文阅读

[嵌入式]RT-Thread入门教程,环境配置和第一个代码

1.前言

RT-Thread这一个操作系统获得很多工程师的好评,使用简单,支持多,有软件包可以下载,甚至未来会有更多MicroPython的支持,能够兼容主流的一些MCU,总得来说,这对于快速开发是一件大好事

这一篇就说明一下如何好好的使用RT-Thread开发。

2.使用的软件与下载安装

主要要用的有两个一个是RT-Thread Studio,这个是IDE,另外一个是RT-Thread env 工具,用于图形化进行配置,然后还有一个RT-Thread本身,也就是MCU用的操作系统

这里还有一个RT-Thread Nano,是经过剪裁后最小的RT-Thread

对于这个RT-Thread本体,具有两个版本,一个是LTS一个是经常更新的最新版,如果不想经常变更还是选LTS,免得兼容性问题。

?

Env和Studio的下载地址看这个页面就可以

下载 - RT-Thread物联网操作系统

?

安装部分省略,很简单,就是解压会有大量零散文件,推荐用SSD。

?

官方说支持VSCode但是实际上这个插件压根没做好,甚至更奇葩的是它不能新建工程。

?

ENV这一个工具解压出来是这样子,有用户手册可以看。

?

然后因为是比较落伍的编程代码所以不支持UNICODE因此不能使用中文路径

?

3.RT-Thread Studio的使用

3.1 新建工程

打开后需要注册,注册登录就可以新建项目

?

这里我使用的是中科蓝讯AB32VG1这么一个RISC-V开发板,主频120Mhz,不如ESP32,芯片样品单售价4.2元,开发板50包邮,板载Wifi,SD卡槽,FM,RGB LED,USB Host等等。

?

新建工程有两种,一种是基于芯片一种是基于开发板,选择第二种

然后就是联网查找开发板的过程,可以看到支持的还是有一些的,甚至包括树莓派那款50元双核的板子

?

这里我选择一个最新版本的安装

?

然后跳出来提示

?

往上看一下,虽然其他几个RT-Thread都装了但这里这个没有安装,手动点选并下载

?

然后就可以正常的选择了。

?

3.2.程序实例和快速上手

首先看一下这边RT-Thread的语句,新建后自带的程序


#include <rtthread.h>

#include "board.h"



int main(void)

{

??? uint8_t pin = rt_pin_get("PE.1");



??? rt_pin_mode(pin, PIN_MODE_OUTPUT);

??? rt_kprintf("Hello, world\n");



??? while (1)

??? {

??????? rt_pin_write(pin, PIN_LOW);

??????? rt_thread_mdelay(500);

??????? rt_pin_write(pin, PIN_HIGH);

??????? rt_thread_mdelay(500);

??? }

}

看得出来获取引脚的方式还挺特别的,用的是rt_pin_get这个函数,设置引脚模式是rt_pin_mode,我寻思直接抄一份Arduino IDE的不就好了。

后面的rt_thread_mdelayrt_pin_write味儿更浓了,作为一个天天用Arduino IDE偷懒的表示这实在是过于熟悉,当然这是一个好处。

?

查询API的方式是用自带的RT-Thread文档,这一点方便性上面我认为超过大多数,特别是那些TIKeil一类,因为众所周知嵌入式的东西,API文档乱是非常正常的。

?

RT-Thread在商业产品上面的使用可以不用开放源代码,协议如果是GPL的需要,后面换用的Apache不用。

?

难怪之前遇到工程师吹这个好用,看来确实好用,离线文档就是方便而且查询很快

回来说如何编译,这里要找到构建这个锤子按钮,按下后就可以了

?

然后这时候我遇到了出错的问题,riscv64-unknown-elf-gcc: not found

?

查了一下就是riscv64-unknown-elf-gcc这个文件居然没有,看了一下目录,确实没有这个编译器

?

然后,为了搞定这个编译器我卡了半个小时。因为RISC-V太新了,死活找不到。然后,就只能自己编译一个出来了。

4.如何解决riscv64-unknown-elf-gcc: not found 问题

先是下载整个源代码riscv-gcc-riscv-gcc-9.2.0,下载的地址GitHub - riscv-collab/riscv-gnu-toolchain: GNU toolchain for RISC-V, including GCC

然后因为我是在Windows下,所以要使用这一个MinGW64,切换到下载后解压的编译目录

?

之后输入这个命令,功能是生成Makefile,这里提示出错,大意就是需要GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.这三个

./configure --prefix=/opt/riscv64 --with-arch=rv64imc --with-abi=xxx

这下还要先行解决这三个文件缺失问题,我们同样还是在MinGW中操作

?

如你有小飞机一类,先配置一下代理,免得下载速度像是没会员的百度网盘

export http_proxy=http://你的代理地址:代理端口号

?

需要下载三个文件

wget?ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2

      wget?ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2

      wget?ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

剩余部分直接参考这位兄弟的文章,原文地址

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. - 学知无涯 - 博客园

但是!实际上并不需要这么麻烦,因为在SDK管理器这里就可以下载,我在看了第二遍文档时候发现了

?

SDK管理器在这里

?

点击并且安装后,应该就可以正常的编译

?

然后如果你用的不是STM32类的MCU,会需要这样一个下载器,下载器选择的是项目文件夹下的Debug文件夹,文件名是dcf后缀文件,选择后通过串口下载

?

最终效果

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 12:03:02  更:2021-10-19 12:03:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:41:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码