Kleine Updates von meiner Bastelwiese.
Ich habe schon mal erzählt, dass ich ein Playerchen auf dem Basis von OMAP3530 Microcontroller bastele.
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.
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.
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.
So sieht jetzt das ganze Playerchen:
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.
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.
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.
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.
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.
Und auch den Generator kann man in der anderen Projekten zu nutzen, wo die Daten übertragen werden müssen.
Wenn es fertig wird, werde ich die Sourcen publizieren. Vielleicht werden die für jemanden nützlich, wer weiß.
Also da sind die aktuelle Neuigkeiten, falls jemand sich darüber interessiert .
3 комментария к “Verschiedene Basteleien”
Оставить комментарий или два
Пожалуйста, зарегистрируйтесь для комментирования.
21st July 2012 в 22:47
А Вы не смотрели в сторону открытого драйвера (sourceforge.net/projects/vs10xx/). Правда он написан под ARM9.
22nd July 2012 в 7:37
Нет, не смотрел. Надо будет глянуть.
Не думаю, что есть особая разница между линуксовым драйвером для ARM9 и cortex'ом А8-ым.
Но основной моей целью было именно самому научиться писать драйвера под встраиваемый линукс, да и вообще под встраиваемый линукс что-то более менее полезное написать, что я и сделал, собвтсенно. Надо только вот в порядок все привести, чтобы оно стабильно работало, и можно на стенку вешать
23rd July 2012 в 18:44
Я сейчас интересным проектом занимаюсь. Основан тоже на архитектуре Cortex-A8, только процессор Sitara AM3894