【经验】解密Simplicity开发工具如何制作MCU库函数

2016-11-26 世强 Carol

很多客户的MCU软件开发会涉及到保密性,其中有很多重要的算法为公司独有,不希望公开源代码。同时,客户也希望在软件开发方面得到支持,因此需要我们提供的软件在不开放源代码的前提下可供客户使用。这就需要我们制作库函数(*.LIB)提供给客户。


本文就以Silicon LabsSimplicity Studio开发工具指导库函数的制作和调用的具体做法。以8位MCU EFM8SB20F16G为例,提供了单个及多个参数返回的实际应用案例,供参考。


Simplicity Studio制作LIB文件

1)新建一个staticLibrary工程

打开Simplicity IDE,选择Project->New->Silicon Labs MCU Project,选好型号后next,如图1所示:

 

 

图1:新建staticLibrary工程


一直Next,直到新建好工程。


2)增加Lib_sekorm.c文件到工程中,如图2所示:

 

图2:增加Lib_sekorm.c文件到工程


Lib_sekorm.c的内容如下:

unsigned int getxx(unsigned int x)

{

   return x*x;

}


void get_xyz(int *x,int *y,int *z,int a)

{

  *x = a * 2;

  *y = a * 3;

  *z = a * 4;

}


3)选中工程,鼠标右键选择Properties -> C/C++ Build -> Settings -> Build Artifact,在Artifact Type栏选择Static Library,如图3所示:


 

图3:Artifact Type栏选择Static Library


4)Build该工程,生成staticLibrary.lib


在新工程中调用此staticLibrary.lib

1)新建空工程,参考上面新建工程步骤,只是将Project Type从Library改成Empty Program,如图4所示:

 

图4:新建空工程


2)编写lib_sekorm.h文件,并将文件加入到该工程。内容如下:


#ifndef _LIB_SEKORM_H_

#define _LIB_SEKORM_H_

extern unsigned int getxx(unsigned int x);

extern void get_xyz(int *x,int *y,int *z,int a);

#endif


3)编写调用文件test_lib_main.c,内容如下:


#include <SI_EFM8SB2_Register_Enums.h>

#include "lib_sekorm.h"

int main (void)

{

unsigned int a;

int x,y,z;

a = getxx(23);

get_xyz(&x,&y,&z,100);

while(1);

}


4)添加lib_sekorm.h文件路径,Properties -> C/C++ Build -> Settings -> Tool Settings -> Keil 8051 Compiler -> Includes,如图5所示:


 

图5:添加lib_sekorm.h文件路径


5)将staticLibrary.lib文件拷贝到该工程目录下,并设置,或者选择Properties -> C/C++ General -> Paths and symbols -> Libraries页面,Add -> WorkSpace...,添加 staticLibrary.lib在工程中的路径,如图6所示:

 

图6:添加 staticLibrary.lib在工程中的路径


6)编译工程生成执行文件,如图7所示:

 

图7:编译工程生成执行文件


通过以上的步骤,可以实现生成LIB库文件,并且在新工程中可以正确调用LIB库函数。


看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。

Silicon Labs Simplicity Studio平台开发工具

  • +1 赞 0
  • 收藏
  • 评论 0

相关服务

相关推荐

型号 描述 品质保证 价格(含增值税)

8位MCU

EFM8 Sleepy Bee Family、 EFM8SB2、 EFM8SB20F16G系列

Low Power, 16kB/4352B RAM, 10b ADC

QFN24

最小包装量:1,500

世强先进(深圳)科技股份有限公司

供货保障

原厂认证

世强代理

世强自营

一支起订

价格¥  5.7197

现货33,970

发货地广东

预计交期
1. 预计交期为预估时间,不含国家法定节假日,不作为订单或合同约定内容。
2. 受限于发货时间和商品物流运输时间。
3. 商品运输过程中如遇不可抗拒力因素,如地震、水灾、旱灾、疫情等,交期可能有所延长。

预计交期?

约3个工作日

8位MCU

EFM8 Sleepy Bee Family、 EFM8SB2、 EFM8SB20F16G系列

Low Power, 16kB/4352B RAM, 10b ADC

QFN24

最小包装量:91

世强先进(深圳)科技股份有限公司

供货保障

原厂认证

世强代理

世强自营

一支起订

价格¥  5.7197

现货86

发货地广东

预计交期
1. 预计交期为预估时间,不含国家法定节假日,不作为订单或合同约定内容。
2. 受限于发货时间和商品物流运输时间。
3. 商品运输过程中如遇不可抗拒力因素,如地震、水灾、旱灾、疫情等,交期可能有所延长。

预计交期?

约3个工作日

型号错误

世强先进(深圳)科技股份有限公司

原厂认证

世强代理

世强自营

Low Power, 16kB 4352B RAM, 10b ADC 停产.更新为B版本

世强先进(深圳)科技股份有限公司

供货保障

原厂认证

世强代理

世强自营

EFM8SB20F16G-A-QFN24

Silicon Labs

新款产品中尽量不要使用该元件

停产?

8位MCU

EFM8 Sleepy Bee Family、EFM8SB2、EFM8SB20F16G、EFM8SB20F16G-A系列

Low Power, 16kB 4352B RAM, 10b ADC

世强先进(深圳)科技股份有限公司

原厂认证

世强代理

世强自营

一支起订

价格¥  5.7197

本网站所有内容禁止转载,否则追究法律责任!

评论(0

   |   

提交评论

全部评论

暂无评论

联系我们

400-887-3266(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

搞研发 找元件
下载世强硬创电商APP