不管你是Arduino领域的新手还是经验丰富的开发人员,很可能你还只使用过单核在进行编程。 这没有什么好笑的---- 事实上,直到几天前我才使用Arduino IDE进行了第一次多核编程。 我和所有其他Arduino粉丝都非常喜欢IDE的易用性以及MicroController 开发所需的很少的环境配置。 同样的IDE,只需要很少的环境配置,就可以用于多核开发了。
下面来看看怎样编写使用六个并行MCU内核的程序吧,但在此之前首先让我们来了解为什么多核优于一个内核。

为什么要使用多核?

如果你的项目是关于读取传感器的值或让LED亮起来这种简单而无需任何复杂的计算的工作,那么你的电路板的MCU有1个或100个核心都是一样的。 这种简单地工作无论用1核还是100核最后得出的效果都是很相似的 - 至少从人类可以感知到的角度来看。 但是,通过多个核心,你可以开发具有复杂算法和计算的更先进的解决方案,例如快速傅里叶变换,手势识别,边缘计算,预测性维护,甚至是简单的实时3D渲染。 下面,我们将介绍如何利用索尼的物理网开发套件"Spresense"来在Arduino IDE里进行多核编程。 该板不仅具有六个ARM核心,还有高达156 MHz的频率。 而且如果需要的话,这个板子可以使用电池供电。

第一步: 在Arduino IDE里安装Spresense

Spresense Arduino软件包1.3.0版以上支持使用Arduino IDE进行多核编程。 如果你还没有安装它,最简单的方法是按照Spresense开发人员网站上的步骤操作。
链接:https://developer.sony.com/develop/spresense/developer-tools/get-started-using-arduino-ide/set-up-the-arduino-ide#_installation_through_arduino_ide_board_manager

第二步:打开示例代码

我们使用的例子将用一个主核和四个子核,在Arduino IDE的文件菜单中,打开示例代码:File → Examples → MultiCore MP → Boot → Main

这个 main.ino 代码(Sketch)中 包含了多核MP库,在FOR循环中调用MP.begin(subid)函数来启动每个子核:

第三步:编译并上传主核心代码

为了上传Spresense板上面正确核心的代码(Sketch),从Arduino IDE 工具菜单选择:Tools → Core → MainCore

接下来,按下上传按钮上传编译主核代码:

第四步:快速检查

如果上传成功了的话,主核现在应该已经被编好程了。你可以打开串口检测器看看输出,如下图,主核工作良好,其他的核心有一个错误。这当然,因为我们还没有上传他们的代码,这就是我们接下来要做的。

第五步:子核心编程

在IDE中,打开File → Examples → MultiCore MP → Boot → Sub1

setup()函数里, MP.begin()函数通知主核各个子核已经启动好了. 在loop() 函数里, MPlog()每一次迭代输出 一次“loop” 并且让第一个LED灯闪一下。

第六步:子核程序编译上传

从Arduino IDE 的工具菜单中选择SubCore 1:Tools → Core → SubCore 1.

按下上传按钮编译上传子核程序到板子上
然后,对剩下的三个子核重复5和6步。

第七步:最终结果

如果子核程序上传的对的话,LED灯会闪烁,并且串口监视器会输出所有核心的记录:

如果你想把所有核心代码放在一个Sketch里,可以参照 MessageHello这个示例代码,在Spresense的官方网站上,更多的例子也可以在Spresense开发者官方网站上找到。

