понедельник, 22 декабря 2008 г.

Книга дракона

На выходных купил книгу "Компиляторы. Принципы, технологии и инструментарий".
Классический учебник по теории построения компиляторов, известный также как «Книга дракона». Больше тысячи страниц полезной информации! Есть описание различных методик оптимизации под современные архитектуры. Как раз то что надо для разработки WarmCode.
А первое издание называлось «Принципы построения компиляторов» и было издано аж в 1977 году.

вторник, 11 ноября 2008 г.

Основы электроники

Замечательная страница: РадиоКот: основы аналоговой и цифровой электроники. Написано простым о доступным языком. Для тех, кто с электроникой еще не знаком, или просто всё забыл :)

воскресенье, 19 октября 2008 г.

Atmega8: hello led!

Итак.. продолжим :) В самосборном программаторе для контроллера atmega8 обнаружились сгоревшие детали. После замены все чудесным образом заработало! Простая тестовая прога мигания светодиодом была зашита в чип и вот результат:

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

По умолчанию atmega работает от внутреннего генератора тактовых импульсов - 1 mHz. Для простых программ этого вполне достаточно. Но если потребуется большая производительность и стабильность частоты, то нужно будет подключить к ножкам контроллера (к каким именно - смотри доку на atmega8) кварцевый резонатор на 8 mHz или 16 mHz.

Ну вот... Теперь можно приступать к более серьезным экспериментам!

четверг, 16 октября 2008 г.

Запускаем atmega8

На досуге решил поэкспериментировать с микроконтроллером Atmega8 :) Штуковина заманчивая и по цене (в районе 50 рублей) и по характеристикам (8 килобайт FLASH, 1 килобайт ОЗУ, 512 байт EEPROM). В частности хочется попробывать такой чип в роли миниатюрного синтезатора.
Для начала закупился деталями: пара контроллеров и компоненты для программатора, схему которого взял вот отсюда.

Программатор спаял на коленке за несколько дней :)
Далее установил на комп очень удобныю прогу-прошивалку контроллеров - PonyProg2000. Она доступна как для Windows, так и для Linux. Пользователи Linux должны запускать PonyProg под рутом! т.к. иначе не будет доступа к LPT-порту.
Ок. Включаю программатор, запускаю прошивалку. Выбираю в свойствах тип контроллера и интерфейс программатора. Там же нажимаю кнопку калибровки. Далее через меню выбираю пункт "прочитать девайс" и операция успешно проходит! Вижу на экране кучу FF. Это правильно - контроллер чистый.



Замечательно :) Теперь неплохо бы написать простую программку мигания светодиодом и залить её в контроллер. Что для этого нужно? Компилятор GCC и binutils, скомпиленые для поддержки контроллеров AVR - в параметрах configure прописывается "--target=avr". Кроме того понадобится набор библиотек AVR Libc, который заметно упростит написание программ.
Залить прогу в контроллер, увы, с первого раза не удалось :( Получаю ошибку "write failed". Ну чтож... Буду разбираться. Как только решу проблему - отпишусь.

среда, 1 октября 2008 г.

Факты о графическом процессоре будущего

(Материал из Википедии)

Larrabee — кодовое обозначение графического процессора, разрабатываемого компанией Intel. Чип создаётся как новое, ранее не встречавшееся решение, которое заменит собой видеопроцессоры Intel GMA. Видеокарты, основанные на чипах Larrabee будут конкурировать с решениями nVidia GeForce и AMD Radeon от компаний nVidia и AMD, соответственно. Intel планирует получить инженерные образцы Larrabe в 2008 году, а первые продукты на базе этого чипа выйдут в 2009/2010 годах.

В чем фишка такого "ускорителя"? В основе larrabee - несколько десятков ядер с набором инструкций x86 + специальные расширения. Все ядра имеют доступ к одному общему адресному пространству памяти. То есть, теоретически после некоторых изменений на таком процессоре можно запустить обычный PC-шный софт (ту же операционку, к примеру). А главное - larrabee почти не имеет железа, предназначенного только для ускорения графики, как в обычных видео-картах. Предпологается, что такие задачи как z-буффер, обрезание, смешивание цветов и прозрачность будут выполняться на программном уровне. Это даст возможность программистам использовать их собственные алгоритмы рисования, не ограничиваясь набившими оскомину треугольниками. Из числа особо интересных применений можно отметить реалтайм трассировку лучей и физику.

Иными словами, пошел очередной виток спирали: компы превращаются в терминалы, а рендеринг опять становится программным :)

четверг, 4 сентября 2008 г.

1983-1995. Моменты из жизни

1983
В городе Свердловск родился NightRadio. Я, то есть :)
В Москве прошел концерт Space.

1983 - 1990
Первое знакомство с миром звука и музыки: сначала пластинки с классическим репертуаром того времени, потом появление кассетного магнитофона. Отец принес с работы кассету с песнями Высоцкого, на одной стороне которой было записано нечто - мрачноватая электроника с завораживающими ритмами. Брат сказал, что так играют на синтезаторе. Лишь спустя годы, уже в школе я узнал, что та запись была куском альбома "Computer World" от Kraftwerk.

1991
Первый класс школы 148. Дома появился компьютер - Специалист. Советское чудо в корпусе из кусочков черного дипломата :) На кассете с программами был язык BASIC, умеющий пищать по заранее введенным нотам-буквам. То есть, звукоряд был примерно такой: ABCDEFG... Я подписал эти буквы на пластинках металлофона, потом наигрывал на нем мелодию, а полученную комбинацию букв вводил в ПК.

1993
Новый комп - Магик (клон ZX Spectrum). Новые игры :) Я бы сказал, куча игр. Zynaps, Laser Squad, Elite, Dizzy. Пол-часа грузишь игрушку с кассеты, включается холодильник - мотаешь на начало, грузишь заново :)

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

1995
Появился PC с 486 процессором. Без винта, без звуковой карты, с чернобелым монитором и мегабайтом памяти. Брат принес дискетку с якобы неплохо звучащей музыкальной программкой. Но чего можно ожидать от обычного PC-Speaker'а и маломощного компа? Определенно ничего хорошего :). Запустив же программу, я попросту не поверил ушам! Из пищалки шел чистый 4х-канальный звук с настоящими барабанами и синтезаторами! Я был потрясен! А последующие несколько дней пытался понять, как это вообще возможно... Программка та, как оказалось, была рекламой "модульного" музыкального редактора ScreamTracker, основанного на 8-битных сэмплах (sample - кусочек оцифрованного звука). Так я впервые познакомился с трекерной музыкой.
Примерно год спустя в руки мне попалась прога FastTrackerII (FT2) - уникальный инструмент, намного опередивший свое время. Вплоть до 2004 года 90% моих произведений было написано при помощи FT2.

***
На просторах сети огромное количество трекерной музыки (модулей) в форматах MOD, XM, IT, S3M и др. Авторы - по большей части любители, выкладывающие свои творения в свободное пользование. Каждый модуль кроме партитуры содержит в себе набор сэмплов. Другие музыканты без труда выдергивают понравившиеся сэмплы и используют в своих композициях. Получается своеобразный обмен :) Ну а правило хорошего тона для настоящих профи - делать качественные сэмплы самостоятельно: цифровать с живых источников или синтезировать.
Трекер - по сути аналог многодорожечного магнитофона. Партитура в нем представляется визуально в виде вертикальных дорожек (каналов). На дорожках в буквенно-цифровом виде прописывается, какой сэмпл, на какой ноте и с каким эффектом проигрывать. Но это самый минимум. Большинтво современных трекеров могут работать с синтезаторами и MIDI.
***