栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用正确的工具完成工作:嵌入式编程

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用正确的工具完成工作:嵌入式编程

是否可以用C ++对嵌入式系统进行编程?

是的,当然,即使在8位系统上也是如此。C
++与C的运行时初始化要求只有一点点不同,即在调用main()之前,必须调用任何静态对象的构造函数。这样做的开销(不包括控件内的构造函数本身)很小,尽管您必须小心,因为未定义构造顺序。

使用C ,您只需为使用的东西付费(有用的很多东西可能是免费的)。就是说,例如,一块也可以用C 编译的C代码通常不需要更多的内存,并且在编译为C
时的执行速度不会比编译为C时的执行速度慢。您可能需要注意C 的某些元素,但大多数最有用的功能只需花费很少或根本没有代价,并且收益巨大。

还是使用纯C更好?

可能在某些情况下。一些较小的8位甚至16位目标没有C
编译器(或至少没有任何编译器),如果存在问题,使用C代码将提供更大的可移植性。此外,在小型应用程序中资源严重受限的目标上,C
可以带来C的好处是微不足道的。C ++的其他功能(主要是启用OOP的功能)使其适合于相对大型和复杂的软件构造。

还是仅在某些语言功能(例如RTTI,异常和模板)被排除的情况下,C ++才能正常运行?

可接受的语言功能完全取决于目标和应用程序。如果您受到内存的限制,则可以避免使用昂贵的功能或库,即使如此,它也可能取决于您缺少的是代码空间还是数据空间(在这些目标是分开的目标上)。如果应用程序是实时的,则应避免使用那些不确定性的功能和库类。

通常,我建议如果目标是32位,则始终优先使用C 而不是C,然后剪切C 以适合内存和性能限制。对于较小的部分,在选择C
++时要谨慎一些,尽管不要完全放弃。它可以使生活更轻松。

如果您确实选择使用C ,请确保您具有不错的C 调试器硬件/软件。用C
构造复杂软件相对容易,这使一个体面的调试器更加有价值。并非嵌入式领域的所有工具都支持C

我总是建议您从Embedded.com上的任何嵌入式主题的档案中进行挖掘,它包含大量的文章,其中包括许多有关此问题的文章,包括:

  • 拒绝C ++的可怜原因
  • 用C语言编写真正的男人程序
  • 潜入C ++并生存
  • 在嵌入式设计中使用C ++替代C的准则
  • 为什么C ++在嵌入式系统设计中是C的可行替代品
  • 即使最低水平也更好

关于Java,我不是专家,但是它具有重要的运行时要求,因此不适合资源受限的系统。您可能会限制自己使用Java的相对昂贵的硬件。它的主要好处是平台独立性,但是可移植性不会扩展到不支持Java(有很多Java)的平台,因此,与具有抽象硬件接口的精心设计的C或C
++实现相比,它的可移植性较弱。

[edit] 顺便说一句,我刚在TechOnline时事通讯中收到了此信息:在嵌入式应用程序中有效使用C ++



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508320.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号