找回密码
 立即注册
楼主: 神农鼎

STC8新设计将搭载新MDU32硬件32位加减乘除移位,向64位超算进军,请建议

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2023-12-9 09:30:40 | 显示全部楼层
希望增加乘除复合运算。
u16 a,b,c;
计算 a*b/c.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-9 13:07:51 | 显示全部楼层
神*** 发表于 2023-12-9 00:16
估计杨老师会认为 STC8H系列8051 会再流行50年以上
===请杨老师为 51世界 多提宝贵意见
===咱把这 MDU32+  ...
非常好, 赞一个!!!

最好把 DPTR 双指针 模式, 也改成 和 stc32 一样 (DPTR 共用同一地址), 至少 C语言 免强好调用, stc32由于寻址功能太强, 双指针用不上.  

8H 的双指针 地址, 如能改为 C51支持的地址格式, 那使用就更方便了.


最后, 祝愿 STC8H 在功能上, 能早点实现 支持  16 位堆栈指针 (堆栈放在 XRAM中) , 那就真正到 51的天花板了.  OS 系统 跑起来一点也不差劲
现在 STC8H 的市场 比 STC32 大. 毕竟 有那么一帮子 老 51 用户在

等 20年后, 如果 我还活着, 来此处溜达一圈看看, 51是否 还是比 251坚挺~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-12-9 14:08:27 | 显示全部楼层
游泳*** 发表于 2023-12-9 09:25
希望再加一些 DSP 指令

请具体描述下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:368
  • 最近打卡:2025-05-01 02:13:24

1

主题

80

回帖

1548

积分

金牌会员

积分
1548
发表于 2023-12-9 14:51:16 | 显示全部楼层
希望多加一个串口到5串口,方便4串口,通过1个串口实现多芯片级联, 这样对外可以有独立4/8...等, SPI等也可以实现,就是程序会复杂点比较麻烦;   另外串口可以有一个发送完毕中断或标志位吗? 现在的串口中断是最后1bit发出后就置标志, 实际还没有发送结束, 这样做485接口时候需要延时, 不同波特率要设置不同延时也比较麻烦.  如果有个标志在发完后置标志切换485就比较方便了, 如果可选发送完毕后再延时1-10个波特率时钟就更好了. 这样可以选择485切换是马上切换还是最多可以延时1个字节时钟切换就更方便了.  或者这个标志也可以映射到一个IO上,  这样就在很多时候不用选用MAX13487 这种自动切换芯片,实现普通485芯片也可以自动切换,且切换延时在一定范围内可以微调.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:368
  • 最近打卡:2025-05-01 02:13:24

1

主题

80

回帖

1548

积分

金牌会员

积分
1548
发表于 2023-12-9 15:01:37 | 显示全部楼层
也就是STC单片机硬件实现RS485自动收发功能. 在串口发送结束后, 立即或延时自动将关联IO脚拉低,自动切换到485接收状态.   如果这个IO在发送时候可选硬件自动置高的话,那485就和串口程序一样了, 不需要额外处理, 可以实现485自动收发.

点评

如果RS485不被 CAN 取代,这就是绝好的建议  发表于 2023-12-9 21:00
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-9 18:44:17 | 显示全部楼层
SPI 数据输出脚, 能否加 一级 反相器 ?

通过 寄存器 位, 设定 数据 输出是 同相 还是反相.

同相 : 常规输出,

反相 : 驱动 WS2812B 类芯片
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-9 20:08:50 | 显示全部楼层
关于 MDU 的建议


MDU32 太占寄存器了, 51的 所有寄存器 R0-R7 被他全占了, 除了 long型 乘除运算, 对单精度的浮点运算提速, 帮助有限 (51内核 不是 251核, 可用寄存器太少了) ,


而基本运算库, 必须是可重入的函数, 浮点乘除运算远比定点 long型 乘除运算 复杂多了, 占用临时变量也多(因为是可重入的, 必须放在基本寄存器内), 如果寄存器


  R0-R7 被 MDU32 全占用了, 那这个程序没法编写(硬编写出来的也是个鸡肋, 占用程序空间大,执行时间长,运行效率低).


