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

32位加减乘除,STC8位机上的MDU32C 实测!库函数,STC8H2K32U-45MHz

[复制链接]
  • TA的每日心情
    开心
    昨天 06:47
  • 签到天数: 168 天

    [LV.7]常住居民III

    39

    主题

    908

    回帖

    4356

    积分

    荣誉版主

    积分
    4356
     楼主| 发表于 2024-5-15 16:53:57 | 显示全部楼层
    xxkj2010 发表于 2024-5-15 09:40
    是不是直接赋值给MDU32C寄存器,就可以直接从MDU32C寄存器中读取结果?

    不用, 只要在项目中加入 STC8_MDU32C_LIB_V1.LIB 库, 其他什么都不用管, 该干哈就干啥, 全自动傻瓜式提速。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 06:47
  • 签到天数: 168 天

    [LV.7]常住居民III

    39

    主题

    908

    回帖

    4356

    积分

    荣誉版主

    积分
    4356
     楼主| 发表于 2024-5-15 16:54:26 | 显示全部楼层
    jmg 发表于 2024-5-15 10:34
    > "6. Add 32-bit exchange instructions (R0R1R2R3R4R5R6R7). "

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 06:47
  • 签到天数: 168 天

    [LV.7]常住居民III

    39

    主题

    908

    回帖

    4356

    积分

    荣誉版主

    积分
    4356
     楼主| 发表于 2024-5-15 16:59:50 | 显示全部楼层
    最新 STC8_MDU32C_V1.lib 来了~~~~~

    STC8H_MDU32C_V1 LIB 库使用说明:
    STC8H系列单片机 C51定点库 自动调用专用运算库函数,

    插入使用了 STC8H系列的特色----MDU32C硬件乘除移位指令。
    并且针对 STC8H系列集成了 32位x32位硬件乘法器32位/32位硬件除法器32位硬件移位单元作了特别优化。
    增加了对所有关联到的无符号、有符号int型,无符号、有符号long型float型变量的算术运算,移位操作,
    均作了运算速度大幅度提升,为方便使用,以外挂库形式加入,实行对C51内库自动替换,无缝嵌入,

    其中最具有特色的是
    单精度浮点数加/减/乘/除四则运算,用 STC8H系列的 MDU32C硬件 乘除移位指令,
    代替原Keil C51的加减法模拟除法程序,
    大幅度地提升了原 51单精度浮点数加/减/乘/除 四则运算特慢的通病。


    单独 LIB 文件:
    STC8_MDU32C.LIB (12.44 KB, 下载次数: 19)

    LIB源代码:
    STC8_MDU32C_LIB_V1.rar (74.33 KB, 下载次数: 28)

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 06:47
  • 签到天数: 168 天

    [LV.7]常住居民III

    39

    主题

    908

    回帖

    4356

    积分

    荣誉版主

    积分
    4356
     楼主| 发表于 2024-5-15 17:02:16 | 显示全部楼层
    库内部包含(优化)了 16个库函数:


    捕获q头.JPG

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    5 天前
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    17

    主题

    24

    回帖

    247

    积分

    中级会员

    积分
    247
    发表于 2024-5-15 17:04:43 | 显示全部楼层
    支持楼主,学习了!谢谢
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:00
  • 签到天数: 196 天

    [LV.7]常住居民III

    67

    主题

    898

    回帖

    3056

    积分

    论坛元老

    积分
    3056
    发表于 2024-5-16 13:21:52 | 显示全部楼层
    LAOXU 发表于 2024-5-15 16:53
    不用, 只要在项目中加入 STC8_MDU32C_LIB_V1.LIB 库, 其他什么都不用管, 该干哈就干啥, 全自动傻瓜式提 ...

    有没有纯代码的,不要用lib库的?毕竟寄存器又不多。

    点评

    那自已在库源代码中, 找出相应的源码挂在项目中即可  详情 回复 发表于 2024-5-17 02:02
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    563

    主题

    9864

    回帖

    1万

    积分

    管理员

    积分
    14405
    发表于 2024-5-16 18:20:11 | 显示全部楼层
    MDU32CSTC8H2K32U-45MHz-LQFP32, TSSOP28, TSSOP20 上量产
    MDU16  STC8H2K08U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
    MDU16  STC8H2K12U 2CDC+HID-TSSOP20/SOP16上量产,大量现货供应中
    MDU16  STC8H2K17U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
    这个系列的 MDU16 会在 MDU32C 基础上升级到 MDU32D

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    563

    主题

    9864

    回帖

    1万

    积分

    管理员

    积分
    14405
    发表于 2024-5-16 18:20:11 | 显示全部楼层

    MDU32D

    MDU32CSTC8H2K32U-45MHz-LQFP32, TSSOP28, TSSOP20 上量产
    MDU16  STC8H2K08U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
    MDU16  STC8H2K12U 2CDC+HID-TSSOP20/SOP16上量产,大量现货供应中
    MDU16  STC8H2K17U-45MHz-TSSOP20/SOP16上量产,大量现货供应中
    这个系列的 MDU16 会在 MDU32C 基础上升级到 MDU32D

    深圳国芯人工智能有限公司-产品_STC8H系列 (stcai.com)

    截图202405161821012432.jpg

    截图202405161821278759.jpg

    截图202405161826303183.jpg

    截图202405161823043513.jpg

    截图202405161828287584.jpg
    截图202405161828526251.jpg

    截图202405161829408806.jpg

    截图202405161830266807.jpg

    截图202405161831205578.jpg

    截图202405161832579591.jpg
    截图202405161833316774.jpg

    截图202405161834095675.jpg
    截图202405161834552462.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 06:47
  • 签到天数: 168 天

    [LV.7]常住居民III

    39

    主题

    908

    回帖

    4356

    积分

    荣誉版主

    积分
    4356
     楼主| 发表于 2024-5-17 02:02:55 | 显示全部楼层
    xxkj2010 发表于 2024-5-16 13:21
    有没有纯代码的,不要用lib库的?毕竟寄存器又不多。

    那自已在库源代码中,  找出相应的源码挂在项目中即可
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 06:47
  • 签到天数: 168 天

    [LV.7]常住居民III

    39

    主题

    908

    回帖

    4356

    积分

    荣誉版主

    积分
    4356
     楼主| 发表于 2024-5-17 03:39:03 | 显示全部楼层
    非常不错, 把 DPU32 的一些基本指令移植上去了, 补充了传统 51的 16位运算功能不足之短处, 赞一个!


    由于浮点数存储格式不同, Keil 是 R0-R3 和 R4-R7; SDCC 是 R0,R2-R4 和 R1,R5-R7; 而 IAR 又是 R2-R5; 每家都不相同, 这标准格式没法统一, 考虑到通用性, 数据变换少不了.
    数据变换中, 这条指令作用很大.
    1) 32位循环右移(或左移), 由于数据是循环的, 加一条即可.
        可省去好多代码.
    在格式变换中, 这条指令作用很大.
    1) 32位比较指令(即做减法结果不回传).
        在浮点数加/减法中, 对阶码的判断, 这条指令作用很大.


        由于 32位加/减法, 进位标志已同步到 PSW中, 可省去运算过程中的 5条左右指令,
    非常适合在浮点数中使用.
    因此, 下列 DPU32 指令强烈建议加上.
    2) SWAP 交换指令, R0-R3 和 R4-R7 内容互换.
        和减法指令配合, 用于浮点数减法, R0-R3 减 R4-R7.
    3) 32位 加1 指令,
        用于浮点数 4舍5入.
    这样, 能再次提升 浮点运算库的 运算速度。
         


    下列指令请均情考虑:
    3) 32位 减1 (和 加1 对称)
    4) 32位 求负数
    5) 32位 清0 (清 R0-R3 优先)

    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-11 02:47 , Processed in 0.080221 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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