2015-11-22 3 views
0

Я недавно начал программировать в Contiki. В настоящее время я хочу синхронизировать таймер набора узлов. Для этого я использую функции файла заголовка timesynch.h. Я включаю его как обычный h-файл в верхней части моего кода. Но всякий раз, когда я пытаюсь использовать функции внутри него (timesynch_init(), например) я получаю следующее сообщение об ошибке:Contiki Timer Synchronization

xmas_sync.co: В функции process_thread_example_collect_process': /home/user/contiki-2.7/examples/rime/xmas_sync.c:108: undefined reference to timesynch_init» collect2: л.д. 1 возвращается статус выхода марка: ** * [xmas_sync.native] Ошибка 1

Я не знаю, нужно ли мне что-то делать, чтобы использовать эти функции синхронизации. Мой код основан на примере сбора.

ответ

0

Вам необходимо включить функцию timesync в конфигурации приложения или платформы. На большинстве платформ это делается не по умолчанию.

Чтобы включить его в настройках приложения, есть два варианта:

  1. Изменить Makefile включить в это определение в CFLAGS:

    CFLAGS + = -DTIMESYNCH_CONF_ENABLED = 1

  2. Создать project-conf.h файл, изменение Makefile, чтобы включить этот файл:

    CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"

    и включить TIMESYNC в project-conf.h, добавив следующую строку

    #define TIMESYNCH_CONF_ENABLED 1

Кроме того, он выглядит, как вы построить пример для (x86) платформы native. Чтобы построить для аппаратной платформы сенсорного узла, установите переменную TARGET, например. пробег make TARGET=sky example-collect.

+0

Hi. Я попробовал два варианта, которые вы упомянули, но это не сработало. Затем я сменил платформу на z1 и скомпилировал ее. Это странно, потому что в документации Contiki говорится, что Sky поддерживает синхронизацию времени. – jasg89