2015-04-30 3 views
3

Я хочу добавить некоторые сторонние библиотеки в Contiki, но на данный момент я не могу. Так что я хотел просто протестировать с помощью простой библиотеки.Добавление моей собственной библиотеки в Contiki OS

Я написал два файла 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 попытаться включить hello.a с помощью переменной PROJECT БИБЛИОТЕКИ в Makefile, когда я компиляции я получаю это:

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

Может кто-нибудь, пожалуйста, объясните мне, в чем проблема (я новичок в этой области)?

И как исправить, если это возможно? (Какие параметры следует указать для msp430-gcc) Спасибо.

+0

В какой архитектуре вы пытаетесь скомпилировать? Wismote или 'msp430f2131'? Wismote использует Series 5 MSP430, а MSP430F2131 - из серии 2: совершенно другое семейство. – kfx

+0

Я не нацеливаюсь на развертываемый код, просто хочу перенести симуляцию. Итак, скажем, я хочу использовать Skymote (msp430f1611), спасибо за комментарий в любом случае – yushaa4dz

ответ

1

Убедитесь, что вы построили библиотеку для той же архитектуры, что и для своей программы.

Например, если вы хотите использовать построить исполняемый файл для 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 
+0

Большое вам спасибо. Я был настолько слеп, что не замечал команду msp430-ar с командой ar. Еще раз спасибо, сэр. – yushaa4dz

1

Это видео показывает, как добавить свои собственные библиотеки Contiki OS

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

Детали:

  • Библиотека, что я создаю это: libhello.a
  • библиотека печатает сообщение " Привет, когда-нибудь, библиотечный звонок «
  • Я включил библиотеку в пример Contiki« example-broadcast.c »

Шаги видео:

  1. Создать папку пример:

    • Скопируйте пример-трансляции.с

    • Скопируйте 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 
    
Смежные вопросы