Пример #1
0
 def gen_major_header(self,tracer_dump): 
     
     self.update_major_header(tracer_dump)
     major_header = Mem(2);
     self.avp_handle.write("\t//  START OF Program & Data\n")
     tracer.total_size = tracer.major_header_size
     for key in tracer.MAJOR_HEADER:
         mem_addr = "%04x"%(tracer.MAJOR_HEADER[key]["position"]*4)
         
         if mem_addr in major_header.mem_lines:
             major_header.check_mem_line(mem_addr, tracer.MAJOR_HEADER[key]["offset"],tracer.MAJOR_HEADER[key]["size"],tracer.MAJOR_HEADER[key]["value"],tracer.MAJOR_HEADER[key]["DOC"])
         else:
             major_header.add_mem_line(mem_addr, tracer.MAJOR_HEADER[key]["offset"],tracer.MAJOR_HEADER[key]["size"],tracer.MAJOR_HEADER[key]["value"],tracer.MAJOR_HEADER[key]["DOC"])
     for key in sorted(major_header.mem_lines):
         
         self.avp_handle.write("\tmem\t0x00%s%s\t0x%s\n"%(self.__replay_addr_h,key,major_header.mem_lines[key]["value"]))
     del(major_header)
Пример #2
0
 def gen_sub_headers(self,subhdr,replay_addr):
     
     sub_hdr = Mem(2);
     for key in subhdr:
         if eq(key,"hdr_size") or eq(key,"offset"):
             continue
         else:
             mem_addr = "%04x"%(subhdr[key]["position"]*4 + tracer.total_size)
             
             if mem_addr in sub_hdr.mem_lines:
                 sub_hdr.check_mem_line(mem_addr,subhdr[key]["offset"],subhdr[key]["size"],subhdr[key]["value"],subhdr[key]["DOC"])
             else:
                 sub_hdr.add_mem_line(mem_addr,subhdr[key]["offset"],subhdr[key]["size"],subhdr[key]["value"],subhdr[key]["DOC"])
             
     for key in sorted(sub_hdr.mem_lines):
         self.avp_handle.write("\tmem\t0x00%s%s\t0x%s\n"%(replay_addr,key,sub_hdr.mem_lines[key]["value"]))
     del(sub_hdr)
Пример #3
0
 def gen_major_header_type2(self,tracer_dump,replay_addr): 
     if not tracer_dump["occur"]:
         return
     self.update_major_header_type2(tracer_dump)
     major_header = Mem(2);
     self.avp_handle.write("\t//  TRACER DUMP TYPE 2\n")
     tracer.total_size = tracer.major_header_size
     for key in tracer.MAJOR_HEADER_type2:
         mem_addr = "%04x"%(tracer.MAJOR_HEADER_type2[key]["position"]*4)
         
         if mem_addr in major_header.mem_lines:
             major_header.check_mem_line(mem_addr, tracer.MAJOR_HEADER_type2[key]["offset"],tracer.MAJOR_HEADER_type2[key]["size"],tracer.MAJOR_HEADER_type2[key]["value"],tracer.MAJOR_HEADER_type2[key]["DOC"])
         else:
             major_header.add_mem_line(mem_addr, tracer.MAJOR_HEADER_type2[key]["offset"],tracer.MAJOR_HEADER_type2[key]["size"],tracer.MAJOR_HEADER_type2[key]["value"],tracer.MAJOR_HEADER_type2[key]["DOC"])
     for key in sorted(major_header.mem_lines):
         
         self.avp_handle.write("\tmem\t0x00%s%s\t0x%s\n"%(replay_addr,key,major_header.mem_lines[key]["value"]))
     del(major_header)
Пример #4
0
 def gen_prologs(self,prolog):
     
     avp_prolog = Mem(2);
     for key in prolog:
         if eq(key,"prolog_size") or eq(key,"offset"):
             continue
         else:
             mem_addr = "%04x"%(prolog[key]["position"]*4 + tracer.total_size)
             if mem_addr in avp_prolog.mem_lines:
                 #prolog[key]["value"]= self.adjust_data(prolog[key]["size"],prolog[key]["value"])
                 avp_prolog.check_mem_line(mem_addr,prolog[key]["offset"],prolog[key]["size"],prolog[key]["value"],prolog[key]["DOC"])
             else:
                 avp_prolog.add_mem_line(mem_addr,prolog[key]["offset"],prolog[key]["size"],prolog[key]["value"],prolog[key]["DOC"])
             
     for key in sorted(avp_prolog.mem_lines):
         self.avp_handle.write("\tmem\t0x00%s%s\t0x%s\n"%(self.__replay_addr_h,key,avp_prolog.mem_lines[key]["value"]))
         
     del(avp_prolog)