FreeCalypso > hg > fc-selenite
changeset 13:f10cbd8a51c4
scripts: pruned import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 21:34:56 +0000 |
parents | e825175be40d |
children | 987aed835df0 |
files | scripts/cfg-template scripts/config-headers.sh scripts/make-rv-swe-hdr.sh scripts/make-version.sh scripts/mk-component.sh scripts/ti/make_cmd.pl |
diffstat | 6 files changed, 582 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/cfg-template Sun Jul 15 21:34:56 2018 +0000 @@ -0,0 +1,93 @@ +[board.cfg] + +BOARD 41 +DSAMPLE_FULL_COLOR var + +[chipset.cfg] + +ANLG_FAM 2 +ANLG_PG 0 +CHIPSET var + +[debug.cfg] + +TI_NUC_MONITOR 0 +TI_PROFILER 0 + +[dio.cfg] + +DIOIL_CONFIG 0 + +[ffs.cfg] + +TARGET 1 +_RVF 1 + +[l1sw.cfg] + +AMR var +CUST 0 +DCO_ALGO 0 +IDS var +L1_12NEIGH 1 +L1_EOTD 0 +L1_EOTD_QBIT_ACC 0 +L1_GPRS var +L1_GTT 0 +L1_MIDI 0 +L1_VOICE_MEMO_AMR var +MELODY_E2 var +OP_L1_STANDALONE 0 +OP_RIV_AUDIO 1 +ORDER2_TX_TEMP_CAL 1 +RAZ_VULSWITCH_REGAUDIO 0 +SECURITY 0 +SPEECH_RECO var +TESTMODE 1 +TRACE_TYPE 4 +VCXO_ALGO 1 + +[r2d.cfg] + +R2D_ASM 0 +R2D_LCD_TEST 0 + +[rf.cfg] + +RF var +RF_FAM var +RF_PA var +RF_PG var + +[rv.cfg] + +RVTOOL 0 +TEST 0 +_GSM 1 + +[swconfig.cfg] + +ALR 1 +BT 0 +DP 0 +DWNLD 1 +GSMLITE 0 +L1_DYN_DSP_DWNLD var +LONG_JUMP 3 +MOVE_IN_INTERNAL_RAM 1 +OP_WCP 0 +PMODE var +RVDATA_INTERNALRAM 0 +SRVC var +TR_BAUD_CONFIG var +WCP_PROF 0 + +[sys.cfg] + +DSP var +STD 6 + +[trace.cfg] + +LAYER_DBG 0xFFFFFFFF +TRACE_LEVEL_FILTER 5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/config-headers.sh Sun Jul 15 21:34:56 2018 +0000 @@ -0,0 +1,177 @@ +#!/bin/sh + +if [ -z "$TARGET" ] +then + echo "Error: TARGET= must be passed via environment" 1>&2 + exit 1 +fi + +if [ -z "$BUILD_DIR" ] +then + echo "Error: BUILD_DIR= must be passed via environment" 1>&2 + exit 1 +fi + +# The following vars will already be set when this script is invoked +# from configure.sh in a production build, but the following defaulting logic +# helps with manual invokation during development. + +if [ -z "$CHIPSET" ] +then + CHIPSET=10 +fi +export CHIPSET + +if [ -z "$DSP" ] +then + DSP=36 +fi +export DSP + +if [ -z "$RF" ] +then + RF=12 +fi +export RF + +if [ -z "$AMR" ] +then + AMR=1 +fi +export AMR + +if [ -z "$L1_DYN_DSP_DWNLD" ] +then + L1_DYN_DSP_DWNLD=1 +fi +export L1_DYN_DSP_DWNLD + +if [ -z "$L1_VOICE_MEMO_AMR" ] +then + L1_VOICE_MEMO_AMR=1 +fi +export L1_VOICE_MEMO_AMR + +if [ -z "$MELODY_E2" ] +then + MELODY_E2=1 +fi +export MELODY_E2 + +if [ -z "$SPEECH_RECO" ] +then + SPEECH_RECO=1 +fi +export SPEECH_RECO + +if [ -z "$GPRS" ] +then + GPRS=1 +fi +export GPRS + +if [ -z "$SRVC" ] +then + SRVC=1 +fi +export SRVC + +if [ -z "$ATP_STATE" ] +then + ATP_STATE=0 +fi +export ATP_STATE + +if [ -z "$FCHG_STATE" ] +then + FCHG_STATE=1 +fi +export FCHG_STATE + +if [ -z "$LCC_STATE" ] +then + LCC_STATE=0 +fi +export LCC_STATE + +if [ -z "$MKS_STATE" ] +then + MKS_STATE=0 +fi +export MKS_STATE + +if [ -z "$PWR_STATE" ] +then + PWR_STATE=0 +fi +export PWR_STATE + +if [ -z "$R2D_STATE" ] +then + R2D_STATE=1 +fi +export R2D_STATE + +if [ -z "$DSAMPLE_FULL_COLOR" ] +then + DSAMPLE_FULL_COLOR=1 +fi +export DSAMPLE_FULL_COLOR + +if [ -z "$TR_BAUD_CONFIG" ] +then + TR_BAUD_CONFIG=TR_BAUD_115200 +fi +export TR_BAUD_CONFIG + +# Derived settings only for the generation of *.cfg headers + +case "$RF" in + 10) + RF_FAM=10 + RF_PA=0 + RF_PG=0 + ;; + 12) + RF_FAM=12 + RF_PA=2 + RF_PG=2 + ;; + *) + echo "Error: RF=$RF setting not understood" 1>&2 + exit 1 +esac +export RF_FAM RF_PA RF_PG + +case "$GPRS" in + 0) + L1_GPRS=0 + PMODE=1 + ;; + 1) + L1_GPRS=1 + PMODE=2 + ;; + *) + echo "Error: GPRS=$GPRS setting not understood" 1>&2 + exit 1 +esac +export L1_GPRS PMODE + +if [ "$SRVC" != 0 ] +then + IDS=1 +else + IDS=0 +fi +export IDS + +# do it! + +set -e + +rm -rf $BUILD_DIR/config +mkdir $BUILD_DIR/config +helpers/cfg-hdr-gen scripts/cfg-template $BUILD_DIR/config +scripts/make-rv-swe-hdr.sh > $BUILD_DIR/config/rv_swe.h +cp targets/$TARGET.h $BUILD_DIR/config/fc-target.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/make-rv-swe-hdr.sh Sun Jul 15 21:34:56 2018 +0000 @@ -0,0 +1,48 @@ +#!/bin/sh + +echo '#ifndef __RV_SWE_H__' +echo '#define __RV_SWE_H__' +echo + +if [ "$ATP_STATE" = 1 ] +then + echo '#define RVM_ATP_SWE' +fi + +echo '#define RVM_AUDIO_SWE' +echo '#define RVM_ETM_SWE' +echo '#define RVM_DAR_SWE' +echo '#define RVM_SPI_SWE' +echo '#define RVM_LLS_SWE' +echo '#define RVM_KPD_SWE' + +if [ "$FCHG_STATE" = 1 ] +then + echo '#define RVM_FCHG_SWE' +fi + +if [ "$LCC_STATE" = 1 ] +then + echo '#define RVM_LCC_SWE' +fi + +if [ "$PWR_STATE" = 1 ] +then + echo '#define RVM_PWR_SWE' +fi + +if [ "$R2D_STATE" = 1 ] +then + echo '#define RVM_R2D_SWE' +fi + +if [ "$MKS_STATE" = 1 ] +then + echo '#define RVM_MKS_SWE' +fi + +echo '#define RVM_RTC_SWE' +echo '#define RVM_FFS_SWE' + +echo +echo '#endif /* __RV_SWE_H__ */'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/make-version.sh Sun Jul 15 21:34:56 2018 +0000 @@ -0,0 +1,14 @@ +#!/bin/sh + +if [ $# != 1 ] +then + echo "usage: $0 component-name" 1>&2 + exit 1 +fi + +echo "static char *verstring_$1 = \"$1 FreeCalypso Magnetite\";" +echo +echo "char *$1_version(void)" +echo '{' +echo " return verstring_$1;" +echo '}'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/mk-component.sh Sun Jul 15 21:34:56 2018 +0000 @@ -0,0 +1,157 @@ +#!/bin/sh + +if [ $# -lt 1 -o $# -gt 2 ] +then + echo "usage: $0 component-lib [flavor]" 1>&2 + exit 1 +fi + +LIBNAME="$1" + +if [ -n "$2" ] +then + recipe_file="components/$1-$2" +else + recipe_file="components/$1" +fi + +if [ ! -f "$recipe_file" ] +then + echo "Error: $recipe_file not found" 1>&2 + exit 1 +fi + +if [ -z "$BUILD_DIR" ] +then + echo "Error: BUILD_DIR= must be passed via environment" 1>&2 + exit 1 +fi + +set -e + +mkdir -p $BUILD_DIR/$LIBNAME + +# beginning of the Makefile +echo "all: $LIBNAME.lib" > $BUILD_DIR/$LIBNAME/Makefile +echo >> $BUILD_DIR/$LIBNAME/Makefile + +# shell functions to be used in the recipes + +make_version() { + case $# in + 1) + echo "$1_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile + echo " ../../scripts/make-version.sh $1 > $1_version.c" \ + >> $BUILD_DIR/$LIBNAME/Makefile + ;; + 2) + echo "$2_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile + echo " ../../scripts/make-version.sh $1 > $2_version.c" \ + >> $BUILD_DIR/$LIBNAME/Makefile + ;; + *) + echo "Error: make_version takes 1 or 2 arguments" 1>&2 + exit 1 + ;; + esac + echo >> $BUILD_DIR/$LIBNAME/Makefile +} + +asm_file() { + if [ $# != 1 ] + then + echo "Error: asm_file takes 1 argument" 1>&2 + exit 1 + fi + objname=`basename "$1" .s`.obj + helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile + helpers/makeline cmd ../../toolwrap/asm470 ${ASMFLAGS} "$1" '$@' \ + >> $BUILD_DIR/$LIBNAME/Makefile + echo >> $BUILD_DIR/$LIBNAME/Makefile + OBJS="$OBJS $objname" +} + +cfile_plain() { + if [ $# != 1 ] + then + echo "Error: cfile_plain takes 1 argument" 1>&2 + exit 1 + fi + objname=`basename "$1" .c`.obj + helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile + case "$objname" in + *[A-Z]*) + helpers/makeline cmd rm -f '$@' \ + >> $BUILD_DIR/$LIBNAME/Makefile + ;; + esac + helpers/makeline cmd ../../toolwrap/cl470 -q -c ${CFLAGS} ${CPPFLAGS} \ + "$1" >> $BUILD_DIR/$LIBNAME/Makefile + case "$objname" in + *[A-Z]*) + objname_lc=`echo $objname | tr A-Z a-z` + helpers/makeline cmd mv $objname_lc $objname \ + >> $BUILD_DIR/$LIBNAME/Makefile + ;; + esac + echo >> $BUILD_DIR/$LIBNAME/Makefile + OBJS="$OBJS $objname" +} + +cfile_str2ind() { + if [ $# != 1 ] + then + echo "Error: cfile_str2ind takes 1 argument" 1>&2 + exit 1 + fi + if [ "$USE_STR2IND" = 1 ] + then + objname=`basename "$1" .c`.obj + pp_name=`echo $1 | sed -e 's/\.c$/.pp/' | tr A-Z a-z` + pp__name=`echo $1 | sed -e 's/\.c$/.pp_/' | tr A-Z a-z` + helpers/makeline dep $objname "$1" \ + >> $BUILD_DIR/$LIBNAME/Makefile + case "$objname" in + *[A-Z]*) + helpers/makeline cmd rm -f '$@' \ + >> $BUILD_DIR/$LIBNAME/Makefile + ;; + esac + helpers/makeline cmd ../../toolwrap/cl470 -q -po -p? -x \ + ${CPPFLAGS} "$1" >> $BUILD_DIR/$LIBNAME/Makefile + helpers/makeline cmd ../../toolwrap/str2ind -a \ + -t ../str2ind.tab -l ../str2ind.log \ + -f "$pp_name" >> $BUILD_DIR/$LIBNAME/Makefile + helpers/makeline cmd ../../toolwrap/cl470 -q -c ${CFLAGS} \ + "$pp__name" >> $BUILD_DIR/$LIBNAME/Makefile + helpers/makeline cmd @rm -f "$pp_name" \ + >> $BUILD_DIR/$LIBNAME/Makefile + helpers/makeline cmd @rm -f "$pp__name" \ + >> $BUILD_DIR/$LIBNAME/Makefile + case "$objname" in + *[A-Z]*) + objname_lc=`echo $objname | tr A-Z a-z` + helpers/makeline cmd mv $objname_lc $objname \ + >> $BUILD_DIR/$LIBNAME/Makefile + ;; + esac + echo >> $BUILD_DIR/$LIBNAME/Makefile + OBJS="$OBJS $objname" + else + cfile_plain "$1" + fi +} + +# invoke the recipe + +SRC=../../src +OBJS= +. "$recipe_file" + +# finish the Makefile + +helpers/makeline dep $LIBNAME.lib ${OBJS} >> $BUILD_DIR/$LIBNAME/Makefile +echo ' ../../toolwrap/ar470 r $@ $^' >> $BUILD_DIR/$LIBNAME/Makefile +echo >> $BUILD_DIR/$LIBNAME/Makefile +echo 'clean:' >> $BUILD_DIR/$LIBNAME/Makefile +echo ' rm -f *.obj *.lib *.c' >> $BUILD_DIR/$LIBNAME/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/ti/make_cmd.pl Sun Jul 15 21:34:56 2018 +0000 @@ -0,0 +1,93 @@ +#!perl + +# generate a dynamic Linker command file +# PARAMETER ARE: + +# 0 : Name of the file with the parameters +# 1 : Name of the Linker command file (output) +# 2 : value of the TOOL_CHOICE variable +# 3 : Name of the Linker command file template +# 4 - (n-1) : Name of the libraries + +#$argcount = @ARGV; +my $lnk_opt_file=$ARGV[0]; +my $cmd_file=$ARGV[1]; +my $toolchoice_type = $ARGV[2]; +my $cmd_file_temp=$ARGV[3]; +my %section; + + +open (TMP,$lnk_opt_file)||die "can't open file\n"; + +# parse the parameter file and construct replacement strings +# +# the file contains entries of the following form +# (BSS_LIBS (.bss)) +# or +# (BSS_LIBS (.bss) CONST_LIBS (.text, .const)) +# or +# (BSS_LIBS (.bss)) (BSS_LIBS (.bss) CONST_LIBS (.text, .const)) +# +# the syntax is as follows, white space and line breaks are not significant +# <ENTRY> := <lp> <PAIR><lp> +# <PAIR> := <name> <SECTION> +# <SECTION> := <lp><free_text><lp> +# <lp> := ( +# <rp> := ) +# <name> := [A-Za-z_]+ +# <free_text> := [^()]+ +# +# each entry will be linked with one library passed on the command line + +my $line; +my $count; +while ($line=<TMP>) { + # find <ENTRY> + while ($line =~ /\((\s*\w+\s*\([^\(\)]+\))+\)/) { + $line = $'; + $match = $&; + # find <PAIR> + while ($match =~ /\s*(\w+)\s*(\([^\(\)]+\))/ ) { + $match = $'; + $section{"$1"} .= "$ARGV[$count+4] $2\n"; + } + $count++; + } +} + +open (TMP1, ">$cmd_file"); +open (TMP,$cmd_file_temp); +while ($line=<TMP>) { + my $replaced = 0; + foreach $key (keys(%section)) { + if ($line =~ /\($key\)/g) { + # insert the Libs + $line = $section{$key}; + $replaced = 1; + } + } + # NEW COMPILER MANAGEMENT + # If use of VISUAL LINKER, needs to manage trampoline download. + # Case of: + # - TOOL_CHOICE == 0 => compiler v1.22e with vlinker v1.9902 + # - TOOL_CHOICE == 3 => compiler & linker v2.54 + + if ($toolchoice_type == 0) { + $line =~ s(COMMENT1START)(/*); + $line =~ s(COMMENT1END)(*/); + $line =~ s(COMMENT2START)(); + $line =~ s(COMMENT2END)(); + } else { + $line =~ s(COMMENT1START)(); + $line =~ s(COMMENT1END)(); + $line =~ s(COMMENT2START)(/*); + $line =~ s(COMMENT2END)(*/); + } + + if ($replaced || !($line =~ /^\s*\$\(\s*\w+\s*\)\s*$/ )) { + print TMP1 $line; + } +} +close TMP; +close TMP1; +unlink $tmp_file;