# ooh! test input command file for elftosb 2!
options {
searchPath = "elftosb2:elftosb2/elf_test_files";
maximumLoadBlock = 4K;
sectionAlign = 4K;
productVersion = "4.4.720";
componentVersion = "4.4.999";
coalesce = yes;
}
constants {
ocram_start = 0;
ocram_size = 256K;
ocram_end = ocram_start + ocram_size - 1;
prec_test = 1 + 5 * 10;
paren_test = (1 + 5) * 10;
a = 123;
foo = (1 + 0x1cf1.w).w ^ 5 + a;
bar1 = 0xa << 2;
bar2 = bar1 | 0x1000;
bar3 = bar2 & 0x5555;
bar4 = bar3 >> 1;
mod = 35 % 16;
n = -1;
x = 1 + -2;
c1 = 'x';
c2 = 'oh';
c4 = 'shit';
# test int size promotion
x = 0xff.b;
y = 0x1234.h;
z = 0x55aa55aa.w;
xx = x - (x / 2.b); # should produce byte
xy = x + y; # should produce half-word
xz = x - z; # should produce word
yz = y + z; # should produce word
xh = x.h;
xw = x.w;
}
sources {
hostlink = extern(0);
redboot = extern(1);
sd_player_elf="elftosb2/elf_test_files/sd_player_gcc";
sd_player_srec="elftosb2/elf_test_files/sd_player_gcc.srec";
datafile="elftosb2/elf_test_files/hello_NOR_arm";
}
#section('foo!') {
# load 0.w > ocram_start..ocram_end; # word fill all ocram with 0
#
# load hostlink; # load all of hostlink source
#
# load 0x1000ffff.w > 0x1000; # load a word to address 0x1000
# load 0x55aa.h > 0x2000; # load a half-word to address 0x2000
# load redboot; # load all sections of redboot source
#
# from hostlink {
# load $.*.text; # load some sections to their natural location
# call :_start; # call function "_start" from hostlink
# call hostlink:foofn; # call function "foofn" from hostlink
#
# call :monkey (1 + 1); # call function "monkey" from hostlink with an argument
#
# load $* > .; # load all sections of hostlink to their natural location
#
# load $.text > 0x1000; # load .text section to address 0x1000
#
# load 0x55.b > 0x0..0x4000; # fill 0 through 0x4000 with byte pattern 0x55
# }
#
# load $*.text from hostlink > .; # load sections match "*.text" from hostlink to default places
#
# jump redboot; # jump to entry point of redboot source
#}
## this section...
#section(2) {
# from sd_player_elf {
# load $* > .;
# call :_start();
# }
#}
#
## and this one are both equivalent except for section ids
#section(3) {
# load $* from sd_player_elf;
# call sd_player_elf:_start();
#}
#
#section(100) {
# # set the value of a symbol
# load hostlink;
# load 0x5555.h > hostlink:g_USBPID;
#
# # load a string to memory
# load "this is a string" > 0x1e0;
#}
section (32) {
load sd_player_srec;
call sd_player_srec;
}
#section('rsrc') <= datafile;