0

我想知道我使用的大型 Ada 程序是否可以在微处理器或微控制器上运行,因为我正在探索在具有低功耗要求的专用封装中实现它的可能性。

该程序在 Ada 95 中包含 500 多个源文件,在 Win XP 中编译为 10MB 的可执行文件,并使用高达 200MB 的内存运行。它不需要多个线程,也不需要“实时”运行。

这对于这种规模的程序是否有意义?如果是这样,操作系统有哪些选择?对代码的修改是否广泛以使其与操作系统兼容?

4

2 回答 2

2

您目前看到的很多如此大的尺寸很可能与程序在 XP 这样的大型操作系统上运行所需的东西有关。

当然,你的程序可能实际上依赖于一堆巨大的数组或其他东西,而且它不可能适合。我真的不能从这里说出来。

如果是我,我会联系我正在考虑的平台的 Ada 供应商,并寻求他们对可行性研究的帮助。通常,嵌入式目标上的 Ada 编译器的许可证会占用足够多的资金,以至于供应商很乐意像这样为您提供一些单独的预售关注。

我还应该提到一件事。Ada 有一个非常广泛的运行时库。它包括一个完整的任务和任务同步内核。Windows 或 Linux 等“大型操作系统”上的程序通常会引入这些东西,即使它们不需要它。大多数编译器都提供了一种去除不需要的杂物的方法,而小型嵌入式目标上的编译器当然必须这样做。因此,如果您针对较小的平台进行构建,那么它可能会自行消失。如果您愿意,您可以查看Gnat 的说明以最小化其运行时开销。即使那不是您的供应商,它也应该向您展示一些可能涉及的问题。

于 2012-09-18T14:20:29.073 回答
0

听起来很适合 Raspberry-Pi,它将 Gnat 作为其 Debian (Raspbian) 发行版的一部分。如果 200MB 的内存占用只是数据,您可能需要注意它的内存占用...

于 2012-11-19T16:46:52.117 回答