搜索
bottom↓
回复: 7

希望对IAR库的操作比较熟的仁兄进来看看,谢谢!

[复制链接]

出10入95汤圆

发表于 2008-5-4 22:46:11 | 显示全部楼层 |阅读模式
那位仁兄对IAR的库操作比较熟呢?我想请教个问题,就是我在做库的时候,想把有些端口在实际使用中可以从新定义,这样能提高库的移植性,
例如程序:
//-------------------------------
//库文件的内容:
#include "io.h"
void out (void)
{
  outport ^= bit_0;
}
//--------------------------------
//io.h的内容:

#define bit_0    0x01
#define bit_1    0x02

#define outport  P1OUT

void out (void);


在我实际使用的时候,我把out()函数生成后的文件添加新的工程中,也把io.h包含到新的工程中,再把头文件(io.h)的bit_0改成0x02,但是实际上还是按照原来库里的定义运行的,请问IAR支持这种做法吗?要想达到这种思想,应该怎么做呢,希望能得到知道的朋友指点指点,不胜感激!

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2008-5-5 01:00:20 | 显示全部楼层
所有的c编译器都不会支持你这个想法的.因为编译后的库就好比是一个常数了.里面的所有东西都不可以改变了.

头文件只是用来告诉你,在这个库里你可以用哪些资源.

你的这个想法只能用源码级的编译才可以.

出0入0汤圆

发表于 2008-5-5 09:36:34 | 显示全部楼层
可以用指针试试看.

出10入95汤圆

 楼主| 发表于 2008-5-5 17:53:22 | 显示全部楼层
首先谢谢两位仁兄的回答!一楼的仁兄把库的作用说得很明白,比喻很恰当!再说声谢谢!二楼的哥们也给我扩展了一下思路。谢谢两位!如果没有好的办法,就把函数经过传递的方式做,这样就会多出很多判断的代码,看实际使用要求了,谢谢!
那位有更好的办法,不防也说说看。

出0入0汤圆

发表于 2008-5-5 18:58:02 | 显示全部楼层
端口组用指针,断口位用变量理论上是可以的,我现在的库全部要求硬件定死,不允许改.既然做库就必须有一些条件必须定死.

出0入0汤圆

发表于 2008-5-6 15:07:52 | 显示全部楼层
对了,想要更改库里的内容可以试一下钩子函数.前段时间看uC/OS II里介绍过钩子函数.这个方法可以改变库的结构.

因为你生成的库只是将调用函数的地址编译进去了.在重要的函数中放入钩子函数就可以了.

出50入10汤圆

发表于 2011-12-31 11:34:30 | 显示全部楼层
我也需要解决这问题

出0入0汤圆

发表于 2013-3-25 22:09:47 | 显示全部楼层
这问题难啊,哎,有解决办法没
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 17:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表