PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beaglebone Black: Status



schorsch_76
31.07.2019, 18:49
Hallo Kollegen,

ich hab in meiner Bastelkiste einen BBB ausgegraben. Nutzt ihr noch den Beaglebone oder ist das alles vom RPi dominiert? Hier ist die Community bei weitem nicht so groß, aber ich habe ein reines Debian mit einem Kernel der auch mainline ist. Das finde ich schon toll im Vergleich zum RPi.

Ich werde ihn jetzt "abkommandieren" für die Solardaten Erfassung. Der eingesetzte AMD Geode hat kein i686 und wird vom neuen Debian 10 nicht mehr unterstützt. Der braucht 5W. Da könnte der BBB schon Strom sparen mit seinen 2W.

Es gibt wohl auch eine Enhanced Version des BBB.

Mxt
01.08.2019, 07:06
Hallo,

meine BBB liegen auch im Moment alle auf Lager. Allerdings habe ich im Moment auch nur sehr wenig Zeit etwas zum machen.

So richtig viel scheint da nicht mehr zu passieren. Die Rechenleistung unter Linux ist schon sehr bescheiden, verglichen mit den mehrkernigen Raspis. Bei den Schnittstellen ist die Hardware vom BBB deutlich besser bestückt, aber da bin ich mehr zum Teensy abgewandert, da kriege ich ähnlich gute IO Fähigkeiten bei wesentlich geringerer Komplexität.

Ceos
01.08.2019, 07:27
Ich hätte da eine alternative Verwendung, kein Linux aber Python mit viel Peripherie Unterstützung... BareMetal auf dem Board sozusagen ... braucht aber ein wenig compile und frickelarbeit (habe es mir auf einem NUCLEO L432 aufgespielt und sogar ein micro FS mit der Hilfe der Entwickler reinbekommen)

Wenn ich mir das so ansehe scheint das Board ja eine echte Granate für genau diesen Einsatz zu sein, sofern die Netzwerkunterstützung hinhaut wäre das mal eine Geniale Basis für einen Flask Home Control Server ohne den ganzen Linux Krams rund herum! Wo kann ich den am einfachsten kaufen?!

Mxt
01.08.2019, 07:51
Wo kann ich den am einfachsten kaufen?!
Der sollte bei allen großen Distributoren auf Lager sein, Conrad zeigt 1290 Stück an.

Bitte beachte beim Bare Metal Programmieren, dass das ein Cortex-A und kein Cortex-M ist. Da ist die Initialisierung aufwendiger.

Außerdem ist ja ein Vorteil des Boards, dass Bare Metal geht, auch wenn Linux drauf läuft. Alle TI Sitara haben ja die PRUs (Programable Realtime Units), meist zwei (wie beim BBB) oder vier (z.B. Beaglebone X15). Das sind 200 MHz Kerne mit eingeschränkten Befehlssatz, kein ARM.

schorsch_76
01.08.2019, 08:44
Alle TI Sitara haben ja die PRUs (Programable Realtime Units), meist zwei (wie beim BBB) oder vier (z.B. Beaglebone X15). Das sind 200 MHz Kerne mit eingeschränkten Befehlssatz, kein ARM.

Da hab ich gesehen, das einige damit RT Aufgaben auf der PRU machen und den großen Non-RT Krams auf Linux. Da gibt es wohl einen Memory Bridge für den Datenaustausch. Da gibt es auch Tutorials dafür. Auf dem BBB läuft auch ein Preempt RT Kernel. Damit ist dann auch der Linux Part RT tauglich.
Das gefällt mir an dem Board!

HaWe
01.08.2019, 09:12
Da hab ich gesehen, das einige damit RT Aufgaben auf der PRU machen und den großen Non-RT Krams auf Linux. Da gibt es wohl einen Memory Bridge für den Datenaustausch. Da gibt es auch Tutorials dafür. Auf dem BBB läuft auch ein Preempt RT Kernel. Damit ist dann auch der Linux Part RT tauglich.
Das gefällt mir an dem Board!

