Спонсор: Intel
Санкт-Петербургский государственный университет
Опубликован: 14.07.2013 | Доступ: свободный | Студентов: 463 / 172 | Длительность: 06:03:00
Специальности: Программист

Самостоятельная работа 3: Разработка приложения с использованием математических функций и библиотек"

< Лекция 3 || Самостоятельная работа 3: 123 || Лекция 4 >
Установка GNU ARM

Как уже говорилось, GNU ARM - это модификация GCC (точнее набор необходимых пакетов + GCC) для процессора ARM7 (микроконтроллера ATMEL AT91SAM7S256), который используется в NXT. Для установки GNU ARM необходимо выполнить следующие шаги:

Скачайте дистрибутив GCC 4.0.2 для Cygwin из секции Binaries в разделе FILES сайта GNU ARM: http://www.gnuarm.com/ http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4.exe

Запустите инсталлятор и установите GNU ARM в директорию в полном имени которой нет пробелов и символов из расширенных наборов, например C:\cygwin\gnuarm

Программа установщик GNUARM

Рис. 6.5. Программа установщик GNUARM

Микроконтроллер ATMEL AT91SAM7S256 не имеет FPU (Floating Point Unit), поэтому не требуется устанавливать все, что относится FPU, а так же к Big Endian (рис. 3.5).

Нет необходимости устанавливать Cygwin DLL, так как Cygwin уже был установлен ранее. Поэтому необходимо убрать соответствующую галочку в процессе установки (рис. 3.6).

В конце установки пользователя спрашивают добавить ли путь установленного пакета в переменную PATH среды окружения (Windows Environment Path). Это делать НЕ надо.

Необходимо убрать нижний флажок

Рис. 6.6. Необходимо убрать нижний флажок
Программы загрузчики для NXT

В данном разделе под программами загрузчиками подразумеваются программы-инструменты с помощью которых можно передавать скомпилированный код в устройство LEGO® NXT. Начиная с версии ECRobot 3.06 вместо инструмента AMTEL SAM-BA (используется для передачи данных микроконтроллеру на базе AMTEL AT91SAM) используется USB драйвер LEGO. Это дает некоторые преимущества:

Можно использовать ECRobot и стандартное ПО LEGO® (напр. NXT-G) на одном компьютере.

Более устойчивое соединение при загрузке кода.

Проще настроить.

Замечание! Если на компьютере уже был установлен пакет AMTEL SAM-BA необходимо полностью удалить (деинсталлировать) его с компьютера перед тем как установить USB драйвер LEGO.

Существуют несколько вариантов загрузки кода в устройство NXT, а так же несколько вариантов использования памяти NXT. Если сформулировать коротко, то для загрузки приложения может потребоваться или USB драйвер LEGO® и программа nexttool, или библиотека libusb. Выполнять приложения и использовать память устройства NXT можно или с помощью "улучшенной" прошивки LEGO® или используя инструментарий системы реального времени LEJOS OSEK. Использование "улучшенной" прошивки подразумевает использование nexttool+USB драйвер LEGO, соответственно, использование инструментария LEJOS OSEK требует установки libusb. Последний вариант дает возможность использовать код размером более 64 кбайт (до 224 кбайт) или загружать код прямо в ОЗУ (RAM память) устройства NXT.

Начиная с версии 2.02 nxtOSEK поддерживает "улучшенную" прошивку разработанную Джоном Хансеном (John Hansen). Эта прошивка дает возможность использовать одновременно (т.е. без необходимости замены прошивки) программы написанные для стандартной прошивки и программы написанные непосредственно под архитектуру ARM7. Поэтому, если есть необходимость использовать программы, написанные для стандартной прошивки (на NXT-G, NBC, NXC и т.д.) и программы, сгенерированные пакетами ECRobot/nxtOSEK, надо установить "улучшенную" прошивку на устройство NXT и использовать инструмент nexttool.

Установка USB драйвера LEGO
Страница загрузки USB драйвера LEGO

Рис. 6.7. Страница загрузки USB драйвера LEGO

При установке стандартного ПО LEGO® USB драйвер LEGO® устанавливается автоматически. Если стандартное ПО LEGO не установлено, тогда необходимо зайти на официальный сайт LEGO® MINDSTORMS в раздел обновления ПО http://mindstorms.lego.com/Support/Updates/, cкачать и установить MINDSTORMS NXT Driver v1.02.

Установка Phantom driver

Загрузите LEGO MINDSTORMS NXT драйвер (Phantom driver) по следующей ссылке http://mindstorms.lego.com/en-us/support/files/default.aspx#Driver


Рис. 6.8.
Установка nxtOSEK, улучшенной стандартной прошивки NXT и NeXTTool

Пакет nxtOSEK доступен по адресу http://lejos-osek.sourceforge.net/index.htm. Достаточно разархивировать пакет в папку cygwin.

Что бы удовлетворять условиям сайта sourceforge.net из состава пакета был убран файл sg.exe из проекта TOPPERS, его необходимо скачивать отдельно с сайта http://www.toppers.jp/osek-download.html. Файл нужно поместить в директорию nxtOSEK/toppers_osek/sg

Для установки "улучшенной стандартной прошивки NXT" (enhanced NXT standard firmware) необходимо:

  • Загрузить "улучшенную прошивку" по адресу http://bricxcc.sourceforge.net/lms_arm_jch.zip (версия 128) и установить, используя меню "Инструменты/Обновление системы NXT" ПО NXT-G, или используя nexttool.
  • Загрузить NeXTTool по адресу http://bricxcc.sourceforge.net/utilities.html и установить в директорию не содержащую пробелов и символов из расширенных наборов (напр. C:\cygwin\nexttool). NeXTTool - это консольная программа позволяющая загружать .rxe файлы в устройство NXT.

Осталось только загрузить прошивку в устройство. Соедините устройство с компьютером кабелем.Запустите командную строку и перейдите в каталог ../cygwin/nexttool

Выполните команду: NeXTTool.exe /COM=USB -firmware=имя_прошивки


Рис. 6.9.

Также можно выполнить в Cygwin команду в директории проекта ./rxeflash.sh, этак команда запустит соответствующий скрипт, загружающий с помощью nexttool бинарный код, скомпилированный для улучшенной прошивки. Данный скрипт генерируется автоматически при компиляции программы. Также еще генерируются скрипты appflash.sh, ramboot.sh и biosflash.sh, которые запускают программу при включении устройсва, загружают в оперативную память напрямую и устанавливают nxtbios (необходимо выполнять перед загрузкой в ОЗУ) соответсвенно.

< Лекция 3 || Самостоятельная работа 3: 123 || Лекция 4 >
Андрей Леонов
Андрей Леонов
Россия
Дмитрий Сирош
Дмитрий Сирош
Украина, Черкассы