开放虚拟平台在嵌入式系统教学中的应用
2019-10-24张德学郭华张小军
张德学 郭华 张小军
摘要:嵌入式系统发展迅速,新器件、新开发系统不断涌现,学校购置的教学实验板很快就过时了。虚拟平台技术可以定制虚拟平台,运行实际代码,已广泛应用于大规模复杂系统的架构探索及早期软件开发。将其应用到嵌入式系统教学中,学生可以定制虚拟平台,针对虚拟平台开发软件,正常编译后即可在虚拟平台上运行,且易于调试,促进了嵌入式系统教学。
关键词:虚拟平台;嵌入式系统;架构探索
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2019)38-0172-02
一、前言
随着技术的不断进步,嵌入式系统迅速发展,新器件、新开发板不断出现,如ARM从ARM7、ARM9等旧型号发展到Cortex M、Cortex A等系列型号,并出现了很有竞争力的RISC-V系列处理器。高校在嵌入式教学时,一般会购置一批开发板,但由于技术发展很快,开发板使用几年就过时,持续更新设备需要较大的教学经费投入。此外,嵌入式开发系统一般只提供有限的调试手段,新开发的底层代码,出现bug时很难快速、准确定位。这些问题在一定程度上影响了嵌入式系统教学效果。
虚拟平台/虚拟原型VP,是近年来发展起来的一类建模技术,它支持真实应用程序驱动的系统仿真,包含主流處理器和常用外设模型,是“真实”芯片的功能模型,能加载运行真实应用程序,支持应用程序驱动,一般用于系统级建模、架构探索、早期软件开发等。典型的虚拟平台产品/项目有Synopsys公司的PA,Cadence公司的VSP,开源的GEM5以及OVP(Open Virtual Platforms)。
PA产品集成了Arteris公司的FlexNoC IP[1]互联工具,可进行系统级性能分析。Cadence公司的VSP[2]工具提供开放的SoC虚拟原型建模与分析环境,支持ARM fast models与 Imperas/OVP的处理器模型,功能强大。GEM5是开源社区开发的系统架构建模分析工具,它是全系统模拟器,但不支持TLM2.0与SystemC标准,很难与第三方模型相互操作。OVP是商业工具Imperas的开源版本,具有高性能模型仿真器和较为完备的开源处理器与外设模型库,提供标准建模工具接口API。OVP中各类模型本身使用C/C++编写,仿真速度快,支持TLM2.0 wrapper,支持用户建模,可基于OVP创建定制虚拟平台,本文选择OVP作为虚拟平台建模、运行工具。
二、OVP环境中定制虚拟平台
OVP自带大量处理器、外设模型,并支持第三方开发的符合标准接口规范的模型,普通用户可以直接选用、配置这些模块,并自定义各模块间连接关系,构建定制虚拟平台。作为实例,本文定制一款基于RISC-V处理器的SoC系统,并在其上运行FreeRTOS实时操作系统,系统结构如下图所示:
图1中,所有模块均直接选用了OVP中已有模块模型,在平台模型中建立连接关系即可。OVP支持用户使用C/C++编程,调用OVP的API函数,创建虚拟平台,也支持用户使用TCL脚本语言描述系统,由OVP提供的igen工具转换为C/C++模型文件。
三、OVP环境中软件开发
面向虚拟平台的软件开发方法与面向实际硬件开发几乎没有区别。本文以移植FreeRTOS实时操作系统为例。Microsemi公司开源了FreeRTOS在RISC-V架构上的移植代码,已完成大部分底层代码移植,将此FreeRTOS移植版本适配到定制的虚拟平台上,主要工作有:
1.查看microsemi-riscv-ram.ld,确认该链接文件中各处存储的地址、大小匹配定制平台。
2.查看hw_platform.h,确认该文件中定义的外设地址、中断号、寄存器信息匹配定制平台。
3.按需修改FreeRTOSConfig.h文件,使能或禁用操作系统功能特性;修改main.c,实现用户功能。
修改完成后,使用OVP提供的交叉编译工具链编译软件,得到miv-rv32im-freertos-port-test.elf文件。
四、OVP环境中软件运行、调试
使用OVP编译定制平台,得到虚拟平台可执行文件platform.Linux32.exe。在虚拟平台上运行用户软件指令如下:
platform.Linux32.exe--program ${MODULE}.cpu0
=miv-rv32im-freertos-port-test.elf
虚拟平台执行用户软件,并打开系统终端,所有操作与在实际硬件上运行一致,同时保存log文件。
五、总结
本文采用开放虚拟平台工具OVP,以最新的RISC-V处理器系统为例,说明了如何定制虚拟平台、开发软件及运行,可将其应用于嵌入式系统教学中,在没有实际开发板硬件时,提前开展前沿技术教学。
参考文献:
[1]Arteris FlexNoC Interconnect IP.Arteris.http://www.arteris.com/flexnoc,2018.
[2]Virtual System Platform.Cadence.http://www.cadence.com/products/sd/virtual_system/pages/default.aspx,2018.
Application of Open Virtual Platform in Embedded System Teaching
ZHANG De-xue,GUO Hua,ZHANG Xiao-jun
(Shandong University of Science and Technology,Qingdao,Shandong 266590,China)
Abstract:With the rapid development of embedded systems,new devices and new development systems are constantly emerging.The teaching experimental board purchased by schools is rapidly outdated.The virtual platform technology can customize the virtual platform and run the really code.It has been widely used in large-scale complex system architecture exploration and early software development.This paper applies it to embedded system teaching.Students can customize the virtual platform,develop software for the virtual platform and compile it as usual.It can run on virtual platform and debug easily,which promotes the teaching of embedded system.
Key words:Virtual Platform;Embedded System;architecture exploration