6

我正在为一家公司做研究作为实习。我在使用 Mono(.Net 平台的跨平台实现)时遇到了一些问题。我公司设计硬件和软件。

我使用嵌入式 linux 的知识非常有限。我正在实习的公司非常注重 .NET。但是mono的新发展,他们问自己是否可以将Linux用于较小的项目,也避免了为他们设计软件和硬件的人们的高昂许可成本。

我已经研究了单声道可以做什么(并且还不能做什么)。现在我遇到了嵌入式问题。我有点迷失在如何构建嵌入式 linux 的故事中。

我看到一些故事,他们只是使用一些标准的 linux 库来在硬件上制作嵌入式 linux。我还看到存在特殊的 linux 发行版,例如 uClinux(又名 µClinux)。那么有什么区别,还是一样。当我想在目标设备上使用嵌入式 linux 时,该过程通常是什么样的?

好的,比单声道部分,所以基本上我希望能够在嵌入式 linux 中运行 C#。在这里他们主要使用 uclinux,我可以为此使用单声道吗?我查看了一些规范,它们没有内存管理单元 (MMU)。

所以基本上我担心没有MMU。既然垃圾收集器将如何反应?

我希望我没有提出过多的问题,

问候,我已经感谢你阅读它,

本杰明

4

4 回答 4

5

垃圾收集器不依赖于 MMU,但如果有 MMU 会更有效。

我们目前利用它来生成没有检查的空引用异常:在 uclinux 上,您需要启用显式检查(代码已经存在,只需要启用它)。其他人报告说在 uclinux 上使用单声道,尽管可能需要对源代码进行一些调整,因为我们从未在该平台上测试过它(当然我说的是我们已经支持的 cpu 架构上的 uclinux,比如 ARM,你没有具体说明)。

至于其他评论,AOT 和 mkbundle 在很大程度上与您的需求无关。您真正想要的是减少单声道足迹以适应您的设备允许的范围,有关更多信息,请参阅http://www.mono-project.com/Small_footprint

如果是我做决定,我总是会选择常规的 ARM linux 而不是 uclinux 来运行复杂的软件,比如单声道或任何你需要在单声道上运行的程序。

于 2010-09-09T07:48:31.397 回答
2

如果您的设备没有 MMU,也许您可​​能想要使用 Microsoft 的开源.NET Micro Framework。它比 .NET/Mono 更受限制,它是一个解释器,而不是 JIT,但它可以在有限的硬件上运行。

于 2010-09-08T18:23:00.550 回答
2

Mono 可以随心所欲地受到限制。如果您使用的是没有 MMU 的设备,我会查看Ahead of Time 编译

mkbundle也可以工作,但我不确定它是否可以在没有 MMU 的情况下工作。也就是说,如果您使用 AOT,您将首先使用 mkbundle 来拉入所有依赖项。

于 2010-09-08T20:23:38.993 回答
1

如果您的公司想通过 MONO 定位嵌入式 Linux 板,并且只需要传输一些已经在桌面 windows 计算机上运行的应用程序,那么您可能会遇到很少的问题。但是如果你想和一些 IO、I2C、SPI、1-Wire 和其他外设通信,你会遇到通过 MONO 访问它们的问题,你可能需要制作一些翻译器(可能是用 GCC 编写的),这将是一个真实硬件和您的 MONO 应用程序之间的网关。

于 2010-09-09T12:07:37.597 回答