一种解析芯片寄存器运行状态的方法和系统的制作方法_2

文档序号:9217100阅读:来源:国知局
JSP、C、C++、ini等,即本发明可以应用于各种文件格式。由于这些文件格式的使用都属于公知技术,在此不加详述。为了方便说明,下面的芯片寄存器文件都采用数据库表格为例进行描述。
[0019]举例,在数据库的表格中定义一系列字段,用于表示寄存器信息。定义的字段数量可以是一个,也可以是多个,因从该系列字段的内容恢复出一个寄存器信息的方式的不同而不同。这里,一般来说,以寄存器地址作为主关键字(primary key)。一个寄存器信息用表格的一个记录来保存,这样一个芯片手册(或数据手册,Datasheet)中相关的寄存器信息的描述,被保存在一个数据库表格的多个记录中;不同的芯片手册可被制作成不同的数据库表格。
[0020]步骤102、打开一个芯片寄存器文件,以约定规则恢复出对应的芯片寄存器地址清单。
[0021]在步骤101所述用户接口中,以芯片寄存器文件格式对应的外部程序打开默认路径或用户指定路径的一个芯片寄存器文件;遍历所述芯片寄存器文件,以约定规则恢复出所包含的寄存器信息;提取各寄存器信息中的寄存器地址构成一个芯片寄存器地址清单。
[0022]举例,芯片寄存器文件的格式为数据库表格时,遍历一个数据库表格中的记录,从各个记录的各个字段中按照约定规则恢复出对应的寄存器信息;提取各寄存器信息中的寄存器地址,构成一个芯片寄存器地址清单。这里,为了芯片寄存器地址清单的可读性,可多包含几个信息。例如,芯片寄存器地址清单包含寄存器地址及其对应的寄存器名称。
[0023]步骤103、在用户接口中以列表或树状结构呈现芯片寄存器地址清单,且对寄存器信息能做增加、修改、删除、查询和排序的操作。
[0024]在步骤101所述用户接口的界面上安排一个列表、表格或树状结构,用于显示从芯片寄存器文件中恢复出的芯片寄存器地址清单。
[0025]举例,芯片寄存器文件的格式为数据库表格时,所述增加、修改、删除、查询和排序的操作,是数据库的公知技术,在此也不多详述。
[0026]步骤104、在芯片寄存器地址清单中选择一个寄存器地址,以约定规则恢复出对应的寄存器信息并显示。
[0027]在步骤103所述用户接口中的列表、表格或树状结构中,通过选择或查询的方式,获得要关注的寄存器地址;遍历所述芯片寄存器文件,找到和寄存器地址对应的寄存器信息的格式文本;以约定规则恢复出该寄存器地址的寄存器信息。
[0028]举例,芯片寄存器文件的格式为数据库表格时,遍历一个数据库表格中的记录,找到寄存器地址字段(一般地,为该表格的主关键字)的值和要查询的寄存器地址相等的记录,从该记录的各个字段中恢复出对应的寄存器信息。
[0029]步骤105、显示恢复出的寄存器信息。
[0030]在步骤101所述用户接口可被配置成呈现出帮助用户以一般的分层方式显示寄存器信息的直观表不。
[0031]举例,在所述用户接口的界面上安排若干文本框或控件,用于显示寄存器信息的第一层级寄存器简要描述和第二层级各位段(Bit Field)描述。这里,可以借鉴芯片手册的寄存器描述风格,为寄存器的每个比特位设立一个序号标签,在标签后安排若干文本框或控件,用于显示该比特位所属的位段名称、位段读写属性;对于第二层级各位段(BitField)的其他描述或完整描述,以及第三层级各位段枚举值描述,为寄存器的每个比特位另外设立一个按钮或控件,当该按钮或控件被点击或激活时,在一个公共的文本框或控件中显示该比特位所属位段的详细描述。
[0032]这里,在对寄存器信息的显示进行了层次安排之后,在所述用户接口的界面上首先看到的是第一层级寄存器简要描述和第二层级各位段描述的部分,简洁直观;由于对寄存器各位段信息实现了按需获取,寄存器各位段信息的显示共用一个显示栏或控件,提高了所述用户接口的灵活性。
[0033]步骤106、对于选择的寄存器地址和给定的寄存器值,以约定规则解析出该寄存器地址的寄存器取给定的寄存器值时所表达的芯片寄存器运行状态分析报告。
[0034]一般地,在调试芯片的过程中,为了获得一款芯片的特定配置或状态,需要先获取该芯片中用于表述该特定配置或状态的寄存器的值,然后获得该寄存器各位段的取值,最后根据该芯片的芯片手册中该寄存器各位段枚举值的描述,得到该芯片的该寄存器的运行状态。
[0035]具体地,在步骤105所述显示寄存器信息的基础上,在所述用户接口的界面上提供一个文本框或控件,用于输入寄存器值。把该寄存器值转换成二进制值;比对寄存器信息的第二层级各位段描述,得到寄存器各位段的二进制取值;比对寄存器信息的第三层级各位段枚举值描述,得到寄存器各位段取当前二进制值时代表的运行状态;汇总寄存器各位段的运行状态形成该寄存器的运行状态分析报告。这里,考虑到用户的使用习惯,可以在所述用户接口的界面中直接对该报告内容进行显示。
[0036]更进一步,在所述用户接口的界面上为寄存器包含的每个比特位设立一个复选框或控件,用复选框或控件的点选或选择状态表示对应比特位的值为I或O,用于显示给定的寄存器值的二进制值。需要说明的是,反过来,寄存器包含的每个比特位一一对应的复选框或控件的点选或选择状态的改变,还可以作为二进制寄存器值的一种输入。
[0037]步骤107、根据给定的一系列寄存器地址和寄存器值,以约定规则解析出各个寄存器取对应寄存器值时所表达的各个芯片寄存器运行状态分析报告,汇总后形成该系列寄存器取对应寄存器值时所表达的芯片运行状态分析报告。
[0038]步骤106是对单个寄存器值的解析,为了实现对多个寄存器值的解析,需要以某种方式获得各个寄存器值对应的寄存器地址。将一系列寄存器地址和寄存器值保存在一个格式文本中,寄存器地址的数量等于或少于寄存器值的数量,从格式文本中能以约定读取规则获得各寄存器值对应的寄存器地址。
[0039]举例,格式文本为txt文本时,每一行保存有若干以空格为间隔的值,第一个值设定为寄存器起始地址,第二个值开始起均为寄存器值;第一个寄存器值的寄存器地址为寄存器起始地址;该行第N (N>=2)个寄存器值对应的寄存器地址的大小,是在该行第(N-1)个寄存器值对应的寄存器地址的大小的递增;递增步长的大小由用户依据不同的解析场景自行设置。
[0040]在某些场景下,只需要对所述一系列寄存器地址中的一部分寄存器进行解析。针对这种场景,采用存有若干寄存器地址的寄存器过滤清单。如果启用寄存器过滤清单,则只有在寄存器过滤清单中的寄存器才被解析;如果不启用,则不对寄存器进行过滤。
[0041]在所述用户接口的界面中,指定三个文本的路径和一个值的输入:
(O寄存器地址和寄存器值清单文本,用于给定一系列寄存器地址和对应的寄存器值;
(2)寄存器过滤清单文本,用于进行寄存器过滤;
(3)芯片运行状态分析报告文本,用于存放给定寄存器值的一系列寄存器的运行状态分析报告;
(4)寄存器地址递增步长文本框或控件,用于输入寄存器地址递增步长。
[0042]所述文本的格式可以包括txt、可拓展标记语言XML、word, excel、便携式文档pdf、超文本链接标识语言html、JSP、C、C++、ini等,即本发明可以应用于各种文件格式。由于这些文件格式的使用都属于公知技术,在此也不加详述。
[0043]对多个寄存器值的解析过程可分为:
(I)从寄存器地址和寄存器值清单文本中获得一个寄存器地址及其对应的寄存器值,这里寄存器值对应的寄存器地址的大小要参考寄存器地址递增步长来计算。
[0044](2)判断用户是否启用了寄存器过滤清单。如果启用,则遍历寄存器过滤清单文本,如果当前寄存器地址在寄存器过滤清单文本中,则进行下一步;如果用户未启用寄存器过滤清单,也进行下一步;其他情况下,返回上一步继续进行操作。
[0045](3)遍历芯片寄存器文件,以约定规则恢复出当前寄存器地址对应的寄存器信息。
[0046](4)将寄存器值转换成二进制值。
[0047](5)将转换后的二进制值跟当前寄存器地址对应的寄存器信息的第二层级各位段描述进行比对,得到当前寄存器各位段的二进制取值。
[0048](6)对比当前寄存器地址对应的寄存器信息的第三层级各位段枚举值描述,得到寄存器各位段取当前二进制值时代表的运行状态,汇总后形成该寄存器运行状态分析报生口 ο
[0049](7)把被解析的各个寄存器运行状态分析报告进行汇总,保存到所述芯片运行状态分析报告文本中。
[0050]针对芯片领域存在的大端优先模式(big endian)和小端优先模式(littleendian)的区别,在所述用户接口中提供大端优先模式和小端优先模式的选择。选择小端优先模式时,在寄存器值进行解析前,先做小端优先模式到大端优先模式的转换;选择大端优先模式时,不需要对待解析的寄存器值进行模式转换。
[0051]以下介绍本发明一种解析芯片寄存器运行状态的方法的第二实施例,图2示出了该方法第二实施例的流
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1