Рубрика «Программинг микроконтроллеров» - 17

Недавно я выложил под BSD лицензией небольшой проект на 8 килострочек C кода. Официально это коллекция бенчмарков для моих клиентов — вендоров промавтоматики. Код очень специфический, и, на первый взгляд, малоприменим за пределами узкой области PLC и motion control. Но есть небольшая изюминка, на которой я не очень акцентировал внимание в статье на IDZ. В поставку бенчмарков включена baremetal среда для их исполнения. В этом посте я опишу, что это такое, и как ее можно использовать.
Читать полностью »

В четверг, 12 сентября, при участии портала Айти-Событие.рф, в Петербурге стартует новый проект — Embedded Meetup.

Первый Embedded Meetup в Санкт Петербурге

Embedded Meetup — это регулярные встречи профессиональных разработчиков встраиваемых систем в неформальной обстановке. Основными составляющими являются доклады и networking.
Читать полностью »

Давайте сделаем еще одну ОС!

На хабре время от времени появляются и, что печально, пропадают темы, посвященные созданию своих ОС. На самом деле написать ОС с нуля и описать весь процесс – далеко не самая легкая задача, особено если начать со своего загрузчика.

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

Читать полностью »

Не так давно я чинил домофонную трубку и задумался — а не сделать ли мне небольшую модернизацию? Научить его уведомлять меня через Интернет о том, что кто-то приходил или даже удалённо открывать дверь с мобильного телефона… А затем я решил — почему бы вообще не сделать автоответчик? На телефонах сейчас автоответчик уже мало кому нужен, а вот знать, кто же ко мне приходил, было бы весьма полезно, особенно при том, что я не привык брать трубку, если никого не жду. Воплотить идею в реальность оказалось не так уж сложно.
Читать полностью »

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

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

Если когда-нибудь вы задумывались над тем, что значат слова «the processor supports precise aborts» в даташите, прошу под кат.
Читать полностью »

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

В качестве примера я возьму простенькую систему на кристалле, основанную на 32-битном гарвардском RISC-процессоре с одноуровневой кэш-памятью и без MMU (что-то типа ARM Cortex-R). Процессор подключен к контроллеру внешней памяти через 32-битную шину AMBA AHB, работающую на частоте процессора.

Секреты кэш памяти, или как потратить 1000 тактов на 10 команд
Читать полностью »

STM32F4Discovery – подключаем камеру по интерфейсу DCMI

STM32F4Discovery – подключаем камеру по интерфейсу DCMIКогда-то, подключая камеру от мобильного телефона к микроконтроллеру STM32F407VGT6 (который имеет место быть на плате STM32F4Discovery), я даже не думал о том, что данный контроллер имеет специальный аппаратный интерфейс для данного дела. Может быть, невнимательно читал даташит, но я всегда считал, что интерфейс DCMI имеется только у чипов в корпусах UFBGA176 и LQFP от 144 ног. Однако, не так давно, открыл для себя озвученную деталь: 100-ногий STM32F407 также имеет DCMI на борту.
Являясь большим любителем изучения и совместного запуска различного мобильного железа (в частности, LCD и камер) с МК, мимо такого открытия я просто так пройти не смог, и решил восполнить данный пробел в изучении периферии STM32. Собственно, данный материал и посвящен описанию осуществления возникшей затеи. Читать полностью »

Обсуждение Cubietruck (от создателей Cubieboard)

Первый open-source-hardware продукт команда Cubieteam разработала еще в августе 2012 года. В течение 2012, и в начале 2013 года команда не представила ни одного продукта. Но один из разработчиков команды Cubieteam, сказал что проект уже вышел на новый технологический уровень сопоставимый с промышленными решениями. Это уже не тот небольшой проект предназначенный сугубо для любителей техники. Мы сделали массовый продукт для рынка, который распространяют крупные поставщики.
Читать полностью »

После успеха проекта разработки отладочной платы Cubieboard, команда Cubieteam продолжила разработку. И в июне, представила новую версию своего продукта Cubieboard2. Отладочная плата Cubieboard2, является модифицированной платой Cubieboard первой версии. Отличие заключается в установке новой версии SoC AllWinner A20 ARM Cortex-A7 Dual-Core. Благодаря соответствию контактной площадки AllWinner A20 с предыдущим чипом AllWinner A10, не потребовалось переделывать схематику платы Cubieboard.
Читать полностью »

Здравствуйте, Хабросообщество.

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

Я хочу сделать так, чтобы тот, кто это прочитает, никогда не «встал на грабли», на которые я встал и с которыми долго мучался.

Проблема была в том, что я не мог использовать более 1 пина на одном IDC разъеме. Т.е. если мне надо было вывести с устройства 5 бит на 5 пинов, то мне приходилось использовать 5 сорока-пиновых IDC разъемов, используя на каждом лишь 1 пин из 40 имеющихся.

Если на разъеме использовалось более 1 пина (2 и более) — то при проверке осциллографом разъем молчал.

Я очень долго делал все, что мне говорили на форумах — но проблема не решалась. Как выяснилось теперь — проблема заключалась в правилах наименования в Quartus II при использовании Schematic.

Всем тем, кому это будет полезно или интересно — прошу под кат.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js