Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

ВВЕДЕНИЕ Почему ассемблер? По статистике на 2018 год 8-разрядные чипы, в том числе семейство AVR, все еще занимают около 12–13% рынка универсальных контроллеров, что совсем немало, учитывая его миллиардные объемы в количественном исчислении. Дешевые, не- прихотливые, несложные в программировании и схемотехнике, 8-разрядные кон- троллеры с большим количеством задач справляются собственными силами, без дорогих дополнительных компонентов. Вопрос в том, как проще всего приспосо- бить эти контроллеры под свои все расширяющиеся нужды? Вы уже познакомились с Arduino, имеете представление о возможностях AVR- контроллеров. Изначально рассчитанная на людей, не имеющих инженерного обра- зования, но склонных мастерить нужные вещи своими руками, платформа Arduino в несколько лет завоевала заслуженную популярность любителей по всему миру, породив целую отрасль индустрии. Платы и среда программирования, распростра- няющиеся под свободной лицензией, породили огромное количество подражаний и ответвлений, развивающих платформу в ту или иную сторону. Одновременно неис- числимое количество фирм по всему миру наладили выпуск самой разнообразной периферии: датчиков, исполнительных устройств, устройств сопряжения с комму- никационными сетями. Наверное, не осталось такой любительской задачи в облас- ти конструирования электронных устройств, которую нельзя было бы решить в рамках Arduino, причем чаще всего несколькими способами. Вероятно, важнейшая особенность экосистемы Arduino, которая и позволила завое- вать ей такую популярность — то, что порог вхождения (т. е. сумма необходимых априорных знаний и умений для начала работы) здесь сведен к достижимому ми- нимуму. Можно не разбираться ни в науке об электричестве, ни в программирова- нии — и тем не менее создавать своими руками вполне работоспособные схемы. Но даже непрофессионалу ясно, что создавая столь удобный инструмент, пришлось чем-то серьезно пожертвовать. Ограничения Arduino начинают чувствоваться сра- зу, как только вы выходите за рамки макета и пытаетесь создать удобный, эконо- мичный и эстетично выглядящий прибор. Закрадывается мысль — а зачем мне в нем столько всего лишнего, которое потребляет ток, занимает кучу места и после закачки отлаженной программы в контроллер уже никак не используется?

RkJQdWJsaXNoZXIy MTExODQxMg==