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

MDU32C 定型流片了吗?

[复制链接]
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 2024-1-26 14:47:10 | 显示全部楼层
    我一直认为 , 老姚的 外挂32库, 扩展 51系列, 准备搞的像 STC32一样, 有 2个系列, 分别加 1~2个模块( MDU32 和 FPMU) , 人为限制 MDU32C 的功能.

    假如没这个打算, 那只能是 贵司的设计人员, 对 C51的汇编级实现(编译)原理 理解不深刻, 只考虑 整数运算, 没考虑小数(浮点数)运算的特殊性.

    仔细想想也是, 我也 60岁退休了, 比我小的 , 汇编用的少(主要用 C), 汇编理解和经验不足, 比我大的 , 出来网上混的也少(除非特别喜欢这方面).

    现在开发都流行 硬件+C , 比汇编 更容易维护, 开发速度快, 更节省人工, 因此, 中国汇编级人才断挡. 高手难寻.

    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 2024-1-26 14:54:50 | 显示全部楼层
    神农鼎 发表于 2024-1-26 14:20
    要放到 【R0/R1/R2/R3】, 但 KEIL C51 经常会优化这优化那,可能会冲突;
    只能再增加条指令 放【R0/R1/R2/R ...

    除法指令 不是 余数 放在 R0/R1/R2/R3

    KEIL C51 优化不到这 一块  

    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 2024-1-26 15:06:03 | 显示全部楼层
    在乘除运算中,

    1. 乘法 N位 * N位 = 2N位 ,  除法 2N位 / N位 = 2N位 (余数 N位)  最实用.

    2. 除法 N位 / N位 = N位 (余数 N位)  免强能用(应用范围小).

    3. 乘法 N位 * N位 = N位 最不实用 (除非增加多条乘法指令, 比如 AVR,  有 整数, 小数, 有符号数, 无符号数 各种乘法指令),
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9343

    回帖

    1万

    积分

    管理员

    积分
    13890
    发表于 2024-1-26 15:14:28 | 显示全部楼层
    老许,x86 都没退休,x51刚到夏天,你退那么早干嘛
    x86, x51都是大哥,RISC/ARM/RISC-V 都是 弟弟,
    弟弟们在发展,哥哥们也在进步 !
    32位51论坛也才满了周岁,必定一路长虹 !

    不懂汇编肯定不能算 MCU 专家

    点评

    汇编经验靠积累, 开发的少用的少, 再聪明能力再强也没用, 工作年限没到成不了 汇编资深专家. 深圳找资深 C专家, 一抓一大把, 想找 真正的 资深 汇编专家, 肯定难.  详情 回复 发表于 2024-1-26 15:28
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 2024-1-26 15:28:08 | 显示全部楼层
    神农鼎 发表于 2024-1-26 15:14
    老许,x86 都没退休,x51刚到夏天,你退那么早干嘛
    x86, x51都是大哥,RISC/ARM/RISC-V 都是 弟弟,
    32位51 ...

    汇编经验靠积累, 开发的少用的少, 再聪明能力再强也没用, 工作年限没到成不了 汇编资深专家.

    深圳找资深 C专家, 一抓一大把, 想找 真正的 资深 汇编专家, 肯定难.
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9343

    回帖

    1万

    积分

    管理员

    积分
    13890
    发表于 5 天前 | 显示全部楼层
    MDU32C
    STC8H2K32U-45I-LQFP32 已微信小商城上架销售

    本坛网友,全部【免费+包邮 送】
    深圳国芯人工智能有限公司-产品_STC8G系列 (stcai.com)

    截图202405021823372114.jpg
    截图202405021824029833.jpg

    截图202405021824302698.jpg

    截图202405021824534707.jpg

    截图202405021826144403.jpg

    截图202405021826445287.jpg

    截图202405021827161294.jpg


    回复 支持 1 反对 0 送花

    使用道具 举报

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

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 5 天前 | 显示全部楼层
    本帖最后由 LAOXU 于 2024-5-2 21:06 编辑

    前段时间编了一下MDU32C运算库
    一. 整数运算总结如下:
    1. 32位整数乘除运算和移位操作效率最高.
    2. 16位整数乘除运算和移位操作效率差些(用32位指令模拟操作).
    3. 32位整数加减运算没用上! (C51直接内嵌数条指令执行,非子程序调用).

    二. 单精度浮点数运算总结如下:
    1. 浮点加/减法使用了 32位逻辑左移/右移.
    2. 浮点乘法使用了 32 位乘法(模拟16位乘法操作,效率比较差).
    3. 浮点除法使用了 无符号数 32 位除法.
    4. 数据规格化没用上! (主要是格式和 C51浮点数格式不符,数据格式转换后效率非常差).
    5. 32位整数带进/借位加减运算, 如不能做到和 实际的 CY标志位同步, 建议取消 (即做成不带进/借位加减运算).

    三. 针对 MDU32C库的完善, 以下建议请考虑
    1.  32 位乘法 X 32 位乘法 = 积 64位
    2.  以上如不修改, 建议增加一条 32 位小数乘法
    3.  数据规格化 格式 改成 R5R6R7R4 是否行? 以符合 C51浮点数规范.
    4.  算术左移右移, 最末移出位, 如有可能, 请放在 Cy中, 便于级联, 四舍五入等操作.




    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 5 天前 | 显示全部楼层
    本帖最后由 LAOXU 于 2024-5-2 21:17 编辑

    针对函数的可重入性, 51能使用的寄存器实在太少了, 如果要增加指令,
    下列建议供参考
    1. 数据互换    R4R5R6R7 <--> R0R1R2R3         
    2. MDU32C 内增加一个 32位临时寄存器 DW32, 并支持下列指令.
        a. 数据互换   DW32 <--> R0R1R2R3         
        b. 数据互换   DW32 <--> R4R5R6R7
    3. 32位加1    R4R5R6R7 加1
    4. 32位减1    R4R5R6R7 减1

    5. 32位求反    /R4R5R6R7  
    6. 32位求补    -R4R5R6R7  
    7. 32位比较   R4R5R6R7 - R0R1R2R3, 影响标志位

    8. 32位循环左移   R4R5R6R7 (仅循环左移1位)
    9. 32位循环右移   R4R5R6R7 (仅循环移1位)




    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9343

    回帖

    1万

    积分

    管理员

    积分
    13890
    发表于 5 天前 | 显示全部楼层
    截图202405022052504530.jpg


    Ver6.94E (2024-4-29)
      1. 调整串口绘图界面上的按钮大小
      2. 增加STC8H2K32U系列
      3. 更新STC8H系列的头文件
      4. 更新Keil环境下的CDB文件
         (增加STC8H2K32U系列)
      5. 解决同时使用多个Link1D工具时出现的串口冲突问题
      6. 更新STC-USB Link1D仿真/下载器固件 (v1.15)
      7. 脱机下载板U8W固件更新为v1.50
         (工具默认工作在3.3V)
         (默认使用3.3V电压对宽压芯片进行在线和脱机下载)
      8. 增加STC8H系列MDU32C数学库STC8_MDU32C_V1.0.LIB下载
         (MDU32C数学库仅对STC8H2K32U系列可用)
         (MDU32C库支持32位乘法、无符号32位除法、有符号32位除法、
          32位逻辑左移、32位逻辑右移、32位算术右移6种运算)


    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    37

    主题

    872

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 5 天前 | 显示全部楼层

    你的太简单了, 仅仅支持 32位整数运算.


    我编写了 除了 32位整数运算. 还有16位整数运算 和 单精度浮点数加减乘除法运算.
    以及 浮点数 --> 整数,  整数 --> 浮点数 的转换
    把 MDU32C 的功能 压榨到极致 !
    捕获1.JPG

    1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-7 07:03 , Processed in 0.069385 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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