разработка и программирование электронных устройств

Программирование микроконтроллеров в Fedora Electronic Lab

В первой обзорной статье о 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 0×0403 0×6010

Теперь можно подсоединить целевое устройство( я использую в качестве такового плату 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

9 Comments to Программирование микроконтроллеров в Fedora Electronic Lab

  1. adax's Gravatar adax
    3 декабря 2010 at 19:19 | Permalink

    Происходит затык где-то в районе этой операции -

    Выполним импорт проекта через «File -> Import…», далее «General -> Existing Project into Workspace». /

    Поясните, пожалуйста, необходимо ли перед импортом
    создать в Workspace папку или проект и скопировать туда
    файлы проекта ?
    Пробовал разные варианты последовательности копирования и создания проектов – натыкаюсь на то, что последующие действия описанные в статье оказываются недоступны.
    Поясните поподробнее куда и когда копировать и импортировать

  2. adax's Gravatar adax
    20 декабря 2010 at 15:06 | Permalink

    В скачанном архиве нет файла STM32F_usb_cfg.h и наверное соответствующего ему .с тоже/

  3. adax's Gravatar adax
    22 декабря 2010 at 20:43 | Permalink

    На который ссылается статья:
    В качестве примера будем использовать уже знакомый нам проект от Olimex для микроконтроллера STM32( Cortex-M3 ) под названием «Blinking LED project for GCC + Eclipse + OpenOCD»( скачать ).
    /

Leave a Reply

You must be logged in to post a comment.