请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
  • TA的每日心情
    开心
    2023-12-18 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
    发表于 2023-1-10 06:17:25 来自手机 | 显示全部楼层
    做得不错,还不是很敢用,不知道有没有bug,项目程序效率很重要,更重要的是可靠性,抽空仔细学习下楼主库的源代码。
  • TA的每日心情
    开心
    前天 02:20
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
     楼主| 发表于 2023-1-10 06:36:34 | 显示全部楼层
    xhbwork 发表于 2023-1-10 06:17
    做得不错,还不是很敢用,不知道有没有bug,项目程序效率很重要,更重要的是可靠性,抽空仔细学习下楼主库 ...

    因为基本上都是数学函数库, 测试也比较简单...... 看最后运算结果.

    楼上可将MDU16库, 挂上和不挂上分别编译运行, 即生成两个不同的 Hex文件, 下载芯片中, 试试效果.
  • TA的每日心情
    开心
    前天 02:20
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
     楼主| 发表于 2023-1-10 06:51:37 | 显示全部楼层
    建议楼上,  挂MDU16库 和 不挂库, 分别编译生成Hex ,下载芯片作对比运行试试

    实行对C51内库自动替换,无缝嵌入,其中最具有特色的是float型和long型的除法运算,
  • TA的每日心情
    开心
    2023-12-18 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
    发表于 2023-1-10 08:30:21 | 显示全部楼层
    LAOXU 发表于 2023-1-10 06:51
    建议楼上,  挂MDU16库 和 不挂库, 分别编译生成Hex ,下载芯片作对比运行试试

    实行对C51内库自动替换,无缝 ...

    我一个项目,不算很小的代码量,挂载了您的库,编译代码大了百十个字节,不过运行速度手头没有板子没做测试,相信应该有改善的。

    没用库

    没用库

    使用库

    使用库
  • TA的每日心情
    开心
    前天 02:20
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
     楼主| 发表于 2023-1-10 12:17:52 | 显示全部楼层
    xhbwork 发表于 2023-1-10 08:30
    我一个项目,不算很小的代码量,挂载了您的库,编译代码大了百十个字节,不过运行速度手头没有板子没做测 ...

    尽管程序我都用汇编作了优化, 但代码还是偏长, 这个我暂时没办法做到, 原因是由于 STC8 硬件设计的关系, 把MDU16所有的指令寄存器,

    都放在了片外 RAM中, 而 51的片外寻址功能(DPTR)很弱, 大量的数据 , 必须 由 片内 R0-R7寄存器 送到  MDU16 所属的片外RAM 地址中,

    计算好后, 再从 MDU16(片外RAM) 中 读入 片内 R0-R7寄存器 , 可想而知, 这个效率.......

    当然, 这一现像在 STC32上, 是不存在的( 数据通过 DMA 自动装载 和返回 R0-R7中)

    我已对 宏晶提过建议,  详见: 对STC8H硬件MDU16所用寄存器的建议


    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=371&extra=page%3D1
  • TA的每日心情
    开心
    16 小时前
  • 签到天数: 122 天

    [LV.7]常住居民III

    17

    主题

    326

    回帖

    1063

    积分

    荣誉版主

    积分
    1063
    发表于 2023-3-8 12:19:16 | 显示全部楼层
    LAOXU 发表于 2023-1-10 12:17
    尽管程序我都用汇编作了优化, 但代码还是偏长, 这个我暂时没办法做到, 原因是由于 STC8 硬件设计的关系,  ...

    建议您百忙之中拨冗将math.h库的三角函数,利用MDU16给优化一下。不胜感激。
  • TA的每日心情
    开心
    前天 02:20
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
     楼主| 发表于 2023-3-10 09:03:53 | 显示全部楼层
    社区闲人 发表于 2023-3-8 12:19
    建议您百忙之中拨冗将math.h库的三角函数,利用MDU16给优化一下。不胜感激。 ...

    听取你的意见, 作下一步改开进优化

    1. 上一版本 STC8H硬件MDU16 库, 是速度优先, 编译后代码长度较长.

    2. 改进后的 下一版本 STC8H硬件MDU16 库, 以代码长度优先, 尽量相同模块用子程序, 这样, 编译后代码长度可缩短, 执行速度会慢点(但也比执行原 51通用代码要快).
  • TA的每日心情
    开心
    16 小时前
  • 签到天数: 122 天

    [LV.7]常住居民III

    17

    主题

    326

    回帖

    1063

    积分

    荣誉版主

    积分
    1063
    发表于 2023-3-10 09:22:41 | 显示全部楼层
    还是速度优先为好,不介意代码长度。
  • TA的每日心情
    开心
    前天 02:20
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
     楼主| 发表于 2023-3-10 09:43:48 | 显示全部楼层
    社区闲人 发表于 2023-3-10 09:22
    还是速度优先为好,不介意代码长度。

    那第一版本就可以用.

    STC8H硬件MDU16 库, 可优化了 math.h库的 浮点加减乘除运算, 而其他 三角函数, 对数 等, 都是调用 这 四个基本运算作进一步运算的, 所以, 也等于 优化了 math.h库的 所有函数
  • TA的每日心情
    开心
    16 小时前
  • 签到天数: 122 天

    [LV.7]常住居民III

    17

    主题

    326

    回帖

    1063

    积分

    荣誉版主

    积分
    1063
    发表于 2023-3-10 10:04:44 | 显示全部楼层
    我测试一下。谢谢先。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-3-28 22:23 , Processed in 0.066579 second(s), 65 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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