将我自己的库添加到Contiki OS

时间:2015-04-30 15:25:29

标签: c cpu-architecture msp430 contiki

我想为Contiki添加一些第三方库,但目前我还不能。 所以我想用一个简单的库进行测试。

我写了两个文件hello.c hello.h,在hello.c中我有:

printf(" Hello everbody, library call\n");

在hello.h中我有:

extern void print_hello();

我使用以下命令创建了hello.o:

msp430-gcc -mmcu=msp430f1611 hello.c -o hello.o

我创建了一个存档文件:

ar -cvq libhello.a hello.o

我转到contiki,我编写了一个调用hello.h来执行函数的简单程序。我尝试在makefile中使用PROJECT LIBRARIES变量包含hello.a,当我编译时我得到这个:

  Hello_lib.sky section .vectors' will not fit in region'vectors'
  ...
  region vectors overflowed by 32 Bytes

有人可以解释一下我的问题是什么(我是该领域的新手)?

如果可能的话如何纠正? (我应该为msp430-gcc指定哪些选项) 感谢。

1 个答案:

答案 0 :(得分:1)

此视频显示如何将自己的库添加到Contiki OS

https://www.youtube.com/watch?v=csa9D1U5R_8

详细说明:

  • 我创建的库是:libhello.a
  • 图书馆只打印消息“Hello everbody,library call”
  • 我将库包含在Contiki示例“example-broadcast.c”

视频的步骤:

  1. 创建文件夹示例:

    • 复制example-broadcast.c

    • 复制Makefile

  2. 创建库:

    • 创建目标文件:

      msp430-gcc -mmcu=msp430f1611 -c hello.c -o hello.o
      
    • 创建库文件:

      msp430-ar -cvq libhello.a hello.o
      
  3. 告诉Contiki图书馆的路径:

        TARGET_LIBFILES += -L. -lhello
    
  4. 将库添加到.c代码中并打印hello消息:

     #include "hello.h"
     Print_Function();
    
  5. 编译.c代码:

     make example-broadcast TARGET=sky