D语言中的Cortex-M4系列寄存器读写权限及读写方法

本文详细介绍了D语言中针对Cortex-M4系列微控制器寄存器的读写权限,如rw、r、w等,并提供了相应的读写方法示例,如使用volatileLoad和volatileStore函数。此外,还提到了mculib4d库,这是一个专为D语言设计的Cortex-M4单片机库。
摘要由CSDN通过智能技术生成

D语言中的Cortex-M4系列寄存器读写权限及读写方法

位读写权限

简写定义
rw(读写权) 可由程序进行读写
r(读权) 可由程序读取该位
w(写权) 可由程序写入该位
rc_w1(读写权) 可由程序读取该位,向该位写1时清除位,写0对该位无影响
rc_w0(读写权) 可由程序读取该位 ,向该位写0时清除位,写1对该位无影响
rc_r(读写权) 可由程序读取该位,读取时自动对该位置零,写0对该位无影响
rs(读写权) 可由程序读取该位,对该位写0时无影响
t(写权) 写入1时触发,写入0时无影响

读写方法

寄存器存在于一个特定内存位置上,对这个位置进行读写即可
D语言内操作的代码如下

import core.volatile;
uint *GPIOE_MODER = cast(uint*)0x40021000;

auto read_val = volatileLoad(GPIOE_MODER);			// 读取寄存器内的值
volatileStore(GPIOE_MODER ,read_val );				// 把值写回寄存器

其他相关

volatile 关键字的作用就避免程序优化导致内存地址的值被缓冲在寄存器内,不能即使反应寄存器状态.

由于D没有volatile 关键字,所以需要通过 uint volatileLoad(uint* ptr) 函数对寄存器地址进行读取操作 void volatileStore(uint* ptr, uint value) 函数对寄存器进行写操作.

mculib4d

这是我搞的一套d语言搞 Cortex-M4 单片机的库,详情可以在 https://gitee.com/sdvcn/mculib4d 这里了解

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值