Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Ассемблер для начинающих

Assembler *
Из песочницы
В любом деле главное — начать. Или вот еще хорошая поговорка: «Начало — половина дела». Но иногда даже не знаешь как подступиться к интересующему вопросу. В связи с тем, что воспоминания мои еще свежи, спешу поделиться своими соображениями с интересующимися.

image

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

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

Читать дальше →
Всего голосов 68: ↑48 и ↓20 +28
Просмотры 187K
Комментарии 66

Открыта регистрация на DEDF-2012, Москва, 30 марта 2012

Я пиарюсь


Сегодня в почту упало приглашение принять участие в форуме разработчиков электроники DEDF-2012, который пройдет 30 марта 2012 года в Москве, в Digital October. Тема форума: «Системы на кристалле в мультимедийных и портативных устройствах». Обещают показать проекты с использованием:
  • ОС Linux и Android на базе чипов мировых вендоров, в том числе Texas Instruments (TI)
  • Специализированных технологий для рынков мультимедиа, датакома, автомобильной и навигационной электроники
  • Цифровой обработки сигналов
  • JTAG-тестирования
Участие бесплатное. Запланированное количество участников 180 человек, так что заинтересованным надо поторопиться — регистрация для слушателей открыта только до 16 марта.
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 380
Комментарии 0

Tessel – микроконтроллер, программируемый на JavaScript

JavaScript *
JavaScript уверенно продолжает своё шествие и теперь настал черёд железа.

Tessel — это микроконтроллер программируемый на JavaScript, судя по всему, ориентируемый на работу с интернетом — WiFi модуль в нём идёт по умолчанию.

Пока, к сожалению, в продаже его нет, но официальный твиттер обещает открытие предзаказов уже в сентябре, цена так же не известна (во всяком случае я не нашёл)
Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Просмотры 19K
Комментарии 15

RosCanSat или «спутник» в алюминиевой банке по-русски

Блог компании Даурия Аэроспейс

Успешно завершился III Российский чемпионат «CanSat», который проходил в начале июля в Талдомском районе.

CanSat – это действующая модель микроспутника весом до 350 граммов. Все основные элементы «спутника» должны вмещаться в банку объемом 0,5 л. «Спутник» запускается ракетой или сбрасывается с вертолёта с высоты 1-2 км и за время плавного спуска на парашюте передает полезную информацию.

Так начинаются все официальные сообщения о прошедшем мероприятии. У читателя который знаком с форматом CanSat возникает вопрос: «Стоп! А почему 0,5, а не 0,33?», у читателя не знакомого с форматом CanSat возникает вопрос: «Что это такое?», а так же «Какая польза от модели спутника и такой маленькой высоты?» и прочие такие же ассоциации.

Мне посчастливилось побывать в жюри этого конкурса и под катом я расскажу в чем же отличия CanSat'а русского, от его американского прародителя.
Читать дальше →
Всего голосов 66: ↑66 и ↓0 +66
Просмотры 39K
Комментарии 20

Запускаем Java Runtime на 256KB оперативной памяти

Java *Разработка под Java ME *
image
Действительно, с выходом Java ME Embedded 8.1, полноценный Java-рантайм теперь доступен на плате Freescale K64F, которая несет на борту 256KB RAM и оснащена процессором на базе архитектуры ARM Cortex M4. Еще одной важной особенностью нового выпуска Java ME SDK стала поддержка Eclipse IDE. Страница нового релиза Java ME Embedded 8.1 здесь: http://www.oracle.com/technetwork/java/embedded/javame/embed-me/overview/index.html

Платформа Java ME Embedded 8.1 специально создана для того, чтобы перенести все полезные функциональные возможности Java на устройства с ограниченными аппаратными возможностями и даже, микроконтроллеры. Появление платформы Java ME Embedded, во многом, обусловлено развитием нового направления в информационных технологиях, Интернета Вещей (Internet of Things, IOT). Развитие IoT связано как с новыми возможностями, так и с новыми проблемами. Часть задач, таких как безопасность, работа с сетевыми подключениями, общение с внешними интерфейсами UART, I2C, SPI, GPIO успешно решает Java ME Embedded 8.1. Использование Java вместо нативных инструментов сокращает время выпуска продукта и открывает доступ к значительным трудовым ресурсам. Кстати, а вы знаете, что команда разработки Java ME Embedded почти полностью находится в Санкт-Петербурге? Что еще интересного приготовили наши разработчики вы узнаете дальше…
Читать дальше →
Всего голосов 35: ↑29 и ↓6 +23
Просмотры 26K
Комментарии 58

Command line interpreter на микроконтроллере своими руками

Программирование микроконтроллеров *
В каждом разрабатываемом устройстве у меня присутствовал отладочный вывод в UART, как в самый распространённый и простой интерфейс.
И каждый раз, рано или поздно, мне хотелось помимо пассивного вывода сделать ввод команд через тот же UART. Обычно это происходило когда мне хотелось для отладки выводить какой-нибудь очень большой объём информации по запросу (например состояние NANDFLASH, при разработке собственной файловой системы). А иногда хотелось программно управлять ножками GPIO, чтобы отрепетировать работу с какой-нибудь переферией на плате.
Так или иначе мне был необходим CLI, который позволяет обрабатывать разные команды. Если кто-то натыкался на уже готовый инструмент для этих целей — буду благодарен за ссылку в комментариях. А пока я написал собствыенный.
Читать дальше →
Всего голосов 19: ↑13 и ↓6 +7
Просмотры 15K
Комментарии 35

Оптимизированная система команд для микроконтроллеров

Assembler *
Немногим менее года назад была опубликована статья «Микропроцессор «из гаража»» и, возможно, сейчас наступил неплохой момент чтобы снова напомнить о проекте.

Пожалуй, главная новость это расширение системы команд, названное «Версия 1.1». Её отличие от предыдущей это расширенные возможности адресации. Но обо всём по порядку. Чтобы представить о чём идёт речь, взгляните на карту системы команд (картинка кликабельна):

image
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 17K
Комментарии 27

Atmel оптимизировал параметрический поиск микроконтроллеров для мобильных телефонов

Блог компании Rainbow Программирование микроконтроллеров *

Atmel ананонсировал запуск мобильной версии параметрического поиска микроконтроллеров — Microcontroller Selector. Функционально поиск повторяет аналогичный инструмент для ПК и работает для всех действующих семейств микроконтроллеров Atmel от AVR и Cortex-M0 до Cortex-M7 и -A5.
Читать дальше →
Всего голосов 11: ↑4 и ↓7 -3
Просмотры 2K
Комментарии 2

Как штатными настройками убить микроконтроллер. Часть 1

Ненормальное программирование *Разработка робототехники *Программирование микроконтроллеров *Разработка для интернета вещей *

enter image description here


Не могу назвать себя очень аккуратным и внимательным человеком, но тем не менее, за более чем 10 лет разработки ПО для встраиваемых устройств мне толком не удалось ничего сжечь или испортить. С одной стороны, стоит за это сказать "спасибо" моим коллегам — схемотехникам. С другой стороны, современная "умная" микроэлектроника имеет достаточно серьезную "защиту от дурака". Но пару дней назад произошел один интересный случай. Мне удалось превратить в "кирпич" микроконтроллер Atmel SAMD21G18AU, выполняя обычные манипуляции, описанные в user manual.

Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Просмотры 39K
Комментарии 40

Как штатными настройками убить микроконтроллер. Часть 2

Ненормальное программирование *Разработка робототехники *Программирование микроконтроллеров *Разработка для интернета вещей *

enter image description here


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

Читать дальше →
Всего голосов 30: ↑26 и ↓4 +22
Просмотры 14K
Комментарии 2

Visual C++ for IoT Development: Прорыв или разочарование?

