2.6 KiB
System Message: ERROR/3 (<stdin>, line 1)
Unknown directive type "zephyr:code-sample".
.. zephyr:code-sample:: blinky :name: Blinky :relevant-api: gpio_interface Blink an LED forever using the GPIO API.
Overview
The Blinky sample blinks an LED forever using the :ref:`GPIO API <gpio_api>`.
System Message: ERROR/3 (<stdin>, line 10); backlink
Unknown interpreted text role "ref".The source code shows how to:
Get a pin specification from the :ref:`devicetree <dt-guide>` as a :c:struct:`gpio_dt_spec`
System Message: ERROR/3 (<stdin>, line 14); backlink
Unknown interpreted text role "ref".
System Message: ERROR/3 (<stdin>, line 14); backlink
Unknown interpreted text role "c:struct".
Configure the GPIO pin as an output
Toggle the pin forever
See :zephyr:code-sample:`pwm-blinky` for a similar sample that uses the PWM API instead.
System Message: ERROR/3 (<stdin>, line 19); backlink
Unknown interpreted text role "zephyr:code-sample".Requirements
Your board must:
Have an LED connected via a GPIO pin (these are called "User LEDs" on many of Zephyr's :ref:`boards`).
System Message: ERROR/3 (<stdin>, line 28); backlink
Unknown interpreted text role "ref".
Have the LED configured using the led0 devicetree alias.
Building and Running
Build and flash Blinky as follows, changing reel_board for your board:
System Message: ERROR/3 (<stdin>, line 37)
Unknown directive type "zephyr-app-commands".
.. zephyr-app-commands:: :zephyr-app: samples/basic/blinky :board: reel_board :goals: build flash :compact:
After flashing, the LED starts to blink and messages with the current LED state are printed on the console. If a runtime error occurs, the sample exits without printing to the console.
Build errors
You will see a build error at the source code line defining the struct gpio_dt_spec led variable if you try to build Blinky for an unsupported board.
On GCC-based toolchains, the error looks like this:
System Message: WARNING/2 (<stdin>, line 56)
Cannot analyze code. Pygments package not found.
.. code-block:: none error: '__device_dts_ord_DT_N_ALIAS_led_P_gpios_IDX_0_PH_ORD' undeclared here (not in a function)
Adding board support
To add support for your board, add something like this to your devicetree:
System Message: WARNING/2 (<stdin>, line 65)
Cannot analyze code. Pygments package not found.
.. code-block:: DTS
/ {
aliases {
led0 = &myled0;
};
leds {
compatible = "gpio-leds";
myled0: led_0 {
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
};
};
};
The above sets your board's led0 alias to use pin 13 on GPIO controller gpio0. The pin flags :c:macro:`GPIO_ACTIVE_HIGH` mean the LED is on when the pin is set to its high state, and off when the pin is in its low state.
System Message: ERROR/3 (<stdin>, line 80); backlink
Unknown interpreted text role "c:macro".Tips:
See :dtcompatible:`gpio-leds` for more information on defining GPIO-based LEDs in devicetree.
System Message: ERROR/3 (<stdin>, line 86); backlink
Unknown interpreted text role "dtcompatible".
If you're not sure what to do, check the devicetrees for supported boards which use the same SoC as your target. See :ref:`get-devicetree-outputs` for details.
System Message: ERROR/3 (<stdin>, line 89); backlink
Unknown interpreted text role "ref".
See :zephyr_file:`include/zephyr/dt-bindings/gpio/gpio.h` for the flags you can use in devicetree.
System Message: ERROR/3 (<stdin>, line 92); backlink
Unknown interpreted text role "zephyr_file".
If the LED is built in to your board hardware, the alias should be defined in your :ref:`BOARD.dts file <devicetree-in-out-files>`. Otherwise, you can define one in a :ref:`devicetree overlay <set-devicetree-overlays>`.
System Message: ERROR/3 (<stdin>, line 95); backlink
Unknown interpreted text role "ref".
System Message: ERROR/3 (<stdin>, line 95); backlink
Unknown interpreted text role "ref".