Как стать автором
Обновить
30
Карма
0
Рейтинг

никто

Создаем свой собственный язык программирования с использованием LLVM. Часть 1: Лексический и синтаксический анализ

Open source *Программирование *Компиляторы *
Из песочницы

Это первая статья из цикла о том, как создать свой собственный ООП язык программирования с использованием LLVM.

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

Читать далее
Всего голосов 50: ↑48 и ↓2 +46
Просмотры 8K
Комментарии 15

Что убивает кальциевые аккумуляторы, и убивает ли?

Блог компании RUVDS.com Научно-популярное Энергия и элементы питания Автомобильные гаджеты Транспорт

В Сети полно негативных отзывов на кальциевые аккумуляторы, которые служат недолго, не заряжаются, не держат заряд, замерзает электролит. Популярны мифы о том, что они боятся «кипячения» при 16 и более вольтах, а ещё боятся разрядов, стремительно теряя ёмкость с каждым из них, будто бы, вследствие формирования слоя гипса — нерастворимого сульфата кальция, и вообще, стартерный аккумулятор, в отличие от тягового, для разряда не предназначен, разве только секунду покрутить стартер. Что, если взять реальный аккумулятор и проверить?

Будут видео и опыты с показаниями приборов. Попутно выясним, что такое мнимый или поверхностный заряд. И возможно, мы уже не раз сдавали в утиль хороший исправный аккумулятор. Что же с ним можно было сделать?
Всего голосов 62: ↑58 и ↓4 +54
Просмотры 44K
Комментарии 29

Блок управления предпусковым подогревателем Webasto (Arduino + Webasto = Ardubasto)

Автомобильные гаджеты
Из песочницы
Установили мне на авто пред пусковой подогреватель Webasto. После установки выяснилось, что управление им осуществляется не дискретным сигналом (как на предыдущем моем авто), а только по цифровой шине W-bus. Шина W-bus по электрическим параметрам является аналогом шины K-line и для нее есть интегральный конвертер K-line – RS232TTL — это микросхема L9637D. На этой микросхеме, на основе Arduino и решено было сделать управление подогревателем. Задача осложнялась тем, что Arduino поддерживает только протокол передачи по последовательному порту без контроля четности, а протокол W-bus работает с настройками порта 2400/8-E-1. Для обхода этого были сняты осциллограммы команды запуска Webasto и команды к Webasto реализованы тайминговыми задержками.
Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 35K
Комментарии 8

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

Компиляторы *Программирование микроконтроллеров *Интернет вещей

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


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


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


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


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

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

Ввод данных в STM32F4xx с параллельного АЦП через DCMI

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

Известно, что семейство микроконтроллеров STM32F4xx, имея на борту достаточно производительные ядра, вполне подходящие для «не мясорубочных» задач ЦОС не имеют полноценного интерфейса ввода данных с простейшей параллельной шины в режиме «pipe-line» (clk-data). «Покурив» «dm00037051.pdf», нашел не специфичный, но на первый взгляд подходящий вариант – интерфейс DCMI (Digital camera interface).

Конечно, использование для нагруженной классической ЦОС (КИХ, БИХ, FFT) микроконтроллеров STM32, не совсем является оптимальным вариантом, но если вдруг так легли карты и все-таки возможностей данного микроконтроллера вполне достаточно, плюс нужно достаточное количество низкоскоростных интерфейсов. Об этом под катом.



Читать дальше
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 12K
Комментарии 4

Специалист-экспресс

DIY или Сделай сам
Вы помните свой первый компьютер? Я помню. Это был ZX совместимый ПК Спектр. Это было в 89 году. Не знаю точно, купил тогда его отец или поменял на что-то, но в доме появился ПК, и все началось. Именно на нем я написал свои первые программы и освоил Бейсик. Потом, когда я был в 7-9 классах, были еще ПК-01 Львов и Вектор 06Ц.
Читать дальше →
Всего голосов 136: ↑133 и ↓3 +130
Просмотры 132K
Комментарии 92

Программатор для EPROM на Arduino

