Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

FB prussdrv Kit (BBB)

Downloads » FreeBASIC on ARM

Download

Screenshot

Screenshot
Vergrößern
Bild vergrößern

Bewertung

Bisher keine Bewertung
(Zum Abstimmen auf die Sterne klicken.)

Achtung: Der Download auf dieser Seite wird nicht mehr aktualisiert! Neue Updates sind ab sofort unter Externer Link!https://github.com/DTJF/fb_prussdrv verfügbar.

Der gegenständliche Download betrifft die Bibliothek libprussdrv aus dem Paket Externer Link!am335x_pru_package (en), welche zur Steuerung des Programmable Realtime Unit SubSystem (= PRUSS) von ARM Prozessoren dient. Die Bibliothek bietet Funktionen zum Laden von Instruktionen, Austausch von Daten und Starten von Programmen. Weitere Einzelheiten, der Source Code, sowie Anwendungsbeispiele können dem Originalpaket entnommen werden.

Manche ARM Prozessoren verfügen über (meist zwei) PRUSS Co-Prozessoren, welche bei einer Taktung von üblicherweise 200 MHz sehr effektiv für die Bearbeitung von Echtzeitaufgaben eingesetzt werden können.

Dieses Packet ist vorgesehen zur Verwendung auf Externer Link!Beaglebone Hardware unter einem Debian basierten Betriebssystem (z. B. Ubuntu 13.10) und stellt eine (eigenständig verwendbare) Ergänzung des Originalpaketes dar, durch welche der Einsatz der Bibliothek unter FreeBASIC möglich wird. Es enthält

Der Assembler pasm wurde um eine weitere Option (-y) ergänzt. Diese ermöglicht die Ausgabe der Instruktionen in Form einer FreeBASIC Header-Datei, zur direkten Einbindung in den FB Quelltext.

Zur Installation sind folgende Befehle notwendig (im Basisverzeichnis des entpackten FB prussdrv Kit mit Passwort für Root Privilegien auf dem Beaglebone [Black] ausführen):

sudo su
cp bin/libprussdrv.* /usr/local/lib
ldconfig
mkdir /usr/local/include/freebasic/BBB
cp include/* /usr/local/include/freebasic/BBB
cp bin/pasm /usr/local/bin
exit

Zum Kompilieren eigener Programme wird eine ARM-Version des FreeBASIC Kompilers benötigt (welche z. B. über diesen Link bezogen werden kann).

Zum Ausführen der Beispiele müssen die PRUSS aktiviert werden. Dazu benötigt man ein entsprechendes Device-Tree-Overlay im Ordner /lib/firmware. Dieses Paket enthält ein Minimal-Overlay (Source Code examples/PRUSSDRV.dts), welches wie folgt einsatzbereit gemacht werden kann (einmalig):

sudo cp bin/PRUSSDRV-00A0.dtbo /lib/firmware

Anschließend wird das Overlay folgendermaßen aktiviert (nach jedem Boot-Vorgang, ggf. in der Boot-Sequenz des Betriebssystems)

sudo echo PRUSSDRV > /sys/devices/bone_capemgr.9/slots

(Alternativ kann auch eines der vorinstallierten Overlays verwendet werden, wie z. B. ... echo BB-BONE-PRU-01 > ...)

Außerdem benötigt man Lese- und Schreibberechtigung für den Interrupt /dev/uio0. Die Beispiele werden also entweder als Benutzer root ausgeführt. Oder es wird dauerhaft eine Zugriffsberechtigung angelegt. Für letztere wird eine neue Benutzergruppe anlegt (z. B. mit dem Namen pruss), in welche alle vorgesehenen PRUSS Benutzer als Mitglied aufgenommen werden. Dann folgende Befehle ausführen (nach jedem Boot-Vorgang, ggf. in der Boot-Sequenz des Betriebssystems)

sudo /bin/chgrp pruss /dev/uio0
sudo /bin/chmod g+rw /dev/uio0

Hier noch ein Hinweis: Software, die auf einem der PRUSS ausgeführt wird, hat Zugriff auf jeden Bereich der Hardware und kann vom Betriebssystem nicht überwacht werden. Die Aktivierung der PRUSS stellt deshalb ein Sicherheitsrisiko dar.

Und ein Zitat aus der Datei README.txt des Originalpaketes:

AM335x PRU PACKAGE

The hardware / software modules and descriptions referred
to in this package are *NOT SUPPORTED* by Texas Instruments
(www.ti.com / e2e.ti.com).

These materials are intended for do-it-yourself (DIY) users
who want to use the PRU at their own risk without TI support.
"Community" support is offered at BeagleBoard.org/discuss.

English

See Externer Link!english forum thread.