NFLic

STM8uLoader

Функционал начального загрузчика boot_OPTION. (Статья 3)

Начальный загрузчик boot_OPTION версии $14

При отсутствии подключения к хост-программе boot_PC и адресе в регистровой паре $9FFE:$9FFF в диапазоне $8004...$9FEF ( больше или равно $8000 ) начальный загрузчик boot_OPTION:

- отправляет хост-программе boot_PC по UART 9600 8N1 байт $14 (версия загрузчика boot_uC);

- отсчитывает тайм-аут ~200 миллисекунд в ожидании байта от хост-программы boot_PC;

- передает управление по адресу в регистровой паре $9FFE:$9FFF.

 

При отсутствии подключения к хост-программе boot_PC и адресе в регистровой паре $9FFE:$9FFF равном $0000 ( меньше $8000 ) начальный загрузчик boot_OPTION:

- отправляет хост-программе boot_PC по UART 9600 8N1 байт $14 (версия загрузчика boot_uC);

- отсчитывает тайм-аут ~200 миллисекунд в ожидании байта от хост-программы boot_PC;

- копирует содержимое EEPROM памяти данных с адресами $4000...$427F в SRAM память данных/программ по адресам $0000...$027F;

- передает управление по адресу $0000.

 

При наличии подключения к хост-программе boot_PC начальный загрузчик boot_OPTION:

- отправляет хост-программе boot_PC по UART 9600 8N1 байт $14 (версия загрузчика boot_uC). Это сигнал хост-программе, что можно отправлять байт-счетчик;

- отсчитывает тайм-аут ~200 миллисекунд в ожидании байта-счетчика от хост-программы boot_PC. Байт-счетчик показывает сколько еще байтов ожидать от хост-программы;

- помещает принятые байты в обратном порядке в SRAM память данных/программ начиная с адреса $03FF;

- передает управление принятому от хост-программы блоку(модулю, дампу) данных/команд с текущим функционалом по адресу $03FF минус содержимое байта-счетчик.

 

Начальный загрузчик может повторно принять управление от текущего блока(модуля, дампа) данных/команд для приема/замены блока(модуля, дампа) данных/команд с другим функционалом с последующей передачей управления.

 

Образ начального загрузчика boot_OPTION версии $14 в блоке памяти OPTION Bytes (проверено на микроконтроллере STM8S103F3):

 

  $4800  $00 $00 $FF $00 $FF $00 $FF $00 $FF $00 $FF $35 $0D $52 $32 $35 
  $4810  $0C $52 $35 $35 $14 $52 $31 $5A $27 $16 $72 $0B $52 $30 $F8 $C6 
  $4820  $52 $31 $72 $0B $52 $30 $FB $3B $52 $31 $4A $26 $F5 $96 $5C $FC 
  $4830  $CE $9F $FE $2B $FA $90 $AE $42 $7F $AE $02 $7F $CC $9F $F4 $00 

 

Для формирования необходимого кода загрузчика boot_uC версии $14 необходимо прошить программатором во FLASH память микроконтроллера файл [boot_OPTION_rev14], перезагрузить микроконтроллер, дождаться непрерывного сигнала светодиода. Далее прошить программатором во FLASH память микроконтроллера файл [boot_FLASH_rev14].

 

Начальный загрузчик boot_OPTION версии $25

При отсутствии подключения к хост-программе boot_PC и адресе в регистровой паре $4831:$4832 в диапазоне $8004...$9FF1 ( больше или равно $8000 ) начальный загрузчик boot_OPTION:

- отправляет хост-программе boot_PC по UART 9600 8N1 байт $25 (версия загрузчика boot_uC);

- отсчитывает тайм-аут ~200 миллисекунд в ожидании байта от хост-программы boot_PC;

- передает управление по адресу в регистровой паре $4831:$4832.

 

При отсутствии подключения к хост-программе boot_PC и адресе в регистровой паре $4831:$4832 равном $0000 ( меньше $8000 ) начальный загрузчик boot_OPTION:

- отправляет хост-программе boot_PC по UART 9600 8N1 байт $25 (версия загрузчика boot_uC);

- отсчитывает тайм-аут ~200 миллисекунд в ожидании байта от хост-программы boot_PC;

- копирует содержимое EEPROM памяти данных с адресами $4000...$427F в SRAM память данных/программ по адресам $0000...$027F;

- передает управление по адресу $0000.

 

При наличии подключения к хост-программе boot_PC начальный загрузчик boot_OPTION:

- отправляет хост-программе boot_PC по UART 9600 8N1 байт $25 (версия загрузчика boot_uC). Это сигнал хост-программе, что можно отправлять байт-счетчик;

- отсчитывает тайм-аут ~200 миллисекунд в ожидании байта-счетчика от хост-программы boot_PC. Байт-счетчик показывает сколько еще байтов ожидать от хост-программы;

- помещает принятые байты в обратном порядке в SRAM память данных/программ начиная с адреса $03FF;

- передает управление принятому от хост-программы блоку(модулю, дампу) данных/команд с текущим функционалом по адресу $03FF минус содержимое байта-счетчик.

 

Начальный загрузчик может повторно принять управление от текущего блока(модуля, дампа) данных/команд для приема/замены блока(модуля, дампа) данных/команд с другим функционалом с последующей передачей управления.

 

Образ начального загрузчика boot_OPTION версии $25 в блоке памяти OPTION Bytes (проверено на микроконтроллере STM8S103F3):

 

  $4800  $00 $00 $FF $00 $FF $00 $FF $00 $FF $00 $FF $35 $0D $52 $32 $35 
  $4810  $0C $52 $35 $35 $25 $52 $31 $5A $27 $16 $72 $0B $52 $30 $F8 $C6 
  $4820  $52 $31 $72 $0B $52 $30 $FB $3B $52 $31 $4A $26 $F5 $96 $5C $FC 
  $4830  $AE $80 $04 $2B $FA $90 $AE $42 $7F $AE $02 $7F $CC $9F $F6 $00 

 

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

 

[Функционал копировщика boot_FLASH. (Статья 2)] [Оглавление.] [Функционал хост-программы boot_PC. (Статья 4)]