关于SMP

多核在嵌入式实时系统里应用的越来越多,而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的使用 这正是: 硬件有多核,软件更灵活。 默认从零启,其余可操作。

本文分享自微信公众号 - 这里只有VxWorks(VxWorks567),作者:泰山3721

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Tool之Target Connection(vx7)

    VxWorks7&WorkBench4的Debugger界面与之前的版本有了一些变化,甚至已经没有Target Server和WDB Agent这两个词儿了,取...

    Taishan3721
  • IO之Standard IO

    VxWorks provides a standard I/O package (stdio.h) with full ANSI C support that ...

    Taishan3721
  • IO之Formatted IO

    Taishan3721
  • SMP 2018今日开幕,做中国计算社会科学的先锋会议

    AI 科技评论按:由中国中文信息学会社会媒体处理专委会主办、哈尔滨工业大学承办的第七届全国社会媒体处理大会(SMP 2018)于 2018 年 8 月 2 日-...

    AI科技评论
  • 关于kubevela和oam

    kubevela 是 OAM 的实现,虽然是今年才发布的项目,但我们可以通过结合 kubevela 帮助我们更好地了解 OAM。

    机械视角
  • 数据可视化系统NGraph相关功能截图

    去年重写了报表系统并为之取名为NGraph, 目的是做一套可以通过API提交数据来生成可视化数据的系统。

    用户1416054
  • 运算符重载

    流操作符>>,<<一般使用非成员函数实现,也就是友元函数实现,这样可以符合程序员的惯性思维

    DeROy
  • c++15.0 RTTI机制, 类型转换操作, 表达式类型推断与获取

    ---- c++的语法,我准备要结束了,c++东西还有很多,比如多线程,c11新特性等,我不是很熟,以后有时间在补充吧。准备写c#了,原本准备开始java语法的...

    东风冷雪
  • 跨域与跨设备的原理

    跨域是指不同网站之间,跨设备是指不同设备(电脑、手机、平板等)之间,基础都是打通识别用户,将不同触点/设备上用户的数据串联起来。

    GA小站
  • Vue路由模块化

    之前的项目从来没有对路由进行模块化,很早之前一个同学发过一个项目,我当时看了路由,觉得很不错,那就是进行了模块化,只是都没去认真了解一下。今天分享个vue的路由...

    wade

扫码关注云+社区

领取腾讯云代金券