Как перенести оболочку contiki на contiki-ng
Раньше я использовал https://github.com/contiki-os/contiki/tree/release-3-0 со следующей настройкой
# CMakeLists.txt
add_library(contiki STATIC "")
target_sources(contiki
PRIVATE
# Serial shell
contiki/apps/serial-shell/serial-shell.c
contiki/apps/shell/shell.c
contiki/core/dev/serial-line.c
contiki/core/lib/ringbuf.c
contiki/core/lib/list.c
# Core system
contiki/core/sys/etimer.c
contiki/core/sys/process.c
contiki/core/sys/timer.c
)
target_include_directories(contiki
SYSTEM
PUBLIC
${CMAKE_CURRENT_LIST_DIR} # Path to contiki-conf.h and rtimer-arch.h
contiki/apps
contiki/apps/serial-shell
contiki/apps/shell
contiki/core
)
set_target_properties(contiki
PROPERTIES
C_STANDARD 11
C_STANDARD_REQUIRED ON
C_EXTENSIONS ON
)
с участием
// contiki-conf.h
#ifndef CONTIKI_CONF_H
#define CONTIKI_CONF_H
#include <stdint.h>
#define CCIF
#define CLIF
#define CLOCK_CONF_SECOND (10)
#define PROCESS_CONF_NO_PROCESS_NAMES (1)
#define PROCESS_CONF_STATS (0)
#define PROCESS_CONF_NUMEVENTS (32)
typedef uint32_t clock_time_t;
typedef uint32_t uip_stats_t;
#endif // CONTIKI_CONF_H
а также
// rtimer-arch.h
#ifndef RTIMER_ARCH_H
#define RTIMER_ARCH_H
// Nothing to do!
#endif // RTIMER_ARCH_H
для создания статической библиотеки.
Теперь я хотел переключиться на https://github.com/contiki-ng/contiki-ng/tree/release/v4.6 , потому что кажется, что репозиторий contiki на github больше не поддерживается.
Поэтому я попытался создать еще одну статическую библиотеку с
# CMakeLists.txt
add_library(contiki-ng STATIC "")
target_sources(contiki-ng
PRIVATE
# Serial shell
contiki-ng/os/dev/serial-line.c
contiki-ng/os/lib/ringbuf.c
contiki-ng/os/lib/list.c
contiki-ng/os/services/shell/serial-shell.c
contiki-ng/os/services/shell/shell.c # Not able to compile
contiki-ng/os/services/shell/shell-commands.c # Not able to compile
# Core system
contiki-ng/os/sys/etimer.c
contiki-ng/os/sys/process.c
contiki-ng/os/sys/timer.c
)
target_include_directories(contiki-ng
SYSTEM
PUBLIC
${CMAKE_CURRENT_LIST_DIR} # Path to contiki-conf.h and rtimer-arch.h
contiki-ng/os
)
set_target_properties(contiki-ng
PROPERTIES
C_STANDARD 11
C_STANDARD_REQUIRED ON
C_EXTENSIONS ON
)
и то же самое
contiki-conf.h
(без определения для CCIF и CLIF) и
rtimer-arch.h
файл, но я не могу скомпилировать
shell.c
а также
shell-commands.c
. Жалуется на не определенные макросы конфигурации. Изучая предварительно доставленные файлы Makefile, я не смог понять, какие маркеры мне нужно установить.
Поэтому я хотел бы спросить, может ли кто-нибудь подсказать мне, что делать, или дать мне ссылку (-ы) на то, как настроить оболочку в contiki-ng.
Спасибо за помощь
Златан