Crazyflie是Bitcraze售卖的可编程无人机,它被设计成为可被修改的并为其操纵装置和操作系统运行的开源软件。特别是这架无人机使用了FreeRTOS作为其实时的操作系统。
通过CodeSonar运行Crazyflie的代码,发现Crazyflie中的一个故障由应用程序代码中的一个未初始化变量引起,该变量随后被传递到FreeRTOS API。幸运的是,由于应用程序和RTOS的代码均为可用,CodeSonar迅速诊断出该故障。
在可免费获取源代码的地方使用RTOS,其优势是可以分析到所有的应用程序,包括对RTOS API的调用。操作系统通常是一个发送参数的黑洞,而静态分析将无法理解会发生什么情况(二进制的CodeSonar也为此提供了解决方案)拥有底层操作系统的源代码具有检测、分析缺陷和漏洞的优势。
来源:oschina
链接:https://my.oschina.net/watertek/blog/3160327