设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

x86版的Arduino来了:Galileo动手玩

2013-12-17 11:41| 发布者: joejoe0332| 查看: 23756| 评论: 0|原作者: ifanr|来自: ifanr

摘要: RobotPeak 是上海的一家硬件创业团队, 团队致力于民用机器人平台系统、机器人操作系统(ROS)以及相关设备的设计研发,并尝试将日新月异的机器人技术融入人们的日常生活与娱乐当中。同 时,RobotPeak 将尽力为机器 ...

  3.2.3 Arduino Sketch 是如何运行的?


  前面已经提到为 Intel Galileo 编写的 Arduino 程序实质是标准的 Linux ELF 可执行 App。那么他是如何操作 Galileo 的硬件外设呢?为此我们就需要通过浏览相关源代码找到答案。


  打开 Intel Galileo 专门的 Arduino IDE 所在目录的 hardware\arduino\x86\cores\arduino 位置,这里存放了 Intel 为 Galileo 开发的 Arduino 库的源代码。可以看出 Intel 完全重写了原先整个基于 AVR 芯片的 Arduino 实现。


图:Intel 完全重写的 Arduino 运行库代码


  这里我们挑选 fast_gpio_sc.c(实现 GPIO 操作)代码进行研究。该代码用于实现大家熟悉的 digitalWrite, digitalRead 等 IO 操作。从代码可知,Intel Galileo 上的 Linux 系统已经对应的 IO 设备包装成了 Linux 设备文件,用户编写的 Arduino 程序只需要像标准的 linux 程序那样使用 mmap/ioctl 等系统调用即可操作具体的硬件外设。


图:Galileo 上对 GPIO 操作的代码实现片段


  上述代码使用 open() 系统调用开始访问 GPIO 外设,其 Linux 设备路径为 /dev/uio0。对于其他诸如 I2C、ADC、SPI 等设备,基本的实现都是一样的。


  同时,在 Galileo 版的 Arduino IDE 目录下也可以找到专门为 Quark 处理器定制的 gcc 编译器,这对于熟悉 Linux 程序开发的朋友来说,也意味着可以脱离 Arduino IDE,直接在 Galileo 的 Linux 中编写程序与外部电路进行控制。


图:Arduino IDE 中带有的 Quark 平台的 GCC 编译器和工具链


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部