38 lines
1.2 KiB
ArmAsm
38 lines
1.2 KiB
ArmAsm
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* Copyright (c) 2014, Normmatt
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms
|
|
* of the GNU General Public License Version 2, as described below:
|
|
*
|
|
* This file is free software: you may copy, redistribute and/or modify
|
|
* it under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation, either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
* This file is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
* Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see http://www.gnu.org/licenses/.
|
|
*/
|
|
|
|
.arm
|
|
.global ioDelay
|
|
.type ioDelay STT_FUNC
|
|
|
|
@ioDelay ( u32 us )
|
|
ioDelay:
|
|
ldr r1, =0x18000000 @ VRAM
|
|
1:
|
|
@ Loop doing uncached reads from VRAM to make loop timing more reliable
|
|
ldr r2, [r1]
|
|
subs r0, #1
|
|
bgt 1b
|
|
bx lr
|