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).
This commit is contained in:
Andre Marques
2015-08-06 10:53:37 -04:00
committed by Gedare Bloom
parent 040ddd23b5
commit 87f8b01f58
4 changed files with 2931 additions and 1 deletions
+2 -1
View File
@@ -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
+4
View File
@@ -30,3 +30,7 @@ $(PROJECT_INCLUDE)/bsp/console-termios.h: shared/include/console-termios.h $(PRO
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/console-termios.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/console-termios.h
$(PROJECT_INCLUDE)/bsp/gpio.h: shared/include/gpio.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/gpio.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/gpio.h
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff