Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Загрузчик (bootloader) по протоколу Xmodem
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
_Алекс
В стандартной поставке виндовс есть программа HyperTerminal, из которой можно отправить файл по протоколу Xmodem, может, есть у кого наработки с этим протоколом бутлоадера.
starter48
Цитата(_Алекс @ Sep 24 2007, 22:03) *
В стандартной поставке виндовс есть программа HyperTerminal, из которой можно отправить файл по протоколу Xmodem, может, есть у кого наработки с этим протоколом бутлоадера.

Вот атмел пишет про Xmodem:
http://www.atmel.com/dyn/resources/prod_do...nts/doc1472.pdf
Можешь сам написать, как тебе нужно.

А вообще, у меня есть свой загрузчик через Xmodem для меги16.
Загружает прошивку в формате .BIN
Проект в IAR C.
_Алекс
Цитата(starter48 @ Sep 25 2007, 04:29) *
Вот атмел пишет про Xmodem:
http://www.atmel.com/dyn/resources/prod_do...nts/doc1472.pdf
Можешь сам написать, как тебе нужно.

А вообще, у меня есть свой загрузчик через Xmodem для меги16.
Загружает прошивку в формате .BIN
Проект в IAR C.


спасибо посмотрю
http://www.atmel.com/dyn/resources/prod_do...nts/doc1472.pdf

не могли бы вы поделится свои исходником
vesago
Тут кое что видел. starter48 если есть возможность, тоже хотел бы взглянуть.
Peter Pavlov
Цитата(vesago @ Sep 25 2007, 09:01) *
Тут кое что видел. starter48 если есть возможность, тоже хотел бы взглянуть.

По хорошему в бутлоадер не только xmodem нужно вставить, а еще заголовок к бинарнику, в котором к примеру есть такое
//-------------------------------------------------------------------------------------------
typedef struct
{
u8 Name[103];
u32 HW_Version;
u32 SW_Version;
TTimeFull Time;
u8 WH_Update;
u8 Flag;
u32 Length;
u16 CRC_D; // CRC of data
u16 CRC_H; // CRC of header
}THead;
//-------------------------------------------------------------------------------------------
Где CRC_H - CRC хеадера, CRC_D - CRC остальных данных. Сначала считается CRC данных и пишется в хедер, а затем CRC самого хедера. Те 100% гарантия сохранности всего. В версии HW пишиться к примеру число, если в загружаемом бинарнике не совпадают версии HW то бинарник не пишется в флеш. Также пишется дата приготовления бинарника. В общем на выходе имеем исчерпывающую информацию обо всем. Так же стоит написать утилиту, которая делает bin из hex и добавляет хедер с CRC.
starter48
Цитата(_Алекс @ Sep 25 2007, 10:11) *
спасибо посмотрю
http://www.atmel.com/dyn/resources/prod_do...nts/doc1472.pdf

не могли бы вы поделится свои исходником

Для начала нужно прошить фьюзы BSIZ=0,BRST=0 (progfuse.bat)
Кварц 11059кГц
Скорость 9600 8N1
Компилилось в IAR3.20d
После сброса загрузчик получив управление, проверяет не нажата ли кнопка "программирование", подключенная к PINB_Bit1, а также контр. сумму основной программы по адресам 0-37FFh.
И если сумма ненулевая или кнопка нажата (из PINB_Bit1 читается ноль), то происходит запуск цикла ожидания прошивки по протоколу Xmodem. При этом программа посылает строку
"Start uploading firmware using Xmodem protocol", которую должно быть видно на терминале.
Файл FIRMWARE.BIN содержит пример прошивки которую можно залить с помощью моего загрузчика.
Этот файл получается из файла с раширением .a90 (hex) с помощью программки hex2bin.
В двух последних байтах содержится контр. сумма. Её автоматом может делать IAR:
в настройках проекта, категория XLINK, на закладке Processing:
включить Fill unused memory
Fill pattern: 0xFF
включить Generate checksum
size: 2 bytes
CRC16 (0x11021)
Complement: As is
Bit order: MSB first
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.