stm32 使用CubeIDE 移植RTX5

 STM32 使用st的官方开发环境 cubeide (eclipse gcc)移植 cmsis rtos2 RTX5 实时操作系统

这套环境的主要优势是免费。cubeide免费使用。RTX5 免商业版税(已从原keil中剥离出来,现在完全开源免费)。

一,环境

  • 芯片:stm32f401rct6
  • 内核:cortex m4f
  • 指令集:armv7m
  • 编译:gcc
  • ide:CubeIDE(eclipse)
  • CMSIS版本:5.9.0
  • RTOS2/RTX5  V2.1.3
  • HAL库开发
  • cubeMX配置生成

二,简明步骤

1,cubemx配置,注意点sys时钟选除sysclock外其他时钟源,例如TIM11,因为sysclock时钟源给rtos用了 ,同时HAL库需要使用到sys时钟,因此只能另外指定时钟源。

 2,拷贝CMSIS中 RTOS2 到工程目录

 

3,添加RTE_Components.h文件,此文件可以自己写,或从其他keil MDK生成的工程中直接复制过来,注意 文件中的device header 要匹配对应芯片头文件

4, 进入CUBEIDE 工程中,右键工程 ,点击Refresh后可以看到新添加进的文件。再同样右键,并点击Properties 

 

5,在C/C++ General中Paths and Sysmbols中添加引用与宏定义 

在includes, GNU C添加图中路径
在includes, Assembly中添加图中路径
在Sysmbols, GNU C添加图中宏

在Sysmbols, Assembly添加图中宏

 6,在C/C++ General中Source Location中添加RTOS2路径下全部程序源文件 

添加RTOS2路径

 7,在C/C++ General中Source Location中排除RTOS2路径下不需要的程序源文件 

注意RTX/Source/GCC下保留对应自己芯片内核的.S文件,即排除不是自己内核的.S文件 (stm32f401对应保留的内核指令集文件是irq_armv7m.S)

另外,也可以直接从磁盘删掉这些需要排除的文件,就可以省掉这步了。

双击RTOS2路径,添加要排除的路径与文件

8,以上操作完成后检查下RTOS2目录,排除的文件或目录会划斜杠

 

9,在stm32f4xx_it.c注释或删除图中三个函数SVC_Handler、PendSV_Handler、SysTick_Handler,否则编译时会报重定义错误,因为这三个函数被RTOS接管了

10,最后在main.h中添加cmsis_os2.h并BUILD工程,完成移植

 

 三,参考

1,GD32F30X适配CMSIS RTOS2(RTX5内核)

2,【GD32F427开发板试用】在IAR环境中移植RTX5   [推荐]

3,STM32F407+CubeMX+Keil上移植RTX5实时系统

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/47479.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vue 项目优化

去除冗余的css 消除框架中未使用的CSS,初步达到按需引入的效果 使用背景:vue2.x, webpack3.x 使用插件:purifycss-webpack 安装: npm i purifycss-webpack purify-css glob-all -D安装后各个插件的版本: “glob-all”: “^3.3.…

单片机第一季:零基础8——蜂鸣器

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 想要压电式蜂鸣器发声&…

2核4G服务器腾讯云或阿里云能安装几个网站?性能如何?

2核4G服务器能安装多少个网站?2核4g配置能承载多少个网站?一台2核4G服务器可以安装多少个网站?阿腾云2核4G5M带宽服务器目前安装了14个网站,从技术角度是没有限制的,只要云服务器性能够用,想安装几个网站就…

关于AWS MSK Connector Execution Role的解释

尽管在创建AWS MSK Connector时,Execution Role是一个必填项,就像下面这样: 并且在官方文档中给出的Execution Role样例: https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-service-execution-role.html 中也…

【hadoop】在linux上设置Hadoop的环境变量

设置Hadoop的环境变量 解压压缩包编辑环境变量激活环境变量 解压压缩包 使用下面命令对hadoop的压缩包进行解压 tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/编辑环境变量 在linux中,~/.bash_profile文件是设置环境变量的文件,我们使用vi进行编辑。…

RFC959 文件传输协议(FTP)翻译

发布时间:2023-07-12 21:14:54 文章目录 前言本备忘录的状态1. Introduction2. Overview2.1 历史2.2 术语2.3 The FTP Model 3. Data Transfer Functions3.1 Data Representation And Storage3.1.1 DATA TYPES3.1.1.1 ASCII TYPE3.1.1.2 EBCDIC TYPE3.1.1.3 IMAGE T…

