vuart.py
# Este trabalho está licenciado sob a licença MIT.
# Copyright (c) 2024 OpenMV LLC. Todos os direitos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Este exemplo demonstra o uso mais básico do Open-AMP para comunicação entre dois núcleos
# em microcontroladores dual-core. Para executar este exemplo, é necessário firmware para o
# núcleo secundário. Para fins de teste, um firmware de demonstração para o núcleo secundário é fornecido aqui:
# https://github.com/iabdalkader/openamp_vuart
# Para configurar e compilar o firmware, siga as instruções no arquivo README.
#
# Observe que na maioria dos microcontroladores não é possível reiniciar o núcleo secundário sem
# um reset completo, então executar e depois interromper este script pode resultar em um reset completo
# da placa, o que é completamente normal.
import openamp
import time
def ept_recv_callback(src_addr, data):
print("Received message: ", data.decode())
# Cria um novo endpoint RPMsg para se comunicar com o M4.
ept = openamp.Endpoint("vuart-channel", callback=ept_recv_callback)
# Cria um objeto remoteproc, carrega seu firmware e o inicia. Observe que o núcleo remoto
# também pode inicializar a partir de um ponto de entrada na flash (como 0x081E0000) se houver um firmware ali.
# 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)