问题描述
我正在为一家公司做实习研究.我在使用 Mono(.Net 平台的跨平台实现)时遇到了一些问题.我的公司设计硬件和软件.
I am doing research for a company as an internship. I had some question in using Mono, the cross platform implementation of .Net platform. My company designs hardware and sotware.
我使用嵌入式 linux 的知识非常有限.我正在实习的公司非常注重 .NET.但是 mono 的新发展,他们问自己是否可以将 linux 用于较小的项目,也避免了为他们设计软件和硬件的人的高昂许可成本.
My knowledge of using embedded linux is very limited. My company where I am doing my internship is really .NET minded. But the new developments of mono, they asking themselves if they can target linux for smaller projects, too avoid the high licensing cost for the people for which they design the software and hardware.
我已经研究过 mono 可以做什么(现在还不能做什么).现在我遇到了嵌入式问题.我有点迷失在如何构建嵌入式 linux 的故事中.
I already looked in to what mono can do (and can't yet do). Now I reach the embedded question. I am kinda lost in the story in how an embedded linux is built.
我看到一些故事,他们只是使用一些标准的 linux 库来在硬件上制作嵌入式 linux.我还看到存在特殊的 linux 发行版,例如 uClinux(又名 µClinux).那么有什么区别,还是一样.当我想在目标设备上使用嵌入式 linux 时,流程通常是什么样的?
I saw some stories where they just took some standard linux libraries to make the embedded linux on the hardware. I also saw that there exists special linux distributions like uClinux (aka µClinux). So what's the difference, or is it just the same. What does the process look like typically when I want to use embedded linux on a target deivce?
好吧,比单声道部分,所以基本上我希望能够在嵌入式 linux 中运行 C#.在这里他们主要使用 uclinux,我可以为此使用单声道吗?我查看了一些规范,它们没有内存管理单元 (MMU).
OK, than the mono part, so basically I want to be able to run C# in embedded linux. Here mostly they use uclinux, am I able to use mono for this? I looked at some specifications, and they don't have Memory Management Unit (MMU).
所以基本上我担心没有 MMU.既然垃圾收集器会有什么反应呢?
SO basically I worry about that no MMU. Since how will the garbage collector react?
我希望我没有给出过多的问题,
I hope i didn't give an overload of questions,
问候,我已经感谢你阅读它,
Regards, and I thank you already for reading it,
本杰明
推荐答案
垃圾收集器不依赖于 MMU,但如果有 MMU 会更高效.
The garbage collector doesn't depend on a MMU, though it can be more efficient if there is one.
我们目前利用它来生成不带检查的空引用异常:在 uclinux 上,您需要启用显式检查(代码已经存在,只需启用它).其他人报告说在 uclinux 上使用单声道,尽管可能需要对源代码进行一些调整,因为我们从未在该平台上测试过它(当然我说的是我们已经支持的 cpu 架构上的 uclinux,比如 ARM,你没有具体说明).
We currently take advantage of it to generate null reference exceptions without checks: on uclinux you will need to enable the explicit checks (the code is already there, it just needs to be enabled). Other people reported using mono on uclinux, though there are likely some tweaks required to the sources here and there since we never test it on that platform (of course I'm talking about uclinux on a cpu architecture we already support, like ARM, you didn't specify).
至于其他评论,AOT 和 mkbundle 在很大程度上与您的需求无关.您真正想要的是减少单声道足迹以适应您的设备允许的范围,请参阅 http://www.mono-project.com/Small_footprint 了解更多信息.
As for other comments, AOT and mkbundle are largely irrelevant for what you need. What you really want is to reduce the mono footprint to fit into what your device allows, see http://www.mono-project.com/Small_footprint for more info.
如果是我做决定,我总是会选择常规的 ARM linux 而不是 uclinux 来运行复杂的软件,比如单声道或任何你需要在单声道上运行的程序.
If it was me making the decision, I'd always choose a regular ARM linux over uclinux for running complex software like mono or whatever program you need to run on mono.
这篇关于在嵌入式 linux 中使用单声道作为硬件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!