Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

executable file 21 lines (15 sloc) 1.163 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#!/bin/sh

NM=avr-nm

SYMBOLS=`$NM $* | perl -ne 'print ".global $2\n$2 = 0x$1\n" if(/([0-9a-f]+) [ABDRST] (.+)$/);' | grep -v ^_ | grep -v _reset_vector | grep = | perl -ne 'print "{\"$1\", (char *)$2},\n" if(/(\w+) = (\w+)/)' | wc -l`
SYMBOLS=`expr $SYMBOLS + 1`

echo \#ifndef __SYMBOLS_H__ > symbols.h
echo \#define __SYMBOLS_H__ >> symbols.h
echo \#include '"loader/symbols-def.h"' >> symbols.h
echo "extern const struct symbols symbols[$SYMBOLS];" >> symbols.h
echo \#endif >> symbols.h

echo \#include '"symbols.h"' > symbols.c
echo \#include '<avr/pgmspace.h>' >> symbols.c
$NM $* | perl -ne 'print ".global $2\n$2 = 0x$1\n" if(/([0-9a-f]+) [ABDRST] (.+)$/);' | grep -v ^_ | grep -v _reset_vector | grep = | perl -ne 'print "static const prog_char s_$1 [] = \"$1\";\n" if(/(\w+) = (\w+)/)' | sort >> symbols.c

echo "PROGMEM const struct symbols symbols[] = {" >> symbols.c
avr-nm $* | perl -ne 'print ".global $2\n$2 = 0x$1\n" if(/([0-9a-f]+) [ABDRST] (.+)$/);' | grep -v ^_ | grep -v _reset_vector | grep = | perl -ne 'print "{(const char*)s_$1, (void*)$2},\n" if(/(\w+) = (\w+)/)' | sort >> symbols.c
echo "{(const char *)0, (void*)0} };" >> symbols.c
Something went wrong with that request. Please try again.