Начало работы с CC13xx-CC26xx и Contiki под Code Composer Studio

от автора

Последнее время тематика интернета вещей становится все более и более горячей. Но давайте разберемся как разрабатывать подобные вещи. В 2015 году компания Texas Instruments выпустила свою уже очередную линейку систему на кристале CC13xx-CC26xx. Эти випы имеют на борту ядро ARM Cortex-M3, радио фронтенд, который обслуживает ядро ARM Cortex-M0 и собственное 16 битное ядро от TI для задач взаимодействия с внешним миром. Да, у TI получился довольно мощьный конбайн, но про энергопотребление они тоже не забыли, и данная линейка чипов оставляет рынок далеко позади.

Мы уже писали обзор существующих стандартов связи, в котором остановились на наиболее современном стандарте 6loWPAN. Данный стандарт описывает сетевой и транспортный уровни модели OSI, а физический и канальный уровни стандартизованы IEEE 802.15.4. Texas Instruments позаботились о нас, и отдали обработку MAC уровня отбельному ядру Cortex-M0. Остальные уровни нужно обрабатывать на Cortex-M3. И тут нам на помощь приходит операционная система реального времени Contiki, в которой реальзована поддержка стека 6loWPAN.

image

Встает задача научиться собирать и отлаживать Contiki под СС2650 для примера. Допустим мы еще любим красивые графические среды и отладку в них. Поэтому мы будем собирать Contiki под TI Code Composer Studio 6. Я пользуюсь Ubuntu 14.04 X86_64 для разработки, шаги под Windows будут очень похожи, за исключением установки тулчейна. В конце есть немного вкусностей…

Toolchain

Для начала нужно собрать голый репозиторий Contiki. Выкачиваем:

git clone --recursive https://github.com/contiki-os/contiki.git

Собирать будем с помощью родной для проекта системой сборки GNU Make + GCC. Предполагается, что Make у вас уже стоит, виндоюзеры могут поставить его в составе CygWin. Скачиваем gcc-arm-none-eabi для соответствующей операционной системы и распаковываем куда удобно. Не забываем прописать в PATH!

wget https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2 tar xz gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2 cd gcc-arm-none-eabi-4_9-2015q3 export PATH=$PATH:`pwd`/bin arm-none-eabi-gcc –v

Устанавливаем утилиту для склеивания прошивок SRecord, необходимую для сборки.

sudo add-apt-repository ppa:pmiller-opensource/ppa sudo apt-get update sudo apt-get install srecord

Теперь попробуем собрать код. Заходим в сорцы и пробуем собрать. $CONTIKI_DIR заменяем на свой путь. Собираю я обычно в 4 потока, количество регулируется параметром -jN

cd $CONTIKI_DIR/examples/cc26xx make -j4 TARGET=srf06-cc26xx BOARD=srf06/cc26xx cc26xx-demo ls cc26xx-demo.srf06-cc26xx

Собралось, отлично, идем дальше.

Прошивка

Один из путей залить прошивку на сам чип это пользоваться отдельными флешерами. Техас предлагает под линух софтину Uniflash, скачиваем и устанавливаем. Процесс установки хорошо описан в этом документе, раздел 4.9.
Для отладки я пользовался комплектом TI SRF06EB + CC2650, так что на его примере и буду показывать.Создаем новую таргет конфигурацию. Програматор с чипом должен быть уже подключен.
image

Заходим в Programs, открываем файл прошивки Add и жмакаем Program.
image

Все, можно было бы на этом закончить, но иногда в разработке нужно воспользоваться отладкой, поэтому идем дальше.

Code Composer Studio

Скачиваем TI Code composer Studio for Wireless Connectivity для своей платформы. Для установки настоятельно рекомендую воспользоваться installation guide с сайта TI.

*Запускаем
image

  • Заходим Files -> New -> Other…
  • Выбираем Makefile Project With Existing Code
    image
  • Заполняем названия, путь к директории с Contiki и выбираем Crocc GCC
    image
  • Заходим в настройки проекта -> C/C++ Build, прописываем команду сборки make -j4 TARGET=srf06-cc26xx BOARD=srf06/cc26xx и путь до директории, нажав кнопку Workspace…
    image
  • Build — собралось, промежуточная победа!
    • Не собралось
      Возможно CCSv6 не подцепила переменную PATH и не может найти тулчеин. Исправляем: vim /etc/profile.d/env_vars.sh
      export ARM_TOOLCHAIN_HOME=/home/$USER/soft/gcc-arm-none-eabi/gcc-arm-none-eabi-4_9-2015q3 export PATH=$PATH:$ARM_TOOLCHAIN_HOME/bin

Настраиваем отладку

Для отладки необходимо, чтобы папка с сорцами Contiki лежала в рабочей директории CCSv6

  • Нажимаем на проекте правой кнопкой -> добавить файл -> Target Configuration File
    image
  • Выбираем отладчик XDS100v3 и чип CC2650 как на скрине
    image
  • Нажимаем в форме Save и Test Connection
    image
  • Нажимаем правой кнопкой по свежесозданной конфигурации -> Debug As -> Debug Configurations
    • Слева создаем новую конфигурацию
    • Заполняем путь к недавно созданной Target Configuration
    • Apply
      image
    • Во вкладке Program заполняем поля Project и Program — путем к собраной прошивке
      image
    • Apply
    • Debug
    • Собралось, прошилось, но говорит No source available
    • Открываем contiki/cpu/cc26xx-cc13xx/Makefile.cc26xx-cc13xx
    • Добавляем ключ сборки с отладочными символами CFLAGS += -g
    • Убираем оптимизации: меняем -O2 и -Os на -O0
    • Сохраняем
    • Заходим снова в Debug Configurations
    • Нажимаем Debug
    • Вуаля
      image

Теперь у нас есть возможность полноценной отладки Contiki в Code Composer Studio под CC2650!

Увидеть глазами

27 февраля будет проходить офлайн встреча блога Catethsis.ru, на которой буду в этот раз рассказывать и показывать как програмировать MESH-сети. Всех, кто дочитал до конца, милости просим!

ссылка на оригинал статьи https://geektimes.ru/post/271360/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *