[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/tools/MemoryUtility/QueryDiscardedSym.pl b/mcu/tools/MemoryUtility/QueryDiscardedSym.pl
new file mode 100644
index 0000000..b92c693
--- /dev/null
+++ b/mcu/tools/MemoryUtility/QueryDiscardedSym.pl
@@ -0,0 +1,147 @@
+#!/usr/bin/perl
+#
+# Copyright Statement:
+# --------------------
+# This software is protected by Copyright and the information contained
+# herein is confidential. The software may not be copied and the information
+# contained herein may not be used or disclosed except with the written
+# permission of MediaTek Inc. (C) 2006
+#
+# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+# AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+# NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+# SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+# SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+#
+# BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+# LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+# AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+# OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+#
+#*****************************************************************************
+#*
+#* Filename:
+#* ---------
+#* QueryDiscardedSym.pl
+#*
+#* Project:
+#* --------
+#*
+#*
+#* Description:
+#* ------------
+#*
+#*
+#*
+#* Author:
+#* -------
+#* Carl Kao (mtk08237)
+#*
+#*------------------------------------------------------------------------------
+#* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+#*============================================================================
+#****************************************************************************/
+use strict;
+BEGIN { push @INC, "./" , '../', './tools/', './tools/MemoryUtility/' }
+use MapFileParser;
+
+my ($option, $file1, $file2) = @ARGV;
+
+if(($option eq "-Q") || ($option eq "-q"))
+{
+ MapFileParser::ParseMAP($file1);
+ my %discard;
+ MapFileParser::GetDiscardSymbol(\%discard);
+ ListDiscardedSymbols(\%discard);
+}
+elsif(($option eq "-C") || ($option eq "-c"))
+{
+ MapFileParser::ParseMAP($file1);
+ my %discard1;
+ MapFileParser::GetDiscardSymbol(\%discard1);
+
+ MapFileParser::ParseMAP($file2);
+ my %discard2;
+ MapFileParser::GetDiscardSymbol(\%discard2);
+
+ DiffDiscardedSymbols(\%discard1, \%discard2);
+}
+
+
+
+
+sub ListDiscardedSymbols
+{
+ my ($DiscardSym_href) = @_;
+ print "SymbolName Size \n";
+ print "*********************************************************************************************************************\n";
+ foreach my $key (sort keys %$DiscardSym_href)
+ {
+ $~ = "AAA";
+ format AAA =
+@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+$key,$DiscardSym_href->{$key}
+.
+write;
+ }
+}
+
+
+sub DiffDiscardedSymbols
+{
+ my ($DiscardSym1_href, $DiscardSym2_href) = @_;
+ my %CompareDiscard;
+ foreach my $key1 (sort keys %$DiscardSym1_href)
+ {
+ $CompareDiscard{$key1} = [$DiscardSym1_href->{$key1}, ""];
+ }
+ foreach my $key2 (keys %$DiscardSym2_href)
+ {
+ if(!exists $CompareDiscard{$key2})
+ {
+ $CompareDiscard{$key2} = ["", $DiscardSym2_href->{$key2}];
+ }
+ else
+ {
+ $CompareDiscard{$key2}->[1] = $DiscardSym2_href->{$key2};
+ }
+ }
+ print " $file1 \nvs. $file2\n";
+ print "Size1 Size2 SymbolName \n";
+ print "*********************************************************************************************************************\n";
+ my ($nTotalSize1, $nTotalSize2) = (0,0);
+ foreach my $key (sort keys %CompareDiscard)
+ {
+# print $key, $CompareDiscard{$key}->[0] , $CompareDiscard{$key}->[1] ."\n";
+ next if($CompareDiscard{$key}[0] eq $CompareDiscard{$key}[1]);
+ $nTotalSize1 += $CompareDiscard{$key}[0];
+ $nTotalSize2 += $CompareDiscard{$key}[1];
+ $~ = "SYMBOLS";
+ format SYMBOLS =
+@<<<<<<<<<<<<@<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+$CompareDiscard{$key}[0],$CompareDiscard{$key}[1],$key
+.
+write;
+ }
+ print "*********************************************************************************************************************\nTotal\n";
+ $~ = "TOTALDIFF";
+ format TOTALDIFF =
+@<<<<<<<<<<<<@<<<<<<<<<<<<
+$nTotalSize1,$nTotalSize2
+.
+write;
+}
\ No newline at end of file