注: 浮点乘除法, 用到 小数乘除法, 和普通的定点整数乘除法不同(定点的有效位数取后面, 小数的有效位数取前面).




因此, 我认为:


MDU16的 一些功能不能丢, 最省力的方法, 把 MDU16的相关数据寄存器, 从 XFR 中 移入到 SFR中 即可.


如想用 MDU32方式(通过 DMA 传输), 则应加入原 MDU16的 一些功能, 优先级别如下:


A类 (优先采用)


1. 16位x16位 无符号乘法 , R6R7 x R2R3(或者 R4R5) --> R4R5R6R7
注: 如能做到 32位x16位, 那更好, R4R5R6R7 x R2R3 --> R2R3R4R5R6R7


2. 32位/16位 无符号除法 , R4R5R6R7 / R2R3 --> R4R5R6R7,余数 R2R3
注: 如有困难,做到 16位/16位, 也可, R6R7 / R2R3(或者 R4R5) --> R6R7, 余数 R2R3(或者 R4R5)


3. 32位 数据规格化 , R5R6R7R4 --> R5R6R7R4,移位数 --> R0


4. 32位 逻辑右移 , 移位数放在 R0, R5R6R7R4 --> R5R6R7R4


注: 3,4项, R4放未位, 有助于 4舍 5入 , 优化浮点数运算速度, 如有困难,按依次存放做 R4R5R6R7 也可.
    以上这些内容, 优先考虑 单精度的浮点运算提速, 兼顾 long型 和 int型 乘除运算.




B类 (厂方考虑)


1. 32位x32位 无符号乘法 , R4R5R6R7 x R0R1R2R3 --> R4R5R6R7


2. 32位/32位 无符号除法 , R4R5R6R7 / R0R1R2R3 --> R4R5R6R7,余数 R0R1R2R3


3. 32位 逻辑左移 , 移位数放在 R0, R5R6R7R4 --> R5R6R7R4


4. 32位 算术右移 , 移位数放在 R0, R5R6R7R4 --> R5R6R7R4


注: 关于有符号除法, 依厂方心愿, 是否加入




C类 (增强功能, 厂方考虑)


1. 16位 XRAM 间接寻址, 读取, @R2R1 --> A (以R2R1为地址, 读取 XRAM 内容送 ACC)


2. 16位 XRAM 间接寻址, 写入, A --> @R2R1 (以R2R1为地址, 将 ACC内容 写入 XRAM)


注: 以上内容相当于 增加一条 高速 @DPTR 读写 XRAM 指令, 如实现方使, 建议再多增加 1~2条(如增加 1条, 读优先)


1. 16位 XRAM 间接寻址, 读取, @R4R0 --> B (以R4R0为地址, 读取 XRAM 内容送 B)


2. 16位 XRAM 间接寻址, 写入, B --> @R4R0 (以R4R0为地址, 将 B内容 写入 XRAM)


注: ACC寄存器, 负担太重, 能存入 B寄存器最好, 如有困难,存入 ACC 也可



D类 (关于 DPTR )


最起码改成 和 STC32 一样( DPTR 地址 公用, C语言可用), 否则又是一个鸡肋.


当然, 能改成 C51/IAR 支持的 格式, 那最好了.




E类 (关于 16位 堆栈指针 )


51类的 天花板, 堆栈指针 增加到 16位, 堆栈放在 XRAM 中, 强力支持 OS , STC 是否考虑, 何时加入 ?




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-9 20:11:40 | 显示全部楼层
关于 定时器 0 工作模式 3, 不可关闭的时钟中断,  优先级最高, 能否调整到最低?  以便 OS 系统能使用.

点评

那就再做个定时器,如 T11  发表于 2023-12-9 20:17
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-12-9 20:19:08 | 显示全部楼层

桶式操作, 移N位 + 累加 , 一条指令完成

老姚如 有兴趣, 可 用于 STC32 等 上面,

这个 8位机 就算了,  什么时候再加个 16位堆栈指针, 就算到天花板了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-12-9 20:24:09 | 显示全部楼层
桶式操作, 移N位 + 累加 , 一条指令完成

===帮详细描述下,R0 ~ R7 如何使用

乘加了,DSP的基本东西 ?
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:20 , Processed in 0.172528 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表