Обновить
13
0

Пользователь

Отправить сообщение

8-разрядный код Морзе

Время на прочтение6 мин
Охват и читатели6.5K
По просьбе одного из любителей применения Щ-кодов в электронных поделках возникла необходимость написать функцию (подпрограмму, процедуру), которая будет издавать трель из последовательности точек и тире. В коде Морзе длина символа может быть от 1 знака (буквы Е и Т) до 9 знаков (триграф SOS). Что передавать вышеназванной функции в качестве параметра? Если вам не в тягость условия лицензии приглашаю познакомиться с процессом запихивания кода Морзе в 1 байт.
Читать дальше →

Как сжать загрузчик для STM8 до размера 8 байт в памяти FLASH

Время на прочтение16 мин
Охват и читатели5.7K
Со времени написания предыдущей статьи ” Как сжать загрузчик для STM8 до размера 18 байт в памяти FLASH” появились две версии загрузчика STM8uLoader . Загрузчик STM8uLoader версии $36 научился передавать управление прикладной программе по любому адресу в памяти RAM без участия хост-программы. Размер 18 байт загрузчика в памяти FLASH не изменился, в области OPTION Bytes размер увеличился до 53 байта (занял все доступное пространство).

В отдельную ветку выделилась версия $0D загрузчика. Основное требование к этой версии: максимально сжать код. На сегодняшний день размер кода во FLASH памяти 8 байт в EEPROM памяти 35 байт.
Читать дальше →

Как сжать загрузчик для STM8 до размера 18 байт в памяти FLASH

Время на прочтение13 мин
Охват и читатели8.3K
В процессе поиска загрузчика для микроконтроллера STM8S103F3 было обнаружено, что имеющиеся загрузчики в основном написаны на ”C”, «крадут» значительный объем у FLASH памяти, переносят таблицу векторов прерываний.

Загрузчик был необходим для некоего устройства, к которому невозможно подключить программатор.

Было решено попробовать самостоятельно написать загрузчик со следующими требованиями:

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

Первое условие было моментально выполнено, а вот над последующими требованиями пришлось потрудиться.
Читать дальше →

Нарушаем стек в STM8

Время на прочтение5 мин
Охват и читатели5.1K
В процессе написания загрузчика STM8uLoader для микроконтроллеров STM8 возникла необходимость измерить глубину стека.

Зададимся вопросами:

  • Что будет если попытаться поместить в стек больше информации чем его глубина?
  • Что будет если попытаться извлечь из стека больше информации чем поместили?
  • Что будет если инициализировать указатель стека SP адресом выходящим за границы стека?
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность