Запретный плод GOTO сладок!

Доброго времени суток!

Какое Ваше отношение к оператору goto в языках С/С++? Скорее всего, когда Вы учились программировать, Вы его использовали. Потом Вы узнали, что это плохо, и Вы о нем позабыли. Хотя иногда при сложной обработке ошибок… нет-нет, там try … throw … catch. Или же для выхода из вложенных циклов … не-ет, там флаги и куча сложностей. Или когда вложенные switch … нет-нет-нет, там те же флаги.
И все-таки, иногда в ночной тиши Вы допускали в свое подсознание грешную мысль – «а почему бы не использовать вот тут goto? И программа вроде как стройней будет, и оптимально выходит. Да-а, было бы хорошо… Но нет – нельзя, забыли!».
А почему так оно?
Под катом – небольшое расследование и мое, основанное на многолетней практике и разных платформах, отношение к этому вопросу…
Особо любопытные и читатели Хабра уже возмутились — это кросспост с с Хабрахабра! Согласен — я там когда-то написал эту статью. Увидел, что она вызвала резонанс. Решил поделиться с читателями и этого ресурса.


Читать дальше
  • +8
  • 26 сентября 2012, 18:26
  • PICC

SFF, The

Single File FAT, оно же LoggerFS.
Всех, кто гадал о назначении платы из прошлого поста, сегодня ждёт праздник. Вы дождались ответа, эта маленькая плата — демонстратор технологии. С одной стороны у неё термометр ds1820, с другой микроэсдэ карточка, посередине тиня. Этакий безумный гаджет, цель создания которого — показать владение кунг-фу хакерством.



Читать дальше

Светодиодный матричный индикатор VQC 10 C

Попала мне в руки, некоторое время назад, занятная деталька.



Читать дальше

Обезвреженный шаблон для STM32

Не знаю есть ли ещё такие как я, кто не пользуется аппаратной отладкой и готовыми либами. Судя по тому, что я не смог найти такой шаблон когда он мне был нужен на это не похоже. Этот пост надеюсь прояснит вопрос.

Речь пойдет о том как написать минимальной код для STM32 (тестил только на F103xx), запустить его и отладить без JTAG/SWD. Когда-то я читал, что-то подобное для AVR, а вот для STM32 не нашел, все примеры обмазаны CMSIS и JTAG.

Читать дальше

ASM в STM32. Начало

Настоящим джедаям посвящается


Читать дальше
  • +5
  • 09 февраля 2012, 12:46
  • psv
  • 1

Еще один способ опроса энкодера


Мне известно два метода обработки энкодера: по прерыванию (от INT0,INT1,PCINT…)
и сравнение предыдущего состояния энкодера и текущего ( easyelectronics.ru/avr-uchebnyj-kurs-inkrementalnyj-enkoder.html ). Я предлагаю еще один способ, который заключается в следующем:

Читать дальше

Ассемблер STM8

В процессе освоения STM-ок, мне очень не хватало описания ассемблера от них. Речь идёт не о мнемониках инструкций вычислительного ядра микроконтроллеров, а о принципах построения ассемблерных программ в STVD. После ассемблера ядра AVR, в STM-ном ассемблере для меня всё выглядело до безобразия нелогично. Какое-то время даже хотелось написать свой ассемблер :) Теперь я постараюсь облегчить забег по граблям тем, кто будет осваивать ассемблер для STM8.

Читать дальше
  • +5
  • 26 января 2012, 20:17
  • Deer

Тайна AVR GCC

Всем известно, что, даже если проект содержит только while (1), сгенерированный компилятором код имеет довольно существенный размер (около пары сотен байт). Собственно, меня давно интересовало назначение этих инструкций. И сегодня я наконец-то от нечего делать взял дизассемблер, проанализировал содержимое стандартного кода, генерируемого AVR-GCC для каждого проекта, и на случай, если упомянутый вопрос мучал не только меня, решил написать статью, посвященную его полному разбору.



Читать дальше
  • +4
  • 22 января 2012, 20:10
  • _YS_

Почему я не спешу продолжать разговор о растактовке выполнения инструкций вычислительным ядром STM8

Давно тому назад я хотел начать разговор о сабже. На тот момент осциллограф у меня был в ремонте, и я был вооружён лишь частотомером. С возвращением осциллографа, я думал, что всё станет яснее. Как вы уже догадались, не стало! :)

Итак, задача наша пока что не менялась: передёргивать ножку со светодиодом и считать, сколько тактов это занимает. Понятное дело, что мы увидеть можем только лишь исполнительную фазу, а процессы заполнения входного буфера конвейера от нас скрыты.

Читать дальше
  • +1
  • 14 января 2012, 16:24
  • Deer