历史上的今天
返回首页

历史上的今天

今天是:2025年05月29日(星期四)

正在发生

2018年05月29日 | ICCAVR库制作

2018-05-29 来源:eefocus

在ICCAVR中通过使用库函数来避免直接看到敏感算法源码
制作和使用自定义库文件的范例:

目标:


  • 制作一个库文件libGetMax.a ,其中包含一个外部函数GetMax 。 函数GetMax的作用是判断两个输入参数(int 型)中的最大值,并返回最大值。

  • 制作一个应用范例,使用库libGetMax.a 中包含的GetMax函数。


步骤1: 库文件的生成
  为叙述方便,在ICC安装目录新建一目录,并将其命名为libtest。
  在ICCAVR IDE环境中新建两个文件,分别命名为GetMax.c和GetMax.h,并保存至工作目录中。两文件内容如下所示:

  1. //------GetMax.h的内容如下:------  

  2. #ifndef __GETMAX_LIB  

  3.   

  4. #define __GETMAX_LIB  

  5.   

  6. extern int GetMax( int a, int b );  

  7.   

  8. #endif  

  9. //------GetMax.c的内容如下:------  

  10. #include "GetMax.h"  

  11.   

  12. int GetMax( int a, int b )  

  13. {  

  14.   return ( (a > b)?a:b );  

  15. }  

 执行File菜单下的Compile File...项下的To Object项,将GetMax.c编译生成相应的目标文件GetMax.o 。
执行命令ilibw -a libGetMax.a GetMax.o生成库文件(在当前文件夹中新建txt文档,内容是ilibw -a libGetMax.a GetMax.o然后名字改为lib.bat,然后双击即可)。可执行文件ilibw.exe位于icc安装完后的系统目录(默认安装时在C:\icc)的子目录bin中。为使用方便可将ilibw.exe拷贝至工作目录中使用。至此库文件libGetMax.a已生成,其对应的头文件为GetMax.h 。注意库文件的命名必须以“lib”字样开头,否则在IDE中编译下面的应用范例过程中自动链接时会报错(手动链接除外)。

步骤2:应用范例的编写和编译
在工作目录中建立一个工程Test.prj 。工程Test.prj中包含一个C源程序文件Test.c 。Test.C的源代码如下所示:


  1. //------Test.c的源代码如下:------  

  2.   

  3. #include "GetMax.h"  

  4. void main( void )  

  5. {  

  6.  int Result,Value1,Value2;  

  7.  Value1 = 0x10FF;  

  8.  Value2 = 0x0FFF;  

  9.  Result = GetMax( Value1, Value2);  

  10. }  

然后,将前一步骤生成的库文件libGetMax.a拷贝至icc安装完后的系统目录(默认安装时在C:\icc)的子目录lib中。再执行 Project菜单下的Option项,修改Target表单中的Additional Lib项,在文本框中输入GetMax (注意不能写成 libGetMax.a)。
然后拷贝GetMax.h于工作目录
完成上述步骤后,就以编译和调试test.prj 。  
这样就可以用自己的ICC库了。


推荐阅读

史海拾趣

长工微电子公司的发展小趣事

为了进一步拓展市场,长工微电子积极寻求战略合作。近期,长工微电子与世强先进(深圳)科技股份有限公司签署战略合作协议,授权世强先进全线代理其旗下电源管理IC、开关转换器、多相控制器、降压电源模块、电子保险丝等产品。这一合作有助于长工微电子更好地满足客户需求,提高市场占有率。

C-MAC Automotive公司的发展小趣事

为了进一步提升竞争力,C-MAC Automotive公司积极寻求与其他企业的战略合作。通过与一家知名汽车制造商建立合作关系,C-MAC成功将其电子控制单元(ECU)集成到了对方的新款车型中。这一合作不仅提升了C-MAC的品牌知名度,还为公司带来了稳定的订单来源。通过不断拓宽合作领域,C-MAC逐渐在电子行业中占据了一席之地。

台湾岱恩(DAIN)公司的发展小趣事

为了进一步提升竞争力,C-MAC Automotive公司积极寻求与其他企业的战略合作。通过与一家知名汽车制造商建立合作关系,C-MAC成功将其电子控制单元(ECU)集成到了对方的新款车型中。这一合作不仅提升了C-MAC的品牌知名度,还为公司带来了稳定的订单来源。通过不断拓宽合作领域,C-MAC逐渐在电子行业中占据了一席之地。

