2832|1

6587

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

关于如何将函数封装成库使用的方法介绍 [复制链接]

     在项目开发过程中,开发者出于保护核心算法的目的,希望将部分核心代码封装起来,使得其他使用者无法查看具体的代码实现细节,而不影响正常的调用。常见的思路是将核心的函数封装成库,下面将结合例程说明具体实现方法。

1.库的建立

1).新建库工程

    在CCS中,选择Project -> New CCS Project,在工程配置窗口中,选择相应的“Target” device,以及输入自定义的工程名字;然后需要注意在“Project type and tool-chain -> output type”中选择“Static Library”,而不是“Executable”,“Executable”对应的是我们一般用到的可生成.out 可执行文件的工程。

图 1 在CCS中新建库工程

2).定义相关的库函数

新建完工程后,即可将所需封装的函数放入工程文件中,在此以简单的一个功能函数为例进行说明。

图 2 .C文件中添加目标库函数

3).添加头文件.h

先在工程目录新建一个“include”文件夹,然后在该文件夹新建

图 3 新建.h文件

在.h文件中进行库函数的函数声明。

图 4 函数名声明

至此,编译该工程,即可生成所需的.lib文件,在默认的Debug文件路径中。

图 5 编译生成对应的.lib文件

2.在工程项目中使用该库文件

C2000WARE中的“led_ex1_blink”例程为例,说明下如何在实际工程中使用定义的库文件。

1)建立文件链接

首先将第一步生成的.lib文件以及.h文件所在文件夹一并拷贝至目标工程,由于具体的库函数代码实现体现在.c文件,因此最终的工程无法索引至原始的.c文件。

图 6 复制相应的.h和.lib文件

下一步需要在该工程中建立对库文件的链接关系。首先在工程属性 C2000 Compiler->Include Option中添加.h文件所在的文件路径,注意此处使用的是相对路径,以确保工程路径发生变更时的一致性。

图 7 添加.h所在的文件路径

然后,在C2000 Linker->File Search Path中分别添加对应的.lib文件名以及所在文件路径。

图 8 添加.lib 文件名及路径

2)添加函数头文件及调用

在目标工程中添加.h文件的声明,以及测试变量,并在主函数中进行调用。

图 9 .h文件声明以及调用示例

烧录该工程到芯片,运行后验证“test”结果符合预期。

此外,除了上述方法,可以采用以下方式把工程的调试功能禁止,这样在debug模式下就无法进行任何的调试操作以及查看代码,具体步骤:

选择“option --symdebug:none”,即在工程属性Build->C2000 Complier->Advanced Options->Advanced Debug Options中选择--symdebug:none作为Debugging model。

图 10 使能option --symdebug:none

选择一个例程,进行以上配置后,在调试模式下的效果如图 11所示。在该模式下,所有symbols和工程的链接将被移除,因此无法进行任何的调试操作以及查看源代码。建议在工程开发的最后阶段再使用该模式。

图 11 工程示例

最新回复

太详细了,谢谢分享,学习了。   详情 回复 发表于 2020-12-30 21:44
 
点赞 关注

回复
举报

2618

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

太详细了,谢谢分享,学习了。

 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表