CN110187919B - 配置寄存器的装置、方法及*** - Google Patents
配置寄存器的装置、方法及*** Download PDFInfo
- Publication number
- CN110187919B CN110187919B CN201910447596.2A CN201910447596A CN110187919B CN 110187919 B CN110187919 B CN 110187919B CN 201910447596 A CN201910447596 A CN 201910447596A CN 110187919 B CN110187919 B CN 110187919B
- Authority
- CN
- China
- Prior art keywords
- register
- configuration information
- information
- bit
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了配置寄存器的装置、方法及***,涉及嵌入式***开发技术领域。一种配置寄存器的装置包括:上位机,用以获取功能文档中的寄存器信息形成寄存器按比特位配置数据,并将该寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,所述数组中编码有第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息;下位机,用以解析前述按寄存器位宽配置信息数组,并运行配置信息。本发明将其它非寄存器配置信息的操作信息编码至寄存器地址中,减少了空间开销,同时,降低了泄露嵌入式***设计信息的风险。
Description
技术领域
本发明涉及嵌入式***开发技术领域。
背景技术
嵌入式***主要是由中央处理器,存储单元和各种外部设备组成的。在嵌入式***开发过程中,需要配置各种控制寄存器来初始化嵌入式***的内部和/或外部设备,从而使嵌入式***中的各种设备按照预设的工作模式工作。
考虑到性价比以及实时性要求,嵌入式***的驱动软件要求在完成相应功能同时做到代码尽可能小且满足实时性要求。现在常用的配置寄存器的方案包括采用中央处理器配置寄存器和DMA(直接存储器存取)配置寄存器。中央处理器配置寄存器时,是按照比特位信息进行配置,其简单直接,但是需要较大的计算量,并且容易泄露硬件设计信息;DMA配置寄存器时,是按寄存器位宽进行配置,其速度比较快且不占用中央处理器的资源,但是需要预先处理配置信息且配置的寄存器组的地址要连续。上述配置方案还存在如下缺陷:没有统一相关文档信息和代码信息,需要设计人员阅读相关文档(比如技术手册)后才能进行修改代码、编译代码等操作,而不能直接基于二进制文件进行修改调试,降低了开发调试及版本迭代的速度。
另一方面,随着嵌入式***应用越来越广泛,嵌入式***也越来越复杂,其中涉及到的控制寄存器的数量也随之剧增,***中的寄存器可以多达千个,并且每一个寄存器按照嵌入式***的位宽可能包含8、16、32、64个比特位。如果每个寄存器均按比特位配置,以具有一千个寄存器且每个寄存器有64比特全操作为例,由于每一次操作都可以包含读、改、写三个步骤,CPU的运算量可能高达近20万次,如果将处理信息按比特配置的信息存放在代码中,将产生大量的冗余计算信息,会占用较大量的嵌入式***的存储空间。同时,在寄存器初始化时往往需要配置大量的表格和参数,如果配置信息有变化,需要人工重新查找阅读相关文档(比如技术手册)来修改相关配置,重新编译嵌入式***的驱动代码,其不仅增加了人工工作量,还难以保证一致性和正确性,加大了故障发生风险。再则,如果设计人员自己发布源代码,还存在泄露嵌入式***的设计信息的风险。
发明内容
本发明的目的在于:克服现有技术的不足,提供了一种配置寄存器的装置、方法及***。本发明利用嵌入式***中寄存器地址的特征,通过在寄存器配置信息数组中编码第二操作参数,将其它非寄存器配置信息的操作信息编码至寄存器地址中,减少了空间开销;同时,寄存器配置信息数组是纯数据,便于修改,也降低了泄露嵌入式***设计信息的风险,还达到了减少加解密的工作量的效果。
为实现上述目标,本发明提供了如下技术方案:
一种配置寄存器的装置,所述装置包括:
上位机,用以获取功能文档中的寄存器信息形成寄存器按比特位配置数据,并将该寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,所述数组中编码有第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息;
下位机,用以解析前述按寄存器位宽配置信息数组,并运行配置信息。
进一步,所述上位机包括文档解释器引擎和寄存器解释器引擎,
所述文档解释器引擎,用以提取功能文档中有用的寄存器信息,并根据提取的信息形成寄存器按比特位配置数据;
所述寄存器解释器引擎,用以对前述寄存器按比特位配置数据进行转换,生成按寄存器位宽配置信息数组,使得寄存器配置能够被嵌入式***识别。
进一步,所述下位机包括寄存器配置数组解释单元和目标板执行单元;
所述寄存器配置数组解释单元,用以对前述寄存器配置信息数组进行解析;
所述目标板执行单元,用以运行配置信息。
进一步,所述寄存器按比特位配置数据为列表形式,列表中记录有寄存器对应的模块名称、设备名称、寄存器基地址、寄存器名称、寄存器偏移地址、比特名称、比特位置和比特值信息。
进一步,所述按寄存器位宽配置信息数组的结构被配置为包括寄存器组的总个数、寄存器N的地址、寄存器N要配置的值和寄存器N要配置的屏蔽值字段,其中N代表寄存器的编号;
所述第二操作参数放入前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
进一步,所述上位机还包括魔数自定义单元,用以在寄存器编址是8个或16个比特位时,供用户自动定义设置不同的魔数以执行不同的操作;所述操作对应的第二操作参数放到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
进一步,所述上位机还包括操作判定单元,用以在寄存器编址是32个比特位时判断寄存器的地址的最后2比特位是否为非0的其它数字,或者当寄存器编址是64个比特位时判断寄存器的地址的最后3比特位是否为非0的其它数字,并在判定是其它数字时,执行非寄存器配置操作的其它操作;所述其它操作对应的第二操作参数放到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
本发明还提供了一种配置寄存器的方法,其特征在于包括步骤:
获取功能文档中的寄存器信息形成寄存器按比特位配置数据;
将前述寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,在所述数组中编码第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息;
解析前述按寄存器位宽配置信息数组;
将解析内容发送至目标板执行单元。
进一步,还包括修改寄存器配置信息的步骤,
当该步骤涉及调试迭代流程的操作时,判断是否需要迭代,在需要迭代的情况下,输出前述按寄存器位宽配置信息数组供用户修改,根据用户对数组的修改操作信息调试代码。
本发明还提供了一种嵌入式***,包括中央处理器、存储器、外部设备,以及前述的配置寄存器的装置。
本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:利用嵌入式***中寄存器地址的特征,通过在寄存器配置信息数组结构中定义操作参数,将其它非寄存器配置信息的操作信息编码至寄存器地址中,减少了空间开销;同时,寄存器配置信息数组结构是纯数据,便于修改,也降低了泄露嵌入式***设计信息的风险,还达到了减少加解密的工作量的效果。
附图说明
图1为本发明实施例提供的配置寄存器的装置的总体框图。
图2为本发明实施例提供的配置寄存器的装置的模块结构图。
图3为本发明实施例提供的文件传输示例图。
图4为本发明实施例提供的寄存器按比特位配置列表结构的示例图。
图5为本发明实施例提供的按寄存器位宽配置信息数组结构的示例图。
图6为本发明实施例提供的两种情况下开发调试迭代流程的对比图。
具体实施方式
以下结合附图和具体实施例对本发明公开的配置寄存器的装置、方法及***作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
实施例
参见图1所示,公开了一种配置寄存器的装置,所述装置包括上位机和下位机。
所述上位机,用以获取功能文档中的寄存器信息形成寄存器按比特位配置数据,并将该寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,所述数组中编码有第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息。考虑到嵌入式***设备初始化过程中不仅仅是配置寄存器操作,也有其它操作——作为举例而非限制,比如轮询操作、调用其它的函数操作等,因而根据寄存器地址的特征将上述其它操作对应的第二操作参数信息编码到寄存器地址里面,减少空间开销。
所述下位机,用以解析前述按寄存器位宽配置信息数组,并运行配置信息。
所述功能文档,是指记载有寄存器描述信息的文件,所述描述信息,作为举例而非限制,包括但不限于寄存器名称、寄存器地址、寄存器类型、寄存器接口信息、寄存器可选配置参数、寄存器的注释、寄存器域描述、访问权限等寄存器设计信息。
所述功能文档的格式可以为word格式、TXT格式、HTML格式和Excel格式中的一种或多种。所述功能文档优选的具有预设的统一的模板,以便设计人员制作和编辑。
参见图2所示,本实施例中,所述上位机具体可以包括连接的文档解释器引擎和寄存器解释器引擎。
所述文档解释器引擎,用以提取功能文档中有用的寄存器信息,并根据提取的信息形成寄存器按比特位配置数据。
所述寄存器解释器引擎,连接前述文档解释器引擎,用以对前述寄存器按比特位配置数据进行转换,生成按寄存器位宽配置信息数组,使得寄存器配置能够被嵌入式***识别。
所述下位机具体可以包括连接的寄存器配置数组解释单元和目标板执行单元。所述寄存器配置数组解释单元,用以对前述寄存器配置信息数组进行解析。所述目标板执行单元,用以运行配置信息。
作为举例而非限制,利用上述方案配置寄存器的文件传输图参见图3所示。
首先,文档解释器引擎采集功能文档信息,提取功能文档中有用的寄存器信息——比如与寄存器配置参数相关的数据内容,并根据提取的数据内容形成一寄存器按比特位配置列表。
存储于外部设备的功能文档通常为只读文档且冗余信息过多,依靠人工多次查找文档中的寄存器配置关键信息耗时较多,通过前述文档解释器引擎可以智能地提取功能文档中有用的寄存器信息,然后形成寄存器按比特位配置数据,所述配置数据优选的采用列表结构。
其次,通过寄存器解释器引擎将前述寄存器按比特位配置列表转换成按寄存器位宽配置信息数组。其中,在所述按寄存器位宽配置信息数组中,编码有第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息。
寄存器解释器引擎的作用是将用户能看懂的寄存器配置信息转换为嵌入式***能识别(读取)的数据格式,其将原本由下位机执行的大部分计算量转移到上位机上由上位机完成,释放了嵌入式***的计算机资源,加快嵌入式***的执行速度。
寄存器按比特位配置列表的结构参见图4所示,作为优选的方案,所述寄存器按比特位配置列表中可以记录有寄存器对应的模块名称、设备名称、寄存器基地址、寄存器名称、寄存器偏移地址、比特名称、比特位置和比特值信息,比特名称、比特位置和比特值三者一一对应。如此,每个寄存器和寄存器的比特位信息都清晰的呈现出来,用户尤其是设计人员无需阅读原本纷繁复杂的设备文档即可以完成设备驱动的配置。
参见图5所示,作为优选,所述按寄存器位宽配置信息数组的结构被配置为包括寄存器组的总个数、寄存器N的地址、寄存器N要配置的值和寄存器N要配置的屏蔽值字段,其中N代表寄存器的编号。作为举例而非限制,比如所述N可以取0,1,2,3......这样的整数。当然,需要说明的是,本发明中所述的编号,其可以是序号也可以是名称号,其不应作为对本发明的限制。
按寄存器位宽配置信息数组是一个即可以人为解读而且嵌入式***也能识别(读取)的数据形式,在需要修改配置信息,用户可以直接修改该数组,可以加快用户开发调试的速度。
所述第二操作参数,被放入到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
具体实施时,所述上位机可以设置有魔数(magic number)自定义单元,用以在寄存器编址是8个或16个比特位时,供用户自动定义设置不同的魔数以执行不同的操作;所述操作对应的第二操作参数放到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
所述魔数(magic number),是由用户定义的一些特殊的字符来指导程序执行预设的操作的字符串和/或数字常量。作为举例而非限制,比如用户可以通过魔数来定义字符串“0x5A5A5A5A”对应于CPU执行轮询操作,定义字符串“0x5A5A5A5B”对应于CPU执行调用函数操作等。
以及,所述上位机还可以设置有操作判定单元,用以在寄存器编址是32个比特位时判断寄存器的地址的最后2比特位是否为非0的其它数字,或者当寄存器编址是64个比特位时判断寄存器的地址的最后3比特位是否为非0的其它数字,并在判定是其它数字时,执行非寄存器配置操作的其它操作;所述其它操作对应的第二操作参数放到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
以寄存器按照32位(32个比特位)进行编址为例,CPU的是8个比特位占用一个地址,编址方式是0,1,2,3,4,5,6,…,而寄存器编址是32个比特位编址的话,其包含了4个8个比特位的空间,CPU访问寄存器0其发出的是0地址,CPU访问寄存器1的话就要发出4地址,CPU访问寄存器2的话就要发出8地址,0地址的二进制表示方式是0000,4地址的二进制表示方式是0100,8地址的二进制表示方式是1000,12地址的二进制表示方式是1100,因此可以归纳出CPU访问32位编址的寄存器,其要发出的地址最后2比特必定是0。
同理,如果寄存器按照64位(64个比特位)进行编址,其包含了8个比特位空间,CPU访问寄存器0其发出的是0地址,CPU访问寄存器1的话就要发出8地址,CPU访问寄存器2的话就要发出16地址,0地址的二进制表示方式是0000,8地址的二进制表示方式是1000,因此可以归纳出CPU访问64位编址的寄存器,其要发出的地址最后3比特必定是0。
因此,如果32位寄存器编址的地址值出现后2比特位(或称最低2比特位)为1,2,3,或者64位寄存器编址的地址值出现后3比特位(或称最低3比特位)为1,2,3,4,5,6,7,就可以判定执行的操作并非寄存器配置操作而是其它操作,此时,所述其它操作对应的第二操作参数可以放到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
作为举例而非限制,比如配置信息数组中有一项是:
寄存器1的地址:0x15040000;
寄存器1要配置的值:0x00000002(即0x00000002为前述地址0x15040000要设置的值);
寄存器1要配置的屏蔽值:0x0000000F,(即0x0000000F前述地址0x15040000要配置值的屏蔽值)。
地址0x15040000最低3比特位均为0,上述配置信息对应的操作是:根据上述信息配置0x15040000这个地址上的值。
再比如,配置信息数组中另一项是:
寄存器2的地址:0x15040001(或者0x15040002,或者0x15040003);
寄存器2要配置的值:0x00000002,为上述地址要设置的值;
寄存器2要配置的屏蔽值:0x0000000F,为上述地址要配置值的屏蔽值。
根据前面的描述,由于32位编址的寄存器的地址最低2比特不可能是1,2,3这些值,所以遇到上述的设置信息就表示上述配置信息对应的操作不是要配置0x15040000这个地址上的值,而是要执行其他操作比如轮询操作,具体设置时,作为举例而非限制,比如设定1代表要轮询相等,2代表要轮询不相等,3代表要调用函数。
以0x15040001为例,上述的配置信息对应的操作是:轮询0x15040000(为地址0x15040001对应的正确的地址值)这个地址上的值的低4位(0x0000000F的二进制表示是1111),当低4位等于2时,退出轮询。
随后,通过寄存器配置数组解释单元对前述按寄存器位宽配置信息数组进行解析。
所述寄存器配置数组解释单元是硬件结合软件来实现的,其具体可以包括运行在所述下位机的一段计算机程序或应用,该计算机程序或应用的作用是解析寄存器配置信息数组。该计算机程序或应用仅与寄存器配置信息数组的组织形式相关,与寄存器配置信息数组内的条目数无关,因此能够实现一段程序或应用对应多个不同条目数的寄存器配置信息数组,以不变应万变。
现有技术中,寄存器数目增加会导致配置信息和代码的同时增加,而本实施例提供的上述结构,只需调整配置寄存器的配置信息,无需同时增加代码,因而可以为嵌入式***节省空间。实测比对结果显示,采用本实施例的技术方案后,代码压缩率达平均在30%左右,可以为嵌入式***节省了30%的空间。
本发明还提供了一种配置寄存器的方法,其特征在于包括步骤:
获取功能文档中的寄存器信息形成寄存器按比特位配置数据;
将前述寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,在所述数组中编码第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息;
解析前述按寄存器位宽配置信息数组;
将解析内容发送至目标板执行单元。
进一步,还可以包括修改寄存器配置信息的步骤,
当该步骤涉及调试迭代流程的操作时,判断是否需要迭代,在需要迭代的情况下,输出前述按寄存器位宽配置信息数组供用户修改,根据用户对数组的修改操作信息调试代码。
参见图6所示,示例了现有技术中常用调试迭代流程与采用上述调试迭代流程的区别。图6中左侧图为现有技术,在调试迭代流程时,判定需要迭代时,需要返回执行编码、编译以及判断是否需要迭代步骤,通常需要3步方可完成一次迭代过程;图6中右侧图为本实施例提供的流程,在判断需要迭代时,直接输出前述按寄存器位宽配置信息数组供用户修改,根据用户对数组的修改操作信息调试代码,仅需要2步即可完成一次迭代。
同时,由于代码是通用寄存器操作,而寄存器配置信息数组是纯数据,降低了泄露嵌入式***设计信息的风险,进一步也减少了对信息进行加解密的工作量。
具体实施时,可以通过文档解释器引擎,来提取功能文档中有用的寄存器信息,并根据提取的信息形成寄存器按比特位配置数据。
存储于外部设备的功能文档通常为只读文档且冗余信息过多,依靠人工多次查找文档中的寄存器配置关键信息耗时较多,通过前述文档解释器引擎可以智能地提取功能文档中有用的寄存器信息,然后形成寄存器按比特位配置数据,所述配置数据优选的采用列表结构。
作为优选的方案,所述寄存器按比特位配置列表中可以记录有寄存器对应的模块名称、设备名称、寄存器基地址、寄存器名称、寄存器偏移地址、比特名称、比特位置和比特值信息,比特名称、比特位置和比特值三者一一对应。如此,每个寄存器和寄存器的比特位信息都清晰的呈现出来,用户尤其是设计人员无需阅读原本纷繁复杂的设备文档即可以完成设备驱动的配置。
以及,通过连接文档解释器引擎的寄存器解释器引擎,来对前述寄存器按比特位配置数据进行转换,生成按寄存器位宽配置信息数组,使得寄存器配置能够被嵌入式***识别。
作为优选,所述按寄存器位宽配置信息数组的结构被配置为包括寄存器组的总个数、寄存器N的地址、寄存器N要配置的值和寄存器N要配置的屏蔽值字段,其中N代表寄存器的编号。作为举例而非限制,比如所述N可以取0,1,2,3......这样的整数。
所述按寄存器位宽配置信息数组是一个即可以人为解读而且嵌入式***也能识别(读取)的数据形式,在需要修改配置信息,用户可以直接修改该数组,可以加快用户开发调试的速度。
所述第二操作参数,被放入到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
以及,通过寄存器配置数组解释单元,来对前述寄存器配置信息数组进行解析。
以及,通过目标板执行单元,来运行配置信息。
本实施例中,所述功能文档,是指记载有寄存器描述信息的文件,所述描述信息,作为举例而非限制,包括但不限于寄存器名称、寄存器地址、寄存器类型、寄存器接口信息、寄存器可选配置参数、寄存器的注释、寄存器域描述、访问权限等寄存器设计信息。
所述功能文档的格式可以为word格式、TXT格式、HTML格式和Excel格式中的一种或多种。所述功能文档优选的具有预设的统一的模板,以便设计人员制作和便捷。
其它技术特征参见在前实施例的描述,在此不再赘述。
本发明还提供了一种嵌入式***。
所述嵌入式***包括中央处理器、存储器、外部设备,以及前述实施例中的配置寄存器的装置。
所述配置寄存器的装置具体包括上位机和下位机。
所述上位机,用以获取功能文档中的寄存器信息形成寄存器按比特位配置数据,并将该寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,所述数组中编码有第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息。考虑到嵌入式***设备初始化过程中不仅仅是配置寄存器操作,也有其它操作——作为举例而非限制,比如轮询操作、调用其它的函数操作等,因而根据寄存器地址的特征将上述其它操作对应的第二操作参数信息编码到寄存器地址里面,减少空间开销。
所述下位机,用以解析前述按寄存器位宽配置信息数组,并运行配置信息。
其它技术特征参见在前实施例的描述,在此不再赘述。
需要说明的是,本发明中,所述处理器可以是任何类型的处理器,诸如通用中央处理单元(“CPU”)或诸如嵌入式微控制器之类的专用微处理器或数字信号处理器(“DSP”)。另外,设备或装置还可以包括通常在计算***中找到的其它组件,诸如存储在存储器中并由处理器执行的操作***、队列管理器、设备驱动程序、数据库驱动程序或一个或多个网络协议等。
在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (10)
1.一种配置寄存器的装置,其特征在于包括:
上位机,用以获取功能文档中的寄存器信息形成寄存器按比特位配置数据,并将该寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,所述按寄存器位宽配置信息数组中编码有第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息;
下位机,用以解析前述按寄存器位宽配置信息数组,并运行配置信息。
2.根据权利要求1所述的装置,其特征在于:所述上位机包括文档解释器引擎和寄存器解释器引擎,
所述文档解释器引擎,用以提取功能文档中有用的寄存器信息,并根据提取的信息形成寄存器按比特位配置数据;
所述寄存器解释器引擎,用以对前述寄存器按比特位配置数据进行转换,生成按寄存器位宽配置信息数组,使得寄存器配置能够被嵌入式***识别。
3.根据权利要求1所述的装置,其特征在于:所述下位机包括寄存器配置数组解释单元和目标板执行单元;
所述寄存器配置数组解释单元,用以对前述按 寄存器位宽 配置信息数组进行解析;
所述目标板执行单元,用以运行配置信息。
4.根据权利要求1或2或3所述的装置,其特征在于:所述寄存器按比特位配置数据为列表形式,列表中记录有寄存器对应的模块名称、设备名称、寄存器基地址、寄存器名称、寄存器偏移地址、比特名称、比特位置和比特值信息。
5.根据权利要求1或2或3所述的装置,其特征在于:所述按寄存器位宽配置信息数组的结构被配置为包括寄存器组的总个数、寄存器N的地址、寄存器N要配置的值和寄存器N要配置的屏蔽值字段,其中N代表寄存器的编号;
所述第二操作参数放入前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
6.根据权利要求5所述的装置,其特征在于:所述上位机还包括魔数自定义单元,用以在寄存器编址是8个或16个比特位时,供用户自动定义设置不同的魔数以执行不同的操作;所述操作对应的第二操作参数放到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
7.根据权利要求6所述的装置,其特征在于:所述上位机还包括操作判定单元,用以在寄存器编址是32个比特位时判断寄存器的地址的最后2比特位是否为非0的其它数字,或者当寄存器编址是64个比特位时判断寄存器的地址的最后3比特位是否为非0的其它数字,并在判定是其它数字时,执行非寄存器配置操作的其它操作;所述其它操作对应的第二操作参数放到前述寄存器N要配置的值和/或寄存器N要配置的屏蔽值字段中。
8.一种配置寄存器的方法,其特征在于包括步骤:
获取功能文档中的寄存器信息形成寄存器按比特位配置数据;
将前述寄存器按比特位配置数据转换成按寄存器位宽配置信息数组,在所述按寄存器位宽配置信息数组中编码第二操作参数,所述第二操作参数对应于非寄存器配置信息的操作信息;
解析前述按寄存器位宽配置信息数组;
将解析内容发送至目标板执行单元。
9.根据权利要求8所述的方法,其特征在于:还包括修改寄存器配置信息的步骤,
当该步骤涉及调试迭代流程的操作时,判断是否需要迭代,在需要迭代的情况下,输出前述按寄存器位宽配置信息数组供用户修改,根据用户对数组的修改操作信息调试代码。
10.一种嵌入式***,包括中央处理器、存储器和外部设备,其特征在于:还包括权利要求1-7中任一项所述的配置寄存器的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910447596.2A CN110187919B (zh) | 2019-05-27 | 2019-05-27 | 配置寄存器的装置、方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910447596.2A CN110187919B (zh) | 2019-05-27 | 2019-05-27 | 配置寄存器的装置、方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110187919A CN110187919A (zh) | 2019-08-30 |
CN110187919B true CN110187919B (zh) | 2021-07-20 |
Family
ID=67718050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910447596.2A Active CN110187919B (zh) | 2019-05-27 | 2019-05-27 | 配置寄存器的装置、方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110187919B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705161B (zh) * | 2021-08-10 | 2024-03-22 | 博流智能科技(南京)有限公司 | Uvm寄存器模型快速生成方法及***、芯片验证方法及*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US20080082798A1 (en) * | 2006-09-29 | 2008-04-03 | 3Dlabs Inc. Ltd., | Flexible Microprocessor Register File |
CN101859242B (zh) * | 2010-06-08 | 2013-06-05 | 广州市广晟微电子有限公司 | 一种寄存器读写方法及装置 |
CN101930356B (zh) * | 2010-08-24 | 2013-03-20 | 中国航天科技集团公司第九研究院第七七一研究所 | 用于浮点协处理器的寄存器文件分组编址、读写控制方法 |
US9424034B2 (en) * | 2013-06-28 | 2016-08-23 | Intel Corporation | Multiple register memory access instructions, processors, methods, and systems |
CN103389893B (zh) * | 2013-07-09 | 2016-01-13 | 福州瑞芯微电子股份有限公司 | 一种配置寄存器读写方法及装置 |
CN105224249B (zh) * | 2015-09-25 | 2018-12-18 | 北京兆易创新科技股份有限公司 | 一种写操作方法和装置 |
CN105760250B (zh) * | 2016-02-04 | 2018-11-06 | 北京时代民芯科技有限公司 | 一种具***流纠检错功能的单粒子加固fpga配置电路 |
CN106445470B (zh) * | 2016-09-30 | 2019-05-31 | 北京集创北方科技股份有限公司 | 芯片中的配置寄存器的初始化方法和初始化装置 |
-
2019
- 2019-05-27 CN CN201910447596.2A patent/CN110187919B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110187919A (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2656730C2 (ru) | Процессоры, способы, системы и команды для сложения трех операндов-источников с плавающей запятой | |
US8554535B2 (en) | Instruction-set architecture simulation techniques using just in time compilation | |
JP5532268B2 (ja) | 装置のエンディアンモードを管理するためのシステムおよび方法 | |
JP6154824B2 (ja) | ステートマシンラチスにおけるブール型論理 | |
US20020013691A1 (en) | Method and apparatus for processor code optimization using code compression | |
US20080172661A1 (en) | Cross-platform architecture for replicating profiling scheme in a computer system | |
US11768757B2 (en) | Kernel debugging system and method | |
CN112631657B (zh) | 用于字符串处理的字节比较方法以及指令处理装置 | |
US20040221274A1 (en) | Source-transparent endian translation | |
US8990500B2 (en) | Storing the most significant and the least significant bytes of characters at non-contiguous addresses | |
CN110187919B (zh) | 配置寄存器的装置、方法及*** | |
US9304792B2 (en) | Decoupled method for tracking information flow and computer system thereof | |
US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
US20240028337A1 (en) | Masked-vector-comparison instruction | |
CN116187228A (zh) | 一种指令解码模块及其生成方法、装置、芯片架构模拟器 | |
US11829736B2 (en) | Method of optimizing register memory allocation for vector instructions and a system thereof | |
CN116775127B (zh) | 一种基于RetroWrite框架的静态符号执行插桩方法 | |
US20030140054A1 (en) | Processor composing apparatus, system LSI composing apparatus, processor composing method, system LSI composing method, and program therefor | |
Lin et al. | Automated development tools for Linux USB drivers | |
JP4318456B2 (ja) | クロス・プラットフォーム構成を可能にするための方法および装置 | |
CN116522915A (zh) | 支持二进制数据字面值的词法分析方法、***及响应方法 | |
CN117938172A (zh) | 一种基于risc-v架构的硬件gzip数据压缩*** | |
JP4498338B2 (ja) | データ処理装置 | |
Chivers et al. | Introduction to Computer Systems | |
Arnold et al. | Macro Assembler AS V1. 42 User’s Manual |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 201210 8th floor, building 1, 298 Xiangke Road, Pudong New Area, Shanghai Patentee after: MOUXIN TECHNOLOGY (SHANGHAI) Co.,Ltd. Address before: Room 507, building 1, No. 800, Naxian Road, pilot Free Trade Zone, Pudong New Area, Shanghai 201210 Patentee before: MOUXIN TECHNOLOGY (SHANGHAI) Co.,Ltd. |