diff options
author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-08-03 13:42:30 -0400 |
---|---|---|
committer | Marti Bolivar <mbolivar@leaflabs.com> | 2011-08-03 17:34:03 -0400 |
commit | b33e28fae09fea9e68d71cee3db91c0024b4741f (patch) | |
tree | 0f720e25b3bfa71ea549e1b441e2d7ecccb740f6 /examples/test-serialusb.cpp | |
parent | 01bbbf344cb56e5aeb43544dc81ed2733f861ca2 (diff) | |
download | librambutan-b33e28fae09fea9e68d71cee3db91c0024b4741f.tar.gz librambutan-b33e28fae09fea9e68d71cee3db91c0024b4741f.zip |
exti.c: Optimize multiplexed IRQ handlers.
Rewrite existing IRQ handlers in terms of new functions
dispatch_single_exti() and dispatch_extis(). dispatch_single_exti()
handles EXTIs which have a dedicated IRQ line, and thus doesn't have
to check EXTI_PR; it is mostly equivalent to the (now removed)
handle_exti(). dispatch_extis() handles multiple EXTIs sharing an IRQ
line. Using dispatch_extis() instead of calling handle_exti()
multiple times avoids unnecessary I/O to the (volatile) EXTI_BASE->PR
register.
These changes are in the flavor of the timer IRQ optimizations
performed in f5016b15bef56bbdfd187f9b623177ef6dde7ace.
Diffstat (limited to 'examples/test-serialusb.cpp')
0 files changed, 0 insertions, 0 deletions