Add support for Android 5, both 32- and 64-bit cases.
[oweals/openssl.git] / c6x / run6x
1 #!/usr/bin/env perl
2
3 $exe  = @ARGV[0];
4 $exe .= ".out" if (! -f $exe);
5 die if (! -f $exe);
6
7 use CCS_SCRIPTING_PERL;
8
9 my $studio=new CCS_SCRIPTING_PERL::CCS_Scripting();
10
11 $studio->CCSOpenNamed("*","*",1);       # connect to board
12 $studio->TargetReset();
13
14 print "loading $exe\n";
15 $studio->ProgramLoad($exe);
16
17 sub write_string {
18     my ($studio,$addr,$str) = @_;
19     my $len = length($str);
20     my $i;
21
22     for ($i=0; $i<$len; $i++) {
23         $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr+$i,8,vec($str,$i,8));
24     }
25     $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr+$i,8,0);
26
27     return $i+1;
28 }
29
30 $addr= $studio->SymbolGetAddress("__c_args");
31 printf "setting up __c_args at 0x%X\n",$addr;#\n";
32
33 $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr,32,$#ARGV+1);
34
35 for ($i=0,$strings=$addr+($#ARGV+3)*4; $i<=$#ARGV; $i++) {
36     $off = write_string($studio,$strings,@ARGV[$i]);
37     $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr+4*($i+1),32,$strings);
38     $strings += $off;
39 }
40 $studio->MemoryWrite($SCC_SCRIPTING_PERL::PAGE_DATA,$addr+4*($i+1),32,0);
41
42 print "running...\n";
43 $studio->TargetRun();