張德學 郭華 張小軍

摘要:嵌入式系統發展迅速,新器件、新開發系統不斷涌現,學校購置的教學實驗板很快就過時了。虛擬平臺技術可以定制虛擬平臺,運行實際代碼,已廣泛應用于大規模復雜系統的架構探索及早期軟件開發。將其應用到嵌入式系統教學中,學生可以定制虛擬平臺,針對虛擬平臺開發軟件,正常編譯后即可在虛擬平臺上運行,且易于調試,促進了嵌入式系統教學。
關鍵詞:虛擬平臺;嵌入式系統;架構探索
中圖分類號: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