找回密码
 立即注册
楼主: LAOXU

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

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-05-01 08:57:59

19

主题

137

回帖

485

积分

中级会员

积分
485
发表于 2023-1-10 06:17:25 来自手机 | 显示全部楼层
做得不错,还不是很敢用,不知道有没有bug,项目程序效率很重要,更重要的是可靠性,抽空仔细学习下楼主库的源代码。
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

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

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

楼上可将MDU16库, 挂上和不挂上分别编译运行, 即生成两个不同的 Hex文件, 下载芯片中, 试试效果.
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

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

实行对C51内库自动替换,无缝嵌入,其中最具有特色的是float型和long型的除法运算,
  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-05-01 08:57:59

19

主题

137

回帖

485

积分

中级会员

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

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

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

没用库

没用库

使用库

使用库
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2023-1-10 12:17:52 | 显示全部楼层
xhbw*** 发表于 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
  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

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

建议您百忙之中拨冗将math.h库的三角函数,利用MDU16给优化一下。不胜感激。
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

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

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

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

2. 改进后的 下一版本 STC8H硬件MDU16 库, 以代码长度优先, 尽量相同模块用子程序, 这样, 编译后代码长度可缩短, 执行速度会慢点(但也比执行原 51通用代码要快).
  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2023-3-10 09:22:41 | 显示全部楼层
还是速度优先为好,不介意代码长度。
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

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

那第一版本就可以用.

STC8H硬件MDU16 库, 可优化了 math.h库的 浮点加减乘除运算, 而其他 三角函数, 对数 等, 都是调用 这 四个基本运算作进一步运算的, 所以, 也等于 优化了 math.h库的 所有函数
  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

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

本版积分规则

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

GMT+8, 2025-5-2 02:19 , Processed in 0.437301 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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