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

STC32库函数20230318版更新

[复制链接]
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 129 天

    [LV.7]常住居民III

    37

    主题

    851

    回帖

    3894

    积分

    荣誉版主

    积分
    3894
    发表于 2023-2-1 06:34:26 | 显示全部楼层
    网上普遍反应, IAR C51 编译的代码质量 要优于 Keil C51.

    让我想起了很久前看到的一篇贴子, 作者用一个也算比效规范的写法, 用宏定义了一个 常数指针作为 XDATA的地址.

    IAR C51编译后, 直接用这常数, 对 DPTR赋值.

    Keil C51编译后, 先用这常数对内部变量赋值, 再转换成指针, 最后才对 DPTR赋值.(其常数值始终未变), 代码如同上面的例子, 一大堆.

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 129 天

    [LV.7]常住居民III

    37

    主题

    851

    回帖

    3894

    积分

    荣誉版主

    积分
    3894
    发表于 2023-2-1 06:53:32 | 显示全部楼层
    宏定义经人工优化后, 在 C251编译环境下, 效果好多了, 代码长度接近 汇编级, 我再看看, 是否还能再优化, 期望  代码长度达到 汇编级,

    这是  C251正常编译结果:

    未命名4.JPG
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 129 天

    [LV.7]常住居民III

    37

    主题

    851

    回帖

    3894

    积分

    荣誉版主

    积分
    3894
    发表于 2023-2-1 07:32:06 | 显示全部楼层
    宏定义又做了进一步优化, 在 C251编译环境下, 已达到极限了, 红框内的代码, 因 C251 编译器问题, 无法去除(优化) .

    这是  C251最终编译结果:


    未命名5.JPG
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 129 天

    [LV.7]常住居民III

    37

    主题

    851

    回帖

    3894

    积分

    荣誉版主

    积分
    3894
    发表于 2023-2-1 07:37:08 | 显示全部楼层
    这是测试代码, 能自动识别 C51编译器 和  C251编译器 , 编译出最优最短的执行代码.


    TEST1.rar (34.69 KB, 下载次数: 71)

    点评

    赞!这么好的方法后续会收入到库函数例程包里。如果还有其他好的思路跟方法的话请多多提供。  发表于 2023-2-1 14:44
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    6 小时前
  • 签到天数: 118 天

    [LV.6]常住居民II

    10

    主题

    70

    回帖

    970

    积分

    高级会员

    积分
    970
    发表于 2023-2-1 11:29:07 | 显示全部楼层
    必须给楼主点赞

    该用户从未签到

    0

    主题

    10

    回帖

    108

    积分

    注册会员

    积分
    108
    发表于 2023-2-2 11:24:10 | 显示全部楼层
    不错不错,这个要支持

    期待官方库更加完善
  • TA的每日心情
    开心
    2023-12-18 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    86

    回帖

    202

    积分

    中级会员

    积分
    202
    发表于 2023-2-4 15:31:39 | 显示全部楼层
    LAOXU 发表于 2023-2-1 06:34
    网上普遍反应, IAR C51 编译的代码质量 要优于 Keil C51.

    让我想起了很久前看到的一篇贴子, 作者用一个也 ...

    IAR51好像边缘化了,上次应用的时候好像十年前了,后来用KEIL习惯了就忘记了还有IAR:lol

    该用户从未签到

    550

    主题

    9203

    回帖

    1万

    积分

    管理员

    积分
    13914
    发表于 2023-2-4 15:36:51 | 显示全部楼层
    STC 1T 8051:
    Keil/这个最实用;
    IAR C++ for 8051/【C99, C++, 都是精华】;
    SDCC/玩玩可以, 企业就不要玩这东西了

    STC32G12K128 : Keil C251/绝对实用

    该用户从未签到

    550

    主题

    9203

    回帖

    1万

    积分

    管理员

    积分
    13914
    发表于 2023-2-4 15:38:13 | 显示全部楼层
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 129 天

    [LV.7]常住居民III

    37

    主题

    851

    回帖

    3894

    积分

    荣誉版主

    积分
    3894
    发表于 2023-2-4 20:24:15 | 显示全部楼层

    推荐最新编写的 STC32G_MDU32 标准数学函数库,

    函数库, 含以下库文件.

    1. 浮点加减乘除法

    2. 32位整数乘除法(快速)

    2. 64位长整数加减乘除法

    3. ABS求绝对值.



    未命名1.JPG
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-4-25 15:37 , Processed in 0.069252 second(s), 66 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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