Инструкция по сборке (компилированию) прошивки из исходников

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

Общая информация

Прошивку можно собрать при помощи 2-х разных компиляторов на ваш выбор: AVR-GCC (WinAvr) и IAR Embedded Workbench for AVR.
Для сборки прошивки применяется Makefile. Вам понадобятся небольшие навыки работы с командной строкой (например: cmd, Far manager, MC и т.д.).
Можно собрать прошивку под управлением ОС Linux или ОС MS Windows.

Сборка под управлением ОС Linux

1. Установите AVR-GCC. Например, через Synaptic Package Manager, Ubuntu Software Center или командную строку (dpkg).

2. Для проерки успешно ли установлен компилятор, наберите в командной строке:

avr-gcc -v

В результате вы увидите примерно такую информацию, как показано ниже.

Using built-in specs.
Target: avr
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib 
--infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin 
--libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib 
--enable-long-long --enable-nls --without-included-gettext --disable-checking 
--disable-libssp --build=i486-linux-gnu --host=i486-linux-gnu --target=avr
Thread model: single
gcc version 4.3.4 (GCC)

3. Нужно сконфигурировать сборку. Перейдите в каталог с прошивкой (называется secu3app) и наберите в командной строке:

./configure.sh M32

Данный скрипт настроит сборку для микроконтроллера ATMega32 (мы указали M32). Запуск скрипта без параметров выводит список всех поддерживаемых опций (параметров) компиляции. После конфигурирования процесс сборки прошивки начнется автоматически, по окончании процесса будет создан файл secu3_app.a90. Это скомпилированная прошивка. Если файл secu-3_app.a90 не появился (или пропал), то возможно что возникли ошибки в процессе компиляции.

Сборка под управлением ОС Windows

1. Установите AVR-GCC или IAR Embedded Workbench for AVR. WinAVR можно скачать здесь
2. Проверить удачно ли установился WinAVR вы можете, набрав в командной строке:

avr-gcc -v

При использовании IAR, вам нужно установить переменную окружения под названием IAR_HOME. Эта переменная должна содержать полный путь к директории куда установлен IAR Embedded Workbench.Например:”C:\Program Files\IAR Systems\Embedded Workbench 5.4″. Обратите внимание, что начиная с релиза 12042013 значение должно быть без кавычек, а при использовании предыдущих релизов значение должно быть в кавычках (так как в нем встречаются пробелы). Чтобы проверить установлена ли переменная в корректное значение, наберите в командной строке:

echo %IAR_HOME%

Кроме этого, при использовании IAR вам возможно прийдется поставить GNU make. Он идет в составе WinAVR, при необходимости его можно скачать по ссылке: http://gnuwin32.sourceforge.net/packages/make.htm
3. Нужно сконфигурировать сборку. Перейдите в каталог с прошивкой (называется secu3app) и наберите в командной строке:
При использовании GCC

./configure.bat M32 GCC

При использовании IAR

./configure.bat M32 IAR

Данный скрипт настроит сборку для микроконтроллера ATMega32 (мы указали M32). Запуск скрипта без параметров выводит список всех поддерживаемых опций (параметров) компиляции. После конфигурирования процесс сборки прошивки начнется автоматически, по окончании процесса будет создан файл secu3_app.a90. Это скомпилированная прошивка. Если файл secu-3_app.a90 не появился (или пропал), то возможно что возникли ошибки в процессе компиляции.

Дополнительно

Если вы что-либо поменяли в прошивке и хотите ее собрать, то наберите в командной строке:

make

Если вы поменяли Makefile (например, добавили или удалили какие-либо опции), то для сборки прошивки сначала наберите:

make clean

А затем:

make

Из-за того, что разные версии IAR могут иметь разную структуру директорий, могут возникнуть ошибки во время сборки. В этом случае откройте Makefile и проверьте значения переменных CC, LD и LIBS, при необходимости подправьте их. Если компилятор ругается на строчку

CFLAGS += --dlib_config $(IAR_HOME)/avr/lib/dlib/dlAVR-3s-ec_mul-sf-n.h

то закомментируйте ее (для комментирования используется символ #).

Редактирование опций прошивки

Если вас не устраивают опции прошивки и вы хотите их изменить, то откройте Makefile и отредактируйте строку, которая выглядит примерно так:

CFLAGS += -DREALTIME_TABLES -DBL_BAUD_RATE=9600 -DSECU3T

Опции добавляются через пробел, -Dимяопции
Все возможные опции прошивки с кратким описанием перечислены в файле readme.txt

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