LIB库有什么用,一个简单的例子就是Silicon Labs为C8051F单片机USB提供的USBXpress LIB库了,如USB发送数据、接收数据等,都是通用性很强的函数,但因为保密的原因,这个函数是怎么写的,用户是不知道的,只提供接口的API函数,只要调用这些函数即可完成相应功能。
下面以自己开发的NOKIA5110液晶的驱动程序演示一下LIB库的生成与调用。
target里面”Options for Target ’Target1’”里面的output选择create library
(这里可以没有main主函数和一些管脚的定义等,只是NOKIA5110驱动函数)。
点击Rebuild all the target files,就生成.lib文件。
把上面的工程生成的.LIB文件放入新的文件夹里,在这个文件夹编写一个调用LIB库的程序。把.LIB文件添加到工程里面去,在工程里的H头文件里对NOKIA5110.LIB里的函数进行声明,这样主函数就能调用.LIB里的NOKIA5110的驱动函数了。
LIB库文件生成调用演示程序(下载地址):http://www.eeskill.com/file/id/27026。
BTW:在Keil C中调用USBXpress的函数也是上面的办法,但如果编译器用的Silicon Laboratories IDE的时候要注意添加.LIB库德步骤就不一样了。
Silicon labs的这个IDE其实也就是一个壳,编译程序之前要设置好调用keil编译核心的路径。
Project——Tool Chain Integration
Silicon Laboratories IDE LIB库文件的调用
1. Project -> Target Build Configuration -> Customize -> Files to Link -> Add External OBJ
2.在'List files of type' drop-down box from 'Object Files'选择'All files'类型,.选择要添加的LIB文件。
3.点击OK.
本文参考:
1)How to use USB_Clock_Start() in firmware
http://www.cygnal.org/ubb/Forum9/HTML/000844.html
2)Keil C里面Lib库文件的生成与调用
http://www.eeskill.com/article/id/36905
3)把源代码给人家?源代码隐藏高招--把关键的程序用Lib包含进来!
http://www.eeskill.com/article/id/36906