1.crazyfly重量仅为19克,拥有72mhz Cortex-M3处理器。在无线芯片上发现了另一个皮质核心。(图片由bitfever提供)。

Ada/SPARK修复疯狂飞行纳米四旋翼

2015年8月25日,
crazyfly四旋翼是一个开源项目,包括硬件。我尝试了一个用Ada的子集SPARK重写控制软件的项目。

> >网站资源
..> >图书馆:TechXchange
. . . .>> TechXchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK

我刚拿到了Crazyfliequadrotor(图1)Bitcraze.这架飞机是一个开源项目,包括开源硬件。它被设计成一个开发平台,不像大多数其他四旋翼往往是封闭的系统。该软件可以下载,控制应用程序可以在PC上运行。它支持索尼双震控制器。

我查看了crazyfly的清单,并从PS3上拿出了我的索尼控制器。这个系统运行得很好,但我真正得到crazyfly的原因是为了检查Anthony Gracio的SPARK项目(见“如何使用SPARK防止无人机坠毁”.安东尼是一个实习生AdaCore他用Ada的一个子集SPARK重写了控制软件。

控制软件和库是用c++编写的。这并不奇怪,因为C和c++往往是用于像这样最深入嵌入的项目的语言。它们也是从芯片供应商那里获得的典型工具集的一部分圣微电子用于crazyfly的Cortex-M3芯片。

Anthony使用了Adacore的标准工具链,该工具链可以作为开源项目使用。SPARK是为高完整性软件设计的,它提供了一个比大多数采用静态和动态验证的平台要好得多的平台。Adacore还有一个SPARK Pro版本。

Ada和SPARK的一个新特性是契约的概念(参见“Ada 2012:契约的喜悦”-电子设计).它是Ada 2012的一部分,并使用预处理器将最初由SPARK开始的实现形式化。它允许“基于合同的编程”。这是使用指定输入和输出的契约对过程或方法进行注释的地方。这是在Ada固有的范围检查之外的。

将c++代码替换为SPARK代码是一个相对简单的练习。从本质上讲,这与添加c++代码的新版本是一样的。区别在于质量。Anthony发现并纠正了一些由于使用SPARK而导致的错误。SPARK代码在功能上与bug修复是相同的。

我真的很希望看到crazyfly项目切换到SPARK,但我怀疑c++爱好者没有领会这个暗示。在此期间,我希望有机会做一些SPARK编码。

> >网站资源
..> >图书馆:TechXchange
. . . .>> TechXchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK

从我们的合作伙伴

理解和使用e - stop

问:什么是电子档?如何使用?答:e停止,或紧急停止开关,用于确保机器和人员的安全。他们正在使用……

实现5G和机器人的未来

2021年11月18日,

适用于恶劣环境的外壳材料

适用于恶劣环境的外壳材料。金属外壳通常不适合高度恶劣的环境……

功率完整性表征信心

价格适合任何预算,WaveSurfer 4000HD有更多的能力,比你想象的分析电力轨道,功率排序,和电源管理…

符合自动化和工业4.0标准的M12连接器编码

赞助。符合自动化和工业4.0标准的M12连接器编码连接器在任何一种电…

声音你的意见!

本网站要求您注册或登录后发表评论。
目前还没有任何评论。想开始对话吗?
设计常见问题

设计常见问题:利用二次操作改进3d打印零件

2017年8月11日,
订购3d打印零件时,有几件关键的事情需要考虑,包括功能和外观。从Proto Labs下载这个FAQ来了解更多。
beplay 5倍流水

静态分析?我们不需要讨厌的静态分析

2017年4月27日
在安全性和可靠性如此重要的今天,为什么使用静态分析工具的人如此之少?看看科技编辑Bill Wong是怎么想的。
Baidu