Разработка под Arduino *
Из песочницы

Понадобилось при изучении и ремонте компьютеров, которые старше меня, прошивать ПЗУшки. Тесты оперативной памяти и периферии проводить. Нормального программатора у меня на тот момент не было.

Читать дальше →
Всего голосов 46: ↑43 и ↓3 +40
Просмотры 31K
Комментарии 5

Отладка микроконтроллеров ARM Cortex-M по UART Часть 2

Программирование микроконтроллеров *
В прошлой статье я рассказывал про прерывание DebugMon и регистры с ним связанные.

В этой статье будем писать реализацию отладчика по UART.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 6K
Комментарии 24

Отладка микроконтроллеров ARM Cortex-M по UART

Программирование микроконтроллеров *
Из песочницы
В данной статье я расскажу вам как можно использовать регистры отладки и breakpoint'ов в микроконтроллерах, построенных на ядрах ARM Cortex-M
Читать дальше →
Всего голосов 34: ↑33 и ↓1 +32
Просмотры 12K
Комментарии 17

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

Блог компании Embox Open source *Системное программирование *Программирование микроконтроллеров *
Привет!

В этой статье я бы хотел рассказать об особенностях реализации графического пользовательского интерфейса с виджетами на микроконтроллере и как при этом иметь и привычный пользовательский интерфейс и приличный FPS. Внимание я хотел бы акцентировать не на какой-то конкретной графической библиотеке, а на общих вещах — память, кэш процессора, dma и так далее. Поскольку я являюсь разработчиком команды Embox, приведенные примеры и эксперименты будут на данной ОС РВ.

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

Как сделать context switch на STM32

Блог компании Embox Open source *Системное программирование *C *Программирование микроконтроллеров *
Добрый день!

Потоки… Переключение контекстов… Базовая сущность ОС. И конечно, при разработке библиотек и приложений мы всегда полагаемся на то, что реализация потоков безошибочна. Поэтому было неожиданно найти грубую ошибку в переключении потоков для STM32 на ОСРВ Embox, когда уже продолжительное время работали и сеть, и файловая система и многие сторонние библиотеки. И мы даже успели похвастаться о своих достижениях на Хабре.

Я бы хотел рассказать про то, как мы делали переключение потоков для Cortex-M, и тестировали на STM32. Кроме того, постараюсь рассказать о том как это сделано в других ОС — NuttX и FreeRTOS.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 22K
Комментарии 22

Игровая консоль stm32

Программирование микроконтроллеров *Игры и игровые консоли
Из песочницы
Немного шутеров для stm32; как, зачем, что получилось.



Предисловие


Будучи поклонником «старой» школы шутеров с одной стороны и embedded-разработчиком с другой, я всегда испытывал интерес, как и почему авторам той эпохи удавалось воплощать новый жанр, требующий совершенно новых подходов на весьма «скромном» железе. И я решил попробовать запустить нечто подобное используя решения на основе современных МК — тут и bare-metal и «скромные» ресурсы и довольно мощный инструмент отладки (stm32, имхо). И так, мой выбор пал на плату разработчика stm32f769i discovery.

Примечания


На текущий момент сборка возможна только из среды Keil MDK (загрузчик, игры) или же с помощью arm-gcc + make (только загрузчик). На данный момент доступны порты для — Quake I (+mods), Doom (+mods), Duke Nukem (+mods), Hexen, Heretic. С учетом всех модификаций, список может быть значительно расширен.

Начнем


В настоящей статье я постараюсь коротко изложить основные идеи и принципы их реализации на пути к созданию игровой консоли в частности для stm32f769i discovery. Так же, я постараюсь избегать развернутых технических подробностей, я скорее преследую цель познакомить читателя с еще одним вариантом использования современных МК. Под «игровой консолью» — я подразумеваю самостоятельное устройство с возможностью запуска «пользовательских» приложений без обновления основного ПО.
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 14K
Комментарии 11

Безболезненная прививка объектного мышления

Delphi *ООП *
Из песочницы

