mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-08-24 17:22:44 +08:00
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:
committed by
Gedare Bloom
parent
040ddd23b5
commit
87f8b01f58
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user