21、虚拟原型设计:从建模到应用的全面解析

虚拟原型设计:从建模到应用的全面解析

1. 虚拟原型的软件镜像加载

在虚拟原型设计中,将软件的二进制镜像加载到芯片的内存里是很重要的。通常,MPSoC架构有着复杂的内存层次结构,包含ROM、SRAM、DRAM、FLASH等不同类型的内存。编译和链接后得到的二进制镜像分为只读(RO)和读写(RW)两个部分。RO部分包含仅用于读操作的代码和数据,通常加载到ROM中;RW部分包含可读写的数据,在执行前存储在ROM中,之后从ROM初始化到RAM里。

二进制镜像的结构由区域和输出段的数量、加载和执行时这些区域和段在内存中的位置来定义。每个输出段包含一个或多个输入段,输入段是编译后目标文件中的代码和数据信息。

镜像区域在加载时会被放置在系统内存映射中。在镜像执行前,一些区域会被移动到执行地址,部分内存会被清零,形成ZI(零初始化)段。因此,内存映射有加载视图和执行视图两种不同的视图。加载视图定义了镜像执行前各段在加载时的内存地址,执行视图描述了镜像执行时各段的地址。

镜像的内存映射在链接阶段指定。对于加载和执行段较少的软件镜像,可以使用命令行选项进行链接;对于更复杂的情况,则使用分散加载描述文件。分散加载描述文件是一个文本文件,它指定了段到区域的分组信息以及区域在内存映射中的放置地址,还能将数据放置在内存映射的精确地址,以访问内存映射的I/O和外设,同时也用于定义堆栈和堆的地址。

例如,对于ARM处理器,有如下的分散加载描述文件示例,它定义了一个加载区域(ROM_LOAD)和两个执行区域(ROM_EXEC和RAM):
- 整个程序(包括代码和数据)在ROM_LOAD处被放置在ROM中。
- RO代码将从ROM_EXEC执行,其执行地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值