vuart.py

# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2024 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Este ejemplo demuestra el uso más básico de Open-AMP para comunicarse entre dos núcleos
# en microcontroladores de doble núcleo. Para ejecutar este ejemplo, se necesita firmware
# para el núcleo secundario. Con fines de prueba, aquí se proporciona un firmware de demostración para el núcleo secundario:
# https://github.com/iabdalkader/openamp_vuart
# Para configurar y compilar el firmware, siga las instrucciones del archivo README.
#
# Tenga en cuenta que en la mayoría de los microcontroladores no es posible reiniciar el núcleo secundario sin
# un reinicio completo, por lo que ejecutar y luego detener este script puede provocar un reinicio completo de la
# placa, lo cual es completamente normal.

import openamp
import time


def ept_recv_callback(src_addr, data):
    print("Received message: ", data.decode())


# Crea un nuevo endpoint RPMsg para comunicarse con el M4.
ept = openamp.Endpoint("vuart-channel", callback=ept_recv_callback)

# Crea un objeto remoteproc, carga su firmware y arráncalo. Ten en cuenta que el núcleo remoto
# también puede arrancar desde un punto de entrada en la memoria flash (como 0x081E0000) si hay un firmware ahí.
# 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)

results matching ""

    No results matching ""