90 lines
3.0 KiB
Plaintext
90 lines
3.0 KiB
Plaintext
###### Structure ######
|
||
# Hubris architecture is composed of two elements: kernel and tasks.
|
||
# The kernel is the main piece of code which runs tasks. In the zip archive, you will find:
|
||
# - 'config' and 'README' files
|
||
# - 'elf' directory, contains task and kernel binaries
|
||
# - 'img' directory, contains a 'flattened' ELF file with all tasks from the 'elf' folder (this one is used to run Hubris in Renode)
|
||
#
|
||
###### List of tasks included in this build ######
|
||
# - sys - interrupt handler
|
||
# - jefe - supervisor
|
||
# - hiffy - HIF commands interpreter, used by the humility tool to communicate with Hubris
|
||
# - uartecho - echo program on UART (USART2)
|
||
# - user_leds - blinking LED
|
||
# - user_button - LED switch
|
||
# - net - main task (and driver) for network operations
|
||
# - udpecho - echo via UDP
|
||
# - udprpc - remote procedure call via UDP
|
||
#
|
||
###### How to use ######
|
||
#
|
||
# -- uartecho --
|
||
# Serial loopback. Test by writing to the terminal window.
|
||
#
|
||
# -- user_leds --
|
||
# GPIO output test. Works on its own without external input.
|
||
# Test with: `logLevel -1 gpioPortB.GreenLED` or `watch "gpioPortB.GreenLED State" 100`
|
||
#
|
||
# -- user_button --
|
||
# GPIO input test. Pressing a button will toggle the LED state.
|
||
# Test with: `gpioPortC.UserButton1 Toggle`
|
||
#
|
||
# --- NOTE ---
|
||
# To run the 'udp' samples, execute the following commands in Renode’s monitor:
|
||
# `emulation CreateTap "tap0" "tap" true`
|
||
# `connector Connect host.tap switch`
|
||
#
|
||
# -- udpecho --
|
||
# UDP loopback. Test by sending a UDP datagram (IPv6 only) via the 'tap0' network interface (created in this .repl file).
|
||
# Test with: `echo "Hello Hubris!" | sudo socat - UDP6-DATAGRAM:[ff02::1%tap0]:10`
|
||
# Note:
|
||
# - Port 10 was selected for this task during the build process.
|
||
# - ff02::1 is the all-nodes multicast IPv6 address.
|
||
#
|
||
# -- udprpc --
|
||
# RPC test.
|
||
# Install 'humility' with `cargo install --git https://github.com/oxidecomputer/humility.git --locked humility-bin`.
|
||
# Download `https://dl.antmicro.com/projects/renode/hubris-stm32h753-udprpc-s_1139557-94130dc90db156d955404f49ceec5eeac835c392.zip`
|
||
#
|
||
# Test by switching an LED:
|
||
# `humility -a HUBRIS_ARCHIVE.zip rpc --ip fe80::c1d:ff:fe00:0%tap0 -c UserLeds.led_on -a index=2`
|
||
# Note:
|
||
# - UserLeds - interface
|
||
# - led_on - command
|
||
# - index=2 - argument (2 = yellow LED)
|
||
#
|
||
# To see all available 'humility' RPC commands, run:
|
||
# `humility -a HUBRIS_ARCHIVE.zip rpc --list`
|
||
|
||
$name?="Nucleo H753ZI Hubris"
|
||
$bin?=@https://dl.antmicro.com/projects/renode/hubris-stm32h753-udprpc.elf-s_131296-5caee99b2a6bb995702570dcbde1171c61225a3f
|
||
|
||
using sysbus
|
||
mach create $name
|
||
|
||
machine LoadPlatformDescriptionFromString """
|
||
using "platforms/boards/nucleo_h753zi.repl"
|
||
nvic:
|
||
priorityMask: 0xFF
|
||
"""
|
||
|
||
emulation CreateSwitch "switch"
|
||
connector Connect ethernet switch
|
||
|
||
showAnalyzer usart2
|
||
|
||
# Used in 'user_button' sample
|
||
logLevel -1 gpioPortE.YellowLED
|
||
|
||
sysbus Tag <0x58024800 4> "PWR_CR1_DBP_SET" 0x100
|
||
sysbus Tag <0x58024804 4> "PWR_CSR1" 0x2000
|
||
sysbus Tag <0x58024808 4> "PWR_CR2_BREN_SET" 0x1
|
||
|
||
macro reset
|
||
"""
|
||
cpu VectorTableOffset 0x8000000
|
||
sysbus LoadELF $bin
|
||
"""
|
||
|
||
runMacro $reset
|