Перейти к содержанию
    

Bootloader для 120-го Сигнала

Поделитесь, плз, проверенным автозагрузчиком памяти программ, работающим через UART, и управляющимся програмно от компа.

 

Железка уже готова, и грузится первый раз через JTAG, но поставить новую версию - проблема, тк приходится вскрывать корпус :-(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди!!!

Подскажите как лучше написать bootloader для Cygnala или вообще для 51 контроллера.

В общем меня интересуют следующие вопросы:

- где в пространстве программ лучше расположить bootloader и сам загружаемый код?

- как поступить с прерываниями - нужно ли их переопределять?

 

Может у кого есть готовый рабочий код - поделитесь пожаййсто.

 

:help:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

иди и копай у Филипса...мой первый контроллер на 8051RC2+ работал по ихней проге правда загрубленной нашими програмистами...бо тама наворотили дуже...интелхекс принесет тебе счастя...

размещать...ну блин вопрос...а куда прога идет по ресету хардовому...там вектор или сама прога...прерывания на время загрузки сам решай что делать...но при переходе на исполнение машина должна быть как при ресете...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у Филипса...мой первый контроллер на 8051RC2+ работал по ихней проге правда загрубленной нашими програмистами

 

Может быть подкините ссылочку :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость mihask
Люди!!!

Подскажите как лучше написать bootloader для Cygnala или вообще для 51 контроллера.

В общем меня интересуют следующие вопросы:

- где в пространстве программ лучше расположить bootloader и сам загружаемый код?

- как поступить с прерываниями - нужно ли их переопределять?

 

Может у кого есть готовый рабочий код - поделитесь пожаййсто.

 

:help:

 

Нижние 0x1000 байт ПЗУ проц-а отводятся под сам bootloader. При подаче питания bootloader инициализирует timer и UART на определённую скорость приёма-передачи (например 9600) и ждёт команды с PC "начать работать" (например нажатие клавиши "пробел" на PC) определённое время (3 сек). Если такая команда приходит bootloader продолжает работать (выдает меню, типа: 1-Сбросить flash, 2-Начать загрузку HEX-файла, 3-Выход). Если нет - заканчивает свою работу (программа переходит на адрес 0x1000 ПЗУ).

 

Для работы с bootloader-ом по выше описанной схеме на PC предварительно необходимо открыть соответствующий COM порт (программа HyperTerminal) на соответствующей bootloader-у скорости (в нашем примере 9600). После входа в bootloader и выбора пункта "Начать загрузку HEX-файла" для загрузки HEX-файла выбрать в меню HyperTerminal-а "передача" пункт "отправить текстовый фаил" и соответствующий HEX-фаил. Дождавшись от bootloader-а сообщения "Загрузка закончена", пересбросить девайс и на этот раз не подавать команды процу войти в bootloader.

 

Расположение bootloader-а по адресам 0-0x1000 ПЗУ позволяет в случае неудачной "зашивки" не потерять контроль над проц-ом и повторить попытку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...