SPEC CPU 2006 在 CentOS 5.0 x86_64 古老系统测试【4】-O3 不支持 编译失败

gcc -O3 编译失败 结论:默认情况下SPEC CPU 2006 1.2 不支持 gcc -O3编译参数。

【5G PHY】5G 调制与编码策略(MCS)介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

自定义程序包不存在的解决方法

方案一&#xff1a; 在pom文件中加入以下代码 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.4.2</version><configuration><skipTests>true</sk…

回归预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于B…

Django 分布式路由

简介&#xff1a; Django中&#xff0c;主路由配置文件(urls.py)可以不处理用户具体路由&#xff0c;主路由的配置文件可以配置成做请求的分发&#xff08;分布式请求处理&#xff0c;分发到子路由而不是具体的视图函数&#xff09;。具体的请求可以由各自的应用来处理。 步骤…

重启Oracle数据库

root 用户登录服务器。 1、 以oracle身份登录数据库&#xff0c;命令&#xff1a;su - oracle 2、 进入Sqlplus控制台&#xff0c;命令&#xff1a;sqlplus /nolog 3、 以系统管理员登录&#xff0c;命令&#xff1a;connect / as sysdba可以合并为&#xff1a;sqlplus sys/密码…

vite性能优化提升开发体验之hmr和预编译

一、vite中的预编译 1. 预编译概念介绍 Vite&#xff0c;一个由Vue.js开发者尤雨溪开发的新型前端构建工具&#xff0c;主要利用了现代浏览器支持的ESM&#xff08;ES模块&#xff09;来进行快速开发。Vite在法语中意为“快”&#xff0c;其中最大的亮点就是其开发服务器启动…

使用qemu创建ubuntu-base文件系统,并安装PM相关内核模块

目录 一、配置镜像二、使用qemu模拟nvdimm&#xff08;安装PM相关内核模块&#xff09;运行记录 遇到的一些问题1、ext4文件系统损坏问题&#xff1a;系统启动时&#xff0c;遇到ext4的报错信息解决办法&#xff1a;2、内核模块未成功加载3、qemu报错4、主机终端无法正常打开 流…

flask实现get和post请求

1、实现get请求 在项目根目录创建app.py 代码如下&#xff1a; from flask import Flask,render_template,requestapp Flask(__name__)app.route("/regist/user/", methods[GET]) def regist():return render_template("regist.html") #默认去templat…

【基本绘图注释函数】——MatLab画图

目录索引 title&#xff1a;ylable&#xff1a;legend&#xff1a; title&#xff1a; 在绘图中添加标签。此类函数的输入是一个字符串。MATLAB 中的字符串是用双引号 (") 引起来的。 上面一部分画图代码这里省略 title("Sample Mass")ylable&#xff1a; 为y轴…

03插值与拟合

9.已知飞机下轮廓线上数据如下&#xff0c;分别用分段线性插值和三次样条插值求x每改变0.1时的y值。 x035791112131415y01.21.72.02.12.01.81.21.01.6 %9.已知飞机下轮廓线上数据如下&#xff0c;分别用分段线性插值和三次样条插值求每改变0.1时的y值。x [0 3 5 7 9 11 12 1…

Dreamweaver批量替换所有超链接替换成#

需求&#xff1a;想要将页面所有链接地址替换为#。 方法一 CTRLF打开“查找和替换”&#xff0c;勾选“使用正则表达式” 查找 href"([\s\S]*?)" 替换为 href"#" 副作用&#xff1a;样式表链接地址也会被替换为#&#xff0c;需提前备份。 方法二 也可以查…

【Hello mysql】 mysql的索引

Mysql专栏&#xff1a;Mysql 本篇博客简介&#xff1a;介绍mysql的索引 mysql索引 索引索引是什么索引的分类索引作用查看 磁盘mysql的工作过程认识磁盘定位扇区磁盘随机访问(Random Access)与连续访问(Sequential Access)mysql和磁盘交互的基本单位 索引的理解建立测试表为何I…

dede tag不以关键词作为url以数字作为url方法修改

dede tag不以关键词作为url以数字作为url方法修改 打开/include/taglib/tag.lib.php 查找以下代码&#xff1a; $row[link] $cfg_cmsurl."/tags.php?/".urlencode($row[keyword])."/"; 替换为&#xff1a; $row[link] $cfg_cmsurl."/tags.php?/&q…