Или как можно проще об основных принципах ООП в Lazarus и FreePascal


Часть I


Изучать ООП (объектно-ориентированное программирование) можно двумя способами: или прочитать сотню книжек, в которых дается голая теория об устройстве классов и принципах наследования, полиморфизма, инкапсуляции, но так ничему и не научиться, или перестать беспокоиться и попытаться на практике освоить новые приемы, переработав, к примеру, готовые коды, а лучше с нуля изготовив что-то простое, но красивое.


Во всех книгах, посвященных паскалю, delphi и lazarus (я нашел аж целых две о последнем), очень схожая часть, посвященная ООП. По этим книгам можно много узнать о том, насколько круче ООП устаревшего структурного подхода, но так и не получить достаточных навыков применения этого на практике. Конечно, любой программист, использующий визуальные IDE, уже по умолчанию использует ООП, так как все компоненты и структурные элементы визуального приложения представляют собой объекты, однако свои собственные структуры и абстракции перенести в парадигму ООП бывает очень сложно. Чтобы понять всю прелесть и оценить открывающиеся перспективы, я решил сделать небольшое приложение, которое в конечном итоге превратилось в простенький screensaver. Заодно вспомнил о существовании тригонометрии.

Приложение будет рисовать на экране в случайных местах пятьдесят полярных роз с разными характеристиками: размер, цвет, количество лепестков. Потом их же затирать и рисовать новые, и т.д. Используя принципы структурного программирования, можно, конечно, сделать обычный многомерный массив объемом на 50 и в нем сохранять все уникальные характеристики. Однако стоит вспомнить, что паскаль подразумевает строгую типизацию данных, а, следовательно, массив не может состоять их элементов с разными типами. Можно сделать массив из записей (record), но чего уж мелочиться, от записи до класса — один шаг. Вот его мы и сделаем.

Всего голосов 11: ↑10 и ↓1 +9
Просмотры 16K
Комментарии 28

Zx spectrum128, CP/M 2.2 и терминал на STM32F407

Open source *C *Старое железо Процессоры DIY или Сделай сам
Туториал
Нарисовав черно-белый Spectrum48 за $3 на телевизоре и получив вопросы как: «а почему не цветной», «а почему без музыки», «а где НЕИГРУШКИ» — решил поправить и опубликовать менее бюджетную версию, Spectrum128+СP/M, примерно на $25 железа.


Всего голосов 33: ↑33 и ↓0 +33
Просмотры 20K
Комментарии 45

Проверка корректности адресов в памяти на Cortex-M0/M3/M4/M7

Программирование микроконтроллеров *Производство и разработка электроники *Электроника для начинающих
Привет, Хабр!

По поводу случившегося на днях послабления режима, возмущения в комментариях одного соседнего поста о том, что статьи про микроконтроллеры — сплошь мигание светодиодом, а также безвременной гибели моего стандалон-блога, восстанавливать который мне пока лень, переложу сюда полезный материал об одном прискорбно мало освещаемом прессой трюке в работе с ядрами Cortex-M — проверке произвольных адресов на валидность.


Одна из весьма полезных и при этом почему-то в готовом виде нигде не описанных возможностей на микроконтроллерах Cortex-M (всех) — это возможность проверки корректности адреса в памяти. С её помощью можно определять размеры флэша, ОЗУ и EEPROM, определять наличие на конкретном процессоре конкретной периферии и регистров, прибивать упавшие процессы при сохранении общей работоспособности ОС и т.п.
Читать дальше →
Всего голосов 72: ↑72 и ↓0 +72
Просмотры 12K
Комментарии 41

Как составить стратегию тестирования: версия настоящих инженеров

Блог компании True Engineering Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *Управление проектами *
Туториал
Без стратегии тестирования можно наверняка обойтись, если есть бесконечное количество квалифицированных сотрудников, времени и денег. Словом, возможность пилить один релиз годами. В таких гипотетических идеальных условиях никакая стратегия не нужна, потому что вы можете тестировать ваш продукт всеми существующими способами как угодно долго, применяя техники в любом порядке, на несколько кругов, и рано или поздно каким-то путем вы придете к production ready качеству.

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

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


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

