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

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

[复制链接]
  • TA的每日心情
    开心
    昨天 11:04
  • 签到天数: 162 天

    [LV.7]常住居民III

    17

    主题

    371

    回帖

    1323

    积分

    荣誉版主

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

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
    发表于 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坚挺~~~
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9345

    回帖

    1万

    积分

    管理员

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

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 03:13
  • 签到天数: 79 天

    [LV.6]常住居民II

    1

    主题

    31

    回帖

    186

    积分

    注册会员

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 03:13
  • 签到天数: 79 天

    [LV.6]常住居民II

    1

    主题

    31

    回帖

    186

    积分

    注册会员

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

    点评

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

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

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

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

    同相 : 常规输出,

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

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
    发表于 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 是否考虑, 何时加入 ?




    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

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

    点评

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

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

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

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

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

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

    使用道具 举报

    该用户从未签到

    550

    主题

    9345

    回帖

    1万

    积分

    管理员

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

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-8 00:34 , Processed in 0.069443 second(s), 65 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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