]>
Commit | Line | Data |
---|---|---|
ea11fc17 DSH |
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(); |