前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于SMP

关于SMP

作者头像
Taishan3721
发布2019-10-31 11:21:20
9760
发布2019-10-31 11:21:20
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

多核在嵌入式实时系统里应用的越来越多,而VxWorks从6.6开始支持多核,到6.8就算支持的不错了。风河提供了两种多核技术:Symmetric multiprocessing (SMP) 和Asymmetricmultiprocessing (AMP)。今天简单看看SMP的使用

前提是有个多核的Target,以及支持SMP的BSP,例如我的Target是8核的

使用合适的BSP创建VIP的时候,选中’SMP support’就可以了

Bootrom是不需要修改的,因为Bootrom只使用第0个核

在VIP的Component Configuration里有个参数叫 'VX_SMP_NUM_CPUS’,根据实际情况设置它的值,一般都是2的幂。当然,我们可以故意给它个BT的值

系统的头文件里还定义了一个宏VX_MAX_SMP_CPUS。因此,VX_SMP_NUM_CPUS超过VX_MAX_SMP_CPUS之后,就不起作用了

启动Target,查看当前是否多核有个简单方法,就是i命令

OS里配置了几个核,就可以看到几个叫tIdleTaskN的任务,而且任务的优先级是(255+32),有点意思吧

来看几个SMP相关的命令

在Component Configuration里还有一个参数ENABLE_ALL_CPUS,默认值是TRUE

如果把它设置为FALSE,则系统只启动核0。后期可以使用函数kernelCpuEnable()来使能其它核

以后有空再来叨叨Affinity的使用 这正是: 硬件有多核,软件更灵活。 默认从零启,其余可操作。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档