RTOS——RT-Thread快速入门
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快速入门相关推荐
- RocketMQ带你快速入门
1. MQ介绍 ##1.1 为什么要用MQ 消息队列是一种"先进先出"的数据结构 转存失败重新上传取消 其应用场景主要包含以下3个方面 应用解耦 系统的耦合性越高,容错性就越低.以 ...
- 京东必考JVM 问题诊断快速入门
JVM 问题诊断快速入门 JVM 全称为 Java Virtual Machine,翻译为中文 "Java 虚拟机".本文中的JVM主要指 Oracle 公司的 HotSpot V ...
- asm使用指南中文-md版快速入门详解
asm4-guide-英文.pdf asm4-guide-中文 还是人家官网文档写得好,什么快速入门都不如官方文档,阅读两小时,就知道怎么回事了. ASM使用指南中文版 1. 介绍 1.1. 动机 1 ...
- Quartz 框架快速入门(二)
尽可能的用声明式处理软件配置,其次才考虑编程式的方式.在上一篇<Quartz 框架快速入门(一)>中,如果我们要在 Job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译.这种方 ...
- RMAN快速入门指南
RMAN快速入门指南 1. What is RMAN? 什么是RMAN? 4 2. Terminology 专业词汇解释 4 2.1. Backup sets 备份集合 4 2. ...
- Java 高级 --- 多线程快速入门
这世上有三样东西是别人抢不走的:一是吃进胃里的食物,二是藏在心中的梦想,三是读进大脑的书 多线程快速入门 1.线程与进程区别 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组 ...
- Quartz-任务调度概述及Quartz(2.2.X)快速入门
文章目录 概述 Quartz 概述 Quartz 基础结构 Job JobDetail Trigger Calendar Scheduler ThreadPool 注意 快速入门 Quartz(2.2 ...
- 教你从0到1搭建秒杀系统-Canal快速入门(番外篇)
Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能会用到.本篇介绍一下数据库中间件Canal的使用. 很多时候为了缩短调用延时,我们会对部分接口数据加入了缓存.一旦这些数据 ...
- Quartz快速入门
Quartz快速入门 1.下载地址http://www.quartz-scheduler.org/downloads/ 写此文章时的最新版是2.2.1. 2.解压缩将基本包quartz-2.2.1.j ...
- 分布式应用框架Akka快速入门
转自:分布式应用框架Akka快速入门_jmppok的专栏-CSDN博客_akka 本文结合网上一些资料,对他们进行整理,摘选和翻译而成,对Akka进行简要的说明.引用资料在最后列出. 1.什么是Akk ...
最新文章
- 刚刚,Python 3.10 正式发布了,我发现了一个可怕的功能..
- 云炬Android开发笔记 17商品详情功能开发
- 一篇搞定异常: Exception
- Androidstudio坑
- Ae/Pr画面破损信号干扰插件包TV Distortion Bundle的5个不同效果插件
- C/C++ OpenCV图像的尺寸变化
- linux能挂载的文件类型,mount命令是如何自动识别挂载点的文件系统类型的
- 【1】刷了1000道二级C语言的题,这些题竟然还是易错题!!(附C语言完整知识点)
- mysql命中索引规律
- Django框架rest_framework中APIView的as_view()源码解析、认证、权限、频率控制
- rsync文件同步应用--客户端的配置
- 程序员代码面试指南:IT名企算法与数据结构题目最优解-字符串问题:C/C++语言实现
- android动态表格数据类型,华为运动表GT表盘主题制作教程
- mysql 命令行关闭fuw_网络管理 - eSight V300R009C00 维护指南 12 - 华为
- 音视频开发系列(49)视频编码标准发展史
- unix源码分析_UNIX网络分析
- 做跨境电商为什么要用海外IP代理呢?
- 如果编程语言是一门武功绝学,那么汇编、C语言······
- 通关6级之词汇(2021.05.29)
- Ubuntu Core 将支持物联网 Matter
热门文章
- Java环境搭建(超详细)
- Mockito mockStatic, mockConstruction
- python嵌入式开发实战_嵌入式Qt实战教程 PDF 高清版
- 基于微信小程序的在线考试系统+后台管理系统(SSM+mysql)-JAVA.VUE【毕业设计、论文、源码、开题报告】
- Java进阶学习第十六天(Struts框架:配置、数据处理、自动封装、日期类型转换、文件上传)
- C++ decltype类型推导完全攻略
- 套息交易是如何获利的
- fastreport打印ftp图片_WebFastReportSetup.wse
- 喇叭的声音和素质成反比--2008-06-27 博客搬家
- 网络-IP协议详解(报文格式、分类、NAT、子网、CIDR、抓包分析)