0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

由库引生出来的话题

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-14 14:36 次阅读

写在前面 Ⅰ

库,对于编程的人来说,都应该知道。但有很多初学者,及已经工作的朋友对库的理解还处于书本概念阶段,也就是自己没有生成及使用过库。

其实,还有很多朋友不知道printf打印函数是怎么回事,我们在代码中调用printf函数打印数据时,已经调用了标准的“微库”,这里可以参看我的文章:关于printf和scanf在开发STM32中的配置和应用

什么情况下要生成库?

1.代码模块化定型。也就是说模块代码的功能在经过无数次验证,并无误后,方便团队的协同开发,这个时候可以将模块代码生成库。

2.提供SDK给客户开发。这里一般是指源代码对客户不具有公开性的原因,包括某些特有算法、实现特有功能的具体过程等。

生成库的原则?

简单来说就是使代码结构化、模块化、源码不具公开性等。要求代码高内聚、低耦合

Keil、IAR如何生成库? Ⅱ

代码工程生成库的过程只需要对工程进行配置即可,这里再简单讲一下过程,其实在我“系列教程”中有相关内容。

Keil:Project -> Options for Target -> Output 勾选上“Create Library”即可。

IAR:Project -> Options -> General Options -> Output 勾选上“Library”即可。

库在工程的使用方法 Ⅲ

“.Lib”、“.a”这种库大家可以理解为“.c”,只是它已经经过处理而已。我们只需要像添加“.c”文件,将其添加到工程即可。如下图,我们将STM32F10x_StdPeriph_Driver标准外设库生成“STM32F10x_StdPeriph_Driver.a”库,添加到工程中:

静态库和动态库的区别? Ⅳ

上面Keil生成的库是以“.Lib”为后缀的文件,IAR是以“.a”为后缀的文件,你们知道他们是静态库还是动态库吗?

答案是:二者都是静态库。

为什么都是静态库呢? 先看一下静态库和动态库的区别就会知道。

简单的来说二者的区别:

静态库:就是在编译的时候直接将需要的代码连接进可执行程序中去;

动态库:就是在需要调用其中的函数时,根据函数映射表找到该函数然后调入堆栈执行。

从上面的描述可以知道,静态库是我们MCU开发者常用的一种,而动态库常用于Linux、Windows等开发场合。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16865

    浏览量

    349849
  • IAR
    IAR
    +关注

    关注

    5

    文章

    344

    浏览量

    36591
  • 模块化
    +关注

    关注

    0

    文章

    327

    浏览量

    21321
  • keil
    +关注

    关注

    68

    文章

    1210

    浏览量

    166555