es lassen sich auch auf dem Pi RT OS verwenden,
darüberhinaus kann man aber auch auf dem Standard-Raspbian einzelnen threads (pthread oder std::threads, alle preemptiv) höhrere prios zuweisen als die kernel-threads besitzen (z.B. SCHED_RR, prio=80),
und man kann sogar optional bei Pi 2,3,4 (quadcores) per compiler-flags so compilieren, dass das eigene Programm für bestimmte cpu-cores den Zugriff exklusiv erhält, unter Ausschluss des kernels.
Damit hat man auf dem Pi alle RT Fähigkeiten, die man braucht, und der Preis ist ja auch ok (neu oder gebraucht)

Ceos
01.08.2019, 11:52
hat da nicht vor kurzem ein Patch die Runde gemacht der so ziemlich jedem Linux ein PreEmpRT ermöglichen soll? Irgendwo auf Heise oder Golem war mir das untergekommen meine ich.

PS: Ich präferiere hier definitv das python wegen der startzeit, der konsole für live tests bzw. debugging und der zahlreichen python scripts im netz für alleerdenklichen bauteile und funktionen

und natürlichn unschlagbar für rapid prototyping ohne compilieren und flashen

schorsch_76
01.08.2019, 12:08
hat da nicht vor kurzem ein Patch die Runde gemacht der so ziemlich jedem Linux ein PreEmpRT ermöglichen soll? Irgendwo auf Heise oder Golem war mir das untergekommen meine ich.

PS: Ich präferiere hier definitv das python wegen der startzeit, der konsole für live tests bzw. debugging und der zahlreichen python scripts im netz für alleerdenklichen bauteile und funktionen

und natürlichn unschlagbar für rapid prototyping ohne compilieren und flashen

Meines Wissens nach, ist ein großer Teil des PREEMPT_RT Patches mittlerweile Mainline, aber noch nicht alles. [1]

Die PRU's sind eben wie Microkontroller in der CPU. Hier läuft nichts anderes nur das kleine Miniprogramm. Dadurch kann man (bei entsprechner Programmierung) Latenzen garantieren. Auch unter Linux mit PREEMPT_RT sind die Latenzen nicht so exakt einzuhalten wie auf einer MCU. Beispielsweise QNX oder VxWorks [2][3] sind von Haus aus auf das RT Verhalten ausgelegt (Mikrokernel Architektur). Linux ist hier ganz anderst aufgebaut. Es ist ein Monolith. [4]

Mit Xenomai oder RTAI wird unter "das normale OS" ein Microkernel gepackt der dann die harte Echtzeit garantiert. Un ja, es gibt zwischen PREEMPT_RT und Xenomai/RTAI noch sehr große Unterschiede was das Echtzeitverhalten angeht (auch wenn PREEMPT_RT schon sehr gut ist). [5]


[1] https://www.heise.de/ct/artikel/Die-Highlights-von-Linux-5-3-Realtime-Support-im-Anflug-4470638.html

[2] https://de.wikipedia.org/wiki/QNX
[3] https://de.wikipedia.org/wiki/VxWorks

[4] https://de.wikipedia.org/wiki/Linux

[5] https://www.embedded-software-engineering.de/echtzeit-mit-linux-a-632464/

HaWe
01.08.2019, 12:26
ich bin und war eigentlich immer der Meinung, dass pthread eine ANSI C99 Standard-Lib ist, die in jeder Linux- und gcc distri enthalten ist, und es ist grundsätzlich preemptiv.
Nutze ich ständig, sowohl auf Raspberry Pi (Debian) als auch sogar schon seit ca. 10 Jahren auf Lego EV3 (hat eine TI Linux distri).

#include <pthread.h>
compilieren mit gcc flag -lpthread

und fertig! :cool:

es ist für gängige Anwendungen absolut RT-fähig (GPIO r/w sicher innerhalb 400ns auf einem alten Pi 2, parallel zu WiFi, geöffnetem Firefox, full-HD HDMI TFT, Soundwiedergabe und wireless BT für Maus und Kbd.)

schorsch_76
01.08.2019, 12:30
pthread ist eine Standard Library. Sie garantiert aber kein Echtzeitverhalten.

https://elinux.org/Realtime_Testing_Best_Practices

https://ocw.cs.pub.ro/courses/_media/mpsit/lectures/mpsit_curs_07.pdf

Harte Echtzeit bedeutet: Es ist in JEDEM Fall garantiert, das die Deadline eingehalten wird. Bsp. Steuerung von Raketen, Steuerung von Flugzeugen, Sicherheitskritische Abschaltungen von denen Menschenleben abhängen. Würdest du wirklich garantieren, dass dein pthread unter allen Umständen, in die dein System kommen kann, immer und jederzeit rechtzeitig reagiert? DDOS auf den Netzwerk Port? Ein Amok laufendes Skript?

