最近自己开发一个板子上的数据处理与转发。无需UI,本来都是基于Qt/C++进行板子开发的。但是不同型号和板子基本都是靠厂商的虚拟机开发。于是想到之前用Dlang支持交叉编译的,于是测试了下Dlang下ARM嵌入式开发,结果让人惊喜。十分愉快。
Dlang进行ARM开发基于LDC,可以选择完全betterC或完整D语言。本次小项目考虑周边的库,就采用的完整D语言开发的方案。至于GC,作为一个安全的内存池使用。
开发依赖:
- Linux 主机,因为基本ARM交叉编译GCC都是linux运行的,我是在 openSUSE-Tumbleweed下
- LDC 编译器,dmd不支持arm,需要使用LDC
- arm-gcc 交叉编译器(开发板厂家会提供,只需要C语言编译器就行。)
开发步骤:
- 交叉编译 DRuntime 和 Phobos
- 配置LDC交叉编译的依赖库和链接器(GCC)
- 使用D语言编写程序(注意依赖,如果依赖需要C库,相应库也需要交叉编译)
- 进行交叉编译程序(dub build –compiler=ldc2 –arch=你的交叉编译配置)