crying_p
驱动牛犊
驱动牛犊
  • 注册日期2005-02-25
  • 最后登录2005-11-19
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2088回复:4

在KEIL中能否完成以下的功能

楼主#
更多 发布于:2005-02-25 10:22
生成一个库,让别人看不见我的原码,比如我自己编译的一个IIC的模块函数,我将它打成一个函数包,无法看见原码,但可以用,我提供给使用者这个库函数和头文件就可以了,他如果想要应用,则在他自己的程序中调用我的库,并更改头文件中的管脚配置即可?
说明:我在KEIL的OPTIONS的OUTPUT中设置过一次生成.LIB的库,但发现这样生成后就无法修改管脚的定义了。
lbcat
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-09-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-25 16:16
  不可以的,lib已经是编译好的代码了,管脚定义已经固化好了,修改头文件也不会变的,只能通过其他方法来实现这种功能了…………例如把管脚的赋值操作做成函数形式:

例如原来管脚是 P1^1,想改变管脚电平时原来是直接赋值 P1^1=0;
那现在你就用函数
void Pin1(unsigned char value)
{
 P1^1=value;
}
来代替,这样就把你原来的库分成了两层,一层是实现功能的,对于这层来说只会看到Pin1()这个函数,不会理会函数是怎么实现的;一层就是实际对管脚的操作。这样一来你可以把实现功能的打包成lib,把对管脚操作的函数公开代码,人家需要的时候只要改写这些函数就可以改变管脚的配置了~~~
当然这样做是有代价的,就是会增加了程序代码占用的空间,不过对于I2C来说应该不打紧~~~ :D

[编辑 -  2/25/05 by  lbcat]
linguohui
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2012-09-19
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望8点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-26 00:24
你要做这些东东,可以向PHILIPS学习,PHILIPS在这方面是高手,他提供给你的库还只能全速运行,不能用单步执行,否则程序就跑乱了
lzl
lzl
驱动大牛
驱动大牛
  • 注册日期2001-09-11
  • 最后登录2010-06-22
  • 粉丝1
  • 关注0
  • 积分127分
  • 威望48点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-26 22:18
文个问题:怎么能编译生成库文件,我只知道应用!
l=z=l 我听说,灌水是使分数快速增长的有效方法
lbcat
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-09-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-28 08:20
在项目属性里的OUTPUT页面可以选择~~!!
游客

返回顶部