Módulos de Kernel

23 views
Skip to first unread message

Jav Ier

unread,
Mar 15, 2016, 8:04:54 AM3/15/16
to Comunidad Raspberry Pi en Argentina
Estimados.

Estoy tratando de incrementar la frecuencia de sampling de las entradas GPIO de mi Raspberry...
He leído por ahí que la única forma es hacer un Modulo Kernel de Linux dedicado a dicha tarea ...
Mi proyecto main lo estoy haciendo de Java, y mi duda es como consumir los resultados de este modulo kernel desde una aplicación Java.
Alguno ha hecho algo similar?, pueden recomendarme un ejemplo?.

Muchas Gracias.
Sds.

alejolp

unread,
Mar 15, 2016, 6:10:09 PM3/15/16
to Comunidad Raspberry Pi en Argentina
Lo mejor es hacerlo con mmap(), leyendo y escribiendo directamente en los registros de GPIO. No necesitás un módulo de Kernel pero casi seguro que permisos root, o agregar tu usuario como miembro de algun grupo, no me acuerdo. Asi es como funciona PiFM.

Acá hay un ejemplo en C: 

Y acá está en Java: 

alejolp

unread,
Mar 15, 2016, 6:13:43 PM3/15/16
to Comunidad Raspberry Pi en Argentina
Me olvidaba!! Entre la versión 1 y 2 de RPi (y seguro que la 3 tambien) las direcciones de algunos registros son diferentes. Ni idea los de GPIO pero hay otros del chipset BCM que cambiaron.

alejolp

unread,
Mar 15, 2016, 6:31:16 PM3/15/16
to Comunidad Raspberry Pi en Argentina
(el ultimo lo prometo! jajaja)

Si, los registros de mmap son diferentes entre rpi1 y rpi2. 

Acá está explicado cuales son los valores, y muestra un benchmark de diferentes formas de usar GPIO.


En C usando mmap se consigue una onda cuadrada de 40Mhz !!

Está usando GPIO para escribir, vos querés leer, pero es lo mismo.

Jav Ier

unread,
Mar 16, 2016, 8:55:02 AM3/16/16
to Comunidad Raspberry Pi en Argentina
MUCHISIMAS GRACIAS
Lo voy a probar.
GRACIAS.
Sds.
Reply all
Reply to author
Forward
0 new messages