HaWe
01.08.2019, 12:35
ich schrieb "gängige Anwendungen", ich programmiere mobile Robots, die sich mit bis zu 10km/h bewegen, aber keine Raketen.
Für mobile Robots reicht es dicke,
aber Raketen oder wenn Menschenleben davon abhängen, dann würde ich auf multicores einsetzen und den kernel auf einzelne Cores einschränken, dann läuft das eigene Programm vom kernel unbeeinflusst. Plus ein 2. oder 3. redundantes System (für bemannte Marsmissionen ;) ).
Und ja, dann würde ich das auch dafür garantieren. 8)


PS
ich würde dafür aber NIE eine single-core cpu einsetzen.

Ceos
01.08.2019, 13:42
ich glaaube wir schweifen ab ^^
eigentlich gings doch um den beaglebone

PS single core ist wunderschön deterministisch und threads streng genommen luxus den man sich durch interlligente statemachines sparen kann, aber da trennt sich eben library basiertes programmieren von echtem bare metal. Mehr kontrolle erfordert auch mehr management, einfach nur eine kosten/nutzen frage und des persönlichen gemacks und darüber lässt sich bekanntlich nicht freundlich streiten :D :D :D

HaWe
01.08.2019, 14:22
ich glaaube wir schweifen ab ^^
eigentlich gings doch um den beaglebone

PS single core ist wunderschön deterministisch und threads streng genommen luxus den man sich durch interlligente statemachines sparen kann, aber da trennt sich eben library basiertes programmieren von echtem bare metal. Mehr kontrolle erfordert auch mehr management, einfach nur eine kosten/nutzen frage und des persönlichen gemacks und darüber lässt sich bekanntlich nicht freundlich streiten :D :D :D

Alle C-Programmierung ist IMMER Library-basiert, das fängt bei stdio.h an, geht über stdlib.h und unistd.h und hört bei pthread.h (nicht) auf -
nicht zu vergessen, dass ja Linux auch IMMER ein multiuser- multitasking OS ist 8)



PS, bezgl. "intelligenter Statemachines", die angeblich MT ersetzen können, muss ich dir wschl widersprechen:
Wenn ich mich recht an eine Informatikvorlesung erinnere, ist eine Statemachine ein Endlicher Automat (reguläre Grammatik =Chomsky Typ 3 , also am stärksten eingeschrränkt),
C ist aber bereits (mindestens?) vom Chomsky Typ 2 (kontextfreie Grammatik) und Turing-vollständig,
und Nebenläufigkeit (engl.: concurrency) oder auch "Echtzeitfähigkeit" gehören keinesfalls zu den Kriterien von State Machines, sie können also C mit preemptivem Multithreading niemals das Wasser reichen 8)

Ceos
02.08.2019, 06:52
HaWe, dein Typ2 vermisst das KERNARGUMENT MEINER AUSSAGE!

Da du nicht ließt was ich schreibe entbehrt es auch jedem Nutzen dir zu erklären warum du falsch liegst

Defiant
02.08.2019, 08:48
So richtig viel scheint da nicht mehr zu passieren.

Och da passiert schon was:
http://beagleboard.org/blue - Quasi das Black für Robotik (inkl. Motor Treiber, IMU etc)
https://beagleboard.org/pocket - Sozusagen BBB in klein.
https://beagleboard.org/ai - Mehr Rechenleistung (2x A15, 4x M4, 4x PRU, 2x DSP, USB-C etc), allerdings noch nicht verfügbar.

Mxt
02.08.2019, 09:52
Och da passiert schon was:

Ah, der AI ist in der Tat meiner Aufmerksamkeit entgangen. Mal sehen wann er kommt und was er dann hier kostet. Am X15 haben sie auch ziemlich lange rumlaboriert, wenige Händler haben ihn und er ist ganz schön teuer.

Einen BB Green habe ich selber, deswegen schrieb ich ja, dass da nicht "so richtig viel" und nicht "nichts" passiert. Bis auf X15 und AI sind es halt alle Boards nur Variationen mit dem gleichen Prozessor. Und der konnte schon mit dem Raspi 2 nicht mehr mithalten.