vuart.py

# Эта работа лицензирована по лицензии MIT.
# Copyright (c) 2024 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Этот пример демонстрирует самое базовое использование Open-AMP для обмена данными между двумя ядрами
# на двухъядерных микроконтроллерах. Для запуска этого примера требуется прошивка для второго ядра.
# В целях тестирования здесь предоставлена демонстрационная прошивка для второго ядра:
# https://github.com/iabdalkader/openamp_vuart
# Для настройки и сборки прошивки следуйте инструкциям в файле README.
#
# Обратите внимание, что на большинстве микроконтроллеров невозможно сбросить второе ядро без
# полного сброса, поэтому запуск, а затем остановка этого скрипта может привести к полному сбросу
# платы, что является совершенно нормальным поведением.

import openamp
import time


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


# Создать новую конечную точку RPMsg для обмена данными с M4.
ept = openamp.Endpoint("vuart-channel", callback=ept_recv_callback)

# Создать объект remoteproc, загрузить его прошивку и запустить его. Обратите внимание, что второе ядро
# также может загружаться с точки входа во флеш-памяти (например, 0x081E0000), если там есть прошивка.
# 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 ""