def main(): """Entry Point""" version = '0.3.12' # Parser handling parser = argparse.ArgumentParser( description="Memory Map File Analyser for ARM mbed\nversion %s" % version) parser.add_argument( 'file', type=argparse_filestring_type, help='memory map file') parser.add_argument( '-t', '--toolchain', dest='toolchain', help='select a toolchain used to build the memory map file (%s)' % ", ".join(MemapParser.toolchains), required=True, type=argparse_uppercase_type(MemapParser.toolchains, "toolchain")) parser.add_argument( '-o', '--output', help='output file name', required=False) parser.add_argument( '-e', '--export', dest='export', required=False, default='table', type=argparse_lowercase_hyphen_type(MemapParser.export_formats, 'export format'), help="export format (examples: %s: default)" % ", ".join(MemapParser.export_formats)) parser.add_argument('-v', '--version', action='version', version=version) parser.add_argument('-d', '--detailed', action='store_true', help='Displays the elements in "Misc" in a detailed fashion', required=False) parser.add_argument('--max-depth', dest='max_depth', type=int, help='Displays the elements in "Misc" in a detailed fashion', required=False, default=None) # Parse/run command if len(sys.argv) <= 1: parser.print_help() sys.exit(1) args = parser.parse_args() # Create memap object memap = MemapParser(depth=(args.max_depth or (MemapParser.MAXDEPTH if args.detailed else 2))) # Parse and decode a map file if args.file and args.toolchain: if memap.parse(args.file, args.toolchain) is False: sys.exit(0) # Write output in file if args.output != None: memap.generate_output(args.export, args.output) else: # Write output in screen memap.generate_output(args.export) sys.exit(0)
def get_default_options_parser(add_clean=True, add_options=True): parser = ArgumentParser() targetnames = TARGET_NAMES targetnames.sort() toolchainlist = list(TOOLCHAINS) toolchainlist.sort() parser.add_argument( "-m", "--mcu", help="build for the given MCU (%s)" % ', '.join(targetnames), metavar="MCU", type=argparse_many(argparse_force_uppercase_type(targetnames, "MCU"))) parser.add_argument( "-t", "--tool", help="build using the given TOOLCHAIN (%s)" % ', '.join(toolchainlist), metavar="TOOLCHAIN", type=argparse_many( argparse_force_uppercase_type(toolchainlist, "toolchain"))) parser.add_argument("--color", help="print Warnings, and Errors in color", action="store_true", default=False) if add_clean: parser.add_argument("-c", "--clean", action="store_true", default=False, help="clean the build directory") if add_options: parser.add_argument( "-o", "--options", action="append", help= 'Add a build argument ("save-asm": save the asm generated by the compiler, "debug-info": generate debugging information, "analyze": run Goanna static code analyzer")', type=argparse_lowercase_hyphen_type( ['save-asm', 'debug-info', 'analyze'], "build option")) return parser
def get_default_options_parser(add_clean=True, add_options=True): parser = ArgumentParser() targetnames = TARGET_NAMES targetnames.sort() toolchainlist = list(TOOLCHAINS) toolchainlist.sort() parser.add_argument( "-m", "--mcu", help="build for the given MCU (%s)" % ", ".join(targetnames), metavar="MCU", type=argparse_many(argparse_force_uppercase_type(targetnames, "MCU")), ) parser.add_argument( "-t", "--tool", help="build using the given TOOLCHAIN (%s)" % ", ".join(toolchainlist), metavar="TOOLCHAIN", type=argparse_many(argparse_force_uppercase_type(toolchainlist, "toolchain")), ) parser.add_argument("--color", help="print Warnings, and Errors in color", action="store_true", default=False) if add_clean: parser.add_argument("-c", "--clean", action="store_true", default=False, help="clean the build directory") if add_options: parser.add_argument( "-o", "--options", action="append", help='Add a build argument ("save-asm": save the asm generated by the compiler, "debug-info": generate debugging information, "analyze": run Goanna static code analyzer")', type=argparse_lowercase_hyphen_type(["save-asm", "debug-info", "analyze"], "build option"), ) return parser
def main(): """Entry Point""" version = '0.3.12' # Parser handling parser = argparse.ArgumentParser( description="Memory Map File Analyser for ARM mbed\nversion %s" % version) parser.add_argument( 'file', type=argparse_filestring_type, help='memory map file') parser.add_argument( '-t', '--toolchain', dest='toolchain', help='select a toolchain used to build the memory map file (%s)' % ", ".join(MemapParser.toolchains), required=True, type=argparse_uppercase_type(MemapParser.toolchains, "toolchain")) parser.add_argument( '-o', '--output', help='output file name', required=False) parser.add_argument( '-e', '--export', dest='export', required=False, default='table', type=argparse_lowercase_hyphen_type(MemapParser.export_formats, 'export format'), help="export format (examples: %s: default)" % ", ".join(MemapParser.export_formats)) parser.add_argument('-v', '--version', action='version', version=version) parser.add_argument('-d', '--detailed', action='store_true', help='Displays the elements in "Misc" in a detailed fashion', required=False) # Parse/run command if len(sys.argv) <= 1: parser.print_help() sys.exit(1) args = parser.parse_args() # Create memap object memap = MemapParser(detailed_misc=args.detailed) # Parse and decode a map file if args.file and args.toolchain: if memap.parse(args.file, args.toolchain) is False: sys.exit(0) returned_string = None # Write output in file if args.output != None: returned_string = memap.generate_output(args.export, args.output) else: # Write output in screen returned_string = memap.generate_output(args.export) if args.export == 'table' and returned_string: print returned_string sys.exit(0)
def main(): """Entry Point""" version = '0.4.0' # Parser handling parser = argparse.ArgumentParser( description="Memory Map File Analyser for ARM mbed\nversion %s" % version) parser.add_argument('file', type=argparse_filestring_type, help='memory map file') parser.add_argument( '-t', '--toolchain', dest='toolchain', help='select a toolchain used to build the memory map file (%s)' % ", ".join(MemapParser.toolchains), required=True, type=argparse_uppercase_type(MemapParser.toolchains, "toolchain")) parser.add_argument('-d', '--depth', dest='depth', type=int, help='specify directory depth level to display report', required=False) parser.add_argument('-o', '--output', help='output file name', required=False) parser.add_argument('-e', '--export', dest='export', required=False, default='table', type=argparse_lowercase_hyphen_type( MemapParser.export_formats, 'export format'), help="export format (examples: %s: default)" % ", ".join(MemapParser.export_formats)) parser.add_argument('-v', '--version', action='version', version=version) # Parse/run command if len(sys.argv) <= 1: parser.print_help() sys.exit(1) args = parser.parse_args() # Create memap object memap = MemapParser() # Parse and decode a map file if args.file and args.toolchain: if memap.parse(args.file, args.toolchain) is False: sys.exit(0) if args.depth is None: depth = 2 # default depth level else: depth = args.depth returned_string = None # Write output in file if args.output != None: returned_string = memap.generate_output(args.export, \ depth, args.output) else: # Write output in screen returned_string = memap.generate_output(args.export, depth) if args.export == 'table' and returned_string: print returned_string sys.exit(0)
def main(): version = '0.3.11' # Parser handling parser = argparse.ArgumentParser(description="Memory Map File Analyser for ARM mbed\nversion %s" % version) parser.add_argument('file', type=argparse_filestring_type, help='memory map file') parser.add_argument('-t', '--toolchain', dest='toolchain', help='select a toolchain used to build the memory map file (%s)' % ", ".join(MemapParser.toolchains),\ required=True, type=argparse_uppercase_type(MemapParser.toolchains, "toolchain")) parser.add_argument('-o', '--output', help='output file name', required=False) parser.add_argument('-e', '--export', dest='export', required=False, default='table', type=argparse_lowercase_hyphen_type(MemapParser.export_formats,'export format'),\ help="export format (examples: %s: default)" % ", ".join(MemapParser.export_formats)) parser.add_argument('-v', '--version', action='version', version=version) # Parse/run command if len(sys.argv) <= 1: parser.print_help() sys.exit(1) args, remainder = parser.parse_known_args() # Create memap object memap = MemapParser() # Parse and decode a map file if args.file and args.toolchain: if memap.parse(args.file, args.toolchain) is False: sys.exit(0) # Write output in file if args.output != None: memap.generate_output(args.export, args.output) else: # Write output in screen memap.generate_output(args.export) sys.exit(0)