#!/usr/bin/env perl $exe = @ARGV[0]; $exe .= ".out" if (! -f $exe); die if (! -f $exe); use CCS_SCRIPTING_PERL; my $studio=new CCS_SCRIPTING_PERL::CCS_Scripting(); $studio->CCSOpenNamed("*","*",1); # connect to board $studio->TargetReset(); print "loading $exe\n"; $studio->ProgramLoad($exe); sub write_string { my ($studio,$addr,$str) = @_; my $len = length($str); my $i; for ($i=0; $i<$len; $i++) { $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr+$i,8,vec($str,$i,8)); } $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr+$i,8,0); return $i+1; } $addr= $studio->SymbolGetAddress("__c_args"); printf "setting up __c_args at 0x%X\n",$addr;#\n"; $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr,32,$#ARGV+1); for ($i=0,$strings=$addr+($#ARGV+3)*4; $i<=$#ARGV; $i++) { $off = write_string($studio,$strings,@ARGV[$i]); $studio->MemoryWrite($CCS_SCRIPTING_PERL::PAGE_DATA,$addr+4*($i+1),32,$strings); $strings += $off; } $studio->MemoryWrite($SCC_SCRIPTING_PERL::PAGE_DATA,$addr+4*($i+1),32,0); print "running...\n"; $studio->TargetRun();