yuyong308
发表于 2024-4-18 13:02:52
{:4_250:}{:4_250:}{:4_250:}
LAOXU
发表于 2024-4-19 14:21:09
本帖最后由 LAOXU 于 2024-4-19 14:23 编辑
求证:
DPU32 控制寄存器 :
注:向 DMAIR 寄存器写入指令码,只能使用立即数寻址方式的指令“MOV DMAIR,#N”,使用其它
指令会无法正常触发计算。
MDU32C 控制寄存器 :
注:向 MDU32CR 寄存器写入指令码,未注明"只能使用立即数寻址方式", 是否意味着
使用其它指令“MOVMDU32CR,A”, 也会正常触发计算 ???
神农鼎
发表于 2024-4-19 14:46:08
使用其它指令“MOVMDU32CR,A”,也会正常触发计算
MDU32CR寄存器,使用任何指令触发都可以
不限立即数触发,使用
MOV MDU32CR, #imm /
MOV MDU32CR, A /
MOV MDU32CR, Rn
指令都可以
LAOXU
发表于 2024-4-19 18:05:13
神农鼎 发表于 2024-4-19 14:46
使用其它指令“MOVMDU32CR,A”,也会正常触发计算
谢谢!
这样可以通过 MOVMDU32CR,A , 触发 +/- 计算
LAOXU
发表于 2024-4-20 03:22:48
神农鼎 发表于 2024-4-19 14:46
使用其它指令“MOVMDU32CR,A”,也会正常触发计算
MDU32CR寄存器,使用任何指令触发都可以
原以为受技术限制, DMAIR 寄存器写入指令码,只能使用立即数寻址方式的指令“MOV DMAIR,#N”,
现在看来不存在这个问题.
那就有一个问题值得思考.
MDU32C, 状态寄存器 和 控制寄存器, 地址的连续性问题.
注: 在 纯 51 环境下, 因只能执行写 8位数据, 不存在这个问题(地址是否连续性).
但在 C251 环境下, 因能执行写 16位数据, 地址是否连续性 ,决定了是否能用一条指令写16位数据,
完全代替原先只能用2条指令写8位数据(非原子操作带来的函数不可重入问题,
在软件上, 一般用短暂关中断解决, 但需额外增加多条指令).
如把 MDU32C, 状态寄存器 和 控制寄存器, 地址连在一起(注意偶地址在先),
则以一条16位数据写指令(原子操作), 装载和触发 状态寄存器 和 控制寄存器,
此时的函数是可重入的, 在软件上, 不用关中断, 不会额外增加多条指令.
Mr_LG
发表于 2024-4-27 10:34:36
硬件CRC16,数据写入“CRC数据输入寄存器”就自动开始计算?没有开关位之类的?
神农鼎
发表于 2024-4-30 16:52:48
神农鼎
发表于 2024-5-2 10:09:27
STC8H2K32U-45I-LQFP32, 已上架微信小商城销售, 刚发现
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4553&extra=
lyagp03
发表于 2024-5-3 10:08:03
好,牛逼。学习了
jackfangxq
发表于 2024-5-14 19:46:01
强烈支持
STC越来越强大