<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gpioget - MCU &amp; FPGA</title>
	<atom:link href="https://mcu.tec.br/tags/gpioget/feed/" rel="self" type="application/rss+xml" />
	<link>https://mcu.tec.br</link>
	<description>Microcontroladores &#38; FPGA</description>
	<lastBuildDate>Fri, 16 Jan 2026 11:42:40 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mcu.tec.br/wp-content/uploads/2025/02/Robo-para-o-site-MCU.tec_.br-512x512-1-150x150.png</url>
	<title>gpioget - MCU &amp; FPGA</title>
	<link>https://mcu.tec.br</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Manipulação de GPIO no Linux Embarcado: Shell e Python com libgpiod</title>
		<link>https://mcu.tec.br/sbc/1201/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=1201</link>
		
		<dc:creator><![CDATA[Carlos Delfino]]></dc:creator>
		<pubDate>Wed, 28 Jan 2026 16:32:59 +0000</pubDate>
				<category><![CDATA[SBC]]></category>
		<category><![CDATA[controle de gpio em python]]></category>
		<category><![CDATA[eventos gpio linux]]></category>
		<category><![CDATA[gpio character device]]></category>
		<category><![CDATA[gpio linux]]></category>
		<category><![CDATA[gpio no linux embarcado]]></category>
		<category><![CDATA[gpiodetect]]></category>
		<category><![CDATA[gpioget]]></category>
		<category><![CDATA[gpioinfo]]></category>
		<category><![CDATA[gpiolib]]></category>
		<category><![CDATA[gpiomon]]></category>
		<category><![CDATA[gpioset]]></category>
		<category><![CDATA[libgpiod]]></category>
		<category><![CDATA[linux embarcado gpio]]></category>
		<category><![CDATA[manipulação de gpio linux]]></category>
		<category><![CDATA[sysfs gpio obsoleto]]></category>
		<guid isPermaLink="false">https://mcu.tec.br/?p=1201</guid>

					<description><![CDATA[<p>Aprenda como manipular GPIO no Linux embarcado utilizando a interface moderna baseada em dispositivos de caractere introduzida a partir do kernel 4.8. Este artigo apresenta uma abordagem prática e didática para controle de GPIO em espaço de usuário, explorando o uso das ferramentas de linha de comando da libgpiod, como gpiodetect, gpioinfo, gpioset, gpioget e gpiomon, além de exemplos completos em Python com os bindings oficiais da biblioteca. São discutidos os conceitos fundamentais do framework gpiolib, a evolução da interface sysfs para char devices, boas práticas de engenharia, armadilhas comuns e critérios técnicos para escolha entre shell e Python em sistemas embarcados reais. O conteúdo é voltado a desenvolvedores que desejam construir soluções robustas, seguras e alinhadas com as melhores práticas modernas do kernel Linux.</p>
<p>The post <a href="https://mcu.tec.br/sbc/1201/">Manipulação de GPIO no Linux Embarcado: Shell e Python com libgpiod</a> first appeared on <a href="https://mcu.tec.br">MCU & FPGA</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">GPIO no Linux: conceitos fundamentais e evolução da interface de usuário</h2>



<p class="wp-block-paragraph">GPIO (<em>General-Purpose Input/Output</em>) é um dos recursos mais básicos — e ao mesmo tempo mais críticos — em sistemas Linux embarcados. LEDs, botões, relés, sensores digitais e sinais de controle em geral passam inevitavelmente por linhas de GPIO. Apesar de sua simplicidade elétrica, o <strong>modelo de software para GPIO no Linux evoluiu significativamente</strong>, especialmente para corrigir problemas de concorrência, robustez e segurança em espaço de usuário.</p>



<p class="wp-block-paragraph">Internamente, o kernel Linux organiza GPIOs por meio do <em>framework gpiolib</em>, que implementa um modelo claro de <strong>produtores</strong> e <strong>consumidores</strong>. Os produtores são os drivers das controladoras de GPIO (internas ao SoC ou expansores externos via I²C/SPI), enquanto os consumidores são drivers de dispositivos ou aplicações que utilizam essas linhas. Essa separação é fundamental para permitir que o kernel gerencie conflitos, reservas e configurações elétricas das linhas de forma consistente .</p>



<p class="wp-block-paragraph">Durante muitos anos, o acesso a GPIOs em espaço de usuário foi feito via <strong>sysfs</strong>, através do diretório <code>/sys/class/gpio</code>. Essa interface era simples e funcionava bem para protótipos e scripts rápidos, mas apresentava limitações sérias: o GPIO não ficava associado ao ciclo de vida de um processo, múltiplos processos podiam acessar a mesma linha simultaneamente, e não havia suporte adequado a eventos, estados elétricos ou acesso atômico a múltiplos pinos. Esses problemas se tornaram evidentes à medida que sistemas Linux embarcados passaram a operar como <strong>sistemas concorrentes reais</strong>, e não apenas como “Linux com LED piscando”.</p>



<p class="wp-block-paragraph">A partir do <strong>kernel Linux 4.8</strong>, o sysfs foi oficialmente declarado obsoleto para GPIO, dando lugar a uma nova interface baseada em <strong>dispositivos de caractere</strong> (<code>/dev/gpiochipX</code>). Essa mudança não é apenas estética: ela traz um modelo de uso muito mais próximo da filosofia Unix moderna, no qual <strong>GPIOs são recursos de kernel associados a descritores de arquivo</strong>, com controle de posse, suporte a <em>polling</em>, eventos confiáveis, configuração elétrica e operações em lote. É essa nova interface que fundamenta todas as ferramentas modernas de manipulação de GPIO no Linux e que será o foco deste artigo .</p>



<p class="wp-block-paragraph">Nos próximos tópicos, vamos sair da teoria e entrar na prática: primeiro utilizando <strong>ferramentas de shell baseadas na libgpiod</strong>, e depois avançando para <strong>controle programático em Python</strong>, sempre com exemplos claros, comparações com o modelo antigo e comentários sobre boas e más práticas em sistemas de produção.</p><p>The post <a href="https://mcu.tec.br/sbc/1201/">Manipulação de GPIO no Linux Embarcado: Shell e Python com libgpiod</a> first appeared on <a href="https://mcu.tec.br">MCU & FPGA</a>.</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1201</post-id>	</item>
	</channel>
</rss>
