NFLic

STM8uLoader

Требования к загрузчику. (Статья 1)

1. STM8uLoader состоит из хост-программы boot_PC и загрузчика в микроконтроллере boot_uC.

2. Загрузчик boot_uC в свою очередь состоит из начального копировщика boot_FLASH и начального загрузчика boot_OPTION.

3. Никакой совместимости со старшими моделями микроконтроллеров.

4. Предельно компактный код.

5. Компактный начальный копировщик boot_FLASH во FLASH памяти программ (для версии $14 это 4 байта в адресах $8000...$8003, 16 байт в адресах $9FF0...$9FFF; для версии $25 это 4 байта в адресах $8000...$8003, 14 байт в адресах $9FF2...$9FFF).

6. Компактный начальный загрузчик boot_OPTION с образом в резервных ячейка блока памяти OPTION Bytes (для версии $14 и $25 это 52 байта в адресах $480B...$483E, 1 резервный байт по адресу $483F). Диапазон указанных адресов не доступен обычным программаторам.

7. При загрузке STM8 начальный копировщик boot_FLASH должен перенести из блока OPTION Bytes код начального загрузчика boot_OPTION в память SRAM по адресам $0000...$0034 и передать управление по адресу $0000.

8. Всю логику должна взять на себя хост-программа boot_PC компьютера путем отправки в SRAM память микроконтроллера блоков, содержащих необходимый код и данные для выполнения текущей операции.

9. Минимальный тайм-аут для выхода из загрузчика (для версии $14 и $25 это ~0,2 сек).

10. Загрузчик не должен перемещать таблицу векторов прерываний.

11. Загрузчик должен читать любую ячейку памяти из адресного пространства микроконтроллера STM8 (адреса $0000...$9FFF).

12. Загрузчик должен стирать содержимое ячеек(1 байт)/слов(4 байта)/блоков(64 байта) EEPROM (ресурс ~300 000 циклов записи/стирания) памяти данных (адреса $4000...$427F), FLASH (ресурс ~10 000 циклов записи/стирания) памяти программ (адреса $8000...$9FFF), области памяти OPTION Bytes (предположительно ресурс ~300 000 циклов записи/стирания) не повреждая собственного кода.

13. Загрузчик должен записывать ячееки(1 байт)/слова(4 байта)/блоки(64 байта) SRAM памяти данных (адреса $0000...$03FF), EEPROM (ресурс ~300 000 циклов записи/стирания) памяти данных (адреса $4000...$427F) и FLASH (ресурс ~10 000 циклов записи/стирания) памяти программ (адреса $8000...$9FFF) не повреждая собственного кода.

14. По истечении тайм-аута при отсутствии сигнала от хост-программы начальный загрузчик boot_OPTION должен передать управление основной программе адрес которой для версии $14 содержится в регистровой паре $9FFE:$9FFF и для версии $25 в регистровой паре $4831:$4832.

15. Загрузчик должен передавать управление по любому адресу памяти RAM или FLASH по команде от хост-программы (boot_PC).

16. Основная (прикладная) программа может храниться и выполняться из FLASH (ресурс ~10 000 циклов записи/стирания) памяти программ (адреса $8004...$9FEF для версии $14 и $8004...$9FF1 для версии $25).

17. Основная (прикладная) программа может также храниться в EEPROM (ресурс 300 000 циклов записи/стирания) памяти данных (адреса $4000...$427F), а выполняться из SRAM памяти (адреса $0000...$03FF).

18. Прикладная программа может быть загружена хост-программой (boot_PC) и выполняться из SRAM памяти (адрес передается в качестве второго аргумента командной строки). Время жизни такой программы до сброса микроконтроллера, после чего выполнение начинается с адреса хранящегося в регистровой паре $9FFE:$9FFF для версии $14 или $4831:$4832 для версии $25.

 

Машинные коды STM8 и команды ассемблера здесь. Адресное пространство STM8S103F3 тут.

 

[Где взять, как подключить, как пользоваться] [Оглавление.] [Функционал начального копировщика boot_FLASH. (Статья 2)]