我很想知道C的替代品在嵌入式开发者世界中有多受欢迎,例如Ada ......
我只使用过C(带有一点汇编程序),但是我的目标资源非常有限.在这个空间还有什么其他的东西吗?什么赢得了机顶盒的商品?
如果!C的根本原因是什么?
编译器支持目标
Trace\static分析工具
其他...
谢谢.
Forth在嵌入式开发中非常流行.
此外,尽管Smalltalk在嵌入式社区中可能不受欢迎,但嵌入式开发在Smalltalk社区中肯定很受欢迎.
当您说"嵌入式开发"时,请记住您必须考虑项目的规模.
当在微控制器的规模或ASIC的固件上编程时,您倾向于看到C和组件在场景中占主导地位.嵌入式开发人员倾向于"专注"这些语言,因为几乎所有嵌入式目标平台都可以使用这些语言的编译器.如果您的项目从具有PowerPC内核的芯片迁移到具有ARM内核的芯片,您可以相当确信您的C代码不会过于难以移植.有些芯片确实有其他语言可用的编译器,但通常它们在生成的二进制文件的效率方面与C编译器不匹配.由于嵌入式系统通常资源较少,系统设计人员希望尽可能高效地编写代码(这也是您看到大量汇编语言代码的原因之一).我已经看到可用于C++,Pascal,Basic等语言的开发工具,但它们通常是不成熟的工具,不足以匹配可用C编译器的效率.这些语言的调试工具往往比可用于C /汇编的工具更难找到.
你还提到了机顶盒.这种规模的嵌入式系统可以在7 - 8年前提供与台式计算机相当的功率.它们可用的RAM,存储空间和处理能力使它们能够为更高级别的语言运行功能齐全的操作系统和解释器.在这些功能更强大的系统上,您仍会看到使用C语言和汇编语言(对于驱动程序代码,如果没有别的话),但其他语言(如Java,Lua,Tcl,Ruby等)正变得越来越普遍.只要平台有足够的资源来处理语言解释器的开销,使用解释型语言就可以更轻松地将代码从一个平台移植到另一个平台.任何直接与硬件(驱动程序)接口的低级代码仍然通常使用程序集或C,因为高级语言并不总是能够执行此类操作.在嵌入式操作系统之上作为应用程序运行的任何东西通常都可以在仿真器或虚拟机中进行开发和测试,因此您将看到许多代码都是以开发人员所熟悉的语言开发的.
TLDR版本: C很受欢迎,因为它是一种几乎所有开发人员都熟悉的通用语言.汇编很受欢迎,因为它允许以其他方式难以或不可能的方式进行低级硬件访问.诸如Java之类的解释/脚本语言正变得越来越流行,但是这些语言的解释器的资源需求对于某些嵌入式系统来说可能太多了.C语言和汇编语言的开发/调试工具可用性的质量和种类也使这些选项具有吸引力.