Sim Api User Guide(11)

240 篇文章 11 订阅

2.12 Simulator control

这些模拟器调用只有在配置步骤之后才能进行。这些用于运行时控制和访问 Hexagon 核心内存和寄存器。这些调用可以多次进行。

2.12.1 LoadExecutableBinary

Prototype

HEXAPI_Status LoadExecutableBinary (const char *pElfFile = NULL)

Parameters
在这里插入图片描述
Return
在这里插入图片描述
Description
为模拟加载一个可执行文件,或者为模拟重新加载可执行文件。在没有参数的情况下调用这个函数(或者参数值为NULL)会导致用ConfigureExecutableBinary指定的二进制文件被(重新)加载。这通常是为了重新开始模拟当前的程序。该文件使用HEX_MODE_READBINARY模式打开。
注意
为使该功能正常运行,可能需要进行复位。如果这个函数没有提供文件名,并且没有调用
注意
ConfigureExecutableBinary()没有被调用,这个函数就没有作用。

2.12.2 Ru

Prototype

HEXAPI_CoreState Run (HEX_4u_t *result)

Parameters
在这里插入图片描述
Return
在这里插入图片描述

Description
为模拟加载一个可执行文件,或者为模拟重新加载可执行文件。在没有参数的情况下调用这个函数(或者参数值为NULL)会导致用ConfigureExecutableBinary指定的二进制文件被(重新)加载。这通常是为了重新开始模拟当前的程序。文件使用HEX_MODE_READBINARY模式打开。
**注意 **
为使该功能正常运行,可能需要进行复位。如果这个函数没有提供文件名,并且没有调用
注意
ConfigureExecutableBinary()没有被调用,这个函数就没有作用。

2.12.3 Run

Prototype

HEXAPI_CoreState Run (HEX_4u_t *result)

Parameters
在这里插入图片描述

Return
在这里插入图片描述

Description
运行Hexagon核心,直到它由于不可恢复的错误(例如,双重异常)或由于击中断点而完成执行(所有线程停止)。执行结果是正常终止的模拟程序的退出代码(HEX_CORE_FINISHED),或其他返回值的未定义。
注意 如果在配置阶段对ConfigureRemoteDebug(第2.9.2节)进行了有效的调用,模拟器将等待来自调试器的连接,控制将被传递给调试器。当调试器退出时,一个运行调用将返回HEX_CORE_FINISHED。

2.12.4 Step

Prototype


             HEXAPI_CoreState Step(HEX_4u_t cycles,
                  HEX_4u_t *cyclesExecuted, HEX_4u_t *result)

Parameters
在这里插入图片描述

Return
在这里插入图片描述

Description
对Hexagon核心进行一个或多个周期的步进。实际步进的周期数在cyclesExecuted中返回。结果是正常终止时模拟程序的退出代码(“Program finished”),其他返回代码未定义。
注意
无论是否成功调用ConfigureRemoteDebug(第2.9.2节),这个调用都不会连接到调试器。要连接到一个调试器,必须调用Run(第2.12.2节)。
运行(第2.12.2节)可以和AddTimedCallback(第2.10.5节)一起使用,以便在连接调试器的特定时间段内执行程序。

2.12.5 StepTime

Prototype

HEXAPI_CoreState StepTime(HEX_8u_t time, HEXAPI_Interval units,
                     HEX_4u_t *cyclesExecuted, HEX_4u_t *result)

Parameters
在这里插入图片描述
Return
在这里插入图片描述

Description
使处理器步进相当于时间输入参数的周期数。实际步进的周期数在cyclesExecuted中返回。结果是正常终止时模拟程序的退出代码(“程序完成”),其他返回代码未定义。
注意
无论是否成功调用ConfigureRemoteDebug(第2.9.2节),这个调用都不会连接到调试器。要连接到调试器,必须调用Run(第2.12.2节)。
运行(第2.12.2节)可以和AddTimedCallback(第2.10.5节)一起使用,以便在连接调试器的特定时间段内执行程序。

2.10.6 AssertNMI

Prototype

HEXAPI_Status AssertNMI()

Return
在这里插入图片描述

Description
向内核发出一个非屏蔽的中断。它一直被断言,直到被解除断言。

2.10.7 DeassertNMI

Prototype

HEXAPI_Status DeassertNMI()

Return
在这里插入图片描述
Description
向内核发出一个非屏蔽的中断。它一直被断言,直到被解除断言。

2.10.8 ClearInterrupt

Prototype

HEXAPI_Status ClearInterrupt(HEX_4u_t interruptNum)

Parameters
在这里插入图片描述
Return
在这里插入图片描述
Description
清除Hexagon核心的中断等待寄存器中的特定中断。范围从0到31。

2.10.9 ClearAllInterrupts

Prototype

void ClearAllInterrupts()

Description
清除Hexagon核心的中断等待寄存器中的所有中断。

2.10.10 SetBreakpoint

Prototype

HEXAPI_Status SetBreakpoint(HEX_VA_t vpc)

Parameters
在这里插入图片描述
Return
在这里插入图片描述
Description
在一个虚拟地址上设置一个断点。断点的列表在模拟器中被维护为一个无界的列表。多次调用在某一地址设置断点的结果是只设置一个断点。模拟器在指定地址的指令提交之前,从Run或Step命令中返回。传递给该函数的地址必须是一个数据包的第一条指令的地址,这样才能识别断点。

2.10.11 ClearBreakpoint

Prototype

HEXAPI_Status ClearBreakpoint(HEX_VA_t vpc)

Parameters
在这里插入图片描述

Return
在这里插入图片描述

Description
清除由所提供的虚拟地址指定的地址上的断点。如果在给定的地址上没有设置断点,则不采取任何行动。

2.10.12 ClearAllBreakpoints

Prototype

HEXAPI_Status ClearAllBreakpoints()

Return
在这里插入图片描述
Description
清除所有断点。

2.10.13 AssertReset

Prototype

HEXAPI_Status AssertReset ()

Return
在这里插入图片描述
Description
将六角形磁芯放入复位模式。当处于复位模式时,核心不能步进或运行。寄存器被清除,所有的统计和轮廓数据计数器也被清除。PC被设置为EVB值。

2.10.14 DeassertReset

Prototype

HEXAPI_Status DeassertReset ()

Return
在这里插入图片描述
Description
将Hexagon核心从复位模式中取出。模拟器向量到复位向量PC值(由EVB寄存器描述)。在内核脱离复位之前,EVB必须至少被设置一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值