跨板上层软件x86模拟平台搭建

通常嵌入式软件在host上开发,编译可执行文件,并将代码下载到target上执行。

但是上层业务软件,事实上并不强依赖于嵌入式平台,而弱耦合的底层资源代码,可以通过上下层解耦,规划API接口,并根据逻辑进行打桩。从而确保业务逻辑,高层软件可以在x86机器上与底层软件同时并行编码和调试。

本文就是为了解决模拟跨板高层软件部署,x86平台模拟多板,多框的硬件架构,提供单板插拔模拟,单BBU框和多BBU框的上电、下电模拟。主要针对通信领域多框,多板,多CPU,多OS的硬件架构。


模拟平台支持特性

  1. 支持多框和单框启动
  2. 支持多板和单板启动
  3. 支持多框和单框停止
  4. 支持多板和单板停止
  5. 支持多框和单框重启
  6. 支持多板和单板重启
  7. 支持板,框,模拟配置检查
  8. 支持板,框,模拟环境状态查询


模拟平台支持命令



  • copy: 用于模拟工程应用软件和配置数据的复制拷贝。
  • 注:由于每个模拟BBU框单板情况复杂,每个板应用程序部署情况不同,用户需要根据自己情况编辑各自模拟环境中的copy.sh脚本,后面将会详细介绍如何修改。
  • clean: 用于模拟工程清理,将不需要的文件删除。
  • 注:每个单板应用程序启动需要的配置文件不同,目录结构和固化数据文件也有差异,用户需要根据需要修改clean.sh脚本,后面将会详细描述如何修改。
  • start: 用于单板,BBU框,模拟环境的启动。
  • vstart: 用于单板,BBU框,模拟环境的启动,并支持应用程序输出的打印消息。
  • stop: 用于单板,BBU框,模拟环境的停止。
  • reset: 用于单板,BBU框,模拟环境的重启。
  • vreset: 用于单板,BBU框,模拟环境的重启,并支持应用程序输出的打印消息。
  • check: 用于单板,BBU框,模拟环境配置文件检查。
  • status: 用于单板,BBU框,模拟环境的当前启动停止查询。

如何建立个人的模拟环境

为方便起见,这里使用一个hellowworld来模拟各个单板的应用程序。

实例: simu_demo(simu_demo模拟环境将会配置两个BBU框分别命名为sbrk_01和sbrk_02)

  • sbrk_01框有两块单板,分别命名为brd_01_02_bbi和brd_01_06_mpt

  1. brd_01_02_bbi单板有应用程序 simu_demo_sbrk01_bbi_app1和simu_demo_sbrk01_bbi_app2
  2. brd_01_06_mpt单板有应用程序 simu_demo_sbrk01_mpt_app1和simu_demo_sbrk01_mpt_app2

  • sbrk_02框也有两块单板,分别命名为brd_02_03_bbi和brd_02_06_mpt

  1. brd_02_03_bbi单板有应用程序 simu_demo_sbrk02_bbi_app1和simu_demo_sbrk02_bbi_app2
  2. brd_02_06_mpt单板有应用程序  simu_demo_sbrk02_mpt_app1和simu_demo_sbrk02_mpt_app2

建立模拟工程目录结构

首先,在模拟平台目录下建立如下两个BBU框的目录:sbrk_01和sbrk_02

注:BBU框目录命名规则:命名采用“sbrk_框号_其他信息

然后,在各个BBU框目录下建立如下四块单板的目录:

  • brd_01_02_bbi: BBU框1,2号槽位,bbi板
  • brd_01_06_mpt: BBU框1,6号槽位,mpt板
  • brd_02_03_bbi: BBU框2,3号槽位,bbi板
  • brd_02_06_mpt: BBU框2,6号槽位,mpt板


注:单板目录命名规则: 命名采用“brd_框号_槽号_板类型_其他信息

最后,在x86模拟平台目录下,建立自己的模拟环境目录simu_demo

注1:模拟环境目录命名规则:命名采用“simu_其他信息

注2:模拟程序命名规则:命名采用“模拟环境-单板名称-应用程序名称


配置单板

这里介绍一块brd_slot06_mpt单板:

1)配置文件中,XML标识符是simu定义的,不允许修改。

2)每块单板可以启动多个模拟应用程序,simu将根据前后顺序依次启动。

3)用户根据需求,配置一个或者多个模拟应用程序。

