По просьбе одного из любителей применения Щ-кодов в электронных поделках возникла необходимость написать функцию (подпрограмму, процедуру), которая будет издавать трель из последовательности точек и тире. В коде Морзе длина символа может быть от 1 знака (буквы Е и Т) до 9 знаков (триграф SOS). Что передавать вышеназванной функции в качестве параметра? Если вам не в тягость условия лицензии приглашаю познакомиться с процессом запихивания кода Морзе в 1 байт.
User
Как сжать загрузчик для STM8 до размера 8 байт в памяти FLASH
16 min
5.4KСо времени написания предыдущей статьи ” Как сжать загрузчик для STM8 до размера 18 байт в памяти FLASH” появились две версии загрузчика STM8uLoader . Загрузчик STM8uLoader версии $36 научился передавать управление прикладной программе по любому адресу в памяти RAM без участия хост-программы. Размер 18 байт загрузчика в памяти FLASH не изменился, в области OPTION Bytes размер увеличился до 53 байта (занял все доступное пространство).
В отдельную ветку выделилась версия $0D загрузчика. Основное требование к этой версии: максимально сжать код. На сегодняшний день размер кода во FLASH памяти 8 байт в EEPROM памяти 35 байт.
В отдельную ветку выделилась версия $0D загрузчика. Основное требование к этой версии: максимально сжать код. На сегодняшний день размер кода во FLASH памяти 8 байт в EEPROM памяти 35 байт.
+20
Как сжать загрузчик для STM8 до размера 18 байт в памяти FLASH
13 min
7.7KВ процессе поиска загрузчика для микроконтроллера STM8S103F3 было обнаружено, что имеющиеся загрузчики в основном написаны на ”C”, «крадут» значительный объем у FLASH памяти, переносят таблицу векторов прерываний.
Загрузчик был необходим для некоего устройства, к которому невозможно подключить программатор.
Было решено попробовать самостоятельно написать загрузчик со следующими требованиями:
— загрузчик должен был называться STM8uLoader;
— код должен быть написан на ассемблере (благо ассемблер законодательно пока не запрещен);
— загрузчик должен занимать минимально возможный объем во FLASH памяти, объем занимаемый в компьютере будем считать не ограниченным;
— загрузчик не должен перемещать таблицу векторов прерываний;
— загрузчик должен иметь минимальный функционал, весь основной функционал должен взять на себя компьютер;
— загрузчик должен передавать управление прикладной программе за разумное время после сброса/включения при отсутствии соединения с компьютером.
Первое условие было моментально выполнено, а вот над последующими требованиями пришлось потрудиться.
Загрузчик был необходим для некоего устройства, к которому невозможно подключить программатор.
Было решено попробовать самостоятельно написать загрузчик со следующими требованиями:
— загрузчик должен был называться STM8uLoader;
— код должен быть написан на ассемблере (благо ассемблер законодательно пока не запрещен);
— загрузчик должен занимать минимально возможный объем во FLASH памяти, объем занимаемый в компьютере будем считать не ограниченным;
— загрузчик не должен перемещать таблицу векторов прерываний;
— загрузчик должен иметь минимальный функционал, весь основной функционал должен взять на себя компьютер;
— загрузчик должен передавать управление прикладной программе за разумное время после сброса/включения при отсутствии соединения с компьютером.
Первое условие было моментально выполнено, а вот над последующими требованиями пришлось потрудиться.
+31
Нарушаем стек в STM8
5 min
4.8KВ процессе написания загрузчика STM8uLoader для микроконтроллеров STM8 возникла необходимость измерить глубину стека.
Зададимся вопросами:
Зададимся вопросами:
- Что будет если попытаться поместить в стек больше информации чем его глубина?
- Что будет если попытаться извлечь из стека больше информации чем поместили?
- Что будет если инициализировать указатель стека SP адресом выходящим за границы стека?
+16
Information
- Rating
- Does not participate
- Registered
- Activity