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

世上(也是史上)功能最全的STC8 MDU16应用 LIB

[复制链接]

该用户从未签到

5

主题

21

回帖

112

积分

注册会员

积分
112
发表于 2023-12-25 22:15:03 | 显示全部楼层
LAOXU 发表于 2023-11-26 22:37
确实有问题, 经确认是 MDU16 问题, 由于操作数寄存器都放在 扩展 XFR 中, 大量数据传送 需要通过 DPTR转 ...

您好,最近看到您发布的MDU16应用库,我是新手,看到这么宝贵的资料希望前后学习一下。其中我把前面网友们的问题和您的回复做个梳理,您看看是否正确。
1. 第一版 2023-1-5 19:32:29 ~ 2023-1-5 19:42:45 发布的内容,其中您提到EAXFR信息,请问这个外部扩展RAM是不是一般的芯片应用中都不会使用,是外挂RAM芯片的意思?
2. 如果我设置该寄存器为1时,在不外挂RAM芯片时,无任何使用限制及条件范围,是吗?
3. 在您 2023-1-6 13:23:02 发布的消息中,前面部分都测试完成,后面4个函数中加入浮点数加/减/除法, 仅乘一个 浮点数乘法还没测试好,对吧(确认下)。
4.在您 2023-1-6 13:49:49 ~ 2023-1-6 13:50:51 介绍中,提到我们只需要把LIB加入进去,所有我们C语言写的+-*/操作都会自动替代,对吗?
5. 在 2023-1-7 07:47:30 消息中,您已经把所有操作都确认好了,对吗?
6. 后面的 2023-1-7 11:06:58 ~ 2023-1-7 11:57:48 交流中,您提到如果需要把我们C语言写的+-*/操作都会自动替代硬件实现,必须使用标准底层库,并讲了使用方法,对吗?
7. 您在 2023-1-10 12:17:52 提到您尽可能在性能优先的基础上优化长度了,原因是硬件寄存器的问题,对吗?
8. 大家都对性能有要求,代码长度无所谓,您说了第一版的LIB中已经完成了math.h的所有函数的优化(原因是底层都是调用浮点加减乘除运算),对吗?但我有一个不明白,应该 2023-1-7 07:47:30 中您才把所有浮点加减乘除测试完的,应该是那个版本才能用的吧?
9. 有人提到有时候乘法运算反而会变慢,您在 2023-11-26 22:37:20 提到没有办法,所以有人建议去除这个无需加速的 16位硬件乘法 操作。请问您能推出这个去除 16位硬件乘法 的LIB和项目吗?我想前后对比一下怎么操作生成LIB,因为文章中并没有对这个的介绍。
10. 有人提到能把双数据指针加进去吗,您在 2023-12-17 02:54:05 提到更多的考虑数据安全性,不能影响中断使用,所以不能加入。对吗?

然后,我迫切期望您能推出这个去除 16位硬件乘法 的LIB和项目吗?

点评

STC8 MDU16确实设计的不好, 其根源就是把大量需反复 操作 的 操作数寄存器都放在 扩展 XFR 中, 大量数据传送 需要通过 DPTR转 , 拖慢了整体速度, 注: 其实 MDU16 在功能上讲, 比 现在 老姚 准备 用在 STC8 上的 MD  详情 回复 发表于 2023-12-26 02:55
回复 支持 反对 送花

使用道具 举报

该用户从未签到

5

主题

21

回帖

112

积分

注册会员

积分
112
发表于 2023-12-25 22:22:52 | 显示全部楼层
LAOXU 发表于 2023-11-26 22:37
确实有问题, 经确认是 MDU16 问题, 由于操作数寄存器都放在 扩展 XFR 中, 大量数据传送 需要通过 DPTR转 ...

最后,再确认下,32位 * 32位(4字节乘法)会不会也同样有不如软件库的情况?是否需要将LMUL也删除?

点评

编个简单的程序, 运算 32位 * 32位(4字节乘法) , 运算 前清 0 定时计数器值, 运算 后 关闭计数. 加库和移除 , 分别测试, 哪个快 (计数器值小), 保留下来 即可.  详情 回复 发表于 2023-12-26 02:31
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    昨天 02:35
  • 签到天数: 132 天

    [LV.7]常住居民III

    37

    主题

    868

    回帖

    3940

    积分

    荣誉版主

    积分
    3940
     楼主| 发表于 2023-12-26 02:31:42 | 显示全部楼层
    wsr2580 发表于 2023-12-25 22:22
    最后,再确认下,32位 * 32位(4字节乘法)会不会也同样有不如软件库的情况?是否需要将LMUL也删除? ...

    编个简单的程序, 运算 32位 * 32位(4字节乘法) , 运算 前清 0 定时计数器值, 运算 后 关闭计数.

    加库和移除 , 分别测试,  哪个快 (计数器值小), 保留下来 即可.
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 02:35
  • 签到天数: 132 天

    [LV.7]常住居民III

    37

    主题

    868

    回帖

    3940

    积分

    荣誉版主

    积分
    3940
     楼主| 发表于 2023-12-26 02:55:52 | 显示全部楼层
    wsr2580 发表于 2023-12-25 22:15
    您好,最近看到您发布的MDU16应用库,我是新手,看到这么宝贵的资料希望前后学习一下。其中我把前面网友 ...

    STC8 MDU16确实设计的不好, 其根源就是把大量需反复 操作 的 操作数寄存器都放在 扩展 XFR 中, 大量数据传送 需要通过 DPTR转 , 拖慢了整体速度,

    注: 其实 MDU16 在功能上讲, 比 现在 老姚 准备 用在 STC8 上的 MDU32C 更实用.

    虽然 MDU32C 功能上 弱一点(缺少对 16位 操作数 的支持),  32位 运算 飞快, 16位 运算要比 32位 运算 慢一点. 但整体来说, 比  MDU16 强(主要解决了 大量数据的传送 , 不再需要通过 DPTR转 , 影响速度的 51 通病).
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 02:35
  • 签到天数: 132 天

    [LV.7]常住居民III

    37

    主题

    868

    回帖

    3940

    积分

    荣誉版主

    积分
    3940
     楼主| 发表于 2023-12-26 03:06:04 | 显示全部楼层
    春节期间抽空, 把 MDU16 库 综合测试一遍, 去掉 拖慢 运算 的 函数, 保留能 提升速度的部分, 也算对  MDU16 库 做个彻底了结.

    春节期间也想把 双数据指针 的应用, 建个 LIB , 当然, 前提是 在保证数据安全性,不能影响用户的中断使用,所以在速度上执行效率上可能会降底一些. 但整体上讲, 比不用 双数据指针 要强.
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    5

    主题

    21

    回帖

    112

    积分

    注册会员

    积分
    112
    发表于 2023-12-26 15:32:42 | 显示全部楼层
    wsr2580 发表于 2023-12-25 22:15
    您好,最近看到您发布的MDU16应用库,我是新手,看到这么宝贵的资料希望前后学习一下。其中我把前面网友 ...

    经过具体梳理
    前两个问题,正确;
    第三个问题,正确;
    第四个问题,正确;
    第五个问题,正确;
    第六个问题,正确;
    第七个问题,正确;
    第八个问题,正确;
    第九个问题,作者回答了,其实操作蛮简单,进入前面第二版所发的项目,把不需要的右键移除,或者按下图取消编译即可:
    截图202312261531373910.jpg
    第十个问题,作者回答了。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-29 01:30 , Processed in 0.066004 second(s), 50 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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