精华内容
下载资源
问答
  • RT-Thread is very grateful for the support from all community developers, and if you have any ideas, suggestions or questions in the process of using RT-Thread, RT-Thread can be reached by the ...
  • RT-Thread is very grateful for the support from all community developers, and if you have any ideas, suggestions or questions in the process of using RT-Thread, RT-Thread can be reached by the ...
  • RT-Thread操作系统的μC/ OS-III兼容层 让基于μC/ OS-III开发的应用层无感地迁移到RT-Thread操作系统 中文| 英语 [目录] 0前排提示 本文包含图片,允许在中国大陆互联网环境,访问github时, readme.md(本文件)的...
  • RT-Thread操作系统的μC/ OS-II兼容层 让基于μC/ OS-II开发的应用层无感地迁移到RT-Thread操作系统 中文| 英语 [目录] 0前排提示 本文包含图片,允许在中国大陆互联网环境,访问github时, readme.md(本文件)的...
  • Arduino_RT-Thread:针对Arduino优化的RT-Thread
  • rt-thread-rt-smart.rar

    2021-04-12 11:11:40
    1、有一个移植了RT-Thread的GD32E103工程 2、有一个移植了RT-Thread的N32G457工程 3、具体移植过程参照我的文章《国民技术N32G457移植RT-Thread
  • RT-Thread | RT-Thread Studio初体验

    千次阅读 2020-01-03 20:28:11
    RT-Thread Studio简介 最近,RT-Thread Studio是RT-Thread最近发布的一款IDE,现在我们来使用一下。 首先,软件界面配色效果很棒,看起来很舒服。欢迎界面如下: 可以看到欢迎界面包含有很多有用的信息:最新动态、...

    1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!

    RT-Thread Studio简介

    最近,RT-Thread StudioRT-Thread最近发布的一款IDE,现在我们来使用一下。

    首先,软件界面配色效果很棒,看起来很舒服。欢迎界面如下:
    ======001

    可以看到欢迎界面包含有很多有用的信息:最新动态、软件试用视频教程、最新PR等。RT-Thread Studio是基于eclipse平台开发, 界面设计和风格继承自eclipse。如:

    ======002

    因为基于eclipse平台开发的IDE都很相似,比如TICCSCode Composer Studio)软件:

    ======003

    可以发现,RT-Thread StudioCCS的很相似,比较大的区别就是CCS是英文的,RT-Thread Studio是中文的。不愧是国产操作系统,开发出来的IDE是中文的(估计以后应该也会出英文版),可以很好地照顾到像我这样的英文不好的开发者。

    RT-Thread Studio使用

    我们来试用一下RT-Thread Studio,创建一个RT-Thread工程。首先,新建工程:

    ======004
    ======005
    ======006

    可以选择建立基于BSP的工程,也可以建立基于芯片的工程。这里我们选择创建基于潘多拉IOT开发板BSP工程:

    ======007
    ======008

    可以看到工程下有一个RT-Thread Settings文件, 通过这个可以进行图形化地对RT-Thread进行配置,双击RT-Thread Settings文件可进入配置界面,配置界面如下:

    ======009

    可见,通过这个配置界面可以很方便地对内核、组件、软件包及硬件进行配置。配置完成之后按下ctrl+s即可保存配置。使用RT-Thread Studio来编辑代码也是很舒服的,自动补全杠杠的,输入1个字符就有相关提示:

    ======010

    下面我们进行编译:
    ======011
    ======012

    ======013

    下载、运行程序:
    ======014
    ======019
    ======020

    启动调试:
    ======015
    ======016
    ======017
    ======018

    最后,我最喜欢RT-Thread Studio很有特色的一点就是集成了 MarkDown 编辑器:

    ======021

    有了这个,我们就可以把REDEME文件写得很清楚很详细了,比如可以插入图片等,不像用keil的时候只能写点文本记录一下。

    总结

    RT-Thread Studio这个IDE很强大很易用,在使用RT-Thread的时候就不用像之前一样一步一步移植,有了这个软件就可以快速建立包含有RT-Thread的工程。

    除此之外,尽管是裸机开发,也可以很快速的建立工程,甚至可以替换掉keil,虽然现在支持的MCU只有STM32的,但是相信之后肯定会慢慢更新得越来越完善,我们一起来期待。还没用的朋友赶快用起来吧,真的很香!

    关于RT-Thread Studio的细节可查阅其帮助手册。

    技术交流QQ群:696658660

    展开全文
  • GD32 MCU 开发板 Workshop 报告:RT-Thread点灯-rt-thread-v4.0.1 -gd32.zip
  • 国内自主的嵌入式操作系统,RT-Thread Nano版本裁剪了多余外围,只剩内核。
  • RT-Thread诞生于2006年,它是一个开源的,中立的,基于社区的实时操作系统(RTOS)。 RT-Thread主要用C语言编写,易于理解且易于移植(可以快速移植到各种主流MCU和模块芯片)。 它将面向对象的编程方法应用于实时...
  • RT-Thread

    2019-11-06 17:42:54
  • 本科生因做比赛需要,使用RT-Thread Studio进行stm32f407ZGT6的程序开发,文章仅以用来记录过程 系列文章目录 第一篇 RT-Thread学习入门之RT-Thread的使用 第二篇 RT-Thread学习入门之简单LED灯的实现 第三篇 RT-...

    本科生因做比赛需要,使用RT-Thread Studio进行stm32f407ZGT6的程序开发,文章仅以用来记录过程

    系列文章目录

    第一篇 RT-Thread学习入门之RT-Thread的使用
    第二篇 RT-Thread学习入门之简单LED灯的实现
    第三篇 RT-Thread学习入门之输出PWM
    第四篇 RT-Thread学习入门之pmw3901光流模块
    第五篇 RT-Thread学习入门之IIC四路循迹模块



    前言

    本文将介绍如何使用RT-Thread Studio进行项目的创建,大概我习惯的开发流程,以及一些相关软件的下载地址


    一、RT-Thread Studio是什么?

    一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。
    官网地址

    二、创建RT-Thread项目

    1.菜单栏介绍

    在这里插入图片描述

    1. 创建项目选项

    2. 编译选项

    3. 调试选项

    4. API文档(官方参考文档)
      在这里插入图片描述

    5. 下载程序

    2.创建项目

    1. 点击菜单栏创建项目选项,创建RT-Tthread项目

    在这里插入图片描述

    1. 输入项目名称,并且根据实际选择蓝色框内的内容,选择好后点击完成等待项目创建完成
      在这里插入图片描述

    2. 项目创建好后,左侧项目资源管理器出现如下内容。
      RT-Thread Settings用来添加软件包以及开启功能对应的驱动框架。在这里插入图片描述

    3. 双击main.c文件,打开后出现如下内容
      在这里插入图片描述

    4. 点击 RT-Thread Settings ,打开 ulog日志
      在这里插入图片描述

    5. 将程序编译成功后,下载到stm32f407中,通过串口可以看到打印日志“Hello RT-Thread!”

    三、项目开发基本流程

    1.添加驱动程序

    1. 打开board.h文件(位于drivers目录),按照步骤进行配置。大多都为四步,接下来分别说明。
    • 第一步 打开RT-Thread Settings中的驱动框架支持
      点击RT-Thread Settings,点击下图中更多配置,将PWM对应右侧的方框勾选,保存后,再次编译,驱动框架(不一定完整哦)便添加到了项目当中。
      在这里插入图片描述

    在这里插入图片描述

    • 第二步 声明关键字,如将原有的注释取消
      #define BSP_USING_PWM1

    • 第三步 添加初始化代码
      这里使用STM32CubeMX生成MDK5工程文件,然后用MDK5打开,将里面的初始化代码复制粘贴到RT-Thread项目中。具体操作过程下一篇详细介绍。

    • jdk安装教程:点此进入

    • STM32CubeMX具体安装步骤网上教程很多。
      STM32CubeMX5.3.0 下载地址:点此下载

    • 第四步 将stm32xxxx_hal_config.h中功能对应的部分注释取消
      define HAL_TIM_MODULE_ENABLED

    2.编写代码

    • 参考所使用功能对应的官方参考文档,对基本框架进行修改即可。

    展开全文
  • 2 基于 CubeMX 移植 RT-Thread Nano 原文地址 开发环境: Keil版本:V5.30 RT-Thread版本:3.1.3 STM32cubeMX:V6.0.1 本文介绍如何基于STM32cubeMX移植 RT-Thread Nano ,并以一个 stm32f103 的基础工程作为示例...

    2 基于 CubeMX 移植 RT-Thread Nano

    原文地址

    开发环境:
    Keil版本:V5.30
    RT-Thread版本:3.1.3
    STM32cubeMX:V6.0.1

    本文介绍如何基于STM32cubeMX移植 RT-Thread Nano ,并以一个 stm32f103 的基础工程作为示例进行讲解。RT-Thread Nano 已集成在 STM32cubeMX中,可以直接在 IDE 中进行下载添加。本文档介绍了如何使用 STM32cubeMX 移植 RT-Thread Nano,并以一个 stm32f103 的基础工程作为示例进行讲解。

    移植 Nano 的主要步骤:

    1.准备一个基础的 STM32cubeMX工程,并获取 RT-Thread Nano pack 安装包并进行安装。
    2.在基础工程中添加 RT-Thread Nano 源码。
    3.适配 Nano,主要从 中断、时钟、内存这几个方面进行适配,实现移植。
    4.验证移植结果:编写第一个应用代码,基于 RT-Thread Nano 闪烁 LED。
    5.最后可对 Nano 进行配置:Nano 是可裁剪的,通过配置文件 rtconfig.h 实现对系统的裁剪。

    2.1 RT-Thread移植前的准备

    准备一份基础的裸机源码工程,如一份 stm32 的 LED 指示灯闪烁示例代码。

    在移植 RT-Thread Nano 之前,我们需要准备一个能正常运行的裸机工程。作为示例,本文使用的是基于 STM32F103 的一个 LED 闪烁程序。程序的主要截图如下:
    在这里插入图片描述

    在我们的例程中主要做了系统初始化与 LED 闪烁功能,编译下载程序后,就可以看到 LED 闪烁了。读者可以根据自己的需要使用的芯片,准备一个类似的裸机工程。

    关于如何使用STM32CubeMX新建工程请看笔者博客。

    STM32CubeMX软件安装与使用

    2.2 Nano Pack 安装

    要获取 RT-Thread Nano 软件包,需要在 CubeMX 中添加

    URL:https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc

    具体步骤:进入打开 CubeMX,从菜单栏 help 进入 Manage embedded software packages 界面,点击 From Url 按钮,进入 User Defined Packs Manager 界面,其次点击 new,填入上述网址,然后点击 check,如下图所示:

    在这里插入图片描述

    check 通过后,点击 OK 回到 User Defined Packs Manager 界面,再次点击 OK,CubeMX 自动连接服务器,获取包描述文件。

    在这里插入图片描述

    回到 Manage embedded software packages 界面,就会发现 RT-Thread Nano 3.1.3 软件包,选择该软件包,点击 Install Now,如下图所示:

    在这里插入图片描述

    点击安装之后,弹出 Licensing Agreement ,同意协议,点击 Finish,如下图所示:

    在这里插入图片描述

    等待安装完成,成功安装后,版本前面的小蓝色框变成填充的黄绿色,现象如下图所示:

    在这里插入图片描述

    至此,RT-Thread Nano 软件包安装完毕,退出 Manage embedded software packages 界面。


    2.3添加 RT-Thread Nano 到工程

    2.3.1选择 Nano 组件

    打开基础工程,点击 Select Softwares,选择Select Components界面,在 Pack Vendor 中选择 RealThread, 然后根据需求选择 RT-Thread 组件(此处只移植 Nano,只选择 kernel 即可),然后点击 OK 按钮,如下图所示:

    在这里插入图片描述

    注意:RT-Thread Nano 软件包中包含 kernel 与 shell 两个部分,仅选择 kernel 表示只使用 RT-Thread 内核,工程中会添加内核代码;选择 kernel 与 shell 表示在使用 RT-Thread Nano 的基础上使用 FinSH Shell 组件,工程中会添加内核代码与 FinSH 组件的代码,FinSH 的移植笔者会在后文讲解。

    2.3.2配置 Nano

    选择组件之后,对组件参数进行配置。在工程界面 Pinout & Configuration 中,进入所选组件参数配置区,按照下图进行配置。
    在这里插入图片描述

    生成工程即可。

    2.4适配 RT-Thread Nano

    2.4.1中断与异常处理

    RT-Thread 会接管异常处理函数 HardFault_Handler() 和悬挂处理函数 PendSV_Handler(),这两个函数已由 RT-Thread 实现,所以需要删除工程里中断服务例程文件中的这两个函数,避免在编译时产生重复定义。如果此时对工程进行编译,没有出现函数重复定义的错误,则不用做修改。

    2.4.2系统时钟配置

    需要在 board.c 中实现 系统时钟配置(为 MCU、外设提供工作时钟)与 os tick 的配置(为操作系统提供心跳 / 节拍)。

    如下代码所示, HAL_Init() 初始化 HAL 库, SystemClock_Config()配置了系统时钟, SystemCoreClockUpdate() 对系统时钟进行更新,_SysTick_Config() 配置了 OS Tick。此处 OS Tick 使用滴答定时器 systick 实现,需要用户在 board.c 中实现 SysTick_Handler() 中断服务例程,调用 RT-Thread 提供的 rt_tick_increase() ,如下图所示。

    /* board.c */
    void rt_hw_board_init()
    {
        HAL_Init();
        SystemClock_Config();
    
        /* System Clock Update */
        SystemCoreClockUpdate();
    
        /* System Tick Configuration */
        _SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
    
        /* Call components board initial (use INIT_BOARD_EXPORT()) */
    #ifdef RT_USING_COMPONENTS_INIT
        rt_components_board_init();
    #endif
    
    #if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
        rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get());
    #endif
    }
    

    由于HardFault_Handler()、PendSV_Handler()和 SysTick_Handler() 中断服务例程由用户在 board.c 中重新实现,做了系统 OS Tick,所以还需要删除工程里中原本已经实现的 HardFault_Handler()、PendSV_Handler()和 SysTick_Handler() ,避免在编译时产生重复定义。如果此时对工程进行编译,没有出现函数重复定义的错误,则不用做修改。

    2.4.3内存堆初始化

    系统内存堆的初始化在 board.c 中的 rt_hw_board_init() 函数中完成,内存堆功能是否使用取决于宏 RT_USING_HEAP 是否开启,RT-Thread Nano 默认不开启内存堆功能,这样可以保持一个较小的体积,不用为内存堆开辟空间。

    开启系统 heap 将可以使用动态内存功能,如使用 rt_malloc、rt_free 以及各种系统动态创建对象的 API。若需要使用系统内存堆功能,则打开 RT_USING_HEAP 宏定义即可,此时内存堆初始化函数 rt_system_heap_init() 将被调用,如下所示:
    在这里插入图片描述

    初始化内存堆需要堆的起始地址与结束地址这两个参数,系统中默认使用数组作为 heap,并获取了 heap 的起始地址与结束地址,该数组大小可手动更改,如下所示:
    在这里插入图片描述

    注意:开启 heap 动态内存功能后,heap 默认值较小,在使用的时候需要改大,否则可能会有申请内存失败或者创建线程失败的情况,修改方法有以下两种:

    • 可以直接修改数组中定义的 RT_HEAP_SIZE 的大小,至少大于各个动态申请内存大小之和,但要小于芯片 RAM 总大小。

    • 使用 RAM ZI 段结尾处作为 HEAP 的起始地址,使用 RAM 的结尾地址作为 HEAP 的结尾地址,这是 heap 能设置的最大值的方法。

    2.5编写第一个应用

    移植好 RT-Thread Nano 之后,则可以开始编写第一个应用代码验证移植结果。此时 main() 函数就转变成 RT-Thread 操作系统的一个线程,现在可以在 main() 函数中实现第一个应用:板载 LED 指示灯闪烁,这里直接基于裸机 LED 指示灯进行修改。

    1.首先在文件首部增加 RT-Thread 的相关头文件 <rtthread.h> 。初始化静态线程结构体和线程栈。

    #include <rtthread.h>
    static struct rt_thread led_thread;
    
    static char led_thread_stack[256];
    

    2.编写线程入口函数

    static void led_thread_entry(void *parameter)
    {
    	while(1)
    	{
    		HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
    		rt_thread_mdelay(500);
    		HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
    
    		HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_6);
    		rt_thread_mdelay(500);
    		HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_6);
    
    		HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_7);
    		rt_thread_mdelay(500);
    		HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_7);
    	}
    }
    

    将延时函数替换为 RT-Thread 提供的延时函数 rt_thread_mdelay()。该函数会引起系统调度,切换到其他线程运行,体现了线程实时性的特点。

    3.在 main() 函数中(也就是在 main 线程中)初始化 LED 引脚、初始化线程,并开始。

    int main(void)
    {
      /* USER CODE BEGIN 1 */
    	  rt_err_t rst;
      /* USER CODE END 1 */
    
      /* MCU Configuration--------------------------------------------------------*/
    
      /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
      HAL_Init();
    
      /* USER CODE BEGIN Init */
    
      /* USER CODE END Init */
    
      /* Configure the system clock */
      SystemClock_Config();
    
      /* USER CODE BEGIN SysInit */
    
      /* USER CODE END SysInit */
    
      /* Initialize all configured peripherals */
      MX_GPIO_Init();
      /* USER CODE BEGIN 2 */
    
      /* USER CODE END 2 */
    
      /* Infinite loop */
      /* USER CODE BEGIN WHILE */
    	rst = rt_thread_init(&led_thread,
    						"ledshine",
    						led_thread_entry,
    						RT_NULL,
    						&led_thread_stack[0],
    						sizeof(led_thread_stack),
    						RT_THREAD_PRIORITY_MAX-2,
    						20);
    	if(rst == RT_EOK)
    	{
    		rt_thread_startup(&led_thread);
    	}
      /* USER CODE END 3 */
    }
    

    编译程序之后下载到芯片就可以看到基于 RT-Thread 的程序运行起来了,可以看到三个LED灯不同地闪烁。。

    注意:当添加 RT-Thread 之后,裸机中的 main() 函数会自动变成 RT-Thread 系统中 main 线程 的入口函数。由于线程不能一直独占 CPU,所以此时在 main() 中使用 while(1) 时,需要有让出 CPU 的动作,比如使用 rt_thread_mdelay() 系列的函数让出 CPU。

    【注】HardFault_Handler中断函数与RT-Thread中的冲突,当然可能还有其他中断函数与RT-Thread中的冲突,注释掉stm32f1xx_it.c中相冲突的中断函数即可。

    与裸机 LED 闪烁应用代码的不同:
    1). 延时函数不同: RT-Thread 提供的 rt_thread_mdelay() 函数可以引起操作系统进行调度,当调用该函数进行延时时,本线程将不占用 CPU,调度器切换到系统的其他线程开始运行。而裸机的 delay 函数是一直占用 CPU 运行的。

    2). 初始化系统时钟的位置不同:移植好 RT-Thread Nano 之后,不需要再在 main() 中做相应的系统配置(如 hal 初始化、时钟初始化等),这是因为 RT-Thread 在系统启动时,已经做好了系统时钟初始化等的配置。

    2.6配置 RT-Thread Nano

    用户可以根据自己的需要通过修改 rtconfig.h 文件里面的宏定义配置相应功能。

    RT-Thread Nano 默认未开启宏 RT_USING_HEAP,故只支持静态方式创建任务及信号量。若要通过动态方式创建对象则需要在 rtconfig.h 文件里开启 RT_USING_HEAP 宏定义。

    MDK 的配置向导 configuration Wizard 可以很方便的对工程进行配置,Value 一栏可以选中对应功能及修改相关值,等同于直接修改配置文件 rtconfig.h。

    在这里插入图片描述




    代码获取方法

    1.长按下面二维码,关注公众号[嵌入式实验楼]
    2.在公众号回复关键词[RT-Thread]获取资料
    在这里插入图片描述



    欢迎访问我的网站:

    BruceOu的哔哩哔哩
    BruceOu的主页
    BruceOu的博客
    BruceOu的CSDN博客
    BruceOu的简书

    展开全文
  • RT-Thread中断管理学习总结 前面几篇文章总结了RT-Thread多线程相关内容的学习过程,包括多线程的使用,多线程的同步,多线程的通信,关于多线程相关的学习总结,可以查看以下链接: RT-Thread学习笔记 --(4)RT-...
  • RT-Thread Nano 简介 1.1 RT-Thread介绍 RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极...
  • 移植过程主要分为两个部分:libcpu 移植与板级移植,在讲解移植之前,本文档对 RT-Thread Nano 的启动流程与移植目录结构先进行说明。 4.1 RT-Thread Nano启动流程 RT-Thread 启动流程如下所示,在图中标出颜色的...
  • rt-thread

    2019-09-25 05:42:36
    rt-thread https://www.rt-thread.org/document/site/ posted on 2019-05-13 15:48...
  • RT-Thread Studio 安装 一、下载RT-Thread Studio 访问RT-Thread官网即可下载RT-Thread Studio安装包。 选择【资源】->【RT-Thread Studio】 点击【RT-Thread Studio下载】 即可到达下载页面...
  • RT-Thread线程间通信学习总结 前两篇文章总结了RT-Thread多线程以及多线程同步的学习过程,关于前两篇学习总结,可以查看以下链接: RT-Thread学习笔记 --(4)RT-Thread多线程学习总结 RT-Thread学习笔记 --(5...
  • 去年,RT-Thread发布了RT-Thread Studio初版《RT-Thread Studio的使用体验:真香!...
  • RT-Thread Nano版本和RT-Thread Master版本的关系: RT-Thread Master版本不仅仅是一个实时内核,还包含了丰富的中间层组件。 RT-Thread Nano是RT-Thread Master之上进行剪裁后形成的精简版,去掉了一些组件和...
  • 本文介绍了如何在 RT-Thread Studio 上使用 RT-Thread Nano,并以创建 stm32f103RB 的 Nano 工程为例。准备工作安装 RT-Thread St...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,891
精华内容 4,756
关键字:

rt-thread