view components/frame_fl @ 280:82665effff30

keypad boot init overhaul: handle initially held-down keys This change fixes two previous behavioural defects: 1) On Compal phones, the PWR key had to be released before the boot sequence would proceed at all - it was stuck in an endless IRQ loop at the point of Nucleus enabling interrupts, before anything else. 2) On both Compal and sane platforms including Luna, if some regular non-PWR key was held down at boot time, the boot sequence would proceed and complete normally, but all non-PWR keypad buttons would be dead for the remainder of that boot cycle. The fix is a generic solution - no Compal-specific hack ended up being needed for the special case of their idiotic PWON-to-ROW4 hw wiring.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 24 Sep 2021 00:47:12 +0000
parents e58a5bb12de4
children
line wrap: on
line source

# Building frame_fl.lib using a mixture of source and blobs as configured

CFLAGS="-mw -x -pw2 -o3 -me -mt -g -mn"

# Defines

CPPFLAGS="-DNU_DEBUG -D_FF_RV_EXIST_ -DRUN_FLASH"
CPPFLAGS="$CPPFLAGS -D_TARGET_ -D_NUCLEUS_"

if [ "$MEMSUPER" != 0 ]
then
	CPPFLAGS="$CPPFLAGS -DMEMORY_SUPERVISION"
fi
if [ "$MEMSUPER" = 2 ]
then
	CPPFLAGS="$CPPFLAGS -DOPTIMIZE_POOL"
fi

# Includes

CPPFLAGS="$CPPFLAGS -I$SRC/gpf/frame"
CPPFLAGS="$CPPFLAGS -I$SRC/gpf/inc/nuc"
CPPFLAGS="$CPPFLAGS -I$SRC/nucleus"
CPPFLAGS="$CPPFLAGS -I$SRC/gpf/inc"
CPPFLAGS="$CPPFLAGS -I$SRC/gpf/tst"

# Source modules

SRCDIR=$SRC/gpf/frame

cfile_symlink $SRCDIR/frame.c
cfile_symlink $SRCDIR/vsi_sem.c
cfile_symlink $SRCDIR/vsi_com.c
cfile_symlink $SRCDIR/vsi_mem.c
cfile_symlink $SRCDIR/vsi_tim.c
cfile_symlink $SRCDIR/vsi_mis.c
cfile_symlink $SRCDIR/vsi_drv.c
cfile_symlink $SRCDIR/vsi_trc.c
cfile_symlink $SRCDIR/vsi_pro.c
if [ "$MEMSUPER" != 0 ]
then
	cfile_symlink $SRCDIR/vsi_ppm.c
fi
cfile_symlink $SRCDIR/xalert.c
cfile_symlink $SRCDIR/route.c
cfile_symlink $SRCDIR/prf_func.c
cfile_symlink $SRCDIR/frm_ext.c
cfile_symlink $SRCDIR/frame_version.c

# OSL

if [ "$OSL" = 1 ]
then

	# drop -o3
	CFLAGS="-mw -x -pw2 -o -me -mt -g -mn"

	SRCDIR=$SRC/gpf/osl

	cfile_plain $SRCDIR/os_com_fl.c
	cfile_plain $SRCDIR/os_drv.c
	cfile_plain $SRCDIR/os_isr.c
	cfile_plain $SRCDIR/os_mem_fl.c
	cfile_plain $SRCDIR/os_mis_fl.c
	cfile_plain $SRCDIR/os_pro_fl.c
	cfile_plain $SRCDIR/os_sem_fl.c
	cfile_plain $SRCDIR/os_tim_fl.c

else

	OBJDIR=../../blobs/osl/fl
	OBJDIR_PS=../../blobs/osl/fl_ps

	OBJS="$OBJS $OBJDIR/os_com.obj"
	OBJS="$OBJS $OBJDIR/os_drv.obj"
	OBJS="$OBJS $OBJDIR/os_evt.obj"
	OBJS="$OBJS $OBJDIR/os_isr.obj"
	if [ "$MEMSUPER" != 0 ]
	then
		OBJS="$OBJS $OBJDIR_PS/os_mem.obj"
		OBJS="$OBJS $OBJDIR_PS/os_mis.obj"
	else
		OBJS="$OBJS $OBJDIR/os_mem.obj"
		OBJS="$OBJS $OBJDIR/os_mis.obj"
	fi
	OBJS="$OBJS $OBJDIR/os_pro.obj"
	OBJS="$OBJS $OBJDIR/os_sem.obj"
	OBJS="$OBJS $OBJDIR/os_tim.obj"

fi