Skip to content

Commit 81615ad

Browse files
authored
Align delay and compensate (#2318)
* align delay and compensate * empty
1 parent 3dd38b7 commit 81615ad

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

board/libc.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
// **** libc ****
22

3-
void delay(uint32_t a) {
3+
__attribute__((aligned(32), noinline)) void delay(uint32_t a) {
4+
// loop is 2.6x faster when 32-byte aligned (ART accelerator prefetches flash in 32-byte chunks)
45
volatile uint32_t i;
5-
for (i = 0; i < a; i++);
6+
uint32_t n = a * 13U / 5U;
7+
for (i = 0; i < n; i++) {}
68
}
79

810
void assert_fatal(bool condition, const char *msg) {

0 commit comments

Comments
 (0)