Pull to refresh
15
0

User

Send message

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

Reading time6 min
Views5.9K
По просьбе одного из любителей применения Щ-кодов в электронных поделках возникла необходимость написать функцию (подпрограмму, процедуру), которая будет издавать трель из последовательности точек и тире. В коде Морзе длина символа может быть от 1 знака (буквы Е и Т) до 9 знаков (триграф SOS). Что передавать вышеназванной функции в качестве параметра? Если вам не в тягость условия лицензии приглашаю познакомиться с процессом запихивания кода Морзе в 1 байт.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments18

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

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

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

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

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

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

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

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

Первое условие было моментально выполнено, а вот над последующими требованиями пришлось потрудиться.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments16

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

Reading time5 min
Views4.8K
В процессе написания загрузчика STM8uLoader для микроконтроллеров STM8 возникла необходимость измерить глубину стека.

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

  • Что будет если попытаться поместить в стек больше информации чем его глубина?
  • Что будет если попытаться извлечь из стека больше информации чем поместили?
  • Что будет если инициализировать указатель стека SP адресом выходящим за границы стека?
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments7

Information

Rating
Does not participate
Registered
Activity