原创 Keil中LIB库的作用、生成与调用

2010-4-19 23:46 13481 10 20 分类: MCU/ 嵌入式

               KeilLIB库的作用、生成与调用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


LIB库有什么用,一个简单的例子就是Silicon LabsC<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />8051F单片机USB提供的USBXpress LIB库了,如USB发送数据、接收数据等,都是通用性很强的函数,但因为保密的原因,这个函数是怎么写的,用户是不知道的,只提供接口的API函数,只要调用这些函数即可完成相应功能。


下面以自己开发的NOKIA5110液晶的驱动程序演示一下LIB库德生成与调用。


target里面”Options for Target ’Target 1’”里面的output选择create library


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


 


de2cfeb2-044e-4ca9-a7b0-bb3b820079c9.jpg


 


    (这里可以没有main主函数和一些管脚的定义等,只是NOKIA5110驱动函数)


点击Rebuild all the target files,就生成.lib文件。


 


        把上面的工程生成的.LIB文件放入新的文件夹里,在这个文件夹编写一个调用LIB库的程序。把.LIB文件添加到工程里面去,在工程里的H头文件里对NOKIA5110.LIB里的函数进行声明,这样主函数就能调用.LIB里的NOKIA5110的驱动函数了。



 

4f1e2e19-699f-49d0-840b-7052d4812c00.jpg


 


LIB库文件生成调用演示程序:https://static.assets-stash.eet-china.com/album/old-resources/2010/4/19/a8cfdeaf-c1e1-4b2f-8d66-fb3fbc02504c.rar


 


BTW:在Keil C中调用USBXpress的函数也是上面的办法,但如果编译器用的Silicon Laboratories IDE的时候要注意添加.LIB库德步骤就不一样了。


Silicon labs的这个IDE其实也就是一个壳,编译程序之前要设置好调用keil编译核心的路径。


Project——Tool Chain Integration


 


d15d0f5f-0ddb-4d1f-ba2f-9ef47bbc8100.jpg


 

55445494-a153-4f15-acdc-5ccbaace39a3.jpg


 

c3b0c740-4caa-49bc-b516-5592718ab80d.JPG





 



 


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://blog.ednchina.com/Alexi2008/224810/message.aspx


3) 把源代码给人家?源代码隐藏高招--把关键的程序用Lib包含进来!

http://www.dzsc.com/dzbbs/20050405/2007651925293610.html
PARTNER CONTENT

文章评论10条评论)

登录后参与讨论

用户1621976 2011-8-4 22:26

多谢楼主分享,最近在学C8051F020,楼主的博客对我的帮助很大!!!

用户944075 2011-5-27 10:33

程序里有个错误 //#include 注释掉就好了 重复调用

用户152403 2010-9-9 16:13

真是雪中碳啊 终于把那个CH375芯片的lib加进去了 呵呵呵 谢谢楼主。

用户1480057 2010-7-16 11:42

多谢分享啊

用户280983 2010-5-12 14:19

tengjingshu,您好!我已经明白了 谢谢哦 我们交个朋友好吗 ? 加我QQ啊

tengjingshu_112148725 2010-5-11 22:15

to bankson: LIB的作用在于保密,不让人家知道你的函数是怎么写的,把函数都封装成库了,这样只要提供这个库和告诉对方函数是怎样调用,别人就能调用这个函数了。 LIB放在一个工程中没什么用处,因为可以直接调用函数啊,何必用库呢?!

用户280983 2010-5-11 15:32

tengjingshu,您好!我还想问个问题,就是,为什么还要把生成的LIB文件要放到另外一个工程文件呢?为什么不能直接调用在原工程里面的.LIB文件呢?谢谢回答!我的QQ:1041718535,希望能得到您的帮助,静候佳音!谢谢!

用户280983 2010-5-11 15:23

您好!谢谢您能回我的信息,我有些地方还是不是很理解,您再帮帮忙,我的QQ是:1041718535 Jane 再次感谢!

tengjingshu_112148725 2010-5-10 22:23

我觉得不可能吧,程序我是经过验证的,你再检查一遍你的源程序

用户280983 2010-5-10 11:59

您好 我根据以上的做法之后怎么还不行呢 ? 请指教~!谢谢!
相关推荐阅读
藤井树 2015-10-12 14:43
印制电路板的抗干扰设计 zz
印制电路板的抗干扰设计     作者:中船重工集团第707所 肖麟芬   摘   要:本文以印制电路板的电磁兼容性为核心,分析了电磁干扰的产生机理...
藤井树 2013-10-22 15:32
2010.5.30 黄草梁上包饺子一日登山活动——摘韭菜篇
        上次桃花节的时候也有野韭菜,那时候的我连草和韭菜叶分不清,才回去的韭菜也不敢吃,哈哈,这次可算真正见识了韭菜,黄草梁也叫韭菜梁,因为满山遍野都是野韭菜而闻名,比较圆比较粗的就是野韭...
藤井树 2013-10-22 15:28
2010.5.30 黄草梁上包饺子一日登山活动——包饺子篇
摘韭菜回来,大家已经忙开了 我也装模作样地“工作着” 哈哈,还不让我包,包饺子是技术活,一定要皮薄馅厚才有资格包,像我这样的只能旁观了 摘的韭菜应该足够了,旁边那个袋子是我摘来带回学校的 ...
藤井树 2013-08-09 15:19
datasheet下载网站整理(查IC芯片手册)【原创】
*************************************************************************         作为电子工程师,芯片的dat...
藤井树 2010-06-04 00:21
陈伟宁王辉一家捐助渠道(北京菲亚特—英菲尼迪)
       王辉的最新消息请关注 http://chenweining.org/       目前事故责任认定已经出来了——陈家全责。        发信人: program (程序), 信区: D...
藤井树 2010-06-01 13:43
2010.5.30 黄草梁上包饺子一日登山活动——美景篇
这天不得不说的是天空,蓝蓝的天空,白白的云    绿油油的山脊  我、洪涛哥哥、huangna妹妹还有她同事小艾走在黄草梁上    在蓝天白云下合影       阳光照过来,景色真美 象鼻山,走不...
EE直播间
更多
我要评论
10
10
关闭 站长推荐上一条 /3 下一条