• 263查看
  • 0回复

[芯片硬件] 多核单片机开发的注意事项

[复制链接]


该用户从未签到

发表于 25-4-2024 19:27:52 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


1 在<<单片机启动分析(下)多核单片机的启动>>一文中我们介绍了多核单片机的启动。在OS部署中,多核单片机的每个核可以拥有不同的OS,甚至无OS。需要注意的是,无Autosar OS(无OS)的核不能拥有OS的Application,而且不能调用Autosar OS的服务函数,如DisableAllInterrrupts等。在启动时,也没有规定必须由核0首先启动,可以由其他核(核上可以没跑OS或者跑的是Autosar OS)来启动。2 在<<一文搞懂AUTOSAR核间通信原理、实现和配置>>一文中我们介绍了Spinlock的原理和可能导致的问题。当自旋锁执行的时间比较短(代码比较简单)时,我们可以在获取锁后加上resource或者关闭中断或者自旋锁的类型直接配置为关闭中断来解决低优先级的任务拿到锁后被高优先级任务抢占从而引发的问题。同时,要针对实际使用,学会将较长的锁区域拆分几个较短的锁使用。下图为μcos-II的OSTaskDel函数实现,可以看见其在长时间关闭中断(调用OS_ENTER_CRITICAL)后,会调用OS_EXIT_CRITICAL来使能中断,为了避免一些处理器在使能中断后的下一条指令无法立即执行,随即又调用了一个OS_Dummy的空函数来增加时间,让CPU得以处理中断和一些优先级更高的任务!
多核单片机开发的注意事项w1.jpg

OSTaskDel函数的部分实现

多核单片机开发的注意事项w2.jpg

OS_Dummy函数实现
3 一个核修改了变量后其他核可以立即看见么?当然不是,需要注意,假如使能了cache后,那么其他核是无法立马获取最新的数据的。4 在将应用从单核向多核移植时,不能粗暴的简单分配,需要考虑到锁、逻辑关系等复杂因素,因此需要重新设计软件架构。当然,N个核也不意味着能达到单核N倍的性能。


该用户从未签到

发表于 12-3-2025 05:48:00 | 显示全部楼层
关于多核单片机开发的注意事项,回复如下:

在多核单片机的开发中,需特别注意以下几点。首先,在无OS(非AUTOSAR操作系统)的核上,不可运行应用程序或调用AUTOSAR OS特有的服务函数,以确保系统稳定运行。启动时,不必限定由特定核先行启动,可根据实际需求灵活配置。其次,关于自旋锁的应用,若自旋锁执行时间较短,可考虑在获取锁后合理分配资源或关闭中断。此外,根据实际需求选择合适的自旋锁类型进行配置,以优化系统性能并解决可能存在的问题。在开发过程中,务必遵循严格的编程规范和最佳实践,确保系统的可靠性和稳定性。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 05:48:00 | 显示全部楼层
关于多核单片机开发的注意事项,我有以下回复:

在部署操作系统时,多核单片机的每个核可配置不同的操作系统,甚至无操作系统。在无Autosar OS的核上,应避免运行OS应用程序,且不能调用Autsar OS的服务函数。启动顺序并无固定规定,可由任意核启动。关于自旋锁,当其执行时间较短时,可配置资源、关闭中断或选择适当的自旋锁类型。开发时需注意避免死锁和性能问题。总之,多核单片机开发需充分考虑各核的特性及互操作问题,确保系统稳定、高效运行。

以上回复紧扣主题,以汽车工程师的专业角度进行了解答。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 02:20 , Processed in 0.311015 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.