iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

System Software Introduction系列 第 12

System Software Build and Test Introduction

  • 分享至 

  • xImage
  •  

我們在先前文章中介紹system software的組成與功能,我們知道system software是讓系統能正常運作的必要軟體。
接下來我們要介紹開發一套system software的流程中,需要使用的三大重要元素: build, hardware platform, verifications

The Build of System Software

  • System Software Build Flow
    System software需要build成machine code (executable file) 後才能執行,因此我們會先介紹system software build flow
  • Compiler Toolchain Development
    新的CPU會需要新的compiler toolchain,而compiler toolchain的開發通常會使用現有的compiler toolchain去修改,因此我們會介紹如何從現有的compiler toolchain開發出新的compiler toolchain。
  • Build Environment
    System software可能在不同的build environemnt上面build,但為了讓不同的build environment可以build出相同的system software讓不同developer做開發與debug,需要先確定build environment是一致的。

The Hardware Platform of System Software

System software source code經過build flow轉換成CPU可以執行的executable file之後,需要有hardware platform才可以運行,而hardware platform可分為模擬器(simulator/emulator)與實際硬體(real target)。因為real target需要製造的流程,所以system software可以使用模擬器(simulator/emulator)作為前期開發的hardware platform,而real target可以提供更完整的功能、更快的執行速度、執行功能更豐富更複雜的software,所以可以使用real target做後期開發。
Hardware Platform

  • Simulator/Emulator
    Simulator是一種application software,模擬部分的hardware platform,是模擬硬體環境及系統行為的工具,可提供豐富的debug information。例如: QEMU (quick emulator)、VCS (RTL simulator)。
  • Real Target
    真實的hardware,提供完整的hardware platform,速度較simulator快,適合執行更複雜的驗證與software/hardware整合開發,例如: FPGA、ASIC。

The Verification of System Software

Compiler toolchain是build verification的必要工具,所以我們會先驗證compiler toolchain correctness,因為verification需要運行在kernel之上,所以需要驗證kernel booting flow。當kernel booting完成後,會對hardware做DVT、對device driver做device driver test、對kernel做kernel test,最後則是敘述方便進行驗證的test framework。

The list of Verifications

  • Compiler Toolchain Correctness Verification: 確認compiler toolchain是否依照語言標準將source code轉換成executable file
  • Bring-up: 讓system software在一個hardware platform可以運行並且跑到kernel進入idle狀態,是一邊嘗試讓系統開機一邊進行debug的過程
  • DVT (Design Verification Test): 從software的角度驗證hardware design正確性
  • Device Driver Test: 驗證操控hardware的device driver是否正確
  • Kernel Test: 驗證控管device driver的kernel是否正確
  • Test Framework: 因為system software的測項多又複雜,所以有一些方便的工具可以協助驗證的流程。

我們今天簡單認識了開發一套system software的流程,接下來我們會先從build flow開始介紹。


上一篇
System Software - System Utilities Compiler Toolchain Compilation Flow
下一篇
The Build of System Software - System Software Build Flow
系列文
System Software Introduction30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言