В первой обзорной статье о Fedora Electronic Lab 12 я описал некоторые возможности системы, ее ориентацию на разработчиков электронных устройств. В настоящей публикации будет описан процесс разработки и отладки программного обеспечения в IDE Eclipse CDT под операционной системой Linux( FEL 12 ).
Итак, за отправную точку берем только что установленную операционную систему Fedora Electronic Lab 12 и программное обеспечение Sourcery G++.
Выберем на рабочем столе FEL 12 пункт меню «Приложения -> Программирование -> Eclipse ».
При запуске Eclipse укажем рабочее пространство в домашней папке пользователя. В качестве примера будем использовать уже знакомый нам проект от Olimex для микроконтроллера STM32( Cortex-M3 ) под названием «Blinking LED project for GCC + Eclipse + OpenOCD»( скачать ).
Разработка программ в Eclipse под Linux идентична этому процессу в Windows.
Выполним импорт проекта через «File -> Import…», далее «General -> Existing Project into Workspace».
Теперь нажимаем на клавишу «Finish» и видим открытый проект stm_h103.
В правом верхнем углу экрана необходимо переключить перспективу на C/C++ perspective, поскольку набор доступных перспектив здесь достаточно велик.
На закладке «Make Targets» добавим основные цели «all» и «clean».
Если закладка «Make Targets» по каким-либо причинам не окажется в рабочем пространстве, то добавить ее туда можно через пункт меню «Window -> Show View -> Make Targets».
Сначала настроим способ сборки проекта, как обычно уберем галочку «Build Automatically» в меню «Project» и откроем окно «Properties» для нашего проекта. Выберем в настройках пункт «GNU Elf Parser» и нажмем «Apply».
Теперь выполним двойной клик на цели «all» в закладке «Make Targets» для сборки проекта.
Посмотреть результат сборки можно в закладке «Console».
Проблем с компиляцией проекта для микроконтроллеров AVR также не должно возникнуть, поскольку компилятор avr-gcc установлен в системе «с коробки».
Настало время подключить JTAG адаптер и проверить работу программы в железе.
Сначала проверим версию установленного в системе OpenOCD, для этого в терминале нужно запустить команду
$openocd -v
На что получим номер версии openocd 0.2.0. Версия программы не самая свежая, но сборкой новой версии в рамках этой статьи мы заниматься не станем.
Следующим шагом для нас будет установка драйвера для адаптера FTDI JTAG.
У нас есть выбор из двух вариантов. Первый — установить родной драйвер под Linux от FTDI, и второй — установить альтернативный драйвер с открытым исходным кодом libftdi.
Останавливаемся на первом варианте.
Скачиваем архив с драйвером libftd2xx0.4.16.tar.gz ( скачать ) и распаковываем его.
Далее копируем файл динамической библиотеки libftd2xx.so.0.4.16 в каталог /usr/local/lib
$cp libftd2xx.so.0.4.16 /usr/local/lib/
Создаем символьную ссылку libftd2xx.so на библиотечный файл в том же каталоге
$ln -s /usr/local/lib/libftd2xx.so.0.4.16 /usr/lib/libftd2xx.so
Также необходимо скопировать заголовочные файлы ftd2xx.h и WinTypes.h в директорию /usr/include.
Откроем файл ld.so.conf и добавим каталог поиска динамически подсоединяемых библиотек /usr/local/lib
$vi /etc/ld.so.conf
В открывшемся текстовом редакторе «VIM» нажимаем на клавишу «Insert» и входим в режим редактирования, добавляем строку /usr/local/lib, потом нажимаем клавишу «Esc» для входа в режим команд и вводим команду выхода с сохранением «:x».
Чуть было не забыл — все эти действия нужно выполнять , находясь в режиме учетной записи «root», иначе система просто не позволит Вам сохранить изменения в конфигурационных файлах
$su
Пароль: *******
После добавления нового пути поиска библиотек необходимо запустить ldconfig
#ldconfig
Теперь добавим в файл fstab новую строчку
#vi /etc/fstab
Входим в режим редактирования в редакторе «VIM» и дописываем в конец файла строку
none /proc/bus/usb usbfs defaults, devmode=0666 0 0
Сохраняем результат редактирования и выходим ( «Esc» «:x» ).
Выполним команду mount для монтирования нашей новой файловой системы
#mount -a
Скопируем в каталог /etc/share/openocd/scripts/interface наш конфигурационный файл ftdi_jtag.cfg
interface ft2232
ft2232_device_desc «USB <-> Serial Cable A»
ft2232_layout usbjtag
ft2232_vid_pid 0x0403 0x6010
Теперь можно подсоединить целевое устройство( я использую в качестве такового плату STM32F103-HB ) и запустить openocd.
#openocd -f interface/ftdi_jtag.cfg -f target/stm32.cfg
Осталось проделать аналогичные описанным в статье «Запуск отладки в Eclipse» настройки Eclipse для осуществления отладки программы.
Исполняемый файл openocd находиться в каталоге /usr/bin
Могут возникнуть проблемы при запуске openocd из-под пользовательской учетной записи. Поэтому лучше выполнять всю работу в Eclipse под учетной записью «root» , или же запускать openocd в отдельном окне терминала под учетной записью «root».
И вот, наконец-то, долгожданный запуск отладки в Eclipse под Linux( FEL 12 ), выглядит почти так же, как и в Windows
Viewed 13892 times by 3756 viewers
Comments
Происходит затык где-то в районе этой операции —
Термин «рабочее пространство» в Eclipse означает каталог , в котором хранятся проекты.
Проект представляет собой каталог, в котором находится файл проекта и все остальные исходные файлы,
относящиеся к этому проекту.
Для того, чтобы Eclipse «увидил» проект, уровень вложенности должен быть равен двум
( каталог рабочего пространства, в нем подкаталоги проектов с проектными файлами ),
открывается сразу все рабочее пространство, то есть все проекты, каталоги которых
находятся в рабочем пространстве.
Допустим в качестве рабочего пространства используется каталог workspace.
Скачанный проект( запакованный каталог проекта) достаточно извлечь из архива
и скопировать в каталог workspace. После этого в Eclipse необходимо выполнить
Import->General->Existing Project. Если же у Вас есть набор исходных файлов вместе с Makefile,
то поместите их в один каталог( неважно где он будет находится, только не в рабочем пространстве ).
После этого выполните в Eclipse Import->General->File System, в результате этот каталог будет
скопирован в рабочее пространство и откроется в виде Eclipse-проекта.
Названия каталогов и названия проектов желательно делать одинаковыми.
Для импортируемого проекта с существующим маке файлом перед импорто Файлово
Пожалуйста, поподробнее про импорт проекта с существующим make файлом.
Перед импортом FileSystem нужно создать новый проект? Если нужно, то какого типа? Eclipse предлагает четыре варианта, а последний опять раскрывается…(и повторяет первые три или они чем-то отличаются?)
Сначала создаем новый проект : File -> New — > Project… -> General -> Project -> Next -> «Project name» -> Finish
Выполняем импорт существующей файловой системы :
File -> Import… -> File System -> Next -> Browse -> Ставим галочку напротив название импортируемого каталога .
В графе «Info folder» выбираем имя недавно созданного проекта -> Finish.
Все! Новый проект появиться в окне проводника проектов
В скачанном архиве нет файла STM32F_usb_cfg.h и наверное соответствующего ему .с тоже/
О каком архиве идет речь?
На который ссылается статья:
В качестве примера будем использовать уже знакомый нам проект от Olimex для микроконтроллера STM32( Cortex-M3 ) под названием «Blinking LED project for GCC + Eclipse + OpenOCD»( скачать ).
/
Вот первоисточник OpenOCD + Eclipse STM32 project.
Файла STM32F_usb_cfg.h там тоже нет, похоже, что OLIMEX сильно не заморачивался, выкладывая примеры для своих плат.
Comments are closed.