> >网站资源
..> >图书馆:TechXchange
. . . .>> TechXchange:嵌入式软件
.. .. .. >>主题:ADA和Spark
此文件类型包括适用时的高分辨率图形和原理图。
提供执行它所设计的应用程序是大多数开发人员的目标。实现这一目标的一种方法是使用增强开发过程的工具。使用MISRA编码标准是提高C / C ++开发的一种方法。另一种方法是使用火花, Ada的一个子集,专为安全的应用程序而设计。
当然,使用一种新的编程工具并不是一件轻松的事情。我最近担任的评委之一Adacore的“与艾达一起创造”比赛。法国Issy Les Moulineaux公司的Stephane Carrez凭借一款名为EtherScope的网络流量监控工具获得了冠军。第二名是来自奥斯汀的德国人里维拉(German Rivera),他为NXP杯赛车开发了一款自动驾驶汽车框架。但我想强调的是来自安大略省伦敦的肖恩·诺克(Shawn Nock)获得第三名的反馈,他使用Ada开发了一款蓝牙信标“iBeacon”。
原因是肖恩是在竞争之前没有使用过ADA的C程序员。“在ADA中开发灯塔(一种我不知道的语言)在C中的类似功能中花费大致相同,”他在博客中写道,“我对ADA代码有更多的信心。”这取决于一些简单的因素:
“我觉得艾达的语法很直观。我已经用Python做了大量的工作,所以我发现块表示法和缩进马上就很舒服。与Python不同,Ada保留了分号作为语句分隔符,[使]我感到亲切和模糊。
“我发现在规范文件中起草接口很自然。在C语言中,我养成了在. C文件中同时编写代码和接口的坏习惯,当我的编译器报错时,还会在. C文件中编写头文件。我本可以在C语言中做得更好,但切换到Ada让我清楚地看到了优势。
“更固执的编译器——我已经在我的VCS提交钩子中运行外部测试器和静态分析工具很久了,但是写C有90种方法和上千种工具……让编译器在编译时表达强烈的意见并执行它们可以节省我的时间。从语法检查到样式检查;我发现自己不需要花时间寻找合适的工具来开始编写像样的代码。我认为,在团队中工作时,同意(并执行)一组编译器标志比同意一整个工具生态系统更容易。
“gnat -它是GCC的一部分。这可能是一些嵌入式工程师的缺点…但我喜欢和GCC一起工作。它是一致的,几乎可以在每个平台上使用,维护良好,而且是免费的。使用GNAT,我只需要在我的开发生态系统中添加一个工具,就可以开始使用Ada。
“我没有花任何时间在调试器上。一旦我说服GNAT我的意图在一些相当强烈的编译器标志(-gnatg -gnatp -gnatn2 -gnatwa -gnatQ -gnatw.X);我的软件倾向于Just Work。”
大多数项目的目标是微控制器,比如意法半导体的32位STM32.包括Cortex-M4和Cortex-M7解决方案。
这种类型的反馈并不局限于竞争中的个体。我最近主持了Adacore的网络研讨会,“在不破坏银行的情况下,建立高保证软件,”在那里,Protean Codes的Rod Chapman谈到了许多使用SPARK的项目。底线是,提出的安全关键项目能够以更少的错误按时完成,从而减少所需的测试量。这降低了项目成本。
静态和动态分析工具用于C,C ++和Java应用程序来提高代码质量。不幸的是,与火花相比,它们差不多。C和C ++将留出嵌入式应用程序的主要工具,因为许多原因,但如果您正在寻找该边缘,则可能值得一看。
此文件类型包括适用时的高分辨率图形和原理图。
> >网站资源
..> >图书馆:TechXchange
. . . .>> TechXchange:嵌入式软件
.. .. .. >>主题:ADA和Spark