Pull to refresh

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

Programming microcontrollers *DIY

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

Читать далее
Total votes 32: ↑32 and ↓0 +32
Views 15K
Comments 55

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

Manufacture and development of electronics *Physics Quantum technologies

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

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 3K
Comments 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
Total votes 55: ↑42 and ↓13 +29
Views 1.8K
Comments 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
Total votes 32: ↑22 and ↓10 +12
Views 543
Comments 14

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

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

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

IBM corporate blog

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

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

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

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

Интересно? Читаем дальше
Total votes 35: ↑34 and ↓1 +33
Views 18K
Comments 23

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

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

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

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

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

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

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

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

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

Programming *Java *
Tutorial
concurrency

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

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

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

Читать дальше →
Total votes 52: ↑51 and ↓1 +50
Views 30K
Comments 20

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

High performance *C++ *Concurrent computing *

Определение


Параллельное программирование сложно. При использовании систем с общей памятью не обойтись без синхронизации доступа параллельных процессов/потоков к общему ресурсу (памяти). Для этого используются:
  • блокировки (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);
    }
}

Читать дальше →
Total votes 79: ↑78 and ↓1 +77
Views 45K
Comments 34

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

Programming microcontrollers *
Sandbox
Оценочные платы ST Nucleo:

image

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

image

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

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

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

Читать дальше →
Total votes 35: ↑32 and ↓3 +29
Views 57K
Comments 37

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

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

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

Желая показать бунтарский дух и наплевательство на традиции, ссылки на предыдущие части не даю — сами ищите их там.
Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Views 42K
Comments 15

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

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

Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Views 36K
Comments 5

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

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

Software Transactional Memory

Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Views 7K
Comments 13

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

DIY Electronics for beginners


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

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

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

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

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

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

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

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

Open source *C++ *Debugging *C *Programming microcontrollers *
Tutorial


Всем привет!


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


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


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


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


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

Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Views 35K
Comments 53
1