vuart.py
# Dieses Werk ist unter der MIT-Lizenz lizenziert.
# Copyright (c) 2024 OpenMV LLC. Alle Rechte vorbehalten.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Dieses Beispiel demonstriert die grundlegendste Verwendung von Open-AMP zur Kommunikation zwischen zwei Kernen
# auf Dual-Core-Mikrocontrollern. Um dieses Beispiel auszuführen, wird Firmware für den zweiten Kern
# benötigt. Zu Testzwecken wird hier Demo-Firmware für den zweiten Kern bereitgestellt:
# https://github.com/iabdalkader/openamp_vuart
# Anleitungen zum Konfigurieren und Erstellen der Firmware finden Sie in der README-Datei.
#
# Beachten Sie, dass es bei den meisten Mikrocontrollern nicht möglich ist, den zweiten Kern ohne
# einen vollständigen Reset zurückzusetzen. Das Ausführen und anschließende Stoppen dieses Skripts kann daher zu einem vollständigen Reset
# des Boards führen, was völlig normal ist.
import openamp
import time
def ept_recv_callback(src_addr, data):
print("Received message: ", data.decode())
# Einen neuen RPMsg-Endpunkt erstellen, um mit dem M4 zu kommunizieren.
ept = openamp.Endpoint("vuart-channel", callback=ept_recv_callback)
# Ein remoteproc-Objekt erstellen, dessen Firmware laden und starten. Beachten Sie, dass der entfernte Kern
# auch von einem Einstiegspunkt im Flash (z. B. 0x081E0000) booten kann, falls dort eine Firmware vorhanden ist.
# rproc = openamp.RProc(0x08180000)
rproc = openamp.RemoteProc("vuart.elf")
rproc.start()
count = 0
while True:
if ept.is_ready():
ept.send("Hello World %d!" % count, timeout=1000)
count += 1
time.sleep_ms(1000)