diff options
author | Keith Packard <keithp@keithp.com> | 2012-10-24 22:35:32 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-10-25 00:07:14 -0700 |
commit | e80fa6de4ccc5c4851eab9fb941f9282d2e3eb16 (patch) | |
tree | 716c76a2a0aae0ade116f1c9d959d68fedeb112a /src/drivers/ao_packet_master.c | |
parent | b119e19604aa557a40e848c60d98a67b5f259bbd (diff) |
altos: Replace __critical usage with ao_arch_critical as needed
sdcc offers __critical as a machine-independent way to block
interrupts, but as gcc doesn't, we need to use a compiler-independent
construct instead. ao_arch_critical has been around since the AVR
port, but some old __critical usages remained.
This fixes a bunch of random hangs when communicating with MM over USB
or the radio as the various stdio loops were running without
interrupts blocked between the test and the sleep.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers/ao_packet_master.c')
-rw-r--r-- | src/drivers/ao_packet_master.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/drivers/ao_packet_master.c b/src/drivers/ao_packet_master.c index e97a6648..481232df 100644 --- a/src/drivers/ao_packet_master.c +++ b/src/drivers/ao_packet_master.c @@ -18,7 +18,7 @@ #include "ao.h" static char -ao_packet_getchar(void) __critical +ao_packet_getchar(void) { char c; while ((c = ao_packet_pollchar()) == AO_READ_AGAIN) { |