你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32移植RT-Thread实时操作系统

[复制链接]
STMCU小助手 发布时间:2022-6-23 21:00
一. 简介
0 k7 j8 y' B& w  V% G) `/ n
    在众多RTOS中,选择了RT-Thread进行学习,最开始也是徘徊了很久,看知乎,刷b站,最终决定支持国货。接下来,将会在这里持续分享关于RT-Thread的相关知识和质询。(绝大多数是基于stm32平台的)% j% g. ]" n1 L% [+ F7 @0 s3 D0 i

. ^* z. b$ e5 M5 |: o* q; W
& Z- b6 h7 w* Y* Z5 e1 X
二. 源码下载

这里是基于Nano版本的(精简版),主要是方便,简单。后面熟悉的差不多了就转移到标准版本上去。下载地址如下,也可以直接去官网下载。

+ ^" K/ \: |5 Z6 t/ x/ p; O, [
, X3 R9 @9 q2 y& _+ h( F0 y% G1 R
三. 移植模板创建
1. 下载下来的源码文件目录如下,其中我们用到的有以下三个部分。component和bsp后面也是会用到的,到时候可以根据需求来添加
0 }/ X# B/ ^- e8 C" H' w4 [
3~6P3BA1R[[QDUB]51@N~W9.png
2.  创建一个rt-thread移植demo文件夹,将nano上面对应的文件夹下面的所有文件copy到这个里面来,注意,libcpu根据自己的硬件平台来选择,stm32f1,就copy M3文件夹下的所有文件到这里面来。注意还要将bsp文件夹下的board.c和rtconfig.h 复制过来。libcpu中只保留contex_rvds.S这一个.S文件。
+ W2 A6 i. r# `' r9 u; t3 C4 b

5 A8 c0 P/ I4 O4 N& a1 h3 r
# X3 N* l! n/ ?% m" L% H" j- d* ?
3.  将copy过来的文件添加到Keil中,和创建stm32工程模板类似。到这里所有的准备工作就完成了。剩下的就是修改代码了。

. m& Y5 b' ?0 @# ~

" C  S1 Z% W$ @/ h9 w
四. 修改代码( [* R) m2 S0 E# v
  • xxxx_it.c文件  :HardFault_Handler,MemManage_Handler,PendSV_Handler,SysTick_Handler,PPP_IRQHandler。将这几个函数注释掉
  • board.c文件:如下,主要是为rtt提供心脏时钟,采用其他定时器也是可以的
    3 o2 _0 X" v* k6 [1 _' F
    ``]SD%K@Y33B1AXW)X7~V_L.png

    9 {) `/ ^9 g5 N9 n* G3 c  U7 J- _$ j) Q- k. d! T2 R
这里移植就完成了。
如果是M7内核的话,还有一点需要注意的位置就是多了一个cpu_cache.c函数,里面include了一个board.h文件,nano里面没有这个文件,需要将其注释掉,替换为stm32h7xx.h,就ok啦。
2 d9 {* h  I5 V9 Y6 L: w" G: W5 a

: N9 Y3 j2 h1 y: p: C  h
% L0 d+ }& t6 _" D! ~. F1 N' `/ J
五. 效果展示: ~: Y8 Y6 b7 A1 s! o. F7 v. v
将main函数中添加三行代码(led灯的模板)如下,如果有实验效果则说明移植成功。
9@8J[XXCJ{C4$(M[V1HK9N0.png
/ r4 U2 i- G  r: }# ~* _* T, B2 P
收藏 评论0 发布时间:2022-6-23 21:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版