【每日话题】单核 MCU 迁移到多核 MCU:分享挑战与应对之策赢百枚家园币
#每日话题#多核MCU能够同时执行多个任务,显著提高系统的处理能力。这对于需要实时响应的应用(如汽车控制系统和工业自动化)尤为重要。
但如果要将你的设计从单核MCU迁移到多核MCU上,势必面临着代码迁移带来大量代码重构、以及多核系统的调试、系统应用之间的通信等问题。
你是否有将单核开发迁移到多核MCU上的经验和心得? 如何更快速高效实现代码迁移和新的应用构建?
话题奖励:
1、凡有效参与话题讨论的回帖者均可获得100家园币奖励
2、抽取2位发表优质回贴的友友奖励500家园币
活动时间:2024.12.20——2024.12.31
禁止使用AI生成内容参与话题讨论
如果应用不需要高并发或高性能计算,那么使用多核MCU可能是过度设计 同构MCU包含两个相同的CPU,适合并行或冗余运行;异构MCU包含不同类型的处理器,适合特定计算密集型操作 复杂性增加,多核编程相比单核编程更加复杂,需要处理更多的同步和互斥问题。开发人员需要更加谨慎地设计代码,以避免潜在的并发错误。单核开发迁移到多核MCU上是一个需要仔细规划和执行的过程。通过充分的前期准备、代码迁移与优化、调试与测试以及持续的学习与改进,可以成功地实现这一迁移并充分利用多核MCU的性能优势。 如果将单核MCU系统的程序搬到多核系统中的话,本人通常会将单核原有程序专门放置于多核系统中一个固定区域,这种操作的好处有两点:首先是可以为日后的修改和补充等操作带来便利;第二点就是这样可以避免原有程序同其它程序间的纠缠,避免不必要的故障现象出现。当然如果单核系统的程序在移入多核系统时要和新程序兼容运行,本人多会把原有程序做成一个嵌套。 有没有可能只需底层驱动进行修改,应用层不动也可以移植成功。 平时用rtos做开发,虽然也是分时完成的。但是如果移植到多核的话会相对容易些 应该就是两个mcu集成到一块封装上吧 多核意味着多线程,对层逻辑管控更苛刻,特别是逻辑嵌套和中断嵌套的管理,状态机理论要熟悉才行。 在车用mcu例子中,单核处理器控制电机在硬件设计,代码编辑和系统架构方面成本较低,结构简单相应快因此效率较高,根据需求和功能应用方面,双核或多核mcu相对复杂,适合多任务并行处理,在自动驾驶中地盘控制,域控和电源控制,云通信等。在单核向多核移植过程中,底层逻辑不会改变,应随着功能性拓展修改应用层代码。同系列mcu的系统平台下,一般单核向多核升级问题较小,多核降级到单核问题相对多, 多核开发与单核也差不多,只是需要处理核与核之间的通信就好了。 在当下这么卷的MCU行业,各家除了在外设上创新外,也都不约而同的在向多核方向发力,有做同构多核的,有做异构双核的,有做大小核高低性能搭配的,有做ARM和risc-v搭配的,各种方案层出不穷。但更多是还是大小核高低性能搭配的,以便实现1+1>2的效果,以实现降本增效的效果。在多核方案中比较难的是内核间通信问题,在裸机使用和RTOS使用上都有些问题需要注意,厂家和各RTOS都注意到了先关问题,都给出了相应的解决方案。比较遗憾的是我也只听过相关的介绍,没有实际使用的经验,希望以后会用到,再发表踩坑经验吧。 平时用rtos做开发,虽然也是分时完成的。但是如果移植到多核的话会相对容易些 不了解多核的内部资源分配,把单核程序改成多核程序,会有难度吧?是不是要先学习内部框架、资源分配,在充分理解的基础上改造,更可靠? 和操作系统好有一比,一个核处理一个任务,任务间通讯,同步,交互,协作。 大型设备功能复杂,需要多个MCU实现不同功能,这样多个MCU也就是实际上的多核。多个MCU间一般是主从式结构,应答式通讯,或者中断触发。实现信息交互,他们之间有通讯协议。想必多核也是这样的原理吧。或者大差不差。单核移植到多核,应该不叫移植,重新开发。 铝电解电容的容值误差在20%左右,那么瓷片电容,铝电容,独石电容的哪种电容误差最下?能到达多少? 多核MCU对于使用单核MCU、执行重负荷的多任务处理的应用无疑是一种“土枪换**”式的跨越式解决方案,有助于大幅提升系统性能,期望多核MCU厂商能够提供高效、易用的软件开发工具,以降低开发难度,提高开发效率 可不可以将多核看成是具有中断优先级的多个进程来对待?如果可以,那么可以构建处理框架,让多个核心组合协调起来,我就把它看成一个个线程,分工合作,该调用的时候就调用,每个核心专心处理分内的事!我想这是不是一种思路? 如果之前熟悉RTOS的话,使用多核很容易啊。完全没有难度。
单核迁移到多核,实时性会更好,关键的逻辑使用单独的核来执行,效果会更好。比如无刷电机的控制,foc用一个核,通讯及其他逻辑用一个核