Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将我自己的库添加到Contiki OS_C_Cpu Architecture_Msp430_Contiki - Fatal编程技术网

将我自己的库添加到Contiki OS

将我自己的库添加到Contiki OS,c,cpu-architecture,msp430,contiki,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

我想在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中包含hello.a using PROJECT LIBRARIES变量,当我编译时,我得到以下结果:

  Hello_lib.sky section .vectors' will not fit in region'vectors'
  ...
  region vectors overflowed by 32 Bytes
有人能给我解释一下问题是什么吗(我是这个领域的新手)

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

请确保为构建程序的相同体系结构构建库

例如,如果要使用为
sky
motes(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

详情:

  • 我创建的库是:libhello.a
  • 图书馆只是打印消息“Hello everbody,图书馆呼叫”
  • 我将该库包括在Contiki示例“example broadcast.c”中
视频的步骤:

  • 创建文件夹示例:

    • 复制示例broadcast.c

    • 复制Makefile

  • 创建库:

        TARGET_LIBFILES += -L. -lhello
    
    • 创建对象文件:

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

      msp430-ar -cvq libhello.a hello.o
      
  • 告诉Contiki到库的路径:

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

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

     make example-broadcast TARGET=sky
    

  • 您正在尝试编译哪个体系结构?Wismote或
    msp430f2131
    ?Wismote使用系列5 MSP430,MSP430F2131来自系列2:一个完全不同的系列。我的目标不是可部署的代码,只是想完成一个模拟。假设我想使用Skymote(msp430f1611),谢谢你的评论,谢谢你。我是如此的盲目,以至于我没有注意到MSP430AR而不是ar命令。再次谢谢你,先生。