Как стать автором
Обновить
15
0

Программист

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

Волшебная сила макросов, или как облегчить жизнь ассемблерного программиста AVR

Время на прочтение8 мин
Количество просмотров12K

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

Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии35

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 5

Время на прочтение12 мин
Количество просмотров2.5K

← Часть 4. Программирование периферийных устройств и обработка прерываний


Библиотека генератора ассемблерного кода для микроконтроллеров AVR


Часть 5. Проектирование многопоточных приложений


В предыдущих частях статьи мы подробно останавливались на основах программирования с использованием библиотеки. В предыдущей части мы познакомились с реализацией прерываний и ограничениях, которые могут возникнуть при работе с ними. В этой части поста мы подробно остановимся на одном из возможных вариантов программирования параллельных процессов с использованием класса Parallel. Использование этого класса позволяет упростить создание приложений, в которых обработка данных должна осуществляться в нескольких независимых программных потоках.

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 4

Время на прочтение11 мин
Количество просмотров3.5K

← Часть 3. Косвенная адресация и управление потоком исполнения
Часть 5. Проектирование многопоточных приложений. →


Библиотека генератора ассемблерного кода для микроконтроллеров AVR


Часть 4. Программирование периферийных устройств и обработка прерываний


В этой части поста мы, как и обещали, займемся одним из самых востребованных аспектов программирования микроконтроллеров — а именно работой с периферийными устройствами. Существует два наиболее распространенных подхода к программированию периферии. Первый — система программирования ничего не знает о периферийных устройствах и предоставляет только средства доступа к портам управления устройствами. Этот подход практически не отличается от работы c устройствами на уровне ассемблера и требует досконального изучения назначения всех портов, связанных с работой конкретного периферийного устройства. Для облегчения работы программистов существуют специальные программы, но их помощь, как правило, заканчивается генерацией последовательности начальной инициализации устройств. Достоинством этого подхода является полный доступ ко всем возможностям периферии, а недостатком — сложность программирования и большой объем программного кода.


Второй — работа с периферийными устройствами ведется на уровне виртуальных устройств. Основным достоинством такого подхода является простота управления устройствами и возможность работать с ними не вникая в особенности аппаратной реализации. Недостаток такого подхода — ограничение возможностей периферийных устройств назначением и функциями эмулируемого виртуального устройства.


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

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии6

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 3

Время на прочтение10 мин
Количество просмотров3.8K

← Часть 2. Начало работы
Часть 4. Программирование периферийных устройств и обработка прерываний →


Библиотека генератора ассемблерного кода для микроконтроллеров AVR


Часть 3. Косвенная адресация и управление потоком исполнения


В предыдущей части мы достаточно подробно останавливались на работе с 8-и битными регистровыми переменными. Если вы пропустили предыдущий пост, советую с ним ознакомиться. В нем там же, можно найти ссылку на библиотеку, чтобы самостоятельно попробовать выполнить приведенные в статье примеры. Тем, кто скачал библиотеку ранее, рекомендую скачать свежую версию, так как библиотека постоянно обновляется и некоторые примеры могут не работать в старой версии библиотеки.

Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии0

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 2

Время на прочтение8 мин
Количество просмотров5.7K

← Часть 1. Первое знакомство


Часть 3. Косвенная адресация и управление потоком исполнения →


Библиотека генератора ассемблерного кода для микроконтроллеров AVR


Часть 2. Начало работы


Как и планировалось, в этой части рассмотрим более подробно особенности программирования с использованием библиотеки NanoRTOS. Те, кто начал чтение с этого поста, могут ознакомиться с общим описанием и возможностями библиотеки в предыдущей статье. В силу ограниченности планируемого объема публикации предполагается, что уважаемый читатель хотя бы в минимальном объеме знаком с программированием на C#, а так же имеет представление об архитектуре и программировании на языке ассемблер для контроллеров AVR серии Mega.

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии5

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 1

Время на прочтение11 мин
Количество просмотров13K

Часть 2. Начало работы →


Библиотека генератора ассемблерного кода для микроконтроллеров AVR


Часть 1. Первое знакомство


Добрый день, уважаемые хабровчане. Хочу предложить вашему вниманию очередной (из имеющегося великого множества) проект, для программирования популярных микроконтроллеров серии AVR.


Можно было бы потратить много текста для объяснения, зачем это понадобилось, но вместо этого просто посмотрим на примерах, чем он отличается от других решений. А все пояснения и сравнения с имеющимися системами программирования будут по мере необходимости в процессе разбора примеров. Библиотека сейчас находится в процессе доработки, поэтому реализация некоторых функций может показаться не вполне оптимальной. Также часть задач, которые в этой версии возложены на программиста, предполагается в дальнейшем оптимизировать или автоматизировать.

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии24

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность