Skip to content

Instantly share code, notes, and snippets.

@vpetrigo
Last active May 1, 2019 19:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vpetrigo/2ff2be11eae9dc2708fd8b87c5e99be6 to your computer and use it in GitHub Desktop.
Save vpetrigo/2ff2be11eae9dc2708fd8b87c5e99be6 to your computer and use it in GitHub Desktop.
Сборка проекта NCP Ember ZNet PRO для Raspberry Pi 2 на Windows
COMPILER = arm-linux-gnueabihf-gcc
LINKER = arm-linux-gnueabihf-gcc
ARCHIVE = arm-linux-gnueabihf-ar
LINKER_FLAGS = --library-path="C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf" \
--library-path="C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot/lib"
  1. Скачиваем Toolchain для Raspberry Pi 2 с http://gnutoolchains.com/raspberry/ (руководство проверялось на сборке с GCC 4.6.3)

  2. На Raspberry Pi 2 необходимо убедиться, что установлены зависимости, предоставляющие библиотеки readline и ncurses. На Ubuntu Server 16.04.1 для Raspberry Pi 2 их можно установить с помощью команды

sudo apt-get install libreadline-dev libncurses-dev
  1. Обновляем sysroot с помощью утилиты, которая находится в папке TOOLS/UpdateSysroot. Обновления стоит производить каждый раз при добавлении новых компонент/обновлении старых. Дальнейшие шаги тестировались с помощью окружений, предоставляемых:
  1. Далее с помощью терминала в директории проекта, сгенерированного Application builder:
    Экспортируем директорию C:/SysGCC/Raspberry/bin в переменную окружения PATH
# для MinGW
export PATH=C:/SysGCC/Raspberry/bin:$PATH
# для Cygwin
export PATH=/cygdrive/c/SysGCC/Raspberry/bin:$PATH

Далее для Cygwin и MinGW будут несколько разные вызовы:

  • Cygwin: /bin/make INCLUDE_MAKEFILE=helper.makefile
  • Msys2: Окружение MINGW32 или MINGW64 mingw32-make INCLUDE_MAKEFILE=helper.makefile

Файл helper.makefile доступен выше.

  1. Сгенерированный файл находится в папке build\exe. Отправляем Raspberry исполняемый файл с помощью rsync или scp

  2. На Raspberry разрешаем исполнение файла с помощью команды chmod a+x <exe_name>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment