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

Энтузиаст проапгрейдил советский калькулятор МК-85 современным микроконтроллером

Программирование микроконтроллеров *DIY или Сделай сам

Польский умелец Петр Патек (Piotr Patek) заменил процессор на своем калькуляторе «Электроника МК-85» на микроконтроллер STM32. Из-за несовместимого расположения пинов электроники 80-х годов и современных компонентов, автору пришлось изготовить печатную плату, позволяющую соединять между собой элементы из разных эпох.

Читать далее
Всего голосов 32: ↑32 и ↓0 +32
Просмотры 16K
Комментарии 55

В США разработали систему электронной литографии с разрешением 0,7 нм

Производство и разработка электроники *Физика Квантовые технологии

Американская Zyvex Labs представила систему электронной литографии ZyvexLitho1. Она получила рекордное разрешение в 768 пикометров, что примерно равно ширине двух атомов кремния. 

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 3.8K
Комментарии 5

.NET Framework 4.0 получил механизм Software Transactional Memory

.NET *
Software Transactional Memory (STM) — это альтернатива блокировкам и другим традиционным механизмам синхронизации асинхронных операций и потоков при доступе к общему участку памяти. Механизм STM похож на работу транзакций в современных СУБД и, хотя его использование в общем случае медленнее использования механизма блокировок, STM предлагает разработчику более простой способ управления параллельными вычислениями.

Использование STM в .NET крайне просто:

Atomic.Do(()=> {
<statememts>
});

где statements — это выражение которое должно выполняться в транзакции.

Существует масса библиотек реализующих STM для множества языков. STM для .NET ранее существовала в виде отдельного проекта группы Microsoft Research, кроме того для C# существовует еще 4 библиотеки STM. И вот теперь, этот механизм стал частью фреймворка.

* скачать .NET 4.0 с STM msdn.microsoft.com/en-us/devlabs/ee334183.aspx
* wiki-статья про STM en.wikipedia.org/wiki/Software_transactional_memory (eng)
* статья Beautiful Сoncurency (Haskell) research.microsoft.com/en-us/um/people/simonpj/papers/stm/beautiful.pdf (pdf), спасибо shai_xylyd

via www.infoq.com/news/2009/07/Software-Transactional-Memory
Всего голосов 55: ↑42 и ↓13 +29
Просмотры 1.9K
Комментарии 8

Moscow ALT.NET: 2ая встреча

.NET *

Что это?
Обязательная регистрация
Место: Карта м. Чистые пруды / м. Лубянка / м. Китай-Город, пер. Архангельский, д.1., конференц-зал CustIS (http://www.custis.ru/) Будут кофе, печенюшки и wi-fi
Дата: 24 февраля 2011 года

Доклады


18-30 Использование Ruby on Rails 3 для быстрой разработки сложных веб-приложений


Доклад состоит из нескольких частей:
1) Обзор Ruby on Rails 3.
2) Пример использования фреймворка и описание процесса разработки крупного проекта (среда разработки, система контроля версий Git, средства развертывания приложений и т.п.).
3) Использование хранилища Redis для увеличения производительности.
4) Сравнение Ruby on Rails с ASP .NET MVC.
Докладчик: Мигальников Андрей (Медиахолдинг «Эксперт»)

19-30 Software transactional memory


Software transactional memory — какие задачи пытаются решить исследователи, что у них на данный момент получается, а что — нет; вкратце расскажу, что представляет из себя STM как для разработчика, так и внутри; дам ссылки на интересные публикации.
Докладчик: Алексей Бахиркин (Старший разработчик «ВТБ Факторинг»)

*если вы хотите выступить с докладом, отпишитесь в нашей уютной гугло-группе groups.google.com/group/moscow-altnet
Всего голосов 32: ↑22 и ↓10 +12
Просмотры 562
Комментарии 14

STM32F1xx — лечимся от ардуинозависимости вместе

Программирование микроконтроллеров *
Добрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
Читать дальше →
Всего голосов 159: ↑157 и ↓2 +155
Просмотры 261K
Комментарии 65

Транзакционная память и многопоточность

Блог компании IBM

На фото: Blue Gene / P в Аргоннской национальной лаборатории

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

В IBM (а как вы думали) заняты поиском решения этой задачи (один мой знакомый с юмором охарактеризовал ее как «узники блокировки»), так как голубой гигант остается самым крупным проектировщиком, изготовителем и поставщиком суперкомпьютерных кластеров, где синхронизированный доступ к памяти — камень преткновения.

Есть и хорошие новости: в процессорах следующей модели Blue Gene / Q, которые будут питать 20-петафлопсный суперкомпьютер Sequoia, строящийся компанией в настоящее время для Ливерморской национальной лаборатории, реализована поддержка транзакционной памяти не на программном, а аппаратном, уровне. При успешных испытаниях эта технология докажет, что масштабируемое параллельное программирование может быть простой задачей (и в отсутствии параллельных алгоритмов) — это, в свою очередь, изменит ландшафт вычислений. Так как большинство исследований до сегодняшнего дня проводились именно в области реализации STM на уровне ПО, чипы BlueGene/Q позволят реально оценить разницу в скорости работы двух принципиально разных архитектур: HTM (hardware transactional memory) и традиционной STM.

Интересно? Читаем дальше
Всего голосов 35: ↑34 и ↓1 +33
Просмотры 18K
Комментарии 23

Анонсирована аппаратная поддержка транзакционной памяти в Haswell

Блог компании Intel
Haswell будет очень инновационным Tock'ом. Еще в прошлом году стало доступно описание новых операций с целыми в AVX. А на этой неделе было опубликовано очередное расширение архитектуры X86. В Haswell появится аппаратная поддержка транзакционной памяти! На англоязычных сайтах обсуждение кипит. ISN Arstechnica LWN Engadget

Я думаю, что это самое нетривиальное расширение архитектуры X86 за много-много лет. Фича называется Transactional Synchronization Extensions (далее TSX), и состоит из двух частей — Hardware Lock Elision (HLE) и Restricted Transactional Memory (RTM). Обратите внимание на слово «Restricted». Все верно, есть некоторые ограничения по объему, гранулярности и уровню вложенности транзакций.

Об этих ограничениях и как это все будет работать подробнее под катом. (Никаких картинок, скучный технический текст)
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 14K
Комментарии 14

STM32F1хх — продолжаем лечение от ардуинозависимости при помощи LCD

Программирование микроконтроллеров *
Добрый день, уважаемые хабровчане. В своей прошлой статье я рассмотрел применение замечательных микроконтроллеров STM32F1xx на примере управления сервоприводами. В этой статье мы обратимся к более интересному вопросу – управлению цветным графическим LCD-дисплеем. Помимо стандартной работы с дисплеем я постараюсь осветить вопросы использования особенностей микроконтроллеров STM32F для эффективного решения данного вопроса. Итак, начнем.
Читать дальше →
Всего голосов 61: ↑60 и ↓1 +59
Просмотры 125K
Комментарии 16

STM32F1xx — Инструменты разработчика и FreeRTOS

Программирование микроконтроллеров *
Добрый день, уважаемые хабровчане. В своих прошлых статьях (STM32F1xx — лечимся от ардуинозависимости вместе, STM32F1хх — продолжаем лечение от ардуинозависимости при помощи LCD) я постарался осветить вопросы перехода с 8-битных микроконтроллеров на новые 32-битные STM32F1xx.
В процессе работы с ними, я, разумеется выбирал инструменты себе «по руке» — то есть, старался найти наиболее удобные для меня отладочные платы, программаторы, IDE. В этой статье я хочу поделиться с вами несколькими соображениями на этот счет, а также описать процесс сборки в выбранной IDE операционной системы реального времени FreeRTOS.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 147K
Комментарии 9

Concurrency: 6 способов жить с shared state

Программирование *Java *
Туториал
concurrency

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

С разделяемым состоянием в многопоточной среде существуют два момента, из-за которых возникают все сложности: состояние гонки и видимость изменений. В состоянии гонки, потоки одновременно изменяют состояние, что ведет к недетерменированному поведению. А проблема с видимостью заключаются в том, что результат изменения данных в одном потоке, может быть невидим другому. В статье будут рассказаны шесть способов как бороться с данными проблемами.

Все примеры приведены на Java, но содержат комментарии и я надеюсь будут понятны программистам не знакомым c Java. Данная статья носит обзорный характер и не претендует на полноту. В то же время она наполнена ссылками, которые дают более подробное объяснение терминам и утверждениям.

Читать дальше →
Всего голосов 52: ↑51 и ↓1 +50
Просмотры 30K
Комментарии 20

Транзакционная память: история и развитие

Высокая производительность *C++ *Параллельное программирование *

Определение


Параллельное программирование сложно. При использовании систем с общей памятью не обойтись без синхронизации доступа параллельных процессов/потоков к общему ресурсу (памяти). Для этого используются:
  • блокировки (mutex);
  • алгоритмы без блокировки (lockless, lock-free);
  • транзакционная память.


Транзакционная память — технология синхронизации конкурентных потоков. Она упрощает параллельное программирование, выделяя группы инструкций в атомарные транзакции. Конкурентные потоки работают параллельно1, пока не начинают модифицировать один и тот же участок памяти. К примеру, операции добавления узлов в красно-чёрное дерево (анимация в заголовке) способны работать параллельно в нескольких потоках.
Скрытый текст
/* Move item from one list to another */
int move(list *from, list *to) {
    __transaction_atomic {
        node *n = pop(from);
        push(to, n);
    }
}

Читать дальше →
Всего голосов 79: ↑78 и ↓1 +77
Просмотры 46K
Комментарии 34

Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE

Программирование микроконтроллеров *
Из песочницы
Оценочные платы ST Nucleo:

image

Это открытая, недорогая и легко расширяемая отладочная платформа для разработки с широким выбором специальных плат расширения, для всей линейки 32-х битных микроконтроллеров STM32 архитектуры ARM Cortex-M3 и Cortex-M4.

image

Платы «ST Nucleo» дают возможность выбирать из различных сочетаний производительность, энергопотребление, и архитектурные особенности микроконтроллера. Платформа позволяет быстро, удобно и легко изучить особенности архитектуры и программирования микроконтроллера, опробовать свои идеи, создать прототипы с любым микроконтроллером семейства STM32.
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Просмотры 82K
Комментарии 28

Быстрый старт ST Nucleo-F401 + краткое руководство

Программирование микроконтроллеров *
В предыдущем своем посте я попытался коротко ознакомить вас с платформой Nucleo от ST.
В этом посте я хочу рассказать вам на живом примере некоторые сильные стороны этой платформы, которая имеет все шансы потеснить приевшиеся всем Arduino, и показать что все примеры кода и шилды от Arduino, прекрасно подходят для платформы Nucleo.

Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры 82K
Комментарии 37

О безопасности UEFI, часть заключительная

Информационная безопасность *Системное программирование *UEFI *
Вот и подошел к концу мой опус о безопасности UEFI. В этой заключительной части осталось поговорить о перспективных технологиях и планах на будущее, да пообщаться с читателями в комментариях.

Если вам интересно, чем безопасности прошивки могут помочь STM, SGX и PSP — жду вас под катом.

Желая показать бунтарский дух и наплевательство на традиции, ссылки на предыдущие части не даю — сами ищите их там.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 43K
Комментарии 15

Parallelism vs Concurrency: правильно подбираем инструменты

Блог компании Издательский дом «Питер» Высокая производительность *Erlang/OTP *Параллельное программирование *
Перевод
Здравствуйте, уважаемые хабровчане! Мы решили возобновить публикации еще до окончания больших праздников, но в сегодняшней статье все-таки раскрыта тема справедливой раздачи подарков. Сама же статья, как понятно из названия, посвящена сравнительному анализу параллелизма и конкурентности.

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

Software Transactional Memory на Free-монадах

Haskell *Параллельное программирование *Функциональное программирование *
Осознав, что я давно не писал на Хабр ничего полезного о ФП и Haskell, и что имеется вполне отличный повод для технической статьи, — решил тряхнуть стариной. Речь в статье пойдет о Software Trasactional Memory (STM), которую мне удалось реализовать на Free-монадах при участии ADTs (Algebraic Data Types) и MVars (конкурентные мутабельные переменные). И, в общем-то, Proof of Concept оказался крайне простым, в сравнении с «настоящим» STM. Давайте это обсудим.

Software Transactional Memory

Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 7.2K
Комментарии 13

HDMI-LVDS. От макета к релизу

DIY или Сделай сам Электроника для начинающих


Доброго времени суток! Вашему вниманию хочу предложить проект аппаратного конвертера HDMI‑LVDS построенный на микросхемах Texas Instruments. Статья была модифицирована и дополнена.
Читать дальше →
Всего голосов 56: ↑54 и ↓2 +52
Просмотры 41K
Комментарии 64

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

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

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

MBED, или о дырявых абстракциях

Электроника для начинающих
Понадобилось взглянуть в сторону mbed. На первый взгляд выглядело весьма интересно – железонезависимый фреймворк, на С++, с поддержкой кучи микроконтроллеров и демо-плат, онлайн-компилятор с интеграцией в систему контроля версий. Куча примеров, еще более убеждающих в элегантности фреймворка. Прямо «из коробки» доступны практически все интерфейсы микроконтроллера при помощи соответствующих, уже реализованных классов. Вот прямо из коробки бери и программируй на С++, не заглядывая в даташит от микроконтроллера – ну не мечта ли?

Тестовой платформой стала давно лежащая без дела STM Nucleo F030, поддерживаемая этой платформой. О том, как зарегистрироваться и начать первый проект, есть много хороших туториалов, об этом не будем. Перейдем сразу к интересному.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 11K
Комментарии 13

Настройка VSCODE под разработку для ARM на примере отладочной платы stm32f429i-disco

Open source *C++ *Отладка *C *Программирование микроконтроллеров *
Туториал


Всем привет!


Сегодня рассмотрим настройку удобной и красивой среды разработки для программиста микроконтроллеров с помощью набора полностью бесплатных инструментов разработки.


Все шаги проверены на виртуальной машине со свежеустановленной Ubuntu 16.04 xenial desktop x64.


Подразумевается, что у Вас уже есть исходники какого-либо проекта.


Все настройки, касающиеся конкретного железа (в моём случае это контроллер STM32F429 и девборда STM32F429DISCO), нужно подменить на свои. То же самое касается и путей.


Если готовы, то

Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Просмотры 37K
Комментарии 53
1