4)brd_slot06_mpt有两个应用程序,分别为 simu_demo_sbrk01_mpt_app1 和 simu_demo_sbrk01_mpt_app2

如下所示配置simu_config.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<BoardConfig>
    <Program>./simu_demo_sbrk01_mpt_app1 brd_slot06_mpt</Program>
    <Program>./simu_demo_sbrk01_mpt_app2 brd_slot06_mpt</Program>
</BoardConfig>


配置BBU框

这里介绍一块sbrk_02  BBU框的单板配置情况:

1)配置文件中,XML标识符是simu定义的,不允许修改。

2)每个BBU框有多块单板,simu将根据前后顺序依次启动。

3)用户根据需求,在一个BBU框里配置一块或者多块单板。

4)sbrk_02有两块单板,分别为 brd_02_03_bbi和 brd_02_06_mpt 

如下所示配置simu_config.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<SubrackConfig>
    <Board>brd_slot06_mpt</Board>
    <Board>brd_slot01_bbi</Board>
</SubrackConfig>


配置模拟环境

这里介绍simu_demo模拟环境配置情况:

1)配置文件中,XML标识符是simu定义的,不允许修改。

2)模拟环境将会有多个BBU框,simu将根据前后顺序依次启动。

3)用户根据需求,在模拟配置一个或者多个BBU框。

4)simu_demo有两块BBU框,分别为 sbrk_01和 sbrk_02, 

如下所示配置simu_config.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<EnvConfig>
    <Subrack>sbrk01</Subrack>
    <Subrack>sbrk02</Subrack>
</EnvConfig>

注:每位开发人员都可以根据自己需要或者配置需要定义一个模拟环境。

 配置copy.sh和clean.sh

在模拟环境目录simu_demo需要建立两个用户自定义脚本来复制(copy.sh)、清理(clean.sh) 模拟软件和相关配置文件。

在simu_demo简单应用中,仅仅只做一个helloworld应用程序的复制和清理,其配置文件已经包含在单板和框目录中了,所以简化了copy和clean处理。


注1:如果有需要可以将配置文件,应用程序,固化数据等都保存在模拟环境中,在模拟环境复制的时候,调用copy.sh复制相关应用程序和配置文件到指定单板和BBU框目录。

注2:模拟工程根目录下的copy.sh和clean.sh不允许修改和删除,为simu程序使用。


如何使用个人模拟环境

上面配置了simu_demo模拟环境,接下来就是如何使用这个x86模拟工程模拟单板,BBU框的插拔,启动等操作了。

更新模拟环境


检查模拟环境配置参数


启动,重启和停止模拟环境



启动,重启和停止BBU框



启动,重启和停止单板


查询模拟环境状态


查询BBU框状态


清理模拟环境



x86模拟软件,能够模拟多板,多框的嵌入式系统高层软件多板通信的场景。当然,前提是高层部署依赖的底层通信IPC协议需要适配支持上层业务软件。


参考资料:

【1】x86模拟平台软件下载


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为了让上层软件与ECU硬件设计无关,可以通过引入抽象层、标准化接口和软件架构设计等方式来实现。 首先,引入抽象层可以将底层硬件细节与上层软件逻辑相分离。通过定义抽象层接口,使得上层软件可以直接调用这些接口而无需关心具体的硬件实现。这样一来,即使底层的ECU硬件设计发生变化,上层软件仍然可以正常工作,只需修改底层抽象层的实现即可。 其次,标准化接口可以提供统一的软硬件交互规范。将ECU硬件的通信接口、数据传输格式、命令集等进行标准化和规范化,使得上层软件在设计时可以按照这些标准接口进行开发。这样一来,不同的ECU硬件可以遵循相同的规范,从而保证上层软件在不同ECU硬件上的兼容性和可移植性。 此外,合理的软件架构设计也是实现上层软件与ECU硬件设计无关的关键。采用模块化的设计思路,将软件系统划分为多个独立的模块,每个模块有特定的功能和任务。通过良好的模块接口设计和模块间的低耦合性,能够保证上层软件的稳定性和灵活性。当ECU硬件设计发生变化时,只需对涉及改动的模块进行适当的调整和修改,而不会对整个软件系统产生影响。 综上所述,要使上层软件与ECU硬件设计无关,可以通过引入抽象层、标准化接口和软件架构设计等方式来实现。这样可以提高软件的灵活性和可移植性,降低由于硬件变动引起的软件开发和维护的成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值