一种访问资源的方法及装置与流程

文档序号:14294117阅读:157来源:国知局
本发明实施例涉及计算机
技术领域
,尤其涉及一种访问资源的方法及装置。
背景技术
:ecp(embeddedcomputingplatform,嵌入式计算平台)作为一个多种信息化应用的软硬件平台,目的是为应用程序提供简单易用的软硬件运行环境。ecp采用cpci(compactperipheralcomponentinterconnect,紧凑型pci;pci,外部部件互联标准)总线架构,ecp系统中除了包括cpu卡和电源板之外,还可以包括采集卡(di)、驱动卡(do)、串口卡、can卡、lan板等多类功能板卡。为了能够正确访问每个功能板卡,应用程序需要获知各功能板卡的标识(或者说是标记)以对功能板卡进行区分。在现有技术中,可通过“顺序号”对各功能板卡进行标记,即,各个功能板卡通过cpci总线与cpu连接,系统在启动阶段通过cpci总线以枚举方式逐个识别各个功能板卡,枚举的顺序决定了各个功能板卡在系统中的顺序号,应用程序可以利用顺序号对相应的功能板卡进行访问,如读、写、控制等操作。然而,发明人在实现本发明的过程中发现,以顺序号对功能板卡进行标记,这种方式在使用时很不方便,因为通过枚举方式确定的顺序号并不稳定,很多时候功能板卡的顺序号会发生变化,例如总线枚举的顺序与cpci的设计相关,不同cpci背板的cpci总线枚举顺序可能不一致,因此更换背板后,功能卡顺序号可能会有变动。顺序号的这种不稳定性导致上层应用程序操作功能板卡时很不方便,应用程序代码经常因更换了背板而被迫修改,从而大大影响应用程序的开发效率,也降低了程序代码的可移植性;此外,功能板卡的顺序号由系统决定,看起来往往是毫无规律可言,用户无法干涉,不利于用户应用,这也从一定程度上影响到了应用程序在开发、修改或移植时的效率。技术实现要素:本发明实施例提供一种访问资源的方法及装置,以提高应用程序在开发、修改或移植时的效率。根据本发明实施例的第一方面,提供一种访问资源的方法,所述方法包括:获取配置文件,其中所述配置文件用于记录标识符与资源地址的对应关系;获取资源地址与资源句柄的对应关系;根据所述配置文件及所述资源地址与资源句柄的对应关系,建立从所述标识符到所述资源句柄的映射关系;当出现所述标识符时,根据所述映射关系访问所述标识符对应的资源。可选的,当出现所述标识符时,根据所述映射关系访问所述标识符对应的资源,包括:当应用程序代码执行到涉及所述标识符的语句时,根据所述映射关系将所述应用程序代码中的所述标识符替换为相对应的资源句柄;通过所述资源句柄访问所述标识符对应的资源。可选的,所述资源包括背板槽位。可选的,所述标识符包括背板面板上的槽位号。可选的,所述资源地址包括总线编号及资源编号。可选的,所述总线为紧凑型外部部件互联标准cpci总线。可选的,所述获取资源地址与资源句柄的对应关系,包括:通过扫描总线上的所有资源,获取各资源地址与各资源句柄的对应关系。可选的,在获取配置文件之前,所述方法还包括:获取各资源的资源地址;为各标识符指定对应的资源地址;将标识符与资源地址的对应关系存储到所述配置文件中。根据本发明实施例的第二方面,提供一种访问资源的装置,所述装置包括:第一获取单元,用于获取配置文件,其中所述配置文件用于记录标识符与资源地址的对应关系;第二获取单元,用于获取资源地址与资源句柄的对应关系;映射单元,用于根据所述配置文件及所述资源地址与资源句柄的对应关系,建立从所述标识符到所述资源句柄的映射关系;访问单元,用于当出现所述标识符时,根据所述映射关系访问所述标识符对应的资源。可选的,所述访问单元包括:替换子单元,用于当应用程序代码执行到涉及所述标识符的语句时,根据所述映射关系将所述应用程序代码中的所述标识符替换为相对应的资源句柄;访问子单元,用于通过所述资源句柄访问所述标识符对应的资源。可选的,所述资源包括背板槽位。可选的,所述标识符包括背板面板上的槽位号。可选的,所述资源地址包括总线编号及资源编号。可选的,所述总线为紧凑型外部部件互联标准cpci总线。可选的,所述第二获取单元用于:通过扫描总线上的所有资源,获取各资源地址与各资源句柄的对应关系。可选的,所述装置还包括:配置文件生成单元,用于获取各资源的资源地址;为各标识符指定对应的资源地址;将标识符与资源地址的对应关系存储到所述配置文件中。本发明实施例提供的技术方案可以包括以下有益效果:为了克服现有技术中顺序号不稳定的缺陷,本发明实施例中提出了一种映射方案,借助配置文件建立起资源和标识符的映射关系。以资源为槽位、标识符为面板上的槽位号(可简称面板号)为例,在本发明实施例中,用户/技术人员可以自定义面板号,然后令其与所在槽位建立映射关系,这样在程序代码中通过面板号即可访问相应的槽位,对该槽位上的功能板卡进行读写等操作。通过这种映射,技术人员开发应用程序时只需自定义好面板号并在代码中写入面板号即可,无需再使用顺序号,即使发生变动也只需修改配置文件即可,减少了程序代码的修改工作量,提高了效率,也提高了程序的可移植性。此外,由于面板号等标识符比较直观,方便记忆,可以自定义,所以同样有助于提高技术人员在开发、修改或移植应用程序时的效率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。此外,这些介绍并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是ecp系统的背板示意图;图2是根据本发明一示例性实施例示出的一种访问资源的方法的流程图;图3是根据本发明一示例性实施例示出的一种访问资源的方法的流程图;图4是根据本发明一示例性实施例示出的背板示意图;图5是根据本发明一示例性实施例示出的一种访问资源的方法的流程图;图6是根据本发明一示例性实施例示出的一种访问资源的方法的流程图;图7是根据本发明一示例性实施例示出的一种访问资源的装置的示意图;图8是根据本发明一示例性实施例示出的一种访问资源的装置的示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。ecp系统中除了包括cpu卡和电源板之外,还可以包括采集卡(di)、驱动卡(do)、串口卡、can卡、lan板等功能板卡。图1即ecp系统的背板示意图,背板上除了插有cpu卡和电源板之外,还可以插有多个功能卡。图2是根据本发明一示例性实施例示出的一种访问资源的方法的流程图。作为示例该方法可以用于ecp系统。步骤s201,获取配置文件,其中所述配置文件用于记录标识符与资源地址的对应关系。在本发明实施例中,用户可以自定义一些标识符,这些标识符在下面的步骤中将用于指代资源。对于标识符的具体形式,以及资源的具体形式,本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本发明的精神和保护范围。作为示例:所述资源可以包括背板槽位;所述标识符可以包括背板面板上的槽位号(以下可简称为面板号);所述资源地址可以包括总线编号及资源编号;所述总线可以为紧凑型外部部件互联标准cpci总线。对于配置文件,可以由用户提前准备好,然后供ecp系统调用。对于配置文件的具体形式,本实施例也不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本发明的精神和保护范围。步骤s202,获取资源地址与资源句柄的对应关系。作为示例,在本实施例或本发明其他某些实施例中,所述获取资源地址与资源句柄的对应关系,具体可以包括:通过扫描总线上的所有资源,获取各资源地址与各资源句柄的对应关系。例如所有设备操作句柄应预先提供pcibus、pcidev的获取接口。系统启动扫描所有句柄,并以此获取各个句柄的cpci地址。需要说明的是,步骤s201和步骤s202的先后关系本发明实施例并不进行限定,在另外的实施例中,也可以先执行步骤s202再执行步骤s201,或者两步骤同时执行。步骤s203,根据所述配置文件及所述资源地址与资源句柄的对应关系,建立从所述标识符到所述资源句柄的映射关系。因为已经获取了标识符与资源地址的对应关系,以及资源地址与资源句柄的对应关系,所以根据关系传递易得从所述标识符到所述资源句柄的映射关系。步骤s204,当出现所述标识符时,根据所述映射关系访问所述标识符对应的资源。作为示例,在本实施例或本发明其他某些实施例中,参见图3所示,当出现所述标识符时,根据所述映射关系访问所述标识符对应的资源,可以包括以下步骤:步骤s301,当应用程序代码执行到涉及所述标识符的语句时,根据所述映射关系将所述应用程序代码中的所述标识符替换为相对应的资源句柄;步骤s302,通过所述资源句柄访问所述标识符对应的资源。在现有技术中,技术人员需要使用系统给出的顺序号来访问资源,然而顺序号并不稳定,也不直观、不方便记忆,所以带来很多弊端。例如可参见图1所示,假设右边第一个功能卡是di卡,系统给的顺序号为“003”,那么技术人员在编写应用程序代码时,需要使用“003”来访问右边第一个功能卡,“003”对技术人员来讲是被迫接受的一种符号,不方便记忆,也容易搞混,从而影响效率。再例如,当更换背板后,即使右边第一个功能卡仍是di卡,但是其顺序号可能变为“005”,那么技术人员需要将应用程序代码相应位置都改为“005”,才能访问di卡,这导致应用程序需要经常被修改,不但耗费工作量,而且也容易出错,使得应用程序代码的可移植性变低。而在本发明实施例中,用户可以根据设计需要自定义面板号,例如如图4所示,最左端为电源板,最右端为cpu卡,中间各功能板的槽位按照从右到左的顺序依次给予面板号1~6。假设面板号6对应的槽位上插的是di卡,那么在应用程序代码中将使用“面板号6”来访问该卡,即使更换了背板,只要面板号6的槽位上插的还是di卡,那么应用程序代码通常无需修改,只需修改配置文件即可。而且与系统自动给出的顺序号相比,用户自定义的面板号这种标识符显然也更直观、更容易记忆,有助于提高编写代码的效率及代码的可读性等。此外,参见图5所示,在本实施例或本发明其他某些实施例中,在获取配置文件之前,所述方法还可以包括:步骤s501,获取各资源的资源地址;为各标识符指定对应的资源地址;将标识符与资源地址的对应关系存储到所述配置文件中。例如,可以通过系统自带的工具(如linuxlspci)读取各个槽位的cpci地址,然后记录下槽位号与其地址的对应关系以生成配置文件。下面再结合一个实例对本发明方法做进一步介绍:图6是根据本发明一示例性实施例示出的一种访问资源的方法的流程图。步骤s601,操作人员更换背板。本实施例以标识符为面板号、资源为槽位为例。面板号与槽位的映射关系,只跟cpu和背板组合有关系,与背板上插的功能板的种类和数量无关。步骤s602,操作人员通过系统自带的工具(如linuxlspci)读取各个槽位的cpci总线地址,然后将面板号与槽位地址的对应关系存储到新的配置文件中。下面的表1为配置文件的一个示例:表1面板号pcibusno.pcidevno.14924a34b44c54d64e在表1中,pcibusno.(总线编号)和pcidevno.(设备编号)共同构成了槽位的cpci总线地址。步骤s603,系统扫描cpci总线上的所有设备,获取各个设备句柄的cpci总线地址。所有设备操作句柄应预先提供pcibus、pcidev的获取接口。系统启动扫描所有句柄,并以此获取各个句柄的cpci地址,以linux系统为例,获取到的地址与句柄的对应关系如下表所示:表2设备句柄pcibusno.pcidevno./dev/cpci_di04a/dev/cpci_di14c/dev/cpci_do049/dev/cpci_do14b/dev/cpci_di24e/dev/cpci_do24d步骤s604,系统读取配置文件到内存。步骤s605,系统根据配置文件及系统扫描结果,建立从面板号到句柄的映射关系。也即根据表1和表2,可以得到如下表3:表3面板号pcibusno.pcidevno.句柄149/dev/cpci_do024a/dev/cpci_di034b/dev/cpci_do144c/dev/cpci_di154d/dev/cpci_do264e/dev/cpci_di2通过表3的映射关系,可以从面板号直接获得槽位的句柄,从而对槽位中的板卡进行访问。步骤s606,当应用程序代码执行到涉及面板号的语句时,系统根据映射关系将面板号替换为相应句柄。为了克服现有技术中顺序号不稳定的缺陷,本发明实施例中提出了一种映射方案,借助配置文件建立起资源和标识符的映射关系。以资源为槽位、标识符为面板上的槽位号(可简称面板号)为例,在本发明实施例中,用户/技术人员可以自定义面板号,然后令其与所在槽位建立映射关系,这样在程序代码中通过面板号即可访问相应的槽位,对该槽位上的功能板卡进行读写等操作。通过这种映射,技术人员开发应用程序时只需自定义好面板号并在代码中写入面板号即可,无需再使用顺序号,即使发生变动也只需修改配置文件即可,减少了程序代码的修改工作量,提高了效率,也提高了程序的可移植性。此外,由于面板号等标识符比较直观,方便记忆,可以自定义,所以同样有助于提高技术人员在开发、修改或移植应用程序时的效率。下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。图7是根据本发明一示例性实施例示出的一种访问资源的装置的示意图。所述装置可以包括:第一获取单元701,用于获取配置文件,其中所述配置文件用于记录标识符与资源地址的对应关系。作为示例:所述资源可以包括背板槽位;所述标识符可以包括背板面板上的槽位号(以下可简称为面板号);所述资源地址可以包括总线编号及资源编号;所述总线可以为紧凑型外部部件互联标准cpci总线。第二获取单元702,用于获取资源地址与资源句柄的对应关系。作为示例,在本实施例或本发明其他某些实施例中,所述第二获取单元具体可以用于:通过扫描总线上的所有资源,获取各资源地址与各资源句柄的对应关系。映射单元703,用于根据所述配置文件及所述资源地址与资源句柄的对应关系,建立从所述标识符到所述资源句柄的映射关系。因为已经获取了标识符与资源地址的对应关系,以及资源地址与资源句柄的对应关系,所以根据关系传递易得从所述标识符到所述资源句柄的映射关系。访问单元704,用于当出现所述标识符时,根据所述映射关系访问所述标识符对应的资源。在本实施例或本发明其他某些实施例中,所述访问单元具体可以包括:替换子单元,用于当应用程序代码执行到涉及所述标识符的语句时,根据所述映射关系将所述应用程序代码中的所述标识符替换为相对应的资源句柄;访问子单元,用于通过所述资源句柄访问所述标识符对应的资源。此外,参见图8所示,在本实施例或本发明其他某些实施例中,所述装置还可以包括:配置文件生成单元801,用于获取各资源的资源地址;为各标识符指定对应的资源地址;将标识符与资源地址的对应关系存储到所述配置文件中。为了克服现有技术中顺序号不稳定的缺陷,本发明实施例中提出了一种映射方案,借助配置文件建立起资源和标识符的映射关系。以资源为槽位、标识符为面板上的槽位号(可简称面板号)为例,在本发明实施例中,用户/技术人员可以自定义面板号,然后令其与所在槽位建立映射关系,这样在程序代码中通过面板号即可访问相应的槽位,对该槽位上的功能板卡进行读写等操作。通过这种映射,技术人员开发应用程序时只需自定义好面板号并在代码中写入面板号即可,无需再使用顺序号,即使发生变动也只需修改配置文件即可,减少了程序代码的修改工作量,提高了效率,也提高了程序的可移植性。此外,由于面板号等标识符比较直观,方便记忆,可以自定义,所以同样有助于提高技术人员在开发、修改或移植应用程序时的效率。关于上述实施例中的装置,其中各个单元\模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1