Valkertown Home

2006-11-13-modulo-kernel-para-arm9

Hace poco compo parte de un proyecto escribi un m'odulo para el kernel de linux, en especial para el target de ARM9 AT91RM9200.

La idea es sencilla, es un driver para el PIO, que debe generar los siguientes dispositivos:

/dev/port[a-g]

/dev/pin[a-g][0-31]

As'i se puede realizar un acceso directo al PIN individual o a cada puerto en conjunto.

Inicialmente estoy trabajando con el puerto A, y es funcional de la siguietne forma.

echo O > /dev/pina14

echo 0 > /dev/pina14

echo 1 > /dev/pina14

echo I > /dev/pina14

Esto saliio como una necesidad y mi poca experiencia con los device drivers de Linux produjo ese driver.

Sin embargo leyendo el libro Linux Device Drivers con bastante juicio, he encontrado que cometi algunas barbaridades en ese código, ya que mezcle arbitrariamente mecanismo y politica. Adem'as de no utilizar los mecanismo estandar para el ctlio. Por esto me he comprometido a crear el driver completamente y con un disegno que debe estar terminado para cuando termine el libro, completamente de acuerdo con las especificaciones de disegno de un buen modulo/driver de Linux.

El motivo para crear tal driver, es simple, con el port de linux para ARM9, queremos tener un ambiente de desarrollo muy sencillo para tareas tipo PLC, donde lo que importa es la gestion y no los tiempos de respuesta.

Este mecanismo en el que un simple echo 0 > /dev/pinxx, echo > /dev/pinxxx controla una salida l'ogica permite disegnos de programas muy simples para el control desde un muy alto nivel.

EOT

comments powered by Disqus

© 2008-2012 Carlos A. Perilla deepspawn at valkertown dot org | Based on original design by Andreas Viklund