comparison target-utils/libbase/osmodelay.S @ 0:e7502631a0f9

initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 11 Jun 2016 00:13:35 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:e7502631a0f9
1 /*
2 * This assembly module provides a replica of OsmocomBB's bogo-millisecond
3 * delay_ms() function. It is literally a copy of what OsmocomBB's delay_ms()
4 * compiles to with their gcc version and their optimization settings, as seen
5 * by doing arm-elf-objdump on their lib/delay.o.
6 *
7 * This hack is intended for those cases where we have to copy OsmocomBB's
8 * black magic voodoo operations with no ability to understand what is actually
9 * needed, such as SPCA552E initialization on the Pirelli DP-L10.
10 */
11
12 .text
13 .code 32
14 .globl osmo_delay_ms
15 osmo_delay_ms:
16 mov r3, #0
17 sub sp, sp, #4
18 str r3, [sp]
19 ldr r3, =1300
20 mul r3, r0, r3
21 b 2f
22 1: ldr r2, [sp]
23 ldr r2, [sp]
24 add r2, r2, #1
25 str r2, [sp]
26 2: ldr r2, [sp]
27 cmp r2, r3
28 bcc 1b
29 add sp, sp, #4
30 bx lr