aboutsummaryrefslogtreecommitdiffstats
path: root/main.cpp.example
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-08-03 13:42:30 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2011-08-03 17:34:03 -0400
commitb33e28fae09fea9e68d71cee3db91c0024b4741f (patch)
tree0f720e25b3bfa71ea549e1b441e2d7ecccb740f6 /main.cpp.example
parent01bbbf344cb56e5aeb43544dc81ed2733f861ca2 (diff)
downloadlibrambutan-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 'main.cpp.example')
0 files changed, 0 insertions, 0 deletions