本文介绍: 详细讲解了在CCS中如何工程中的相关.c文件封装静态库.lib文件,并在其他工程调用lib静态库。

  在调试DSP设备的时候,发现好多工程会把比较核心代码生成静态lib代码运行的时候直接调用lib里面的相关函数就行。但是从外部是看不到lib里面内容的,这样通过静态库的方式实现代码加密

  在网上找了好久如何函数生成静态库*.lib方法,找到的资料比较零散,看起来比较费劲,通过自己的摸索,终于验证成功了。下面将我的方法分享一下。

  下面用到的相关工程全部已打包上传 https://download.csdn.net/download/qq_20222919/88583858

   首先调试需要生成lib文件的工程,这里使用一个流水灯来演示。
在这里插入图片描述

   main函数调用流水函数实现LED灯的各种显示效果
在这里插入图片描述

   leds.c文件中主要对LED灯使用到的端口进行初始化
在这里插入图片描述
   led_control.c文件通过三个函数实现三种流水灯的效果

   在这个工程中需要流水灯的控制方式打包,也就是要将led_control.c这个文件打包lib文件

   首先调试当前工程,确保函数功能都能正确执行
在这里插入图片描述
   下载运行,观察流水灯的现象,确保函数功能都正常。

   接下来开始将led_control.c文件生成为库文件。

   首先要新建一个工程,新建工程时注意单片机型号选择
在这里插入图片描述
   在Advanced settings选项中将output type类型选为Static Library。
然后点击Finish按钮创建新的工程。
在这里插入图片描述

   新工程创建完成后,删除默认main.c文件。
在这里插入图片描述
   然后进入当前工程文件夹中,将上一个工程中的led_control.c文件拷贝当前工程文件夹中。
在这里插入图片描述
   拷贝完成后,工程中就会自动出现led_control.c文件。
在这里插入图片描述

   接下来需要添加工程中需要头文件,在工程上单击鼠标右键选择Properties

在这里插入图片描述

   然后在Include Options依次添加需要用到头文件
在这里插入图片描述
在这里插入图片描述

   这里主要添加官方库中的头文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

   最后还需要将上一个工程中leds这个文件夹添加进来,因为需要生成lib库文件的这个led_control.c还需要依赖leds文件夹中的其他几个文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
   所以当前项目中就不需要再添加leds.h和led_control.h头文件了,直接引用一个项目的文件路径就行。

   添加完成之后编译工程,工程编译完成之后,在Debug文件夹中就会出现生成generate_led_lib.lib 文件。
在这里插入图片描述
   接下来在新的工程中,就可以直接调用这个 lib文件了。

   在ccs中直接复制一个刚才的流水灯工程
在这里插入图片描述
   名字修改call_led_lib
在这里插入图片描述

   使用这个工程来调用刚才生成的lib库,在工程中直接删除led_control.c文件。
在这里插入图片描述

   然后打开工程文件夹,将generate_led_lib工程中Debug文件夹里面生成的generate_led_lib.lib文件 复制call_led_lib工程中的APP—leds文件夹中
在这里插入图片描述

   相当于使用generate_led_lib.lib文件来代替刚才led_control.c文件的功能
此时工程中就会自动generate_led_lib.lib文件添加进去。
在这里插入图片描述

   下来编译当前工程
在这里插入图片描述

   工程编译成功,没有出现错误说明刚才使用generate_led_lib.lib文件来代替led_control.c是成功的。
在这里插入图片描述

   下载单片机执行,观察led闪烁现象,效果和waterfall_light工程执行的效果是一样的。
在这里插入图片描述

   在工程中按住ctrl单击display1、display2、display3这三个函数,发现这三个函数不能跳转说明generate_led_lib.lib文件,已经成功的将这个三个函数封装起来了,只能调用,不能看到函数实现的具体过程

   这样通过静态库的方法,就可以项目中的核心技术进行软件层面的加密

原文地址:https://blog.csdn.net/qq_20222919/article/details/134715133

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_14375.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注