打印
[STM32H7]

STM32H745 的 FreeRTOS 是单核工作,还是双核工作(新手题)

[复制链接]
1086|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2025-1-15 15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在STM32CubeMX 中配置的时候,FREERTOS分为_M4和_M7,应该是分布对应Cortex_M4和Cortex_M7的核。
那实机运行RTOS的时候,运行的是单核还是双核?
这个是根据STM32CubeMX中的Interface 来?
还是说 745运行RTOS的时候就是跑双核的?
另外运行RTOS的时候,SPI ,Uart,I2C等驱动程序需要自己写吗?


使用特权

评论回复
沙发
捧一束彼岸花| | 2025-2-11 01:36 | 只看该作者
STM32CubeMX中配置FreeRTOS时,确实会根据Cortex-M4Cortex-M7内核来区分配置,这主要是为了适配不同型号的STM32微控制器,这些微控制器可能搭载M4核、M7核,或者某些高端型号可能同时搭载双核(如Cortex-M4Cortex-M7

使用特权

评论回复
板凳
西洲| | 2025-2-11 02:36 | 只看该作者
如果STM32微控制器只搭载了一个核心(M4M7),那么RTOS将只在该单核上运行

使用特权

评论回复
地板
风凉| | 2025-2-11 03:37 | 只看该作者
对于同时搭载了Cortex-M4Cortex-M7双核的STM32微控制器(如STM32F7系列中的某些型号),RTOS可以配置为在双核上运行

使用特权

评论回复
5
故意相遇| | 2025-2-11 04:29 | 只看该作者
这通常涉及到更复杂的任务分配和中断管理,以确保两个核心之间的有效协作和通信。然而,是否真正使用双核运行RTOS还取决于具体的应用需求和系统设计

使用特权

评论回复
6
白马过平川| | 2025-2-11 05:38 | 只看该作者
STM32CubeMX中,RTOS的配置并不直接由“Interface”决定,而是由所选的STM32微控制器型号和其内核架构决定

使用特权

评论回复
7
将爱藏于深海| | 2025-2-11 06:46 | 只看该作者
在配置RTOS时,应确保选择与所用微控制器型号相匹配的内核版本(_M4_M7

使用特权

评论回复
8
她已醉| | 2025-2-11 07:37 | 只看该作者
STM32F745是一款搭载Cortex-M7内核的高性能微控制器。如果仅从内核角度来看,它只具备一个M7核,因此在运行RTOS时将是单核运行。然而,如果应用需求非常高,且STM32F745的性能不足以满足实时性要求,那么可能需要考虑使用其他搭载双核或多核的STM32型号

使用特权

评论回复
9
公羊子丹| | 2025-2-11 08:16 | 只看该作者
STM32H745的FreeRTOS是可以分别在M4和M7上独立运行的,但默认情况下是单核各自运行一个RTOS实例,不会自动形成双核协作。

使用特权

评论回复
10
周半梅| | 2025-2-11 08:17 | 只看该作者
CubeMX中的_M4和_M7配置就是分别为M4和M7核心生成各自的FreeRTOS代码,它们运行各自的任务,通信需要通过IPC机制(比如RPMsg)。

使用特权

评论回复
11
帛灿灿| | 2025-2-11 08:18 | 只看该作者
如果你想让两个核心协同工作,需要自己通过共享内存、消息队列等方式设计数据通信机制,否则两个核的FreeRTOS实例是彼此独立的。

使用特权

评论回复
12
童雨竹| | 2025-2-11 08:19 | 只看该作者
SPI、UART、I2C等外设驱动程序在CubeMX中勾选相应模块后会自动生成基础代码,但如果有复杂需求,还是需要自己扩展。

使用特权

评论回复
13
万图| | 2025-2-11 08:20 | 只看该作者
一般来说M7核适合跑计算密集型任务,M4核可以用来处理简单控制任务或者外设数据收发任务,这样能更好地发挥双核的优势。

使用特权

评论回复
14
Wordsworth| | 2025-2-11 08:22 | 只看该作者
FreeRTOS并不会默认支持双核协作,CubeMX只是生成了两个核对应的配置代码,并没有把它们“联通”起来,需要你自己设计通信机制。

使用特权

评论回复
15
Bblythe| | 2025-2-11 08:23 | 只看该作者
你可以试试用OpenAMP库来管理M4和M7之间的通信,它是ST推荐的多核通信方案,避免自己手动写太多低层代码。

使用特权

评论回复
16
Pulitzer| | 2025-2-11 08:24 | 只看该作者
单核还是双核运行RTOS,不仅取决于CubeMX配置,还看你是否需要双核并行的应用场景;如果只是基础任务分配,单核可能就够用了。

使用特权

评论回复
17
Uriah| | 2025-2-11 08:25 | 只看该作者
M4和M7核可以通过共享SRAM或外设实现数据交互,但在访问资源时要特别注意同步,避免数据竞争。

使用特权

评论回复
18
Clyde011| | 2025-2-11 08:26 | 只看该作者
如果只是新手学习阶段,建议先在M7核上跑FreeRTOS,把外设搞清楚,再尝试双核协作会更容易上手。

使用特权

评论回复
19
失物招領| | 2025-2-11 08:27 | 只看该作者
STM32上运行RTOS时,SPIUARTI2C等外设的驱动程序通常不需要自己从头开始编写。STM32CubeMX提供了丰富的HAL库(硬件抽象层库),这些库包含了各种外设的驱动程序接口

使用特权

评论回复
20
春日负喧| | 2025-2-11 09:48 | 只看该作者
一般来说,通过STM32CubeMX配置工具,可以方便地生成初始化代码和HAL库调用代码。因此,在配置好RTOS和所需外设后,STM32CubeMX可以自动生成包含RTOS任务和外设驱动程序的完整项目代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1020

主题

3603

帖子

7

粉丝