对与设备的固件单元相关联的软件模块进行编程的方法技术

技术编号:37103068 阅读:13 留言:0更新日期:2023-04-01 05:02
本公开描述了一种对与设备的固件单元相关联的软件模块进行编程的方法。该方法包括获取与固件单元相关联的寄存器传输级程序,该寄存器传输级程序包括指示固件单元中的多个寄存器的多个寄存器变量,该多个寄存器变量在寄存器传输级程序的第一命名空间内定义;以及将与寄存器传输级程序相关联的第一命名空间链接到与软件模块相关联的命名空间,用于引用来自该多个寄存器变量中的至少一个寄存器变量。该寄存器传输级程序包括高级编程语言的与固件单元相关联的一个或多个操作的设计级描述。件单元相关联的一个或多个操作的设计级描述。件单元相关联的一个或多个操作的设计级描述。

【技术实现步骤摘要】
【国外来华专利技术】对与设备的固件单元相关联的软件模块进行编程的方法


[0001]本专利技术涉及固件的设计和编程,更具体地,涉及使用高级合成工具的基于寄存器传输级的固件设计。高级合成工具使程序员能够使用诸如系统C或ANSI C/C++的高级语言来提供与相关固件单元相关联的一个或多个操作的高级描述。根据这些高级描述,高级合成工具接着可产生生产质量RTL,其接着可用于产生较低级表示且最终产生固件单元的实际布线。

技术介绍

[0002]本专利技术涉及设备的固件单元(也称为固件模块)的设计和编程。通常,用于固件设备的软件的开发发生在两个阶段中。在第一阶段,由程序员使用RTL(寄存器传输级)模块来描述将由固件执行的操作。在创建RTL模块之后,程序员必须手动创建用于对应RTL模块的寄存器模块(也称为寄存器接口模块),以实现寄存器读取和写入操作。寄存器接口模块包括RTL模块中每个配置的寄存器地址、位偏移和位宽度的定义。在第二阶段,开发涉及RTL模块的一个或多个应用编程接口。在此阶段期间,程序员使用寄存器接口模块来使API能够访问(即,读取和写入)寄存器。此外,程序员需要定义使用寄存器接口模块的软件。在该软件中,需要与寄存器接口模块中相同的寄存器地址和位掩码。
[0003]当前,寄存器接口模块的手动生成是耗时的并且易于发生手动错误。程序员必须为RTL模块中的每个配置定义寄存器地址和位掩码。寄存器接口模块中的错误可能导致不正确的写入操作,其导致寄存器中的值的未经授权的重写。因此,需要一种解决上述问题的方法和设备。

技术实现思路

[0004]因此,本专利技术描述了解决上述方面的根据权利要求1的方法,根据权利要求8的编程设备和根据权利要求9的非瞬态存储介质。
[0005]因此,本专利技术描述了一种对与设备的固件单元相关联的软件模块进行编程的方法。该方法包括获取与固件单元相关联的寄存器传输级程序,所述寄存器传输级程序包括指示固件单元中的多个寄存器的多个寄存器变量,多个寄存器变量在寄存器传输级程序的第一命名空间内定义;以及将与寄存器传输级程序相关联的第一命名空间链接到与软件模块相关联的命名空间,用于引用多个寄存器变量中的至少一个寄存器变量。寄存器传输级程序包括高级编程语言的与固件单元相关联的一个或多个操作的设计级描述。
[0006]通过使用高级语言在寄存器传输级程序中引入命名空间并且通过将寄存器传输级程序的命名空间与软件模块的命名空间链接,本专利技术允许软件模块的程序员在没有寄存器接口模块的情况下直接引用在寄存器传输级程序中定义和使用的寄存器变量。因此,由于软件模块的开发不再依赖于寄存器接口模块,因此本专利技术提供了软件模块的快速且无错误的开发。
[0007]在一实例中,该方法进一步包含基于寄存器传输级程序的多个寄存器变量产生寄
存器接口模块。因此,通过使寄存器接口的生成自动化,显著降低了寄存器接口中的手动错误的可能性。在一个实例中,使用高级合成工具来执行该方法。
[0008]在一个示例中,该方法还包括将寄存器传输级程序中的一个或多个操作的描述从高级编程语言转换为与固件单元相关联的硬件描述语言。因此,硬件描述语言的经转换寄存器模块可直接由任何固件模拟工具使用。
[0009]在一个示例中,寄存器接口模块基于头文件和源文件中的至少一个。在一个示例中,软件模块包括顶部模块和应用编程接口中的一个或多个。在一个示例中,高级编程语言是基于类的编程语言。
[0010]在另一方面,本专利技术描述了一种用于对与工业设备的固件单元相关联的软件模块进行编程的编程设备。编程设备包括连接到存储器模块的一个或多个处理器。一个或多个处理器被配置成获取与固件单元相关联的寄存器传输级程序,寄存器传输级程序包括指示固件单元中的多个寄存器的多个寄存器变量,多个寄存器变量在寄存器传输级程序的第一命名空间内定义,并且将与寄存器传输级程序相关联的第一命名空间链接到与软件模块相关联的命名空间,用于引用多个寄存器变量中的至少一个寄存器变量。寄存器传输级程序包括高级编程语言的与固件单元相关联的一个或多个操作的设计级描述。
[0011]在另一方面,本专利技术描述了一种用于对与设备的固件单元相关联的软件模块进行编程的非瞬态存储介质。该非瞬态存储介质包括多个指令,该多个指令在由一个或多个处理器执行时使得一个或多个处理器获取与固件单元相关联的寄存器传输级程序,寄存器传输级程序包括指示固件单元中的多个寄存器的多个寄存器变量,多个寄存器变量在寄存器传输级程序的第一命名空间内定义;以及将与寄存器传输级程序相关联的第一命名空间链接到与软件模块相关联的命名空间,用于引用多个寄存器变量中的至少一个寄存器变量。寄存器传输级程序包括高级编程语言的与固件单元相关联的一个或多个操作的设计级描述。该方法的优点适用于本文所描述的设备。这些方面在图1

