RT-Thread学习

背景

博主这是刚接触RTOS,因为机缘选择了从RT-Thread入手,做笔记主要是自己看的,有用得着的同学也可以看看。

学习步骤

1.Keil 模拟器STM32F103

1.1更新Keil版本

之前正好嫌台式机上装的MDK版本有点低,之前调试其他项目出现过文件打开莫名其妙报很多错的情况,当时换版本更高的keil打开就好了,这次更新的keil版本为MDK5.20,要求的版本为(正式版或评估版,5.14 版本及以上版本均可),RT-Thread官网教程提供的是MDK5.24的评估版,看到这个版本有16K编译代码限制,后面可能会有别的问题,因此直接选了5.20,读者可根据自身情况选择。

1.2下载RT-Thread Simulator例程

(下载链接在文末参考文献中)

目录中的文件结构如下图所示:

双击打开project.uvprojx后界面如下图:

左侧项目结构及对应的作用:


编译后进入调试模式,之后选择工具栏View—>Serial Windows—>UART #1,再点击运行得到下图仿真界面:

通过输入Tab键或者help + 回车,可以输出当前系统所支持的所有命令,如下图所示:

1.3模拟跑马灯

继续在此界面输入msh命令:led,可观察到模拟界面led灯每隔0.5s亮灭并累加计数,十次后自动停止:

1.4初识系统启动代码

以MDK为例,MDK程序入口为 main() 函数,位于main.c文件中。系统启动后先从汇编代码startup_stm32f103xe.s 开始运行,然后跳转到C代码,进行RT-Thread系统功能初始化,最后进入用户程序入口main()。

在Kernel文件目录下可找到components.c文件:

在main函数体内可以发现rtthread_startup()函数:

右键Go To Definition Of ……即可找到RT-Thread系统初始化代码:

2硬件点亮led

2.1开发板选择

初步理解为要想在对应型号的板子上,需要对应型号板子的bsp板级支持包,否则会因为外设,引脚设计等问题导致RT-Thread系统并不能在该板子上正常运行,即使主控芯片是一样的型号,外设不同也会有影响,而博主看了一眼,RT-Thread官网提供STM32系列BSP制作教程,但是需要如下知识储备:
看了一下,这对刚入门RTOS的我来说,为时尚早,因此,首选方案为选择已有BSP的对应型号的板子,现在博主手头上有的是STM32F103C8T6最小系统板,正点原子精英版STM32F103ZET6,正点原子探索者STM32F407ZGT6,官方提供的BSP中只有正点原子探索者的,因此,选用这款开发板。

2.2烧录程序

下载官网给的源代码包,解压后文件夹名为rt-thread-master,选择bsp—>stm32—>stm32f407-atk-explorer—>project.uvprojx
编译后显示(0 Error(s),1 Warning(s)),烧录后,可以看到板载led灯每0.5s循环点亮:

参考资料

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/quick-start/stm32f103-simulator/stm32f103-simulator