Чтобы вести разработку быстрее, необходимо замедлиться

Блог компании True Engineering Программирование *Анализ и проектирование систем *Управление проектами *Управление продуктом *
Перевод


От переводчика:
Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than Ever in Software Development, которую написал Lemi Orhan Ergin. А ее перевод мы публикуем ниже.
Читать дальше →
Всего голосов 56: ↑54 и ↓2 +52
Просмотры 28K
Комментарии 35

Один гигантский шаг для машины, играющей в шахматы

Искусственный интеллект Логические игры
Перевод

Невероятный успех AlphaZero, алгоритма с глубинным обучением, провозглашает новую эру мышления, которая может оказаться недолгой для человека




В начале декабря исследователи из компании DeepMind, занимающейся искусственным интеллектом и принадлежащей Alphabet Inc., родительской корпорации, также владеющей и Google, рассказали о происходящем на передних рубежах шахмат.

Годом ранее, 5 декабря 2017 года, команда поразила шахматный мир, объявив о своём алгоритме машинного обучения (МО) AlphaZero, который сумел овладеть не только обычными шахматами, но и японскими шахматами сёги и игрой го. Алгоритм начал работу без какого бы то ни было понятия об играх, кроме базовых правил. Затем он начал играть сам с собой несколько миллионов раз и учиться на своих ошибках. Всего за несколько часов алгоритм стал наилучшим игроком, как среди людей, так и компьютеров, из всех, что видел мир.
Читать дальше →
Всего голосов 108: ↑89 и ↓19 +70
Просмотры 47K
Комментарии 284

Внедряйте статический анализ в процесс, а не ищите с его помощью баги

Тестирование IT-систем *Java *DevOps *
Написать эту статью меня сподвигло большое количество материалов о статическом анализе, всё чаще попадающихся на глаза. Во-первых, это блог PVS-studio, который активно продвигает себя на Хабре при помощи обзоров ошибок, найденных их инструментом в проектах с открытым кодом. Недавно PVS-studio реализовали поддержку Java, и, конечно, разработчики IntelliJ IDEA, чей встроенный анализатор является на сегодня, наверное, самым продвинутым для Java, не могли остаться в стороне.

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

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


Храповик (источник: википедия).
Читать дальше →
Всего голосов 76: ↑75 и ↓1 +74
Просмотры 20K
Комментарии 32

DC/AC инвертор: принцип работы, схемотехника, встроенное ПО

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

Думаю многие из вас наверняка видели рекламу, либо читали статьи, где была фраза «чистый синус». Вот именно о нем и пойдет речь, но не о маркетинговой составляющей, а о исключительно технической реализации. Я постараюсь максимально понятно рассказать о самих принципах работы, о стандартных (и не очень) схемотехнических решениях и самое главное — напишем и разберем ПО для микроконтроллера STM32, которое и сформирует нам необходимые сигналы.

Почему STM32? Да потому, что сейчас это самый популярный МК в СНГ: по ним много обучающей русскоязычной информации, есть куча примеров, а главное эти МК и средства отладки для них — очень дешевые. Скажу прямо — в коммерческом проекте я бы поставил только TMS320F28035 или подобный DSP из серии Piccolo от TI, но это уже совсем другая история.

Важно одно — STM32 позволяет стабильно управлять простыми «бытовыми» силовыми преобразователями от которых не зависит судьба мира работа какой-нибудь АЭС или ЦОДа.



Вот такую картину управляющих сигналов необходимо получить, чтобы превратить ток постоянный в переменный. И да — тут именно синус! Как в том фильме: «Видишь суслика? — Нет. — А он есть...»

Интересно узнать каким образом формируется синус? Хочется узнать как все-таки качают нефть киловатты энергии? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 65: ↑65 и ↓0 +65
Просмотры 190K
Комментарии 261

Информация

В рейтинге
Не участвует
Откуда
Чукотский АО, Россия
Дата рождения
Зарегистрирован
Активность