如果我使用C++语言编程为嵌入式Linux系统编写代码,会有什么显著的问题吗?
实际上,我打算将一些代码移植到ARM Linux上,使用arm-uclibc编译器。
谢谢。
如果我使用C++语言编程为嵌入式Linux系统编写代码,会有什么显著的问题吗?
实际上,我打算将一些代码移植到ARM Linux上,使用arm-uclibc编译器。
谢谢。
当我看到你的问题,我想到的是传统的嵌入式编程,直到看到了Linux部分。C++可以用于嵌入式编程,但需要注意隐藏构造函数等问题。如果你正在运行Linux,我认为你不需要担心这些问题。
嵌入式
Linux,在 ARM 处理器上,而不是四核台式机。我认为嵌入式
部分不能轻视。主要是他在问资源,我想。时间和内存。Linux
不是一个魔术词,意味着 "不需要担心那些东西"。 - Mawg says reinstate Monica移植大型软件可能会很麻烦。我有使用gcc c++编程8位motorolla微控制器的经验,但在我的情况下,我是从零开始的,所以更容易些。我遇到了一些问题,比如使用析构函数会停止程序执行,不注意调用堆栈会导致其溢出到其他程序变量上...
因此,我对在嵌入式设备上编写c++代码的建议是不要一次性进行太多更改。当您逐步进行编程时,更容易发现由于错误的编译器或硬件而停止工作的原因。
我认为在嵌入式系统中使用Linux比使用C++更值得商榷。这是因为它是一个更重要的决定,而不仅仅是一个坏主意。
与嵌入式系统中的C++相关的大多数问题都与代码大小和性能有关;许多问题基于神话或远不如你想象的那么重要,但即使它们有一些合理性,在运行Linux的开销和Linux内核对硬实时和低延迟应用程序的不适用性方面,它们也相形见绌。
我经常在无操作系统和RTOS基础系统上使用C++来进行嵌入式系统开发。当不需要实时确定性行为,但设备、文件系统和网络支持提供了帮助(虽然其他方式也可以实现很多功能),并且您的系统拥有足够的资源时,使用Linux是有道理的;但如果没有强制要求,它将始终是我选择嵌入式系统操作系统的最后一项选择。
如果您选择在没有MMU的ARM上使用uClinux(例如ARM7或Cortex-M3),那么您失去了使用Linux的一个重要原因 - MMU受保护的进程/内核。
有重大问题吗?
如果我没记错,arm-uclibc
是一个 C 编译器?