将我自己的库添加到 Contiki OS

Adding my own library to Contiki OS

我想向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 来执行 function.I 尝试在 makefile 中使用 PROJECT LIBRARIES 变量包含 hello.a,当我编译我得到这个:

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

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

如果可能如何更正? (我应该为 msp430-gcc 指定什么选项) 谢谢。

确保为构建程序的架构构建库。

例如,如果您想为 sky 微尘(MSP430F1611 MCU)构建可执行文件,请使用以下内容构建库:

msp430-gcc -mmcu=msp430f1611 -c hello.c -o hello.o
msp430-ar -cvq libhello.a hello.o

然后将库的路径及其名称添加到应用程序的 Makefile 中:

TARGET_LIBFILES += -L./hellolib -lhello

然后照常构建应用程序:

make TARGET=sky

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

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

详情:

  • 我创建的库是:libhello.a
  • 库只打印消息 "Hello everbody, library call"
  • 我将库包含到 Contiki 示例中 "example-broadcast.c"

视频步骤:

  1. 创建文件夹示例:

    • 复制例子-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 代码并打印问候消息:

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

     make example-broadcast TARGET=sky