[发明专利]一种硬件板卡的自动匹配方法在审
| 申请号: | 201410375928.8 | 申请日: | 2014-08-01 |
| 公开(公告)号: | CN104123381A | 公开(公告)日: | 2014-10-29 |
| 发明(设计)人: | 肖飞;杨小帅;张汇 | 申请(专利权)人: | 武汉邮电科学研究院 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 严彦 |
| 地址: | 430074 湖*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 硬件 板卡 自动 匹配 方法 | ||
技术领域
本发明涉及一种硬件板卡的自动匹配方法,特别是指一种利用linux uboot(通用的引导程序)环境变量向内核传递板卡硬件信息用于软件自动匹配硬件板卡的方法,可应用于多种硬件板卡共软件平台的系统设计中。
背景技术
在嵌入式领域,各种功能的硬件板卡层出不穷。同一家公司,随着公司的不断发展壮大,各种硬件相近,软件差异小的衍生或更新换代产品越来越多,如何让不同硬件板卡实现共软件平台开发,避免繁杂的多平台软件管理工作,和软件版本发布混乱等问题,是很多公司都需要面对的问题。多硬件共软件平台就是在这种需要下逐渐发展起来。目前主要有两种共平台方案。
1.采用宏定义区分不同的硬件板卡
软件共平台通过宏定义来区别不同的板卡,这种方法虽然可以实现硬件板卡区分,但是对不同的硬件板卡编译软件版本时需要先切换板卡宏定义,然后再编译出软件版本。每块板卡都分别对应一个软件版本,时间长产品多就会造成版本管理复杂紊乱,产品软件开发维护的时间和人力成本也会越来越大。
2.采用硬件寄存器区分不同板卡
软件共平台板卡区分是在内核和文件系统启动后,通过读取硬件器件上标识板卡信息的寄存器来区别板卡,这种方法基本上能满足一般的需要,对不同板卡编译软件版本无需切换宏定义,只需要编译一个软件版本即可兼容所有的板卡,可以算是真正意义上的软件共平台。但是这种情况下,对有些板卡uboot或内核需要定制化的时候就会比较困难。
发明内容
针对现有技术缺陷,本发明提供了一种硬件板卡的自动匹配方法。
本发明的技术方案提供一种硬件板卡的自动匹配方法,基于linux 系统执行以下步骤,
步骤1,在uboot启动阶段,获取当前硬件的板卡信息,将对应的版本类型boardtype和槽位标识slotid信息以字符串的形式保存在linux uboot环境变量bootargs中;所述uboot为linux 系统通用的引导程序;
步骤2,uboot启动完成后,进入内核启动,内核将环境变量bootargs中保存的字符串拷贝到内核指针saved_command_line所指向的堆地址空间,再将拷贝保存的字符串通过创建proc文件夹保存在cmdline文件中;
步骤3,内核启动完成后,开始启动文件系统,解析proc文件夹下的cmdline文件获取当前硬件的版本类型boardtype和槽位标识slotid,根据解析结果加载相应软件,完成不同板卡所需的配置。
而且,所述当前硬件的板卡包含cpld器件,cpld器件中boardtype寄存器、pcbversion寄存器、slotid寄存器的地址偏移是固定保留的。
而且,步骤1中,获取当前硬件的板卡信息,包括读取cpld的boardtype寄存器、pcbversion寄存器、slotid寄存器的值,得到的寄存器值包括对应的版本类型boardtypep、硬件版本pcbversion、和槽位标识slotid,当获取到的寄存器值能匹配到已知板卡类型时,则进入步骤2,否则进入默认板卡配置模式进行启动。
本发明所提供的技术中,硬件板卡信息贯穿linux板卡启动的三个必须过程,可完成三个过程中的自动匹配硬件板卡操作,可最多程度实现软件的共平台开发,降低开发维护成本,同时也减少对硬件的要求,避免人力和资源的浪费。本发明采用硬件寄存器区分不同硬件,除了能实现配置业务软件上的共平台,也可对uboot和内核实现定制化。
附图说明
图1是本发明实施例的流程图。
图2是本发明实施例的uboot获取板卡信息保存及传递流程图。
图3是本发明实施例的kernel获取板卡信息保存及传递流程图。
图4是本发明实施例的rootfs获取板卡信息使用流程图。
具体实施方式
以下结合附图和实施例详细说明本发明技术方案。
对于这种软件自动匹配硬件板卡方法,其目的是为了实现软件共平台,而软件共平台的关键在于如何在一套源代码中兼容多板卡。为了达到兼容目的,可以使用宏定义来区分硬件板卡,但是如果导致产品软件版本冗杂,就得不偿失了。在linux领域,uboot启动、内核加载以及文件系统启动是linux板卡启动的三个必须过程,本发明在uboot中直接获取硬件板卡信息,并将板卡信息贯穿整个设备启动运行流程,这样设备不管在那个流程都能实现硬件板卡区分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉邮电科学研究院,未经武汉邮电科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410375928.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种文件存储与管理方法
- 下一篇:一种展示用户评论的方法及系统