RTOS——RT-Thread快速入门相关推荐

  1. RocketMQ带你快速入门

    1. MQ介绍 ##1.1 为什么要用MQ 消息队列是一种"先进先出"的数据结构 转存失败重新上传取消 其应用场景主要包含以下3个方面 应用解耦 系统的耦合性越高,容错性就越低.以 ...

  2. 京东必考JVM 问题诊断快速入门

    JVM 问题诊断快速入门 JVM 全称为 Java Virtual Machine,翻译为中文 "Java 虚拟机".本文中的JVM主要指 Oracle 公司的 HotSpot V ...

  3. asm使用指南中文-md版快速入门详解

    asm4-guide-英文.pdf asm4-guide-中文 还是人家官网文档写得好,什么快速入门都不如官方文档,阅读两小时,就知道怎么回事了. ASM使用指南中文版 1. 介绍 1.1. 动机 1 ...

  4. Quartz 框架快速入门(二)

    尽可能的用声明式处理软件配置,其次才考虑编程式的方式.在上一篇<Quartz 框架快速入门(一)>中,如果我们要在 Job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译.这种方 ...

  5. RMAN快速入门指南

    RMAN快速入门指南   1. What is RMAN? 什么是RMAN?    4 2. Terminology 专业词汇解释    4 2.1. Backup sets 备份集合    4 2. ...

  6. Java 高级 --- 多线程快速入门

    这世上有三样东西是别人抢不走的:一是吃进胃里的食物,二是藏在心中的梦想,三是读进大脑的书 多线程快速入门 1.线程与进程区别 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组 ...

  7. Quartz-任务调度概述及Quartz(2.2.X)快速入门

    文章目录 概述 Quartz 概述 Quartz 基础结构 Job JobDetail Trigger Calendar Scheduler ThreadPool 注意 快速入门 Quartz(2.2 ...

  8. 教你从0到1搭建秒杀系统-Canal快速入门(番外篇)

    Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能会用到.本篇介绍一下数据库中间件Canal的使用. 很多时候为了缩短调用延时,我们会对部分接口数据加入了缓存.一旦这些数据 ...

  9. Quartz快速入门

    Quartz快速入门 1.下载地址http://www.quartz-scheduler.org/downloads/ 写此文章时的最新版是2.2.1. 2.解压缩将基本包quartz-2.2.1.j ...

  10. 分布式应用框架Akka快速入门

    转自:分布式应用框架Akka快速入门_jmppok的专栏-CSDN博客_akka 本文结合网上一些资料,对他们进行整理,摘选和翻译而成,对Akka进行简要的说明.引用资料在最后列出. 1.什么是Akk ...

最新文章

  1. 刚刚,Python 3.10 正式发布了,我发现了一个可怕的功能..
  2. 云炬Android开发笔记 17商品详情功能开发
  3. 一篇搞定异常: Exception
  4. Androidstudio坑
  5. Ae/Pr画面破损信号干扰插件包TV Distortion Bundle的5个不同效果插件
  6. C/C++ OpenCV图像的尺寸变化
  7. linux能挂载的文件类型,mount命令是如何自动识别挂载点的文件系统类型的
  8. 【1】刷了1000道二级C语言的题,这些题竟然还是易错题!!(附C语言完整知识点)
  9. mysql命中索引规律
  10. Django框架rest_framework中APIView的as_view()源码解析、认证、权限、频率控制
  11. rsync文件同步应用--客户端的配置
  12. 程序员代码面试指南:IT名企算法与数据结构题目最优解-字符串问题:C/C++语言实现
  13. android动态表格数据类型,华为运动表GT表盘主题制作教程
  14. mysql 命令行关闭fuw_网络管理 - eSight V300R009C00 维护指南 12 - 华为
  15. 音视频开发系列(49)视频编码标准发展史
  16. unix源码分析_UNIX网络分析
  17. 做跨境电商为什么要用海外IP代理呢?
  18. 如果编程语言是一门武功绝学,那么汇编、C语言······
  19. 通关6级之词汇(2021.05.29)
  20. Ubuntu Core 将支持物联网 Matter

热门文章

  1. Java环境搭建(超详细)
  2. Mockito mockStatic, mockConstruction
  3. python嵌入式开发实战_嵌入式Qt实战教程 PDF 高清版
  4. 基于微信小程序的在线考试系统+后台管理系统(SSM+mysql)-JAVA.VUE【毕业设计、论文、源码、开题报告】
  5. Java进阶学习第十六天(Struts框架:配置、数据处理、自动封装、日期类型转换、文件上传)
  6. C++ decltype类型推导完全攻略
  7. 套息交易是如何获利的
  8. fastreport打印ftp图片_WebFastReportSetup.wse
  9. 喇叭的声音和素质成反比--2008-06-27 博客搬家
  10. 网络-IP协议详解(报文格式、分类、NAT、子网、CIDR、抓包分析)