strict digraph { graph [ splines=true, ] node [ style="filled", fontname="sans-serif", color="#3fa687", fillcolor="#275a4b", fontcolor="white", shape="box", penwidth=2, width=4.1, ]; edge [ color="#3fa687", fontcolor="#275a4b", fontname="sans-serif", penwidth=2, labelfloat=true, ]; Start [shape="Mrecord", width=0.75]; End [ label="Blink the LEDs", tooltip="Blink the LEDs", shape="Mrecord", URL="https://github.com/RIOT-OS/RIOT/tree/master/tests/leds", ]; IfCPU [ label=already ported?>, tooltip="CPU/MCU already ported?", shape="diamond", ]; IfBoard [ label=already provided?>, tooltip="Board definitions already provided?", shape="diamond", ]; IfDrivers [ label=devices supported?>, tooltip="All on-board devices supported?", shape="diamond", ]; IfNetdev [ label=supported by
network stack?>, tooltip="Network device supported by network stack?", shape="diamond" ]; PortCPU [ label=CPU
(TBD: provide guide)>, tooltip="Port CPU", ]; PortBoard [ label=board definitions>, tooltip="Provide board definitions", URL="@ref porting-boards", ]; PortDrivers [ label=device drivers>, tooltip="Provide device drivers", URL="@ref driver-guide", ]; PortNetdev [ label=network device support
for network stack>, tooltip="Provide network device support for network stack", URL="@ref drivers_netdev", ]; Start -> IfCPU; IfCPU -> IfBoard [label="Yes"]; IfBoard -> IfDrivers [label="Yes"]; IfDrivers -> IfNetdev [label="Yes"]; IfNetdev -> End [label="Yes"]; IfCPU -> PortCPU [label="No"]; IfBoard -> PortBoard [label="No"]; IfDrivers -> PortDrivers [label="No"]; IfNetdev -> PortNetdev [label="No"]; PortCPU -> IfBoard; PortBoard -> IfDrivers; PortDrivers -> IfNetdev; PortNetdev -> End; /* ensure No branch is on same row as If */ {rank=same; IfCPU PortCPU} {rank=same; IfBoard PortBoard} {rank=same; IfDrivers PortDrivers} {rank=same; IfNetdev PortNetdev} /* ensure PortNodes are on top of each other */ edge [style="invis"]; PortCPU -> PortBoard -> PortDrivers -> PortNetdev; }