espforge 0.6.0

a scaffolding++ tool for creating esp32 no_std esphal without the hassle
$ espforge espf overview
exit: 0
--- stdout ---
NAME
    ESPF - the file format espforge builds firmware from

DESCRIPTION
    An ESPF file lists the hardware your project uses and how it is wired.
    espforge turns it into a Rust firmware project for an ESP32 chip.

    A file has five sections. All five must be present, but any of them may
    be empty:

      espforge      the project itself: name, chip, runtime, console, options
      peripherals   the chip's hardware blocks you use: gpio, i2c, spi, uart
      components    how a peripheral is used: an address on a bus, a direction
      devices       drivers for specific parts built on a component
      services      software services: wifi, ntp

    They feed each other in one direction: a component refers to a
    peripheral, and a device refers to a component.

SYNTAX
    A section starts with a line `# name`. Inside a section, every element
    is one self-closing tag on its own line:

      <tag id="name" attribute="value" />

    Every value is a double-quoted string and cannot span lines. After an
    element, a trailing `// comment` is allowed. A block of comment text
    between two lines made only of `=` is allowed at the very top of the
    file, before the first section, and nowhere else.

REFERENCES
    An `id` names an element. Another element refers to it by writing the
    id with a `$` in front:

      <i2c id="i2c0" sda="6" scl="7" />
      <i2c_component id="temp_bus" i2c="$i2c0" address="0x48" />

    Every id must be unique across the whole file.

DOTTED KEYS AND LISTS
    A dotted key groups related values:  network1.ssid="home"

    A list repeats a key with `+=`, and the first entry needs it too:

      servers+="pool.ntp.org" servers+="time.google.com"

EXAMPLE
      # espforge
        <project name="blink" />
        <chip type="esp32c3" />
        <runtime type="blocking" />

      # peripherals
        <gpio id="gpio4" pin="4" />

      # components
        <gpio_component id="blue_led" gpio="$gpio4" direction="output" />

      # devices

      # services

NEXT
    espforge espf peripherals     browse what you can declare
    espforge examples             copy a complete example project
    espforge new                  start a new project
--- stderr ---