Не нужно путать причину и следствие(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=Vit=- 24 января 2005 г. 16:02
В ответ на: Про отдельную зону для бут-лоадера в АВР АТмегах. Какая от этого польза ? отправлено CD_Eater 24 января 2005 г. 13:13

Загрузчик (пока назовём его так) нужен для запуска исполняемой части кода пользователя (обычно "голая" программа или ОС). Аппаратный инстинкт заставляет камень по умолчанию стартовать из заданной области адресов памяти. Дальше нужно подгрузить непосредственно код пользователя (если он ещё не в памяти, в смысле ОЗУ для процессора и либо ПЗУ, либо ОЗУ для контроллера в зависимости от родословной. Если хочется изменить адрес запуска, то нужно либо использовать переход программный, либо пользовать блага, предоставленные разработчиками железки (бит бутстарт в некоторых камешках, в других - комбинация состояния некоторых ног при сбросе, в третьих комбинации того и другого, да и количество точек запуска, читай адресов, разное бывает). Загрузчики бывают разными, например, начальный или системный bootloader (основным назначением является запуск программы), ну или начальный загрузчик (кода) bootstraploader. Зачастую bootstraploader имеет определенный связной интерфейс (например, одноименный загрузчик в MSP430F или ISP в AVR, ну или загрузчик в AT89C51xD2) недоступен из пользовательской программы, защищён от уничтожения и создает неудобства, связанные с необходимостью формировать подключение по указанному интерфейсу на доске, не дает нестыкующимися с ним программно-аппаратными средствам перепрограммирования/связи осуществлять удалённое изменение программы. Зачем нужно перешивать программу на объекте - философско-экономический вопрос для пятницы.
Так вот загрузчики кода основной программы, которые могут быть вмонтированы в любезно предоставленное разработчиками камня место, выполняют не менее 3-х функций - начальный запуск, загрузка(перепрошивка) "основной" программы, запуск "основной" программы, а также (по-минимуму) может запуститься из "основной" программы путём перехода на выполнение с заданного адреса. Соответственно интерфейсы и протоколы загрузки выбираются писателем;) загрузчика.
Переключение таблицы векторов есть необходимая фича для качественной работы загрузчика до запуска "основной" программы и, если реализовано, "подхвата системных функций" при "прозрачной" перепрошивке тела "основной" программы (например, формирование ответа на запрос по интерфейсу/протоколу, используемым в основной программе, в виде какой-нибудь замечательной фразы "я занят" ну или "пошли все на@#$").

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru