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外其他时钟源,因为sysclock给rtos用了 ,而HAL库

 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.hqwc.cn/news/18387.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

偏振光的斯托克斯矢量表示法

《光纤偏振模色散原理 测量与自适应补充技术》张晓光 第二章

深入理解Linux网络——内核是如何发送网络包的

文章目录 一、相关实际问题二、网络包发送过程总览三、网卡启动准备四、数据从用户进程到网卡的详细过程1)系统调用实现2)传输层处理1. 传输层拷贝2. 传输层发送 3)网络层发送处理4)邻居子系统5)网络设备子系统6&#…

智能机器人嵌入ChatGPT会给社会带来哪些进步

智能机器人技术在当今世界中扮演着越来越重要的角色,而其中一个令人印象深刻的例子就是ChatGPT。ChatGPT是一种基于人工智能的对话系统,它利用强大的自然语言处理和生成模型,可以与人类进行自然而流畅的对话。ChatGPT内置了智能机器人技术&am…

92.qt qml-日期/日期时间/时间选择器(日历选择器)

截图如下所示: 效果图如下所示: 1.前言 QML日历组件我们之前移植过: 67.qt quick-qml自定义日历组件(支持竖屏和横屏)_qml日历_诺谦的博客-CSDN博客 但是该组件内部代码比较坑的就是全部使用自定义对象,导致性能不行,动画卡顿,并且不好加时间选择,所以本章我们重新学…

跨域问题怎么解决跨域问题

在前端领域中,跨域是指浏览器允许向服务器发送跨域请求,从而克服Ajax只能同源使用的限制。 同源策略是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,…

Maven工程分模块开发讲解及入门案例

1.分模块开发的意义 一个模块只做自己对应的功能,提升开发效率,将一个工程拆分成若干个子模块方便之间相互调用,接口共享,降低耦合度提高代码复用率。 2.分模块开发入门案例 下面将domain这个模块从当前模块当中给拆分出来。 …

Sui 8192:如何使用Sui对象撼动游戏领域

Ethos通过其Sui 8192游戏不仅展示了对象在Sui上的力量,还展示了基于对象的游戏如何有力地撼动游戏行业。每个玩家在移动游戏中的方块时都会铸造一个新的对象,类似于铸造NFT,这为每个独立玩过的游戏提供了永久上链的机会。 Sui 8192游戏的规则…

HashMap学习总结

1. JDK 1.8 主要进行了哪些优化? 1)底层数据结构从“数组链表”改成“数组链表红黑树”,主要是优化了 hash 冲突较严重时,链表过长的查找性能:O(n) -> O(logn)。 2)计算 table 初始容量的方式发生了改…

【七天入门数据库】第一天 MySQL的安装部署

系列文章传送门: 【七天入门数据库】第一天 MySQL的安装部署 【七天入门数据库】第二天 数据库理论基础 【七天入门数据库】第三天 MySQL的库表操作 MySQL数据库存在多种版本,不同的版本在不同的平台上(OS,也就是操作系统上&a…

python爬虫之playWright解密传参

参考文章: Python和js实现逆向之加密参数破解_js btoa python_biyezuopinvip的博客-CSDN博客 JS逆向——借助playwright实现逆向_lishuangbo0123的博客-CSDN博客 简单方便的 JavaScript 逆向辅助模拟方法_token 自己整理的代码 from playwright.sync_api impor…

自定义设置echarts label里的颜色

自定义echarts label里的颜色 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: bar,label:{show: true,formatter: function (params){console.log(params)if (pa…

使用 ActiveReportsJS 在线查看学生进度报告

ActiveReportsJS在线查看学生进度报告的能力为家长和教育工作者带来了许多好处。在线访问为家长和学生提供了对学生学习成绩的实时洞察,使他们能够随时了解情况并参与教育。他们可以轻松跟踪进度、监控出勤情况、查看成绩并确定可能需要额外支持的领域。 对于教育工…