Fun Electronic

Электронные поделки, программирование микроконтроллеров, и прочая белиберда|Electronic Basteleien, Mikrokontroller Programmierung und anderes Quatsch

RSS
people

Всяческие поделки|Verschiedene Basteleien

[lang_ru]Немного новостей с моих «полей».[/lang_ru]

[lang_de]Kleine Updates von meiner Bastelwiese.[/lang_de]

[lang_ru]Я уже рассказывал, что делаю небольшой плеерок на базе OMAP3530 процессора.[/lang_ru]

[lang_de]Ich habe schon mal erzählt, dass ich ein Playerchen auf dem Basis von OMAP3530 Microcontroller bastele.[/lang_de]

[lang_ru]Уже было все готово, как выяснилось, что каким-то образом работа потоков в QT среде не совсем соответствует тому, что написано в документации: не всегда приходит событие завершения процесса. Особенно, если процесс насильственно завершается.[/lang_ru]

[lang_de]Es war schon mal alles fast fertig, als es sich herausgestellt wurde, dass irgend wie die Thread-Bearbeitung in QT nicht ganz der Beschreibung entspricht: nicht alle Events werden von einem Process gesendet. Vor allem von dem Process, der gerade gekillt wurde.  [/lang_de]

[lang_ru]Я использовал обычный линуксовый MPlayer, который запускал с помощью QProcess класса. Оно работало пару — тройку раз, но потом падало. И отловить этот момент пока что не представляется для меня возможным.[/lang_ru]

[lang_de]Ich habe den üblichen MPlayer von Linux benutzt, den ich mit der Hilfe von QProcess Klasse gestartet habe. Es funktionierte ein paar Mal, danach aber stürzte das ganze ab. Und diesen Moment zu fangen wurde für mich nicht möglich. [/lang_de]

[lang_ru]Тогда я решил все-же отказаться от встроенного DAC'а этой платы и софтового проигрывателя, и прилепил платку расширения на базе VLSI VS1053b.[/lang_ru]

[lang_de]Und so habe ich mich entschieden, auf den auf der Platine eingebauten DAC zu verzichten, und eine Extention — Platine auf dem Basis von dem VLSI VS1053b Chip zu bauen.[/lang_de]

[lang_ru]Вот так вот выглядит теперь весь плеерок:[/lang_ru]

[lang_de]So sieht jetzt das ganze Playerchen: [/lang_de]

Плеер с платой расширения

Плеер с платой расширения

Плеер с платой расширения

Вид с верхнего боку

[lang_ru]И в данный момент я занимаюсь тем, что пишу драйвер для этого чипа под Линукс, и изменяю программку, которая будет этот драйвер использовать. На данный момент я определился, что драйвер в ядре будет предоставлять только основные возможности записи и чтения регистров чипа, и определение момента, когда чипу надо докидывать данных. А всю логику работы с чипом помещу в программный модуль, который с этим чипом будет общаться. Т.е. интеграцию в систему Линукс делать не планирую пока что.[/lang_ru]

[lang_de]Gerade bin ich damit beschäftigt, ein Linux-Treiber für das Chip zu schreiben, und das schon mal fertige Programm abzuändern, so dass das mit dem Treiber danach funktionieren wird. Der Kernel-Treiber wird nur die grundlegende Funktionalität bereitstellen: Registern des Chips zu lesen / schreiben und den Zustand des Pins zu ermitteln, wann das Chip die Daten anfordert. Und im Programm wird ein Modul eingebaut, der die Ganze Logik für das Chip realisiert. Dass heißt, dass die Integration ins Linux ist nicht geplant.[/lang_de]

[lang_ru]Уже есть первый успех: тест чипа работает — он уже «умеет» пищать разные ноты. Теперь дело за малым — доработать драйвер для управления через IOCTL системный вызов из программы и научить программу слать файлы на этот чип.[/lang_ru]

[lang_de]Es gibt bereits ein Erfolg: das Chip kann als Test die Töne herausgeben. Jetzt ist nur die Kleinigkeit geblieben — den Treiber zu Ende bringen, so dass das IOCTL System Call abgearbeitet werden kann, und damit von das Programm die Musik-Dateien ins Chip senden zu können.[/lang_de]

[lang_ru]Параллельно этому, в качестве тренировки в «шаблонах проектирования C++», стряпаю небольшой коммуникатор для домашней сети, на подобие ICQ, работающий с домашней сетью и с сервером MySQL.[/lang_ru]

[lang_de]Parallel dazu, als kleine Training in «Design patterns in C++» habe ich angefangen einen Kommunikator für zu Hause zu schreiben, der in einen lokalen Netz mit einem MySQL Server betrieben werden kann. [/lang_de]

[lang_ru]Во время его разработки набросал небольшой генератор кода для обработки протокола коммуникации, в котором можно задавать пакеты с данными, пересылаемыми между участниками общения, а в программе только используется заранее определенный интерфейс чтения из, и записи данных в пакет, общий для всех видов передаваемых данных, а сами данные определяются константами, которые так-же генерятся генератором. [/lang_ru]

[lang_de]Dafür habe ich einen Kode-Generator geschrieben, der die Sources generiert, die die übertragene Daten bearbeiten: Setzten die Pakete zusammen, lesen die Daten aus gekommenen Paketen, u.s.w. [/lang_de]

[lang_ru]Данный генератор облегчает добавление новых типов пакетов: не надо лезть в самый низший уровень и добавлять вручную код для копирования разных типов данных в/из пакета.[/lang_ru]

[lang_de]Dieser Kode-Generator erleichtert das Einfügen von der neuen Daten, die zu übertragen sind. Und man muss nicht mehr den Kode für Abarbeitung der neuen Daten-Typen zu erstellen. [/lang_de]

[lang_ru]Еще одной особенностью этого генератора является то, что его можно использовать и в других проектах, где несколько «участников» общаются между собой (пересылают данные).[/lang_ru]

[lang_de]Und auch den Generator kann man in der anderen Projekten zu nutzen, wo die Daten übertragen werden müssen.[/lang_de]

[lang_ru]Как доделаю — выложу исходники, может кому пригодится, кто знает.[/lang_ru]

[lang_de]Wenn es fertig wird, werde ich die Sourcen publizieren. Vielleicht werden die für jemanden nützlich, wer weiß. [/lang_de]

[lang_ru]Ну пока вот такие вот новости. Вдруг кому интересно, мало ли 🙂 .[/lang_ru]

[lang_de]Also da sind die aktuelle Neuigkeiten, falls jemand sich darüber interessiert 🙂 .[/lang_de]

3 комментария to “Всяческие поделки|Verschiedene Basteleien”

  1. malkut.ss Says:

    А Вы не смотрели в сторону открытого драйвера (sourceforge.net/projects/vs10xx/). Правда он написан под ARM9.

  2. MasterAlexei Says:

    Нет, не смотрел. Надо будет глянуть.

    Не думаю, что есть особая разница между линуксовым драйвером для ARM9 и cortex'ом А8-ым.

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

  3. malkut.ss Says:

    Я сейчас интересным проектом занимаюсь. Основан тоже на архитектуре Cortex-A8, только процессор Sitara AM3894 🙂

Leave a Reply

You must be logged in to post a comment.