首页 > 其他分享 >如何在keil中将关键函数打包生成lib库

如何在keil中将关键函数打包生成lib库

时间:2024-07-08 19:26:01浏览次数:9  
标签:文件 led lib keil 生成 文件夹 打包

作用:有时候在团队中做工程或者给外面的人做项目时,当我们辛苦了大半月写出了一个驱动程序或者算法,基于合作的需要,需要我们将自己调通的代码奉献给团队或者提交给你的甲方。基于我们个人意愿是很不愿意的,毕竟那是我们辛辛苦苦写出来的,但是又不能不交,耽误项目进程。这时候,keil的打包功能就上场了,只将核心算法或驱动代码隐藏,其他正常显示,不影响开发。更好保护我们的隐私。以正点原子led例程为例,具体操作如下:

1. 添加测试函数

打开led工程项目,为了验证打包后是否成功,在led.c项目中添加一个sum_2函数,如下图所示,记得要在.h添加函数名,方便在主函数中调用测试。

2. 打包led.c文件(隐藏的.c文件)

将原先的整个工程复制一份,留着一会备用。然后将led.c文件以外的其他任何文件均删除

删除后的文件目录:

3.生成lib文件

按照下图的方式操作,其中“2”是选择lib文件保存的路径。配置好选择“ok”按钮,然后编译生成lib文件。

生成的lib文件如下:

4. 转移lib文件,生成整个隐藏重要文件的工程

首先删除led文件中的led.c文件,只保留.h文件

打开工程后发现led.c文件是叹号,找不到了,左击鼠标移除这个文件。

 右击LED文件夹,选择“Add Group”

点击品,找到刚刚新建的文件夹,双击名字,重命名为“dabao”

 然后将lib文件复制到该文件夹下

重新编译,发现0错误

5. 测试验证


标签:文件,led,lib,keil,生成,文件夹,打包
From: https://blog.csdn.net/2301_79275917/article/details/140131820

相关文章

  • Maven工程下:alibaba fastjson2的各种序列化:java对象转json对象、json对象转java对象
    pom文件导入fastjson2坐标:<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.51</version></dependency>UserVO对象:@Data@AllArgsConstructor......
  • java项目打包至生产环境流程
    一.打包:1.利用maven版本管理工具打包找到要打包的项目,先点击clean->install->package2.点击下包的服务3.点击+号,选择RunConfiguationType找到docker,添加4.出来一个弹窗配置一下生产环境的配置(地址)这里我已经配过了然后在这里可以看到我们的服务(以我的微服......
  • libaom 编码器实验 AV1 标准 SVC 分层编码
    SVC编码视频SVC编码,即ScalableVideoCoding(可适性视讯编码或可分级视频编码),是H.264/MPEG-4AVC编码的一种扩展,它提供了更大的编码弹性,并且具有时间可适性(TemporalScalability)、空间可适性(SpatialScalability)及讯杂比(质量)可适性(SNRScalability)三大特性。这种编码方式允......
  • python:使用matplotlib库绘制图像(一)
    作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!一、Matplotlib图像基础1.1 基本绘图实例:sin、cos函数图代码详解:1.frompylabimport*:导入pylab库中所有函数和变量。pyla......
  • Franka libfranka 最低系统要求和网络要求
    本页仅指定了运行Franka控制接口(FCI)的要求。其他要求在您随机器人收到的文件中指定。工作站电脑最低系统要求操作系统带有PREEMPT_RT修补内核的Linux 或Windows10(实验性)网卡100BASE-TX由于机器人以1kHz的频率发送数据,因此工作站PC的配......
  • Franka libfranka与FCI的关系
    libfranka确实是直接与FrankaEmika机器人进行交互的,那为什么使用FCI指挥时还需要连接到车间网络而不是机器人网络呢?这主要是因为FCI(FrankaControlInterface)和libfranka有着不同的功能和使用场景:libfranka:libfranka是一个C++库,提供了直接访问FrankaEmika机器人硬......
  • Franka libfranka 基于笛卡尔空间位置控制
    #include<array>#include<cmath>#include<iostream>#include<franka/exception.h>#include<franka/model.h>#include<franka/robot.h>#include<franka/tools.h>intmain(intargc,char**argv){try{//......
  • Franka libfranka 基于笛卡尔空间位置的运动控制
    #include<array>#include<cmath>#include<iostream>#include<franka/exception.h>#include<franka/model.h>#include<franka/robot.h>#include<franka/tools.h>intmain(intargc,char**argv){try{//......
  • Franka libfranka 基于关节空间的速度控制
    #include<array>#include<cmath>#include<iostream>#include<franka/exception.h>#include<franka/model.h>#include<franka/robot.h>#include<franka/tools.h>intmain(intargc,char**argv){try{//......
  • matplotlib画3D图形的contour和plot_surface函数参数
    importmatplotlib.pyplotaspltimportnumpyasnpfrommpl_toolkits.mplot3dimportAxes3Dfig=plt.figure()ax=fig.add_axes(Axes3D(fig))X=np.arange(-4,4,0.25)Y=np.arange(-4,4,0.25)X,Y=np.meshgrid(X,Y)R=np.sqrt(X**2+Y**2)Z=np.sin......