
单片机应用
文章平均质量分 52
sdvcn
这个作者很懒,什么都没留下…
展开
-
D语言中ARM架构中CRC寄存器的操作
D语言中CRC寄存器的操作代码范例/********************** 寄存器方式处理CRC32* CRC.IDR 寄存器作为调用计数器进行使用,请勿复用这个寄存器 最高位为busy指示.参数:返回: uint范例:--------------------auto hash = crc32of(1,&buf);-------------------- bug: * 调用计数超 0x7F 会溢出;* 采用a原创 2021-04-11 22:19:03 · 347 阅读 · 0 评论 -
D语言下ARM外设通用模板设计
D语言下ARM外设通用模板设计介绍实现代码调用方式介绍这是一个外设寄存器读写通用设计,通过SVD文件转换的代码可以直接用来生成HAL操作的class.具体代码应用往下看~.mculib4d的项目网站源代码在这里实现代码module mculib.arch.cortex_m.peripheral;import std.traits : isNumeric;import std.meta : allSatisfy;//pragma(LDC_verbose);/** 转换到位带原创 2021-02-08 16:28:58 · 139 阅读 · 0 评论 -
SVD文件转换工具
SVD文件转换工具用途代码用途转换现有svd文件到 mculib4d 的芯片声明工具代码查阅代码module svd;import std.stdio;import std.file;import std.xml;import std.string;import std.regex;struct tys{ union{ uint i1; ushort[2] s1; ubyte[4] b1; }}int main(){ string svdfile原创 2021-02-08 16:27:51 · 1432 阅读 · 0 评论 -
D语言中的Cortex-M4系列寄存器读写权限及读写方法
D语言中的Cortex-M4系列寄存器读写权限及读写方法位读写权限读写方法其他相关位读写权限简写定义rw(读写权) 可由程序进行读写r(读权) 可由程序读取该位w(写权) 可由程序写入该位rc_w1(读写权) 可由程序读取该位,向该位写1时清除位,写0对该位无影响rc_w0(读写权) 可由程序读取该位 ,向该位写0时清除位,写1对该位无影响rc_r(读写权) 可由程序读取该位,读取时自动对该位置零,写0对该位无影响rs(读写权) 可由原创 2021-02-05 19:20:40 · 503 阅读 · 1 评论 -
D语言中声明 与存储位置相关
D语言中声明 与存储位置相关代码说明注释:代码说明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;原创 2021-02-05 11:20:25 · 122 阅读 · 0 评论 -
D语言中的Cortex-M4系列中断向量表处理
D语言中的Cortex-M4系列中断向量表处理向量表:在mculib4d中的定义方式向量表:// form file:stm32f401xc.hstruct IRQn_Type{/****** Cortex-M4 Processor Exceptions Numbers ****************************************************************/ Reset_IRQn = -15, NonMaskableInt_IRQn原创 2021-02-03 18:17:14 · 2433 阅读 · 3 评论 -
D语言原生的arm的hal操作库
mculib4d项目主页介绍D语言原生的arm的hal操作库,直接使用LDC进行编译,无需交叉环境这种混乱东西.通过SVD直接生成mc的底层操作,大部分功能基于D的模板进行实现,尽量实现D语言原生的实现.软件架构前端选择D语言,编译器使用LDC.目录结构├─mculib // 调用库文件│ ├─core // 与D库同名,进行覆盖调用,日后会取消类似覆盖调用方式│ ├─mcu原创 2021-02-02 18:55:02 · 508 阅读 · 6 评论 -
D语言编写单片(STM32F401cc)机应用需要用到的技巧 - 主入口函数
D语言编写单片机应用需要用到的技巧 - 主入口函数入口函数入口函数单片机一定会需要一个主入口函数,至于是那个主要看linker script中的定义,并不一定是你看到的main函数(多数情况下也不会是它),cortex-m框架基本会从FLASH:0x08000000位置读取一个向量表Vectors (可参考的一份文章),mcu会从Reset_Handler开始执行代码,具体实现需要参考linker script中的定义,我的做法是在linker script增加定义MEMORY{ FLASH (R原创 2021-01-11 13:34:25 · 380 阅读 · 0 评论 -
D语言(dlang)编写单片机(cortex-m系列)应用需要用到的技巧
D语言编写单片机应用需要用到的技巧volatile 关键字应用方法:volatile 关键字D语言(版本:2.094之前)中并未实现内置volatile关键字,它提供的标准库中有相关的实现.在单片机编程中volatile是不可缺少的关键字,这个关键字是确保声明定义的有效性.,我们建立一个struct模板来方便实现这个功能.struct Volatile(T) { import core.volatile; // 加载标准苦 T raw; // 通过模板传入的T来建立原创 2021-01-11 12:20:13 · 322 阅读 · 0 评论 -
D语言(Dlang)在单片机(cortex-m)上应用方法
D语言在单片机上应用方法使用D语言([dlang.org](https://dlang.org/))编写单片机程序.实现目标优势列举环境准备具体实现方法源代码linker脚本编译指令连接仿真模拟其余说明使用D语言(dlang.org)编写单片机程序.实现目标尝试使用Dlang语言编写单片机程序.目标芯片为 STM32f401cc. cortex-m4HOST主机为windows 系统,优势列举D语言是一种无"语言宗教"的编程语言,类似于C/C++的设计,函数书写无顺序限制,无不可调试的鸿定义,没原创 2021-01-11 01:27:30 · 1492 阅读 · 0 评论