From 87f8b01f58993ec40b2939db5df02fad56fa07d9 Mon Sep 17 00:00:00 2001 From: Andre Marques Date: Mon, 27 Jul 2015 17:01:43 +0100 Subject: RTEMS GPIO API definition and implementation. Changes relative to the previous patch set: - Moved GPIO pin interrupts to rtems chains, instead of a local linked list; - Restructured the pin tracking structure, separating the interrupt information for each pin meaning that a pin without any interrupt enabled only requires 8 bytes, while keeping interrupt information (handling information, handler chain control, ...) requires 24 additional bytes (total of 32 bytes per pin with interrupts enabled); - Added support for 'parallel' pin function assignment, allowing the function assignment to be set for multiple pins in a single GPIO hardware call. If a BSP does not support this feature it becomes a sequence of individual calls per pin. Also added support for GPIO pin groupings, allowing to write and read byte data to a series of pins which behave as a single entity; - Added bank tracking structure to maintain the bank lock and bank level interrupt information (threaded/normal handling, interrupt counter); - Changed GPIO settings to BSP defined constants, reducing dynamic memory allocation; - Switched interrupt tasks for a rtems interrupt server, with the possibility of using normal interrupts (user handlers being called within ISR context). --- c/src/lib/libbsp/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'c/src/lib/libbsp/Makefile.am') diff --git a/c/src/lib/libbsp/Makefile.am b/c/src/lib/libbsp/Makefile.am index 3cab4d7cfa..a039a98b8d 100644 --- a/c/src/lib/libbsp/Makefile.am +++ b/c/src/lib/libbsp/Makefile.am @@ -9,7 +9,7 @@ EXTRA_DIST = MERGE.PROCEDURE bsp.am EXTRA_DIST += shared/bootcard.c shared/bspclean.c \ shared/bsplibc.c shared/bsppost.c shared/console-polled.c \ shared/console.c shared/gnatinstallhandler.c shared/sbrk.c \ - shared/tod.c + shared/tod.c shared/gpio.c EXTRA_DIST += shared/vmeUniverse/vmeUniverse.c \ shared/vmeUniverse/vmeUniverse.h \ shared/vmeUniverse/vmeUniverseDMA.h \ @@ -35,6 +35,7 @@ include_bsp_HEADERS = include_bsp_HEADERS += shared/include/default-initial-extension.h include_bsp_HEADERS += shared/include/fatal.h include_bsp_HEADERS += shared/include/console-termios.h +include_bsp_HEADERS += shared/include/gpio.h include $(srcdir)/preinstall.am include $(top_srcdir)/automake/subdirs.am -- cgit v1.2.3