view target-utils/libbase/waitarm.S @ 752:c79aaed75bd8

compile-fc-batt: allow possible third field in source lines Battery tables maintained in the fc-battery-conf repository will now have a third field added, defining thresholds for the battery bars icon, and there will be a new utility to compile them into the new /etc/batterytab2 file read by the FC Tourmaline version of our FCHG driver. For backward compatibility with the original Magnetite version of FCHG, compile-fc-batt remains the tool for compiling the original /etc/batterytab file format, and it needs to ignore the newly added third field in battery table sources.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 05 Nov 2020 20:37:55 +0000
parents 06ad5e30e8d0
children
line wrap: on
line source

/*
 * This assembly module provides a wait_ARM_cycles() function similar to
 * the one in TI's firmware; it is meant to gradually replace and phase out
 * osmo_delay_ms().  One loop count for this function equals 4 ARM clock
 * cycles when running out of IRAM; if the ARM clock is 52 MHz, 13 loop counts
 * equal one microsecond.
 *
 * Note the instruction sequence difference from TI's firmware version:
 * we use the SUBS instruction (equivalent of plain SUB in Thumb) and omit
 * the CMP, which is why our version is 4 cycles per loop (when running
 * out of IRAM), as opposed to 5 cycles per loop (plus wait states as they
 * execute from flash) in TI's fw version.
 */

	.text
	.code	32
	.globl	wait_ARM_cycles
wait_ARM_cycles:
	cmp	r0, #0
	bxeq	lr
1:	subs	r0, r0, #1
	bne	1b
	bx	lr