将我自己的库添加到Contiki OS
我想在Contiki中添加一些第三方库,但目前我做不到。 所以我想用一个简单的库进行测试 我写了两个文件hello.c hello.h,在hello.c中我有:将我自己的库添加到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
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
TARGET_LIBFILES += -L. -lhello
#include "hello.h"
Print_Function();
make example-broadcast TARGET=sky
您正在尝试编译哪个体系结构?Wismote或
msp430f2131
?Wismote使用系列5 MSP430,MSP430F2131来自系列2:一个完全不同的系列。我的目标不是可部署的代码,只是想完成一个模拟。假设我想使用Skymote(msp430f1611),谢谢你的评论,谢谢你。我是如此的盲目,以至于我没有注意到MSP430AR而不是ar命令。再次谢谢你,先生。