WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Внутрисхемное программирование (англ. In-System Programming, сокр. ISP) — технология программирования электронных компонентов (ПЛИС, микроконтроллеры и т. п.), позволяющая программировать компонент, уже установленный в устройство. До появления этой технологии компоненты программировались перед установкой в устройство, для их перепрограммирования требовалось их извлечение из устройства.

Главным преимуществом технологии является возможность объединения процесса программирования и тестирования при производстве, исключив отдельную фазу программирования компонентов перед окончательной сборкой. Технология также позволяет производителям устройств обойтись без закупки заранее запрограммированных компонентов, выполняя программирование прямо в процессе производства. Это позволяет снизить стоимость производства и вносить изменения в программируемую часть устройства без остановки производства.

Микросхемы, имеющие возможность внутрисхемного программирования, обычно имеют специальную схему, генерирующую напряжения, необходимые для программирования, из обычного напряжения питания, а также схему для коммуникации с программатором посредством последовательного интерфейса (большинство микросхем используют вариации протокола JTAG). Программирование по ISP-интерфейсу происходит по пяти линиям связи: MOSI, MISO, SCK, RESET и GND.

Существуют два основных способа ISP:

  • программатор работает с ПЗУ и EEPROM микроконтроллера (МК) как с внешней памятью, самостоятельно размещая байты прошивки по нужным адресам. Ядро МК при этом не задействовано, а выводы переведены в высокоимпедансное состояние;
  • используется bootloader (загрузчик) — небольшая программа, записанная обычно в конце ПЗУ МК. При этом сектор ПЗУ, отведённый под bootloader, должен быть отмечен тем или иным способом (обычно установкой fuse-бита в состояние, указывающее на наличие bootloader-а и объём ПЗУ (с конца) под него отведённый). В этом случае при старте МК управление передаётся сначала bootloader-у (вектор старта переносится с нулевого адреса ПЗУ на первый байт сектора bootloader-а). Bootloader проверяет наличие заранее определённых условий (комбинации сигналов на выводах МК, состоянии переменной в EEPROM и т. п.) и, если условия не совпадают, передаёт управление основной программе. Если же условия совпадают, bootloader переходит в режим программирования, готовый принимать данные через любой, заранее определённый программистом, интерфейс и размещать их в ПЗУ. При этом МК программирует «сам себя».

Преимущество bootloader-а в том, что возможно программирование МК через любой имеющийся у него интерфейс любым удобным протоколом (даже зашифрованным, если bootloader возьмёт на себя и расшифровку). Bootloader удобен при удалённом обновлении прошивки МК. Недостаток — часть ПЗУ недоступна для размещения основной программы.

После того как загрузчик записал в память микроконтроллера прошивку, он в дальнейшем или запускает прикладную программу сам или ожидает какой-то команды от управляющей программы на компьютере, это зависит от реализации конкретного бутлоадера.

Обновление прошивки микроконтроллера также может производится этим же bootloader-ом, при этом сам он не затирается[1] (хотя такая возможность и существует).

См. также

Примечания

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

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




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии