Подборка англоязычных сайтов по теме встроенных систем и близкого к этому:
Сайт: LinuxDevices.com - представлена информация по всевозможным “Linux inside” устройствам. Много обзоров процессорных модулей для разработчиков встроенных систем. Как правило эти модули имеют на борту х86 или ARM процессор, от 1 до 256 Мб ОЗУ, до 1 Гб встроенной флеш-памяти, сетевые, беспроводные и др. интерфейсы. Стоят они обычно от 50 до 150 долл.
Коммуникатор Neo FreeRunner (проект OpenMoko) с открытыми исходниками (лицензия GPL). Открыт как программный код, так и принциписальная схема, файлы разводки.
По современным меркам аппаратная платформа уже несколько устарела. Например, нет поддержки 3G и мульти-тач интерфейса (а-ля iPhone), но зато вся документация открыта :)
- входы/выходы: 2.5 mm разъем для наушников и разъем для внешнего GPS приемника
- дополнительно: Wi-Fi (802.1 1b/g), AGPS, GPRS (2.5G, не EDGE), Bluetooth 2.0, 3х осевой акселерометр
- ПО: Openmoko GNU/Linux-based
Заявленная на сайте стоимость коммуникатора составляет сейчас 299 долл. Среди его дистрибьюторов заявлен и российский: GNU/Linux Center (www.linuxcenter.ru)
Обновил AVR loader, для загрузки процессоров семейства AVR mega, до версии 1.2. В этой версии сделан выбор скорости СОМ-порта: от 19200 до 115200. Выбранное значение, также как и СОМ-порт, сохраняется в ini файле программы. Скачать программу можно по ссылке: AVR loader v1.2
В своей работе разработчики встроенных систем часто используют для отладки макетные платы. Об одной из них, на чипе Atmel AVR Mega128, и пойдет речь ниже. Это модуль Crumb128 производства Chip45 (www.chip45.com/index.pl?page=Crumb128&lang=en)
Рис. 1 - модуль Crumb128
Удобный и не особо дорогой модуль для отладки (сейчас, в марте 2009г., он стоит около 2000 руб.), к которому можно подсоединить какие-то внешние компоненты, и у которого есть USB и RS-232 порт. Наличие USB порта для связи с модулем Crumb128 особенно удобно, т.к. позволяет запитать модуль непосредственно от USB. Среди доступного софта для модуля, на сайте www.chip45.com выложен в исходных кодах загрузчик, который будучи зашит в модуль ISP-программатором (например Atmel AVR ISP/ISP mkII), затем позволяет обходиться без него. В конце статьи приведена ссылка на немного измененные исходники этого загрузчика. Изменения касались текстовых сообщений, индикации начала загрузки светодиодом и прочих мелочей. В скомпилированном виде загрузчик занимает чуть менее 2Kb и помещается в предназначенную для него область памяти процессора (Boot Loader Flash Section). При необходимости его нетрудно адаптировать для других процессоров Atmel AVR серии Mega. Так же приложена и программа-загрузчик для ПК «AVR Loader», использование которой делает процесс обновления основной программы модуля более удобным. Программа была написана потому, что используемый загрузчик предполагает использование .srec файлов для загрузки, и изначально был ориентирован на работу с обычной терминальной программой, что не особенно удобно. Через написанную программу обновлять прошивку гораздо удобнее. Она имеет простой интерфейс. Читайте о ней ниже.
Инструкция по использованию загрузчика:
Необходимый софт:
Для прошивки загрузчика в модуль необходим программатор Atmel AVR ISP (или ISP mkII). Для компиляции загрузчика на ПК должен быть установлен компилятор WinAVR (мною использовалась версия от 10.06.2008), а так же Atmel AVR Studio версии 4 build 589 и выше.
1) Компиляция загрузчика. По ссылке в конце статьи скачайте архив с загрузчиком и распакуйте его. Из каталога загрузчика запустите файл «makem.bat». Если копилятор WinAVR установлен, то исходники загрузчика будут скомпилированы, и в каталоге должен появиться файл «chip45boot.hex». Этот файл необходимо будет загрузить в модуль через ISP программатор. Инструкцию про это читайте ниже. Те, кто делал подобное уже много-много раз, могут пропустить следующий пункт.
2) Загрузка загрузчика :) Подключите программатор AVR ISP mkII к порту USB ПК и запустите AVR Studio. Подключите разъем программатора к разъему ISP модуля Crumb128 (красный проводник на шлейфе разъема программатора должен совпадать с первым контактом на разъеме ISP) (рис. 2).
Соедините USB кабелем модуль и ПК. При этом должен загореться зеленым цветом индикатор статуса на программаторе, сигнализирующий наличие питания на модуле (рис. 3).
Рис. 3 – индикатор статуса программатора (фото из документации AVR ISP mkII)
Запустите программу AVR Studio, зайдите в меню «Tools» и выберите подменю «Program AVR», а в нем пункт «Connect…» (рис. 4).
Рис. 4
Далее в появившемся окне выберите «AVR ISP mkII» и «USB» (рис. 5), затем нажмите «Connect…».
Рис. 5
В случае успешного подключения должно появиться окно как на рис. 6.
Рис. 6
В группе «Device and Signature Bytes» выберите тип процессора используемого в модуле: ATmega128. В группе «Programming Mode and Target Settings» должно быть выбрано «ISP Mode». Нажав далее «Read signature» должен считать идентификатор процессора и должна появиться надпись «Signature matches selected device». После этого можно начинать программирование. Для этого необходимо выбрать вкладку «Program». В группе «Device» установить галочки «Erase device…» и «Verify device…». В группе «Flash» выбрать загружаемый файл нажав кнопку «…». Нужно выбрать файл загрузчика с названием «chip45boot.hex». Он создается при компиляции в каталоге исходников загрузчика. Далее нажмите кнопку «Program». В случае успешного результата программирования, в нижнем информационном поле будет информация как на рис. 7.
Рис. 7
Далее нужно перейти на вкладку «Fuses» и установить следующие значения в полях:
Параметр : Действие
BODLEVEL: выключить OCDEN: сбросить JTAGEN: установить SPIEN: установить WDTON: сбросить EESAVE: не важно BOOTSZ: выбрать «Boot flash size=4096 words …» BOOTRST: установить CKDIV8: сбросить CKOUT: сбросить SUT_CKSEL: выбрать «Ext. Crystal 8.0- MHz; Start-up time: 258 CK + 65 ms»
Установить галочку «Verify after programming». Далее нажать кнопку «Program». В случае успеха в информационном окне будет «Fuse bits verification… OK».
Затем нужно закрыть окно программатора, при этом будет снят сигнал сброса с процессора, и сразу после этого загрузчик запустится. Проверить его работу можно визуально по миганию индикатора модуля в течении нескольких секунд после его запуска. Также можно проверить это с помощью терминальной программы. Для этого нужно запустить терминальную программу, например, «HyperTerminal», или любую другую. При этом в параметрах настройки СОМ-порта соответствующего модулю (строка «CP210x USB to UART Bridge Controller (COM N)» в разделе «Порты COM и LPT» диспетчера устройств Windows) установить следующее: скорость – 115200; бит данных – 8; стоповых бит – 1; управления потоком – нет. После запуска загрузчика в терминале должен появиться следующий текст: «CRUMB-128 BIOS 1.1».
3) Использование программы для «AVR Loader» Для обновления основной программы модуля, запустите программу «AVR Loader» (рис. 8).
Рис. 8
В селекторе «COM» выберите тот СОМ-порт, который относится к подключенному по USB модулю Crumb128. Список СОМ-портов в системе можно посмотреть через «Диспетчер устройств» Windows, раздел «Порты COM и LPT» (рис. 9). Определить нужный СОМ-порт можно по строке «CP210x USB to UART Bridge Controller (COM N)» (N – номер СОМ-порта, может быть разный на разных ПК).
Рис. 9 - Список СОМ-портов в системе
Затем нужно выбрать загружаемый в модуль файл через меню «Open file». Файлы, загружаемые в модуль, имеют расширение «.srec». Затем нужно перезагрузить процессор модуля, нажав кнопку «Сброс» (она должна быть заранее подключена к модулю). После перезагрузки модуля начнется процесс загрузки в него новой прошивки, что займет менее минуты. В строке статуса «Status» показывается информация о текущей операции и об ошибках. Для того что посмотреть на обмен программы с модулем, во время загрузки нажмите кнопку «Show Terminal». При этом откроется окно терминала, где отображается обмен данными загрузчика с модулем. Повторное нажатие на эту кнопку закрывает его окно. После успешного обновления программы вновь запустится загрузчик, который затем передаст управление основной программе. Нажатием кнопки «Close COM» можно освободить занятый СОМ-порт. Программа свои настройки (номер СОМ-порта, и имя загружаемого файла) хранит в «.ini» файле, в своем каталоге. При отсутствии файла, он создается со значениями по умолчанию. Настройки в него сохраняются при закрытии программы.