view gsm-fw/sysglue/sysinit.S @ 853:ae254ffeaec3

AT command interface works! The cause of the breakage was the same Nucleus API issue with NU_Create_Timer() which we encountered at the very beginning of this project with Riviera timers: the code in uartfax.c from TCS211 was passing 0 as the initial dummy value for the timer duration, and our FreeNucleus version doesn't like it. The fix is the same: pass 1 as the initial dummy value instead.
author Space Falcon <falcon@ivan.Harhan.ORG>
date Thu, 30 Apr 2015 01:46:26 +0000
parents 02d14592bb73
children
line wrap: on
line source

/*
 * This assembly module, which puts bits of code into several different
 * sections, contains those essential entry point etc bits which are common
 * to both the regular flashable build and the fc-xram development build.
 */

	.section	iram.vectors,"ax",%progbits
	.code	32
#include "vectors.S"

	.section	xip.text,"ax",%progbits
	.code	32
	.globl	_FlashorXram_entry
_FlashorXram_entry:
/* enable Calypso boot ROM for the ARM exception and IRQ/FIQ vectors */
	ldr	r1, =0xFFFFFB10
	mov	r2, #0x0100
	strh	r2, [r1]
/* now we can call any function w/o worry as to where it lives */
/* clear int.bss and ext.bss, using bzero() from libc */
	ldr	r0, =__intbss_start
	ldr	r1, =__intbss_size
	bl	bzero
	ldr	r0, =__extbss_start
	ldr	r1, =__extbss_size
	bl	bzero
/* we can start Nucleus now! */
	b	INT_Initialize

/*
 * riviera/support/exception.c references exit()
 * The following kludge will allow us to pass the link for the time being
 * until we can find a better solution, such as hooking into DAR maybe.
 */

	.globl	exit
exit:
	b	.