Ejemplo n.º 1
0
 def check_mdumps(self, mem_dumps):
     succ = True
     for md in mem_dumps:
         s = md.split(":")
         if len(s) == 2:
             md = os.path.abspath(s[0])
             rf = os.path.join(self.dirname, s[1])
         else:
             n = os.path.split(os.path.abspath(md))[1]
             rf = os.path.join(self.dirname, n + ".ref")
         if not os.path.isfile(md):
             print_red("Cannot find expected memory dump %s" % md)
             succ = False
         elif not os.path.isfile(rf):
             print_red("No reference file provided for %s" % md)
             succ = False
         else:
             dump = read_vlog_hexdump(md)
             dref = read_vlog_hexdump(rf)
             diff = compare_vlog_hexdump(dump=dump, ref=dref, ignore_undef=not self.mem_strict)
             if len(diff) > 0:
                 print_red("Memory dump %s does not match reference" " in %d locations" % (md, len(diff)))
                 succ = False
                 if len(diff) < 64:
                     for adr, val in sorted(diff.iteritems()):
                         if val[0] != None:
                             print_yellow("Miss-match @%d, out=%d, ref=%d" % (adr, val[0], val[1]))
                         else:
                             print_yellow("Miss-match @%d, out=undef, ref=%d" % (adr, val[1]))
                     break
     return succ
Ejemplo n.º 2
0
def join_pe_dmem_dump(path, num_pe, pat='pe{0}.dmem.dump'):
    d = [read_vlog_hexdump(os.path.join(path, pat.format(i)))
         for i in range(num_pe)]
    join_d = {}
    for k in d[0].keys():
        for i in range(num_pe):
            join_d[k*num_pe + i] = d[i][k] if k in d[i] else None
    return join_d
Ejemplo n.º 3
0
def join_pe_dmem_dump(path, num_pe, pat='pe{0}.dmem.dump'):
    d = [
        read_vlog_hexdump(os.path.join(path, pat.format(i)))
        for i in range(num_pe)
    ]
    join_d = {}
    for k in d[0].keys():
        for i in range(num_pe):
            join_d[k * num_pe + i] = d[i][k] if k in d[i] else None
    return join_d
Ejemplo n.º 4
0
 def check_mdumps(self, mem_dumps):
     succ = True
     for md in mem_dumps:
         s = md.split(':')
         if len(s) == 2:
             md = os.path.abspath(s[0])
             rf = os.path.join(self.dirname, s[1])
         else:
             n = os.path.split(os.path.abspath(md))[1]
             rf = os.path.join(self.dirname, n + '.ref')
         if not os.path.isfile(md):
             print_red('Cannot find expected memory dump %s' % md)
             succ = False
         elif not os.path.isfile(rf):
             print_red('No reference file provided for %s' % md)
             succ = False
         else:
             dump = read_vlog_hexdump(md)
             dref = read_vlog_hexdump(rf)
             diff = compare_vlog_hexdump(dump=dump,
                                         ref=dref,
                                         ignore_undef=not self.mem_strict)
             if len(diff) > 0:
                 print_red('Memory dump %s does not match reference'\
                               ' in %d locations'%(md, len(diff)))
                 succ = False
                 if len(diff) < 64:
                     for adr, val in sorted(diff.iteritems()):
                         if (val[0] != None):
                             print_yellow('Miss-match @%d, out=%d, ref=%d' %
                                          (adr, val[0], val[1]))
                         else:
                             print_yellow(
                                 'Miss-match @%d, out=undef, ref=%d' %
                                 (adr, val[1]))
                     break
     return succ
Ejemplo n.º 5
0
 def load_mem_content(self, mem_file, m_type, word_size):
     d = read_vlog_hexdump(mem_file)
     last_adr = -10
     curr_start = -10
     curr_blk = []
     c = 0
     for adr in sorted(d.iterkeys()):
         if adr != (last_adr + 1):
             if len(curr_blk) > 0:
                 c += self.send_mem_content(m_type, curr_start, curr_blk,
                                            word_size)
             curr_blk = []
             curr_start = adr
         curr_blk.append(d[adr])
         last_adr = adr
     if len(curr_blk) > 0:
         c += self.send_mem_content(m_type, curr_start, curr_blk, word_size)
     return c
Ejemplo n.º 6
0
 def load_mem_content(self, mem_file, m_type, word_size):
     d = read_vlog_hexdump(mem_file)
     last_adr = -10
     curr_start = -10
     curr_blk   = []
     c = 0
     for adr in sorted(d.iterkeys()):
         if adr != (last_adr+1):
             if len(curr_blk) > 0:
                 c += self.send_mem_content(
                     m_type, curr_start, curr_blk, word_size)
             curr_blk = []
             curr_start = adr
         curr_blk.append(d[adr])
         last_adr = adr
     if len(curr_blk) > 0:
         c += self.send_mem_content(m_type, curr_start, curr_blk, word_size)
     return c