CCSv7使用指南连载7:如何编译生成.lib静态库

来源:互联网 发布:无线网卡 通道 知乎 编辑:程序博客网 时间:2024/06/02 06:04

2017-12-15 C2000小百科
版权声明:本系列文章欢迎转载,请注明出处,谢谢!

1 摘要

CCSv7是Texas Instruments针对自家嵌入式处理器或者单片机开发推出的集成开发环境,同时CCSv7也是完全免费的开发软件。本系列文章主要目的是介绍CCS使用入门及在实际项目开发过程中有用的技巧及方法。第7篇介绍如何编译生成.lib静态库。

在产品开发过程中,有时候出于敏感代码保护,或者为了减少编译时间,或者为了便于代码维护的目的,通常会去关键代码或者底层驱动代码编译成库.lib。库从本质上来说是一种可执行代码的二进制格式,把这些常用函数的目标文件打包在一起,提供相应函数的接口,便于程序员使用。在linking过程中,linker工具会自动从库中将程序中使用到的库函数机器码拷贝到最终生成的二进制可执行文件中。

2 操作步骤

· 和新建立一个工程是一样的,点击Project->New CCS Project,然后点击红框所示的Advanced setting。
这里写图片描述

·首先选择器件平台,因为手头有F28069 LaunchPad,我们选择F28069。可以看到Output format和Device endianness自动变成灰色

Note:所有C2000器件都是小端模式的,即数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。
这里写图片描述
·将默认自带的main.c删除,添加add_test.c和add_test.h,要实现的功能是生成一个带加法函数的静态库。

.h文件参考代码如下:

#ifndef ADD_TEST_H_#define ADD_TEST_H_extern int add_test(int a, int b); #endif/*ADD_TEST_H_ */

.c文件参考代码如下

       #include"add_test.h"       int add_test(int a, int b)       {          return a+b;        }

·然后点击build构建出add.lib即可。如下所示,生成的.lib在Debug文件中生成了。
这里写图片描述

3 调用和验证.lib功能

我们重新建立一个工程,详细步骤请参考之前文章(CCSv7使用指南连载2:基于外设文件新建工程),建立的工程如下所示:
这里写图片描述
将.h和.lib文件拷贝到工程中,也可以将文件链接到工程中(我们会在后续的文章中介绍),如下图所示。
这里写图片描述
在main.c里面调用头文件,以及添加相关函数。

代码如下所示:

#include"add_test.h"int a = 5;int b = 6;int sum;int main(void){sum = add_test(a,b);while(1);}

然后编译构建生成.out,下载到芯片中验证。
这里写图片描述

完~
这里写图片描述
请关注公众号【C2000小百科】,更多内容将会在公众号中发布。

原创粉丝点击