STM32F1移植RT_Thread简明教程

简介: 笔记

一. 简介


最近开始学习RTOS了,也是第一次接触RTOS,本人以国内的RT-Thread作为学习的一款RTOS,支持国产嘛。

在搭建环境的时候,遇到了许多问题,也是参考了许多博客,但是与官网上的步骤都大同小异,给了像我们这样的小白很大的打击。

接下以以STM32F1移植极简版硬实时内核Nano(基于keil5),给大家介绍如何快速的搭建环境。


欢迎关注微信公众号 FPGA之旅 获取更多


二. RT-Thread的安装


这里的安装方法有两种,和之前需要使用stm32f1系列的单片机一样,需要下载安装pack包。


1.第一种方法是在keil里面,直接下载安装

3.png

2.第二种是,下载pack,双击安装,我这里使用的是这种方法。(微信公众号回复 RT-Thread-Pack 可以获取下载链接)

4.png

三. 准备好空白的裸机demo


最好是初始化一个外设,我这里使用的是最小系统,使用的是led灯闪烁的demo。

1.安装好pack后,打开demo工程,点击这个按钮,然后找到RTOS,勾选kernel就可以。

5.png6.png

2.勾选好之后,就可以在我们的项目里面看到添加进来的相关文件了

7.png

到这里相关的环境问题就完成的大半部分了。就快o( ̄ヘ ̄o#)成功啦


四. board.c文件的修改(核心)


直接运行程序的话,会报这个错误

#error “TODO 1: OS Tick Configuration.”


1.所以第一件是将其注释掉,然后阅读下面的注释。 需要使能硬件定时器也就是我们所说的滴答定时器,然后去调用rt_os_tick_callback函数,也是就滴答定时器中断函数调用这个函数。

8.png

2.编写滴答定时器与中断函数。这些函数直接写在board.c文件中,就好了

9.png

3.注释掉修改的相关的中断函数,这里可以查看官网的解释。SysTick_Handler也要注释,因为我在这个文件夹里面重新定义了。

10.png

4.最后,整个文件改动如下


image.png

5.在main函数中添加#include “rtthread.h”,然后调用RT提供的延时函数,如果led灯闪烁,着说明配置成功

image.png


公众号:FPGA之旅

目录
相关文章
|
4月前
|
IDE 编译器 开发工具
【STM32 LVGL基础教程】初识LVGL
【STM32 LVGL基础教程】初识LVGL
256 0
|
传感器 数据采集 监控
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
在网上收集了接近上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享(涵盖了大部分的毕设课设题目),学习单片机的最好教程,也可以作为帮助大家在做电子课设毕设时有利的帮助,可以从以下百度网盘下载(按照编号下载)。
1843 0
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
|
11月前
STM32F103C8T6 TFTILI9328液晶显示屏使用教程
STM32F103C8T6 TFTILI9328液晶显示屏使用教程
91 0
|
11月前
|
存储 IDE 安全
STM32CubeMX开发教程(2)— 使用教程(点亮LED灯)
STM32CubeMX开发教程(2)— 使用教程(点亮LED灯)
432 0
|
11月前
|
Ubuntu 网络协议 中间件
STM32CubeMX开发教程(1)— 安装教程
STM32CubeMX开发教程(1)— 安装教程
737 0
|
传感器 算法
STM32智能小车循迹教程
STM32智能小车循迹教程
547 0
|
Web App开发 移动开发 测试技术
uCosII移植STM32F103教程
本文介绍如何快速移植uCosII源码到STM32F103工程,使用标准库进行快速开发
1582 0
uCosII移植STM32F103教程
|
1月前
【STM32】基于HAL库的360度编码器、摇杆代码编写
【STM32】基于HAL库的360度编码器、摇杆代码编写
|
3月前
|
C++ 芯片 编译器
STM32F103标准外设库—— 新建工程与库函数(四)
STM32F103标准外设库—— 新建工程与库函数(四)
51 0
STM32F103标准外设库—— 新建工程与库函数(四)
|
3月前
|
传感器 芯片 内存技术
STM32F103标准外设库——认识STM32(一)
STM32F103标准外设库——认识STM32(一)
114 0
STM32F103标准外设库——认识STM32(一)