annotate target-utils/libbase/osmodelay.S @ 991:5cff3579814c

target-utils: libbase factored out of libcommon The library dependency order is now strictly unidirectional
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Wed, 30 Dec 2015 20:48:12 +0000
parents target-utils/libcommon/osmodelay.S@07b686248ab7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 /*
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
2 * This assembly module provides a replica of OsmocomBB's bogo-millisecond
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
3 * delay_ms() function. It is literally a copy of what OsmocomBB's delay_ms()
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
4 * compiles to with their gcc version and their optimization settings, as seen
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
5 * by doing arm-elf-objdump on their lib/delay.o.
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
6 *
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
7 * This hack is intended for those cases where we have to copy OsmocomBB's
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
8 * black magic voodoo operations with no ability to understand what is actually
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
9 * needed, such as SPCA552E initialization on the Pirelli DP-L10.
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 */
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
11
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12 .text
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
13 .code 32
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
14 .globl osmo_delay_ms
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
15 osmo_delay_ms:
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
16 mov r3, #0
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17 sub sp, sp, #4
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18 str r3, [sp]
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19 ldr r3, =1300
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
20 mul r3, r0, r3
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
21 b 2f
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
22 1: ldr r2, [sp]
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
23 ldr r2, [sp]
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
24 add r2, r2, #1
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
25 str r2, [sp]
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
26 2: ldr r2, [sp]
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
27 cmp r2, r3
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
28 bcc 1b
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
29 add sp, sp, #4
07b686248ab7 pirexplore: finally got the backlight to turn on
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
30 bx lr