реклама на сайте
подробности

 
 
> Непонятки с BootLoaderom, Вроде все есть, но как-то непонятно...
vitek101
сообщение Nov 5 2009, 11:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 013



Облазил весь форум, нашел темы про BootLoaderы, почитал, но неясности остались:
- есть рабочий проект для XMega128
- есть вроде рабочий проект загрузчика (переделанный из примера AVR1605)
- логика работы, размещение прерываний, переходы в приложение и обратно вроде продуманы
Теперь возник вопрос как мне их засунуть в один контроллер?
1. Собирать два проекта в одном Workspace? Как тогда сделать, чтоб приложение зашивалось по 0 адресу, а загрузчик по границе области BootLoaderа?
2. Зашивать каждый проект отдельно? Тогда получается 2 hex-файла. Как и чем их потом прошивать при серийном производстве? Можно ли какой-нибудь утилитой прошивать hex по конкретному адресу?
3. Делать все в одном проекте? Мне этот вариант нравится больше всего, но не пойму как определить сегмент для загрузчика.

Посоветуйте кто-нибудь...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Nov 5 2009, 12:47
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(vitek101 @ Nov 5 2009, 13:43) *
1. Собирать два проекта в одном Workspace? Как тогда сделать, чтоб приложение зашивалось по 0 адресу, а загрузчик по границе области BootLoaderа?
Да, именно два отдельных независимых проекта. За размещение отвечает линкер. Изучайте формат его скрипта.
Цитата(vitek101 @ Nov 5 2009, 13:43) *
2. Зашивать каждый проект отдельно? Тогда получается 2 hex-файла. Как и чем их потом прошивать при серийном производстве? Можно ли какой-нибудь утилитой прошивать hex по конкретному адресу?
Перед передачей на производство файлы "склеить" в один или текстовым редактором или утилитой вроде SRecord. Адрес, по которому заливать, зашит в сам HEX-файл - не нужно ничего указывать дополнительно. Заливать конечно AVRealом - ничего лучше для производства не придумано. Добавлено: ой, AVReal Хмеги еще не умеет. Тогда не знаю.
Цитата(vitek101 @ Nov 5 2009, 13:43) *
3. Делать все в одном проекте? Мне этот вариант нравится больше всего, но не пойму как определить сегмент для загрузчика.
Сегмент определяется в скрипте линкера. Но это неудачное решение. Начиная с того, как вы будете "выкусывать" приложение из новых прошивок для апгрейда уже выпущенных приборов и заканчивая тем, что дрожащей рукой в процессе развития проекта вы можете ненароком изменить загрузчик и сделать загрузчик новых устройств и их боевую программу несовместимыми с загрузчиком в уже выпущенных устройствах.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 06:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016