D语言在单片机上应用方法

  • 使用D语言([dlang.org](https://dlang.org/))编写单片机程序.
    • 实现目标
    • 优势列举
    • 环境准备
  • 具体实现方法
    • 源代码
    • linker脚本
    • 编译指令
    • 连接仿真模拟
  • 其余说明

使用D语言(dlang.org)编写单片机程序.

实现目标

尝试使用Dlang语言编写单片机程序.目标芯片为 STM32f401cc. cortex-m4
HOST主机为windows 系统,

优势列举

D语言是一种无"语言宗教"的编程语言,类似于C/C++的设计,函数书写无顺序限制,无不可调试的鸿定义,没有复杂的头文件.

使用LDC编译器时无需构建复杂的交叉编译环境

在单片机上编程主要是应用D语言的一个子集 “Better C”,这个子集包括大部分D语言的实现,如下的功能未实现,:

序号 功能 注释
1 内存GC 单片机编程来说,这部分还是需要程序员考虑取舍
2 结构信息 TypeInfoModuleInfo,这部分主要应用是GC,还有就是一些共享库应用
3 Class
4 内置线程
5 动态数组
6 Exceptions
7 内置同步函数
8 静态构造和析构函数

当然也可以应用完整的D语言,但付出的成本较高(FLASH/RAM),一般来说单片机开发的程序运行态都是可以推定的,从效率来说不推荐使用GC管理或动态加载

linux的嵌入式开发不在这份文章里讨论了.

环境准备

首先我们确定一下我们需要哪些东西:

序号 功能 当前可用
1 IDE 推荐Vscode,外加 dlang所用的 webfreak.dlang-bundle插件 和 marus25.cortex-debug 调试插件
2 编译器 LDC,通过LLVM实现,在无需RT库的情况下可以直接下载二进制版本,
2.1 连接器 lld,推荐直接使用LDC内置
2.2 杂项工具 LLVM,包括不少工具用不惯的上套arm-none-eabi的也行啊~
3 构建工具 这个暂时没有,写个批处理搞定吧

D语言(Dlang)在单片机(cortex-m)上应用方法相关推荐

  1. 单片机c语言using,C语言在8051单片机上的扩展(interrupt、using关键字的用法)

    C语言在8051单片机上的扩展(interrupt.using关键字的用法) 直接访问寄存器和端口 定义 sfr   P0 0x80 sfr    P1 0x81 sfr    ADCON; 0xDE ...

  2. c语言图像浏览器,单片机采用浏览器进行监控将给软件的编程带来极大的便利...

    1 引言 互联网的技术大多数应用在商业领域的信息传递,但目前也开始越来越多地向工业控制领域发展.单片机以其体积小.功能强.灵活可靠而广泛应用于工业控制和电器产品中,远程控制是其重要的内容之一.现在,单 ...

  3. 新唐单片机 ICP 史上最全教程

    新唐单片机 ICP 史上最全教程 新唐单片机 ICP烧录教程 目录 新唐单片机 ICP 史上最全教程 1.ICP软件安装 2.连接设备 3.设备供电 4.开启软件 5.欢迎界面 6.补充事项 7.建立 ...

  4. 四路抢答器c语言编程,基于单片机的四路抢答器设计

    基于单片机的四路抢答器设计 课程设计(论文) 题 目 名 称 多路数字抢答器设计 课 程 名 称 单片机原理及其应用 学 生 姓 名 学 号 系 .专 业 指 导 教 师 2013年 6月 24日 摘 ...

  5. 出租车收费题目及答案c语言,《基于单片机的出租车计费(c语言)》.doc

    基于单片机的出租车计费(c语言)基于proteus仿真 一.设计要求: 1.用实现出租车计费器的设计. 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如.0),车行驶2k ...

  6. dds是c语言吗,基于单片机的DDS算法的实现

    [摘要]通常DDS信号发生器设计主要分为两类,一类是采用FPGA设计,另一类采用单片机+DDS专用芯片实现.本文针对频率及要求较低的应用,提出一种更为简单的解决方案,即通过单片机编程完成DDS算法,从 ...

  7. 面试要求精通单片机c语言,献给广大单片机爱好者,单片机初学者一定要看,...

    社会的角落里,有一群正在为单片机很难入门而苦恼的人. 你身边如果有单片机入门者,动手能力比较强,请他帮忙,搭个简单的单片机最小电路,哪怕是控制一个 LED 闪烁的电路.只要在你眼皮底下经过电路设计.程 ...

  8. 星研电子c语言程序清单,单片机理论实验课程设计协同教学方法探讨

    [摘要]通过总结单片机理论.实验和课程设计的教学实践经验及教学研究心得,以某高校电子电气信息类本科专业为例,分析了如何完善单片机课程体系建设,如何在课程教学过程中通过理论与实践相结合加强大学生对理论的 ...

  9. 万年历设计单片机c语言,基于51单片机的电子万年历的设计

    基于51单片机的电子万年历的设计(论文9400字) 功能要求 1. 万年历能用数码管显示阳历年.月.日.星期.[小]时.分.秒并设置指定时间的闹铃. 2. 数字式温度计要求测温范围-50~100°C, ...

  10. 单片机技术与c语言编程教学大纲,单片机应用技术(C语言)教学大纲.doc

    单片机应用技术(C语言)教学大纲 一.说明 1.课程的性质和内容 本课程是高级技校应用电子专业的专业课.主要内容包括:认识单片机,点亮彩灯,简易数字钟,简易计算器,键控彩灯,简易频率计,单片机双机通信 ...

最新文章

  1. 记一次数据库查询语句的优化
  2. 人体姿态估计 自顶向下与自底向上
  3. install g++ 出现“g++ : Depends: g++-4.8 (= 4.8.2-5~) but it is not going to be installed...解决方法
  4. java算法2_二分查找法
  5. [置顶] 动软软代码生成器使用(127.0.0.1)无法看到 SQLServer2008 新附加数据库的 原因 以及 解决方案...
  6. Hibernate自动提交命令强制MySQL在过多的磁盘I / O中运行
  7. [luoguP2324] [SCOI2005]骑士精神(A*?)
  8. 95-38-055-Buffer-UnpooledDirectByteBuf
  9. 原码、反码、补码,计算机中负数的表示
  10. windows安装安卓开发环境Eclipse+SDK+ADT
  11. Servlet请求和响应
  12. android studio如何重启,从Android Studio重新启动ADB(Restart ADB from Android Studio)
  13. Adobe发布Flash 10 Player
  14. 为什么手机里的小爱音响app里搜不到家里的小爱音箱_小爱触屏音箱体验:小爱同学有了屏幕增加功能,是不是你的菜?...
  15. 使用CME2配置Copley驱动器,带Maxon电机
  16. qq音乐 android pad版,QQ音乐HD版
  17. quartz 每月一次_quartz cron表达式 每周一0点怎么设置
  18. Helm模版开发文档
  19. 三、公网环境搭建Kubernetes (k8s) 集群的详细图解
  20. astype函数的使用

热门文章

  1. eNB、gNB、en-gNB和ng-eNB的区别
  2. MySQL快速学习入门
  3. 暴躁兔让Web3与Crypto之路不再迷茫
  4. 收藏的一些有意思的网站
  5. 深信服邮件服务器配置,使用深信服设备实现邮件服务器高可用
  6. heka数据流处理工具
  7. 制作openstack系统镜像
  8. 1300款主流单机游戏下载 大型PC电脑游戏使命14尼尔5模拟合集
  9. 使用RaiDrive将NAS中的磁盘映射为本地磁盘
  10. Git学习-本地版本库的创建与简单操作