同步操作将从 赵维鹏/mculib4d 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
20230318 之前一直没有再继续更新是因为觉得繁琐,和我想要的一个编译器就行,不要那些混乱的库距离太大就暂停了一下,最近看dlang的日志看到可以支持位操作了,虽然还有很多bug.但它能用了 我这就提交上来一版可以编译通过可以烧录到stm32f401CC,正常执行的版本.我认为可以到试用阶段了. 原有体系被作废了,这次提交上来的也不确定后面会不会改,不过修改的目标是弄出一个开发用的库,完全不去交叉C的基础库,定位是源码库, 具体编译器参数查阅 dub.json ldc2.conf配置文件
编译说明 dub build 直接构建就好了 build --compiler=ldc2 --build=debug build --compiler=ldc2 --build=release
D语言原生的arm的hal操作库,直接使用LDC进行编译,无需交叉环境这种混乱东西. 通过SVD直接生成mc的底层操作,大部分功能基于D的模板进行实现,尽量实现D语言原生的实现.
本人搞单片机有点年头了,一直都是干应用的.常用开发软件用Keil,iar,一类的盗版软件,在经历2020年的时候突然发现不能在这样下去了, 各种技术上的卡脖子事情让我觉得应该 "搞点事情", 国产的MCU很多,真的不少,可为何开发软件及开发库就那么几种盗版的? 离开这些软件我们还能做自己的事情么? 所以我定下目标是搞一个D语言下的单片机开发(嵌入式的直接用就好了;~))
我认为D语言做开发有一些先天上的设计优势,比如说非常强力的编译前解释器(感觉类似很强的宏脚本解释器),把所有没必要的运算压在编译前.
资源文件无需转换直接嵌入 import(string file)
,
强大的 LDC 可以支持多种MCU及结构 (aarch64,arm,avr,mips,thumb,esp32.....),很适合搞事情,其内置的LDD还可以支持直接的bin输出(当前版本 LLVM 11还是存在TLS的BUG)
欢迎搞事情的人一起出手.
追加说明 用D搞这个有上面提到的原因,再就是现在的LL库和hal库都是人家ST的,国内芯片企业的库还都是纯寄存器控制,缺少 面向对象. 虽然D的betterC模式下不支持完整的面向对象操作,但它能用,可以给出基础的调用关系,更好的是 VScode上的D插件可以正确识别代码提示.
1, 能编译前做的,全部弄到编译前 2, 库中尽量避免嵌入汇编,避免特定汇编指令,能交给编译器的全部交给编译器 3, 类似bitband这种应用交给程序员去处理,库中只保留通用部分 4, 非必要不添加二进制文件到编译队列中 当前有一个 object.o是必要的,内容是一个空白的object.d的二进制 , 应对缺少druntime问题 5, 添加扩展功能实现放在 ext部分,使用D语言编写
前端选择D语言,编译器使用LDC.
D语言中声明 与存储位置相关
uint t1=0x11111111; // this goes to tdata TLS,有初始化
int t2; // this goes to tbss TLS
__gshared int t3=0x33333333; // this goes to data 有初始化
__gshared int t4; // this goes to bss 无初始化
shared int t5 = 0x55555555; // this goes to data 有初始化
static int t6; // this goes to bss 无初始化
shared int tt6; // this goes to bss 无初始化
注意 当前库中并未实现 TLS的功能.当前解决方式是指向bss的存储位置 注意 当前实现了malloc和free,具体实现可以查阅代码 注意 当前实现了class的构建 通过 函数模板完成的
C* c = CreateObject!(C)();
mculib arch|Arch 目录,当前目录下包括一些Arch支持的杂项 arch.***|Arch 支持 chips|mcu 芯片型号对应 stdlib|本库自身支持 与phobos内子目录同名|调用库简单修正,不建议从D的基础库中调用.
直接调用寄存器库
import chips;
extern(C) void mloop()
{
RCC.CR.PLLI2SON = 0x00 ; // 这里可以直接使用寄存器 所有寄存器由 **Register_(T)**结构 实现
while(1){}
}
svd工具已经重写,代码未整理,未提交上来
Peripheral
内模板 ,详情查看 寄存器读写模板
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。