请选择 进入手机版 | 继续访问电脑版
查看: 4345|回复: 8

RT1052+加快编译速度提升效率

[复制链接]
  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2193
    最后登录
    2023-12-1
    发表于 2018-11-6 12:07:51 | 显示全部楼层 |阅读模式
    不知道在玩1052的人是不是跟我一样觉得编译非常的慢,一点重新编译电脑CPU也是100%,电脑也会卡。后来想了一个办法可以在不改变电脑配置的情况下增加编译速度,就是将库文件编译成lib库的形式,这样在工程中就不需要重复编译库文件,会大大加快编译速度,介绍下过程。
    首先复制一份SDK,在文件夹名后面加上_lib
    copysdk.png
    然后删除board下面的所有文件,新建3个文件夹
    freertos_source_lib,fsl_drivers_lib,utilities_lib
    顾名思义大家也都知道文件夹的意思了,这里以fsl_drivers_lib为例介绍lib的制作
    在fsl_drivers_lib下新建mdk和obj目录
    mdk用于存放keil的文件,obj存放lib文件
    然后keil新建基于RT1052的工程,保存在我们的MDK目录下,然后添加我们的drivers下的文件
    addfile.png
    这个文件夹下面的除了文件名含有freertos的其余全部添加进来
    然后跟新建普通工程一样添加宏定义CPU_MIMXRT1052DVL6B和头文件路径(编译提示差那个头文件就添加那个路径),添加编译报错排除选项
    include.png
    然后在options of target(魔术棒)窗口中点击output勾选create libary并选择输出文件夹为我们刚刚建立的obj文件夹
    createlib.png
    然后点击编译,没什么问题就会生成lib文件,然后在自己工程的keil中用这个lib文件代替我们自己工程目录中drivers下面的c文件
    下面是编译的比较效果图,工程是一个freertos+emwin的demo,展示一下编译速度以及生成的文件大小
    比较.png
    显而易见的是lib文件编译速度快,生成的文件竟然还小一些。
    然后在c库工程里面把没用上的drivers下的C文件删除再试一次
    c必备库.png
    我们发现编译速度还是慢一下,这样用lib文件的缺点就是没法查找文件定义,需要自己在我们新建的lib工程里面查找才行。
    大家的做外包的时候也可以把自己的代码编译成lib保护代码哦。
    附件太大传不了,上百度云。
    https://pan.baidu.com/s/1KIRJZFspC2sAjf2P4RfBWw
    IMG_20181106_120605.jpg

    KEIL有风险,rebuild需谨慎!!!



    CPU使用率.png
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    6 天前
  • 签到天数: 1334 天

    [LV.10]以坛为家III

    88

    主题

    4290

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9022
    最后登录
    2024-3-29
    发表于 2018-11-6 12:28:16 | 显示全部楼层
    Keil在这方面的确还有很大的提升空间。
    不过,速度已经快了近2分钟,仅有原来的30+%速度也是非常可观的了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    [LV.Master]伴坛终老

    23

    主题

    3684

    帖子

    82

    金牌会员

    Rank: 6Rank: 6

    积分
    11527
    最后登录
    2024-3-29
    发表于 2018-11-6 12:43:21 | 显示全部楼层
    用lib文件的缺点就是没法查找文件定义。
    其实在直接用.c的时候,不要rebuild,用build只编译修改过的文件。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2193
    最后登录
    2023-12-1
     楼主| 发表于 2018-11-6 13:02:15 | 显示全部楼层
    有时候修改了keil的配置,添加了新文件他就会重新编译一次
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-2-4 09:24
  • 签到天数: 190 天

    [LV.7]常住居民III

    38

    主题

    591

    帖子

    28

    金牌会员

    Rank: 6Rank: 6

    积分
    2193
    最后登录
    2023-12-1
     楼主| 发表于 2018-11-6 13:03:02 | 显示全部楼层
    toofree 发表于 2018-11-6 12:43
    用lib文件的缺点就是没法查找文件定义。
    其实在直接用.c的时候,不要rebuild,用build只编译修改过的文件。 ...

    有时候修改了keil的配置,添加了新文件他就会重新编译一次
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-8 09:39
  • 签到天数: 217 天

    [LV.7]常住居民III

    92

    主题

    1087

    帖子

    29

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    7302

    热心会员

    最后登录
    2024-3-28
    发表于 2018-11-6 13:06:37 | 显示全部楼层
    可以啊,一般我都是关闭调试信息加快编译速度的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 23:06
  • 签到天数: 1467 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92135
    最后登录
    2024-3-28
    发表于 2018-11-6 16:27:30 | 显示全部楼层
    把自己用的得心应手的文件编译为llib,这样编译会快很多
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    107

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    365
    最后登录
    2022-12-14
    发表于 2018-11-7 08:15:42 | 显示全部楼层
    gcc编译速度超快。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    主题

    107

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    365
    最后登录
    2022-12-14
    发表于 2018-11-27 18:09:53 | 显示全部楼层
    最新发现,编译慢是因为RT1050的头文件(寄存器定义)巨大无比,导致编译速度降低。

    采用预编译头文件优化方式,可以显著提高编译速度(实测从2分钟加速到只需要7秒钟!!!)

    参考我的最新帖子:
    【飞凌RT1052】+ 终于找到Keil编译超慢的罪魁祸首+解决方案

    https://www.nxpic.org.cn/module/forum/thread-615639-1-1.html

    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-29 16:34 , Processed in 0.141687 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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