当前位置: 首页 > news >正文

【STM32RT-Thread零基础入门】 2. 新建RT-Thread项目

硬件:STM32F103ZET6、ST-LINK、usb转串口工具

文章目录

  • 前言
  • 一、新建RT-Thread项目
  • 二、项目结构
  • 三、构建项目
  • 四、下载程序(调试器下载)
  • 五、终端交互
  • 总结


前言

  • RT-Thread的全称是Real Time Thread,顾名思义,它是一个嵌入式实时多线程操作系统。相较于 Linux
    操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此之外 RT-Thread
    还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合 RT-Thread 系统完全开源,目前版本遵循
  • Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码。
  • RT-Thread 与其他很多RTOS 如 FreeRTOS、uC/OS的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件和应用软件生态,其整体架构如图所示
    在这里插入图片描述

RT-Thread 软件包:运行于 RT-Thread 操作系统上,面向不同应用领域的通用软件组件,由描述信息、源代码或库文件组成。RT-Thread 提供了开放的软件包平台,这里存放了官方提供或开发者提供的软件包,该平台为开发者提供了众多可重用软件包的选择。因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内,打造出自己想要的系统。

组件与服务层:组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。

内核层:是 RT-Thread 的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件/板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。


一、新建RT-Thread项目

在RT-Thread Studio中,找到“文件->新建->RT-Thread项目”,单击“RT-Thread项目”,就可以打开“新建RT-Thread项目”选项卡。
在这里插入图片描述
设置项目名称为“STM32F103ZET6_CAR”、项目保存位置、选择项目所用芯片的厂商和型号等信息,单击“完成”,RT-Thread Studio就会帮我们新建一个名字为“STM32F103ZET6_CAR”的RT-Thread项目
在这里插入图片描述

二、项目结构

在这里插入图片描述

  1. RT-Thread Settings 对其双击可以打开RT-Thread的图形化配置工具
  2. CubeMX Settings 对其双击可以打开STM32CubeMX图形化配置工具,对STM32芯片的硬件外设进行配置
  3. applications 用户应用程序目录,所有应用程序都可以放到这里,其中包括main.c
  4. Debug 项目编译过程文件目录,如编译过程产生的.o文件等,此文件需要先构建一次才可显示
  5. drivers 和硬件平台相关的设备驱动文件目录
  6. libraries 和平台相关的底层底层库。对于STM32平台,目前版本使用的STM32官方的HAL库作为平台底层驱动库
  7. linkscripts 项目的链接脚本
  8. rt-thread rt-thread内核代码
  9. rtconfig.h rt-thread的配置头文件,在RT-Thread Settings中所做的修改,都会改变这个文件,这个文件不能手动修改

三、构建项目

构建是指对项目代码进行编译,构建方法如下所示,选择需要构建的工程(如图中的1),然后点击工具栏上的“构建”按钮(如图中的2)对项目进行构建。
在这里插入图片描述
构建完成后,显示信息如下:
在这里插入图片描述

四、下载程序(调试器下载)

根据实际选择相应的调试器完成下载,此处选择stlink。
在这里插入图片描述

五、终端交互

  1. 将最小系统板的uart1串口与电脑相连

  2. 点击“终端”按钮,启动串行终端配置界面
    在这里插入图片描述

  3. 配置好串口参数
    在这里插入图片描述

  4. 连接串口后可观察到系统输出
    在这里插入图片描述


总结

本文主要测试了新建RT-Thread项目。

http://www.lryc.cn/news/124481.html

相关文章:

  • 别人直播的时候怎么录屏?分享一些录屏方法
  • React Native 在高IOS版本下无法显示图片的问题处理
  • SSH远程连接MacOS catalina并进行终端颜色配置
  • 用JSON.toJSONString转JSON时,属性的值为null时,输出的JSON里没有该属性
  • Java版企业电子招标采购系统源码—企业战略布局下的采购寻源tbms
  • 轻拍牛头(约数)
  • Vc - Qt - 绘制窗口背景色
  • js和cocos creator学习笔记
  • Ceph分布式存储系统
  • 阿里云SMS,APi接口返回错误码
  • Floyd算法
  • SpringBoot究竟应该如何学习?
  • 为什么很多人认为ChatGPT最好的替代工具是Claude?
  • 学习Vue:简介和优势
  • ***is not a commit and a branch ‘***‘ cannot be created from it 报错
  • QT信号槽连接方式
  • 【yml文件的解释】
  • ChatGPT or BingChat
  • QT 使用第三方库QtXlsx操作Excel表
  • 警惕网络个人技术人员:隐藏代码风险的启示
  • VBA 学习笔记1 对象以及属性
  • netty核心组件以及实现原理
  • 如何正确下载tomcat???
  • mybatis-plus 根据指定字段 批量 删除/修改
  • MQTT宝典
  • 【前端】CSS水平居中的6种方法
  • nginx如何获取真实的ip
  • kotlin + LiveData 测试
  • 【dnf5文档】新一代RedHat自动化包管理器
  • 数据可视化工具的三大类报表制作流程分享