arm - 适用于 ARM 皮质 M4 的 Ocaml?

标签 arm ocaml cross-compiling

我想知道是否可以在 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 有类似的端口吗?

最佳答案

我不知道端口,但请参阅相关的邮件列表线程 1 , 2 .

首先,您可以使用与构建 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/

相关文章:

c - 有没有办法防止编译器搞乱内联汇编

syntax - 没有双分号的 OCaml 模式匹配语法错误

pattern-matching - 模式匹配 OCaml 中的变量?

c++ - CMake find_* 不搜索子目录

gcc - ARM 内联约束

C:知道变量何时被读取或写入

tomcat - 从基于 ARM 的机器提供 GWT 应用程序

ocaml - 将大文件读入字符串行 OCaml

visual-c++ - 使用 MinGW 工具创建 MSVC 导入库

c++ - OpenCV 与 OpenWRT 交叉编译时出错