C++ *Visual Studio *Отладка *Программирование микроконтроллеров *Разработка для интернета вещей *

enter image description here


Как известно мир не стоит на месте и активно развивается. Особенно в сфере IT и конкретно разработки ПО. Самое трудное в этом деле это уследить за всеми новинками и выхватить наиболее ценные и полезные из них. Вот и я только недавно наткнулся на дополнение к Visual Studio под названием Visual C++ for IoT Development, которое существует уже почти год. Потенциально — очень полезная штука, но пока это больше яркое название, чем настоящее Visual C++ для IoT. Давайте разберемся почему.

Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 8K
Комментарии 5

STM32 без HAL и SPL

C *Промышленное программирование *Программирование микроконтроллеров *
В свое время, более 5 лет, при поиске информации о 32-разрядных микроконтроллерах, обратил внимание, что практически все примеры для STM32 подразумевали использование SPL (Standard Peripherals Library). Цитата из Википедии:
STM32F10x Standard Peripherals Library (сокр. STM32F10x SPL) — библиотека, созданная компанией STMicroelectronics на языке Си для своих микроконтроллеров семейства STM32F10x. Содержит функции, структуры и макросы для облегчения работы с периферией микроконтроллера."

В настоящее время, для снижения порога вхождения и ускорения разработки предлагается использовать STM32CUBE. Цитата с сайта STM:
STM32Cube embedded software libraries, including:

The HAL hardware abstraction layer, enabling portability between different STM32 devices via standardized API calls.
The Low-Layer (LL) APIs, a light-weight, optimized, expert oriented set of APIs designed for both performance and runtime efficiency.
A collection of Middleware components, like RTOS, USB library, file system, TCP/IP stack, Touch sensing library or Graphic Library (depending on the MCU series)

На мой взгляд, для большинства проектов не нужны внешние библиотеки и проще использовать обращение к регистрам микроконтроллера, используя стандартную документацию.
Читать дальше →
Всего голосов 21: ↑17 и ↓4 +13
Просмотры 73K
Комментарии 64

Как управлять микроконтроллером, не привлекая внимания санитаров

Умный дом DIY или Сделай сам
Микроконтроллеры – они повсюду, на транспорте, на производстве, в медицине, в быту. Благодаря им, на смену умению “паять много”, пришло умение программировать. То, что вчера нужно было перепаивать, сегодня перепрограммируют. Элементарный мультивибратор, для проекта очередной пищалки, выполненный на микроконтроллере, будет надежнее и дешевле, аналога на отдельных компонентах. И такой тренд, по моему мнению, будет только нарастать.

Часть, не сложных проектов на микроконтроллерах, типа выключателей света или датчиков уровней, однажды отлаженные, более не требуют каких либо дополнительных настроек. Однако большинство проектов все же подразумевают взаимодействие с внешним миром. К примеру термостат или таймер нуждаются в возможностях подстройки и контроля заданных величин. Чаще всего эту функцию реализуют через добавление в проект механизмов взаимодействия с пользователем. И вот простейший проект начинает обрастать экранами, кнопками, энкодерами…
Читать дальше →
Всего голосов 32: ↑15 и ↓17 -2
Просмотры 20K
Комментарии 177

Лаборатория роботехники и девушки в Сколково

Компьютерное железо Робототехника Искусственный интеллект
Сколково в ноябре напоминает военно-воздушную базу Ванденберг — военное сооружение с космодромом, расположенное в США (округ Санта-Барбара штата Калифорния). Та же безблагодатная жухлая равнина под серым небом, на которой стоят коробки и призмы загадочных сооружений. Вот сравним несколько мест Сколково и базы Ванденберг (по первому я ходил, а вторую фотографировал из окна поезда):

Это Сколково:

skolkovo_151111_120753-2
Читать дальше →
Всего голосов 23: ↑13 и ↓10 +3
Просмотры 12K
Комментарии 21

Особенности использования и тестирования кода С++ на микроконтроллерах