AZM [Arizona Microtek, Inc]公司的发展小趣事

为了进一步提升公司的国际竞争力,AZM公司开始实施国际化战略。公司积极寻求与国际知名企业的合作机会,通过技术合作、市场合作等方式,共同开拓全球市场。同时,AZM公司还在海外设立了研发中心和生产基地,以便更好地了解当地市场需求和技术发展趋势,实现全球布局和资源整合。

请注意,这些故事是基于假设和推测构建的,并非AZM公司的真实发展历程。如果需要了解AZM公司的具体发展历程和故事,建议查阅该公司的官方网站、新闻报道或相关文献资料。

GWP Group公司的发展小趣事

AZM公司成立于电子行业的蓬勃发展时期,创始人凭借对微电子技术的深刻理解和敏锐的市场洞察力,决定投身于这一领域。创业初期,公司面临着资金短缺、技术瓶颈和市场认可度低等多重挑战。然而,创始人凭借坚定的信念和不懈的努力,带领团队攻克了一个又一个技术难题,成功研发出了具有竞争力的微电子产品,并逐渐在市场上获得了认可。

E-Z-HOOK公司的发展小趣事

在电子产品日益复杂化的背景下,E-Z-HOOK公司不断追求技术创新。他们投入大量资源研发新型测试工具,以提高测试效率和准确性。其中一项重要的创新是开发出了可重复使用的测试钩。这种测试钩具有极高的耐用性和可靠性,可以大大降低测试成本。此外,公司还推出了一系列智能化测试解决方案,通过集成先进的传感器和软件技术,实现了对测试过程的实时监控和数据分析。

问答坊 | AI 解惑

原来国家规定还有探亲假,有人休过吗

  一转眼,春节7天假期结束了,一些家在外地的上班族大呼“不过瘾”。昨天,南京市劳动和社会保障局综合科科长戴登凯支招———可以申请休探亲假,而且名正言顺。   调查:九成人士不知有探亲假   昨天,记者在南京街头随机采访了100多位在 ...…

查看全部问答>

sdio wifi

wifi调通了。wince6.0 telechips板。 连接的时候不用密码能上。当加了13位密码就很容易断。有时候能上。也是一下就断。wifi的驱动是原厂提供的.CAB安装文件。我只是把SDHC这部分调通了。请大家指导。谢谢。…

查看全部问答>

请教开发的问题

做一个关于手持式资产管理的嵌入式系统,难不难,该从哪儿下手呢?…

查看全部问答>

[原创]s3c2440a中文手册(datasheet),欢迎大家下载

本人利用业余时间翻译了s3c2440a的datasheet部分章节, 由于外语水平有限,不足之处还请大家谅解!! 大家可到我刚建的论坛下载 嵌入式linux论坛:http://embeddedlinux.thefreehoster.com/ 其中的\"嵌入式硬件开发\"版面 欢迎大家注 ...…

查看全部问答>

免费下载:单片机毕业论文

一共收集了33个设计题目:  1. 16×16点阵(滚动显示)论文+程序  2. cdma通信系统中的接入信道部分进行仿真与分析  3. LED显示屏动态显示和远程监控的实现  4. MCS-51单片机温度控制系统  5. USB接口设计  6. ...…

查看全部问答>

STM32SPI总线驱动能力

                                 请问班主,STM32的SPI总线驱动能力有多强,可以同时带多少个SPI FLASH 手册上没有查到,请知道的朋友告诉一下,最 ...…

查看全部问答>

用TL494构成的恒流恒压双闭环控制系统

       开发了一种用TL494构成的恒流恒压双闭环控制系统。系统通过两个闭环共用同一个脉宽调制实时处理方法,实现了恒流调节和恒压调节功能。该控制系统结构简单, 在高速换向脉冲电镀电源的性能测试及运行中表明, 其 ...…

查看全部问答>

安富利Spartan-6 LX9 Microboard开发教程(中文)

安富利Spartan-6 LX9 Microboard开发教程(中文)   请大家点击以下链接观看。http://v.youku.com/v_show/id_XMjkwNzc1NDY4.html [ 本帖最后由 sdjntl 于 2011-8-3 20:28 编辑 ]…

查看全部问答>

求一个图像转换器

求一个图像转换器,将图像转换为二进制,也可以讲二进制转化为图像的软件…

查看全部问答>