查看: 10595|回复: 0

[S32] S32DS中创建并使用静态库

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

    6 小时前
  • 签到天数: 2379 天

    连续签到: 11 天

    [LV.Master]伴坛终老

    56

    主题

    5258

    帖子

    73

    金牌会员

    Rank: 6Rank: 6

    积分
    25885
    最后登录
    2025-7-23
    发表于 2019-12-12 17:16:57 | 显示全部楼层 |阅读模式
    本帖最后由 Angel_YY 于 2019-12-13 14:13 编辑

    在单片机开发中,有时候需要把代码封装成一个静态库文件,这样既可以有效保护源代码,也可以使得项目代码更加整洁。那么接下来我们看看如何在S32DS IDE for Arm中创建并使用静态库文件。
    01.jpg
    目前S32DS for ARM的最新版本为2018R1,补丁已经更新的UP11了,只有打上最新的补丁,才能使用最新的RTM版本SDK。
    一、创建静态库工程
    02.jpg
    打开S32DS后从菜单中以此点击File->New->S32DS Library Project。
    03.jpg
    在新窗口中以此填写Project name,我这里使用"MyLib"作为项目名称,指定项目保存目录,选择处理器,指定编译器后点击Next。
    04.jpg
    选择是否使用硬件FPU,点击Finish。
    05.jpg
    此时项目列表中增加了新建的项目MyLib,include中和src中分别自动增加了头文件mylibary.h和mylibrary.c。双击后再右侧就可以编辑两个文件
    了。
    06.jpg
    在mylibrary.h中增加一个函数声明。
    07.jpg
    在mylibrary.c中添加函数实现。
    08.jpg
    编译工程,编译完成后会生成静态库文件libMyLib.a。
    二、引用静态库工程
    静态库创建完成后,在其他的应用工程中如何引用呢?接下来就是引用静态库的方法。
    09.jpg
    依据创建库的方法创建应用工程。File->New->S32DS Application Project。
    10.jpg
    选择应用工程的名字了保存路径。
    11.jpg
    根据需求选择工程选项,注意如果使用硬件FPU,这里需要选择FPU Support为Hardware:-mfloat-abi=hard。选择相应的SDK以便使用。
    12.jpg
    应用工程创建完成后,把库工程中的头文件和库文件拷贝到应用工程相应目录,在应用工程main.c文件中引用头文件并调用相关函数。
    13.jpg
    应用工程邮件菜单选择Properties。
    14.jpg
    在项目属性中以此选择C/C++ Build->Settings->Stdandard S32DS C Compiler->Includes,在Include paths列表中确保已经添加了库头文件所在的目录。
    15.jpg
    同样设置数据,选择C/C++ Build->Settings->Stdandard S32DS C Linker->Libraries,添加库名称,输入":libMyLib.a",注意输入包含英文双引号部分,并且库名称前面要添加英文冒号。Library search path列表中添加库文件所在的路径,这里可以使用变量"$ProjDirPath"来添加相对路径。点击ok后设置完成。
    16.jpg
    编译应用工程,编译过程不会报错,证明引用库成功。


    三、总结
    在S32DS中创建和使用静态库还是很方便的,编译器的向导会帮我们完成很多东西,但是在引用库的时候需要正确设置库的名称和路径,否则会找不到库文件。


    我知道答案 目前已有0人回答
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 13:52 , Processed in 0.083712 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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