Интернет вещей IT-компании
Так сложилось, что основным языком для работы с микроконтроллерами является C. Многие крупные проекты написаны именно на нем. Но жизнь не стоит на месте. Современные средства разработки уже давно позволяют использовать C++ при разработке ПО для встраиваемых систем. Однако такой подход до сих пор встречается достаточно редко. Не так давно я попробовал использовать С++ при работе над очередным проектом. Об этом опыте я и расскажу в данной статье.

Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 21K
Комментарии 55

Прототип светодиодного табло на 262 144 комбинации цветов и 64 пикселя

Компьютерное железо
    Хочу поделиться опытом создания светодиодного табло 8x8 пикселей, 262к комбинаций цветов (18 бит), частотой кадров 180 FPS и подключением к USB. Также готов выслушать предложения по оптимизации и доработке. В дальнейшем планирую использовать наработки для создания дисплея домашней метеостанции.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 10K
Комментарии 26

BlackBox- генератор исходного кода (JAVA, C#, C) обработки бинарного протокола Вашего распределенного приложения

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

Напомню, что кодогенератор BlackBox генерирует исходный код (JAVA, C#, C) обработки протокола обмена, согласно описанию пользователя, в предопределенном формате. Это обычный JAVA файл для, редактирования которого к JAVA проекту нужно подключить набор аннотаций описания данных и следовать небольшому набору правил.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 5.5K
Комментарии 2

Аппаратный bit banding CortexM3/M4(ARM), архитектура ядра, ассемблер, С/C++14 и капля метапрограммирования

C++ *Assembler *C *Программирование микроконтроллеров *
Из песочницы

Введение


Внимание, это не очередная «Hello world»статья о том как помигать светодиодом или попасть в свое первое прерывание на STM32. Однако, я постарался дать исчерпывающие объяснения по всем затрагиваемым вопросам, поэтому статья будет полезна не только многим профессиональным и мечтающим стать таковыми разработчикам (как я надеюсь), но и начинающим программистам микроконтроллеров, так как тема эта почему-то обходится стороной на бесчисленных сайтах/блогах «учителей программирования МК».

image
Читать дальше →
Всего голосов 77: ↑73 и ↓4 +69
Просмотры 18K
Комментарии 38

Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)

Программирование *C++ *Программирование микроконтроллеров *
image
Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg

Всем доброго здравия!

В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части проблем.

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

Всех кого заинтересовал, добро пожаловать под кат. Кода будет много.
Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 11K
Комментарии 39

Вышел CLion 2019.2: поддержка встроенной разработки, отладчик для MSVC, поиск неиспользованных заголовочных файлов

Блог компании JetBrains Программирование *C++ *C *Программирование микроконтроллеров *
Привет, Хабр!

Лето за окном пролетает для нас почти незаметно, потому что все эти месяцы мы посвятили работе над новым релизом 2019.2 нашей кросс-платформенной среды для разработки на C++ — CLion. Мы успели довольно много всего: и провести внутренний Хакатон, и попробовать новые идеи, и довести ряд исправлений и новых возможностей до непосредственного релиза. Но обо всем по порядку.

CLion 2019.2 released

Если коротко, то в этом релизе мы:

  • Продолжили дорабатывать поддержку разработки встроенных систем: появились новые возможности отладки и просмотр периферии.
  • Довели до приемлемого качества пока что экспериментальный отладчик для MSVC.
  • Полностью переписали на clangd проверку кода на Unused Includes, добавив возможность настраивать разные стратегии.
  • Реализовали подсказки для аргументов вызова функций и лямбд, чтобы улучшить читаемость кода.
  • Провели внутрикомандный Хакатон по улучшению производительности, придумали кучу новых подходов и успели воплотить в жизнь несколько улучшений.
  • Реализовали подсветку синтаксиса более чем для 20 языков, встроили плагин для написания скриптов (Shell Script plugin), обновили плагин для Rust.

Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 12K
Комментарии 67
1