]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blob - halcogen/halcogen-cleanup.sh
Update/add files for automatic conversion of HalCoGen output to RPP structure
[pes-rpp/rpp-lib.git] / halcogen / halcogen-cleanup.sh
1 #!/bin/sh
2
3 # This script attempts to modify code from HalCoGen for use with the
4 # RPP project.
5 #
6 # Usage: halcogen-cleanup.sh <file1> [<file2>...]
7
8 DIR=""
9
10 while [ ${1#--} != $1 ]; do
11     case $1 in
12         --output|--dir) DIR=$2; shift;;
13     esac
14     shift;
15 done
16
17 for i in "$@";
18 do
19     dst=$i
20     case $(basename $i) in
21         # Do not rename these files
22         *_*) ;;
23         system.*) ;;
24         notification.*) ;;
25         MemMap.h) ;;
26         dabort.asm) ;;
27         # Rename the rest
28         pinmux.*)
29             dst="$(dirname $i)/sys_$(basename $i)";;
30         *)
31             dst="$(dirname $i)/ti_drv_$(basename $i)";;
32     esac
33
34     case $dst in
35         *.h)   dst=include/sys/$(basename $dst);;
36         *.c)   dst=src/sys/$(basename $dst);;
37         *.asm) dst=src/sys/asm/$(basename $dst);;
38     esac
39
40     dst=${DIR}${dst}
41     mkdir -p $(dirname $dst)
42     if [ $i != $dst ]; then
43         cp $i $dst
44     fi
45
46     dos2unix "$dst"
47     sed --in-place \
48         -e '/\/\* USER CODE BEGIN/d' \
49         -e '/\/\* USER CODE END \*\//d' \
50         -e 's/uint32\([^_]\)/uint32_t\1/g' \
51         -e 's/uint64\([^_]\)/uint64_t\1/g' \
52         -e 's/#include "reg_/#include "sys\/reg_/' \
53         -e 's/#include "sys_common.h"/#include "base.h"/' \
54         -e 's/#include "system.h/#include "sys\/system.h/' \
55         -e 's/#include "sys_/#include "sys\/sys_/' \
56         -e 's/#include "\(...\)\.h/#include "sys\/ti_drv_\1.h/' \
57         -e 's/#include "pinmux.h"/#include "sys\/sys_pinmux.h"/' \
58         "$dst"
59
60     case "$dst" in
61         */sys_pinmux.h)
62             perl -pwi ../add-pinmux-comments.pl $dst
63             perl -i -pwe 'if (/#include \"sys.reg_pinmux.h\"/) { print "#include \"base.h\"\n"; }' $dst
64             perl -i -nwe 'print unless /void pinmuxGetConfigValue/' $dst
65             ;;
66         */sys_pinmux.c)
67             perl -i -pwe 's/^\s*$/\n/' $dst
68             perl -i -pwe 's|#include "sys/reg_system.h"|#include "sys/system.h"|' $dst
69             # Delete pinmuxGetConfigValue function
70             perl -i -nwe 'print unless /@fn void pinmuxGetConfigValue/../^}/' $dst
71             ;;
72     esac
73 done