图4中进一步描述。
附图说明
[0012]以下详细描述参考附图,其中:
[0013]图1示出了包括固件单元和软件模块的设备的编程环境;
[0014]图2示出了用于对与设备的固件单元相关联的软件模块进行编程的方法;
[0015]图3示出了示例寄存器传输级程序和引用来自寄存器传输级程序的寄存器变量的示例模块;以及
[0016]图4示出了用于对与设备的固件单元相关联的软件模块进行编程的编程设备。
具体实施方式
[0017]图1示出了用于设备120(也称为工业设备120)的编程环境100。设备120包括软件模块125和固件单元127。使用高级合成工具110执行固件单元127的设计和编程。程序员使用高级合成工具110来开发一个或多个寄存器传输级程序(在图1中示为RTL程序115)。每个寄存器传输级程序包括要由设备120的固件单元127执行的一个或多个操作的定义和描述。使用诸如ANSI C++的高级编程语言来编写每个寄存器传输级程序。
[0018]另外,高级合成工具110连接到编程工具(图中未示出)。编程工具正在开发软件模
块125。这里的软件模块指的是与设备120相关的一个或多个程序、软件代码等,并且包括图形用户接口、应用编程接口、其它固件程序等。软件模块125与设备120的固件单元127协调地执行一个或多个功能。因此,软件模块125与固件单元127连接以调用固件单元127中的操作并从固件单元127接收输入。在这点上,在软件模块125期间,程序员可以参考在与固件单元127相关联的RTL程序中定义的一个或多个变量或函数。为了确保容易访问,包含RTL程序的命名空间和软件模块125的命名空间,以使得能够容易地参考在RTL程序中定义的寄存器变量(也称为信号变量)。这将参考图2进一步解释。
[0019]图2示出了用于对与设备120的固件单元127相关联的软件模块125进行编程的方法200。方法200可以由高级合成工具110与编程工具一起执行。方法200包含获取与固件单元127相关联的寄存器传输级程序115。寄存器传输级程序115包括高级语言的由固件单元127执行的多个操作和功能。这些函数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种对与设备(120)的固件单元(127)相关联的软件模块(125)进行编程的方法(200),所述方法(200)包括:a.获取(210)与所述固件单元(127)相关联的寄存器传输级程序(115),所述寄存器传输级程序(115)包括指示所述固件单元(127)中的多个寄存器的多个寄存器变量,所述多个寄存器变量在所述寄存器传输级程序(115)的第一命名空间内定义;以及b.将与所述寄存器传输级程序(115)相关联的所述第一命名空间链接到与所述软件模块(125)相关联的命名空间,以引用来自所述多个寄存器变量的至少一个寄存器变量;其中,所述寄存器传输级程序(115)包括高级编程语言的与所述固件单元(127)相关联的一个或多个操作的设计级描述。2.根据权利要求1所述的方法(200),其中,所述方法(200)还包括基于所述寄存器传输级程序(115)的所述多个寄存器变量来生成寄存器接口模块(117)。3.根据权利要求1所述的方法(200),其中,使用高级合成工具(110)来执行所述方法(200)。4.根据权利要求1所述的方法(200),其中,所述方法(200)还包括将所述寄存器传输级程序(115)中的所述一个或多个操作的所述描述从所述高级编程语言转换为与所述固件单元(127)相关联的硬件描述语言。5.根据权利要求2所述的方法(200),其中,所述寄存器接口模块(117)基于头文件和源文件中的至少一个。6.根据前述权利要求所述的方法(200),其中,所述软件模块(125)包括顶部模块和应用编程接口(130)中的一个或多个。7.根据前述权利要求所述的方法(200),其中,所述高级编程语言是基于类的编程语言。8.一种用于对与工业设备(120)的固件单元(127)相关联的软件模...

【专利技术属性】
技术研发人员:萨卡里
申请(专利权)人:西门子工业软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1