收藏 人收藏

    评论

    相关推荐

    宠物自动喂食器主控芯片DSH3186

    宠物在现代人的生活中占有极大的比重,甚至愿意将宠物当做孩子精细地养活。也正因为如此,宠物而衍生出来的产业链涉及方方面面,不但解决了宠物主人的烦恼,也给宠物们带来更为幸福的生活。其中,宠物自动喂食
    的头像 发表于 11-01 16:26 142次阅读

    星闪的崛起,会对定位市场产生什么影响?

    最近几年,国内的无线通信技术领域,一直有一个“靓仔”,吸引着流量的风口,那就是星闪。在AIoT产业圈中,大家基本都听过星闪,但星闪这个技术以及衍生出来产业到底是什么样的,或许很多人就不是很清晰。星闪
    的头像 发表于 11-01 08:05 221次阅读
    星闪的崛起,会对定位市场产生什么影响?

    OPA548如果4脚(V-)接GND的话,电压最低能输出来多少?能到0V吗?

    想确定一下OPA548如果4脚(V-)接GND的话,电压最低能输出来多少,能到0V吗,看手册写的是轨对轨的
    发表于 08-28 08:27

    I2S MCLK没有信号的原因?

    ,i2s_mclk_gpio_select()这个函数在官方的IDF和ADF的文档里都找不到。上面这些都讲的模糊不清,不一定能用,有没有人明确用I2S实际产生出来MCLK,说明下如何用。就为来产生
    发表于 06-19 06:37

    ADuC845来画PCB的话,需要引出来哪几个脚来烧录?TXD和RXD吗?

    我需要买什么下载器来下载吗?如果我使用这个芯片来画PCB的话,需要引出来哪几个脚来烧录?TXD和RXD吗?
    发表于 05-31 06:09

    华为申请“望”等多枚运输工具商标

    另据了解,深圳望智能技术有限公司已于今年1月16日正式成立,其注册地为华为深圳总部大楼,华为技术有限公司全资持股。值得注意的是,这间新公司华为车BU部门负责运作。
    的头像 发表于 01-29 13:52 575次阅读

    单片机变量存储大小什么决定?

    最近看到群友在讨论【单片机变量存储大小什么决定?】的话题
    的头像 发表于 01-26 10:11 608次阅读
    单片机变量存储大小<b class='flag-5'>由</b>什么决定?

    求助怎么减少labview仿真中生成信号的点数

    这个仿真控制生出来的信号数据点太多了,计算一秒都上万个点了,求求怎么减少点
    发表于 01-19 19:55

    自举电路自举电阻和自举电容的工作原理是什么?

    有射极跟随器衍生出来的自举电路,是怎么得出这个名字的,是否和变频器单电源供电的自举驱动有相似之处?在这个电路中,所谓的自举电阻和自举电容起到了一个什么样的作用?
    发表于 01-11 15:07

    将ADP7102的NC(第4脚)接地的话会导致没有电压输出吗?

    将ADP7102的NC(第4脚)接地的话会导致没有电压输出吗?数据手册上标记的是“NO CONNECT.DO NOT CONNECT TO THIS PIN.”而在做板时已经将其接地,现在测试时没有电压输出,这可能是NC接地导致的吗?通常情况下NC不是可以接地的吗?
    发表于 01-09 07:34

    当前数据国产化进程情况如何?

    最近,关于数据国产化替代的话题甚是热门。OSCHINA 开源中国特别邀请了欧冶云商股份有限公司数据首席薛晓刚就这一话题发表看法。
    的头像 发表于 12-14 10:18 734次阅读

    AD7606的44、45和42脚不接电容的话,会对采样的数据产生影响吗?

    AD7606的44、45和42脚不接电容的话,会对采样的数据产生影响吗?现在我的程序是能检查到busy信号并且数据有转换,但是数据不对,会变化,采样电压2v和3v的数值是一样的,出现着这种情况适合
    发表于 12-14 07:58

    从人生、历史到单片机的话题讨论

    我们来看单片机 的例子,读者可能会担心单片机(又称MCU,或微控制器) 过于专业而无法理解。完全没必要!在这里我们仅借它谈论一下有关时间的话题,顺带提一下单片机系统的概念。
    的头像 发表于 12-05 10:35 494次阅读
    从人生、历史到单片机<b class='flag-5'>的话题</b>讨论

    话题通信接口的定义和运行效果

    ,将驱动相机并发布图像话题,此时的话题数据使用的是ROS中标准定义的Image图像消息; 第二个节点,会运行视觉识别功能,识别目标的位置,这个位置我们希望封装成话题消息,发布出去,谁需要使用谁就来订阅; 第三个节点,订阅位
    的头像 发表于 12-01 15:32 404次阅读
    <b class='flag-5'>话题</b>通信接口的定义和运行效果

    神秘又有趣的话题——芯片引脚顺序!

    亲爱的“芯”朋友,你们有没有发现,每颗芯片上都布满了密密麻麻的引脚,犹如一座迷宫,让人无从下手?今天,我们一起来揭开这个迷宫的神秘面纱,探索一下这个既神秘又有趣的话题——芯片引脚顺序!芯片,这个看似
    的头像 发表于 11-28 09:33 1.3w次阅读
    神秘又有趣<b class='flag-5'>的话题</b>——芯片引脚顺序!