arduino 上传项目出错_Arduino多核编程:简单例子相关推荐

  1. arduino上传项目出错_Arduino入门前你该知道的事儿

    创建Arduino项目可以给您带来很大的满足感,但很多时候初学者不知道从哪里开始.启动创建项目时需要考虑很多事情,如果您没有制作的经验,那可能会令人困惑. Arduino是什么   Arduino是一 ...

  2. arduino UNO总是上传项目出错 问题的解决

    这里写自定义目录标题 arduino UNO总是上传项目出错 问题的解决 arduino UNO总是上传项目出错 问题的解决 手头上有两块arduino uno版.一块是原厂电路,另一块是改款的. 问 ...

  3. arduino上传项目总是出错,串口通信或TX/RX显示上传项目出错

    今天摸arduino的时候又遇到了这个问题,突然想起多年以前的坑: 如果项目中需要使用TX,RX口,那么在上传的时候一定不能把这两个插上,否则会报错,而且是各种奇怪的错误,典型就是会显示:项目上传出错 ...

  4. 使用idea上传项目到gitHub

    上传项目到gitHub 创建好后开始提交本地项目代码如图: 选中VCS选中图中的按钮如图所示: 然后再选中Src点中add按钮如图所示: 然后点中commit Directory后 打开终端进行项目根 ...

  5. 在Eclipse上使用egit插件通过ssh协议方式上传项目代码的具体步骤

    在Eclipse上使用egit插件通过ssh协议方式上传项目代码 前戏: 使用ssh方式可以不通过https协议,避免直接提供账号密码的方式上传项目到git在线服务器,如Bitbucket.GitHu ...

  6. git安装配置及第一次上传项目到github

    对于第一次上传项目到github,走了不少弯路,下面给大家介绍一下怎么安装Git及第一次上传项目到github时需要注意什么. 首先,先说一下git要怎么安装. 1.下载Git.下载地址:https: ...

  7. VS2017中使用码云上传项目以及问题汇总

    方法一:个人项目和企业项目都可用此方法上传项目 1.下载码云在VS中的插件:下载地址 2.下载之后重启VS,然后打开团队资源管理器,也可以点击"团队"--->"管理 ...

  8. 用Git向gitHub上传项目

    用Git向gitHub上传项目 1.安装git 2.在git安装目录下,运行git-bash.exe  如图所示 3.在git中绑定你注册gitHub是的用户名.邮箱. $ git config -- ...

  9. Windows下Git上传项目代码记录

    Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 1.在git服务上创建一个test项目: 2.https://git-for-windows.github.io/ ...

最新文章

  1. 蓝鸥Unity开发基础——Switch语句学习笔记
  2. linux操作系统上网,linux操作系统下无法上网
  3. ASP.NET MVC 4高级编程(第4版)
  4. 如何使PING命令带上日期,做长久的跟踪
  5. springmvc的执行流程_springmvc执行流程
  6. selinux 的管理
  7. Java static , final和常量设计
  8. Sublime Text 2 快捷键用法大全(转)
  9. python高性能_Python高性能分布式执行框架-Ray
  10. 修复 www.shouyela.com 造成的 IE 问题
  11. python调用百度地图,通过经纬度定位
  12. 什么是公网ip?--快解析科普
  13. mysql 脏读 不可重复读 幻读_mysql事务隔离级别/脏读/不可重复读/幻读详解
  14. 1665. 计算数字
  15. 机器学习:SVM支持向量机理解
  16. Vi/Vim 编辑器常见命令
  17. Spring Boot 整合——Spring Boot整合kafka整合
  18. 实现一个Android电子书阅读APP
  19. 你只能成为互联网“炮灰”?(2)
  20. PS-oneday-文件的打开新建和储存

热门文章

  1. 1100: 求组合数(函数专题)
  2. 大数据基础学习三:Ubuntu下安装VMware Tools超详细步骤及需要注意的问题(以ubuntu-18.04.3、Mware Workstation 15.1.0 Pro为例)
  3. 软中断和硬中断的区别
  4. 各种排序(数据结构复习之内部排序算法总结)
  5. r语言regexpr函数_R语言学习笔记-文本挖掘之字符处理(1)
  6. chrome 新的session 设置_为什么还是由这么多人搞不懂Cookie、Session、Token?
  7. cudnn.deterministic = True 固定随机种子
  8. Redis 核心技术与实战
  9. xtrabackup备份脚本
  10. 问题 J: 寻找复读机【模拟】