我想知道是否可以在 STM32F407(1MB 闪存,196kB RAM)等处理器上交叉编译用 Ocaml 编写的应用程序? (不含操作系统)。
我已阅读Cross-compiling ocaml apps for ARM ;该实验似乎是在 beaglebone 上进行的;比STM32更强大,并且以Linux为操作系统。
还有 OcaPIC ( http://www.algo-prog.info/ocaml_for_pic/web/index.php?id=ocapic ) - 适用于 PIC 处理器。 ARM Cortex M4 有类似的端口吗?
最佳答案
首先,您可以使用与构建 C 或 Arduino 代码相同的工具链来交叉编译 OCaml 字节码解释器 (ocamlrun),然后运行 32 位 OCaml 字节码。 棘手的部分是将运行时移植到没有操作系统的情况下工作(分配内存等)。像 Mirage 这样的项目已经为 Xen 做到了这一点,部分基于 Xen 的 miniOS。 也许您可以使用 FreeRTOS、ChibiOS 等来开始。
一旦成功,您可以使用 ocamlopt 查看 native 代码,它支持armv4到armv7,但我不知道ARMv7E-M是否是它的超集。
或者您可以编写一个嵌入 OCaml 的 DSL,生成 C 代码,最终在您的 MCU 上运行,就像 Haskell 对 Ivory 所做的那样 3和原子4 .
关于arm - 适用于 ARM 皮质 M4 的 Ocaml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061506/