xv6 - учебная операционная система для курса 6.828 в MIT

В MIT'шном курсе "Разработка операционных систем" (Operating System Engineering) используется простая, учебная операционная система, названная xv6. На нее я наткнулся, читая пост "Примеры хорошого кода" в блоге "Программирование — это просто!".

24.02.2011

Разрабатываем ядро для компонентов исполнительного уровня "умного дома"-2

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

Разводим печатные платы топором

Сегодня я расскажу о том, как использовать САПР Eagle в связке с топологическим трассировщиком печатных плат TopoR.

16.01.2011

CMSIS - code less, create more!

Столкнувшись с необходимостью написать кое-что под имеющийся у меня в наличии чип LPC1768 (на плате LPCXpresso), я приуныл - видимо снова придется читать огроменный даташит, вручную инициализировать кучу периферии и так далее. Но оказалось, что все мои опасения были беспочвенны, ведь существует готовая библиотека, решающая эти и многие другие проблемы, например проблему отсутствия драйверов к периферии ядра микроконтроллера (USB, I2C, SPI и все остальное). Эта библиотека называется CMSIS - Cortex Microcontroller Software Interface Standard.

13.01.2011

Разрабатываем ядро для компонентов исполнительного уровня "умного дома"

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

Техническое задание на создание системы "Умный дом"

Наконец, я закончил написание техзадания…​ Предлагаю посмотреть его; разумная критика, замечания и предложения приветствуются.

При написании техзадания использовались следующие ГОСТы:

ГОСТ-34.602-89

"Техническое задание на создание автоматизированной системы"

ГОСТ 34.201-89

"Виды, комплектность и обозначение документов при создании автоматизированных систем"

ГОСТ 24.601-86

"Стадии создания автоматизированных систем"

Внимание! Оформление техзадания не соответствует ГОСТу.

Посмотреть PDF-файл с техзаданием (TR.pdf, 204 Кб)

Скачать исходный LaTeX-файл с техзаданием (TR.tex, 45 Кб)

Использование сенсорных сетей при построении систем "умный дом"

При создании системы "умный дом" рано или поздно придется решать проблему обеспечения устойчивой, надежной и главное недорогой связи между всеми устройствами, входящими в "умный дом". Конечно, можно использовать "по старинке" проводную связь, но даже в случае какого-нибудь 1-Wire, объем прокладываемых проводов может быть значительным. А если какой-нибудь из проводов будет перебит, порван или прокушен домашним животным, то смерть если не всей системы, то хотя бы какой-то ее части будет гарантирована (а если все дублировать, то дом будет напоминать логово паука). Решение данной проблемы лежит на поверхности - нужно использовать беспроводную связь! Но тут сразу появляется ряд вопросов, требующих разрешения...

Плагин code_complete для Vim - автодополнение и сниппеты

Практически во всех современных средах разработки есть пара удобных возможностей - есть возможность видеть список параметров функции, введя имя этой функции и открывающую скобку, и автодополнение стандартных блоков кода, наподобие if () {} else {} и других. Естественно, подобная функциональность не могла обойти стороной и текстовый редактор Vim.

23.11.2010

Пишем драйвер ЖКИ для стенда SDK1.1

В стенде SDK1.1 есть жидкокристаллический индикатор (ЖКИ), который можно использовать в качестве устройства вывода информации в своих программах. Вот только производитель не поставляет драйверов к SDK1.1 для этого устройства -- нужно самим разбираться во внутреннем устройстве ЖКИ и самим писать для него драйвер. Я уже успел сделать это и в данной статье будет рассмотрен мой драйвер ЖКИ, а также основные принципы работы с ЖКИ, знание которых позволит заинтересованным людям написать свой драйвер.

21.11.2010

Shell в отдельном буфере vim

Лично мне, кажется весьма удобной возможность работать в консоли (например в том же bash'е) не отвлекаясь от любимого vim'а. Можно одновременно коммитить код или изменять структуру каталогов проекта или делать прочие подобные вещи не выходя из vim'а и не отвлекаясь на другие окна.

18.11.2010