ERAD调试

bool ERAD_isValidBusCompBase(uint32_t base)
  • 函数功能:检查总线比较器的基地址是否有效。
  • 参数说明:

  • 输入参数:

    • base: 指定的总线比较器基地址。
  • 返回参数: 如果基地址有效返回true ,否则返回 false
bool ERAD_isValidCounterBase(uint32_t base)
  • 函数功能:检查计数器的基地址是否有效。
  • 参数说明:
  • 输入参数:
    • base: 指定的计数器基地址。
  • 返回参数:如果基地址有效返回true ,否则返回 false
ERAD_Owner ERAD_getOwnership(void)
  • 函数功能:获取的ERAD的当前所有者。
  • 参数说明:
  • 输入参数:无
  • 返回参数:返回ERAD的所有者。
void ERAD_setOwnership(ERAD_Owner owner)
  • 函数功能:设置 ERAD 的所有者。
  • 参数说明:
  • 输入参数:
    • owner:要设置的 ERAD 所有者,可选项:
    • ERAD_OWNER_NOOWNER:没有所有者
    • ERAD_OWNER_APPLICATION:应用程序
    • ERAD_OWNER_DEBUGGER:调试器
  • 返回参数:无
void ERAD_resetCounter(uint16_t instances)
  • 函数功能:通过全局寄存器复位计数器。
  • 参数说明:
  • 输入参数:
    • instances:要复位的计数器实例的按位或值,可使用以下宏:
    • ERAD_INST_COUNTER1
    • ERAD_INST_COUNTER2
    • ERAD_INST_COUNTER3
    • ERAD_INST_COUNTER4
  • 返回参数:无
void ERAD_enableModules(uint16_t instances)
  • 函数功能:启用选定的计数器和总线比较器。
  • 参数说明:
  • 输入参数:
    • instances:要启用的计数器和总线比较器实例的按位或值,可使用以下宏:
    • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:无
void ERAD_disableModules(uint16_t instances)
  • 函数功能:禁用选定的计数器和总线比较器。
  • 参数说明:
  • 输入参数:
    • instances:要禁用的计数器和总线比较器实例的按位或值,可使用以下宏:
    • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:无
void ERAD_initModule(ERAD_Owner owner)
  • 函数功能:初始化 ERAD 模块,包括重置所有计数器,禁用所有总线比较器和计数器,并设置 ERAD 的所有者。
  • 参数说明:

  • 输入参数:

    • owner:要设置的 ERAD 所有者,可选项:
    • ERAD_OWNER_NOOWNER:没有所有者
    • ERAD_OWNER_APPLICATION:应用程序
    • ERAD_OWNER_DEBUGGER:调试器
  • 返回参数:无
uint16_t ERAD_getHaltStatus(void)
  • 函数功能:通过读取全局寄存器,获取任何计数器和总线比较器的完成状态。这允许我们只读取一个寄存器,就能查看任何模块是否处于完成状态。
  • 参数说明:
  • 输入参数:无
  • 返回参数:全局寄存器中存储的所有计数器和总线比较器的完成状态。
uint16_t ERAD_getEventStatus(void)
  • 函数功能:通过读取全局寄存器,获取任何计数器和总线比较器的事件触发状态。这允许我们只读取一个寄存器,就能查看任何模块是否已触发。
  • 参数说明:
  • 输入参数:无
  • 返回参数:全局寄存器中存储的所有计数器和总线比较器的事件触发状态。
ERAD_Status ERAD_getBusCompStatus(uint32_t base)
  • 函数功能:返回总线比较器的状态。
  • 参数说明:
  • 输入参数:

    • base: 总线比较器的基地址,可使用以下宏:
    • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
  • 返回参数:返回总线比较器的状态,可能值如下:

    • ERAD_STATE_IDLE:空闲状态。
    • ERAD_STATE_ENABLED :被启用。
    • ERAD_STATE_COMPLETED:被启用且事件发生。
void ERAD_clearBusCompEvent(uint32_t base)
  • 函数功能:清除总线比较器的事件触发状态,并将模块恢复到ERAD_STATE_IDLE状态。
  • 参数说明:
  • 输入参数:

    • base: 总线比较器的基地址,可使用以下宏:
    • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
  • 返回参数:无

ERAD_Status ERAD_getCounterStatus(uint32_t base)
  • 函数功能:返回计数器的状态。
  • 参数说明:

  • 输入参数:

    • base: 计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:返回计数器的状态,可能值如下:

    • ERAD_STATE_IDLE:空闲状态。
    • ERAD_STATE_ENABLED :被启用。
    • ERAD_STATE_COMPLETED:被启用且事件发生。
void ERAD_configBusComp(uint32_t base, ERAD_BusComp_Config config_params)
  • 函数功能:根据给定参数配置总线比较器。
  • 参数说明:
  • 输入参数:

    • base: 要配置的总线比较器的基地址,可使用以下宏:
    • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8

    • config_params: 用于配置总线比较器的结构体,包含以下字段:

    • mask: 用于比较的掩码。
    • reference: 要比较的参考值。
    • comp_mode: 比较模式,类型为ERAD_BusComp_Comp_Mode,有以下可选值:
      • ERAD_BUSCOMP_COMPMODE_GT:大于
      • ERAD_BUSCOMP_COMPMODE_GE:大于等于
      • ERAD_BUSCOMP_COMPMODE_LT:小于
      • ERAD_BUSCOMP_COMPMODE_LE:小于等于
      • ERAD_BUSCOMP_COMPMODE_EQ:等于
    • enable_int: 在事件匹配时启用中断的标志。
    • enable_stop: 在事件匹配时启用 CPU 停止功能的标志。
    • bus_sel: 要监控的总线,类型为ERAD_BusComp_Bus_Select,有以下可选值:
      • ERAD_BUSCOMP_BUS_VPC: 虚拟程序计数器
      • ERAD_BUSCOMP_BUS_DWAB: 数据写入地址总线
      • ERAD_BUSCOMP_BUS_DRAB: 数据读取地址总线
      • ERAD_BUSCOMP_BUS_DWDB: 数据写入数据总线
  • 返回参数:无

void ERAD_configCounterInCountingMode(uint32_t base, ERAD_Counter_Config config_params)
  • 函数功能:以计数模式配置计数器。
  • 参数说明:
  • 输入参数:

    • base: 要配置的计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4

    • config_params: 用于配置计数器的结构体,包含以下字段:

    • event: 配置计数器输入事件,类型为ERAD_Counter_Input_Event,可选项如下:
      • ERAD_EVENT_HWBP1ERAD_EVENT_HWBP8:硬件断点事件。
      • ERAD_EVENT_COUNTER1_EVENTERAD_EVENT_COUNTER4_EVENT:与计数器相关的事件。
      • ERAD_EVENT_PIE_INT1ERAD_EVENT_PIE_INT12:中断事件。
      • ERAD_EVENT_TIMER1_TINT1ERAD_EVENT_TIMER2_TINT2:定时器的事件。
      • ERAD_EVENT_NO_EVENT:用于指示没有事件输入的情况,这个选项用于计数器将其工作模式设置为计数 CPU 周期。
    • event_mode: 设置事件模式,类型为ERAD_Counter_Event_Mode,可选项如下:
      • ERAD_COUNTER_MODE_ACTIVE:计算事件处于活动状态时的 CPU 周期数。
      • ERAD_COUNTER_MODE_RISING_EDGE:计算事件的上升沿数量。
    • reference: 设置计数器的参考值。
    • rst_on_match: 在匹配时复位计数器的标志。
    • enable_int: 在事件匹配时启用中断的标志。
    • enable_stop: 在事件匹配时启用 CPU 停止功能的标志。
    • 返回参数:无
void ERAD_configCounterInStartStopMode(uint32_t base, ERAD_Counter_Config config_params, ERAD_Counter_Input_Event start_event, ERAD_Counter_Input_Event stop_event)
  • 函数功能:以起止模式配置计数器。
  • 参数说明:
  • 输入参数:

    • base: 要配置的计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4

    • config_params: 配置参数,包含以下字段:

    • event: 配置计数器输入事件,类型为ERAD_Counter_Input_Event,可选项如下:

      • ERAD_EVENT_HWBP1ERAD_EVENT_HWBP8:硬件断点事件。
      • ERAD_EVENT_COUNTER1_EVENTERAD_EVENT_COUNTER4_EVENT:与计数器相关的事件。
      • ERAD_EVENT_PIE_INT1ERAD_EVENT_PIE_INT12:中断事件。
      • ERAD_EVENT_TIMER1_TINT1ERAD_EVENT_TIMER2_TINT2:定时器的事件。
      • ERAD_EVENT_NO_EVENT:用于指示没有事件输入的情况,这个选项用于计数器将其工作模式设置为计数 CPU 周期。
    • event_mode: 设置事件模式,类型为ERAD_Counter_Event_Mode,可选项如下:

      • ERAD_COUNTER_MODE_ACTIVE:计算事件处于活动状态时的 CPU 周期数。
      • ERAD_COUNTER_MODE_RISING_EDGE:计算事件的上升沿数量。
    • reference: 设置计数器的参考值。
    • rst_on_match: 在匹配时重置计数器的标志。
    • enable_int: 在事件匹配时启用中断的标志。
    • enable_stop: 在事件匹配时启用 CPU 停止功能的标志。

    • start_event: 启动计数的事件,可选项如下:

    • ERAD_EVENT_HWBP1ERAD_EVENT_HWBP8:硬件断点事件。
    • ERAD_EVENT_COUNTER1_EVENTERAD_EVENT_COUNTER4_EVENT:与计数器相关的事件。
    • ERAD_EVENT_PIE_INT1ERAD_EVENT_PIE_INT12:中断事件。
    • ERAD_EVENT_TIMER1_TINT1ERAD_EVENT_TIMER2_TINT2:定时器的事件。
    • ERAD_EVENT_NO_EVENT:用于指示没有事件输入的情况,这个选项用于计数器将其工作模式设置为计数 CPU 周期。

    • stop_event: 停止计数的事件,可选项与start_event相同。

  • 返回参数:无

void ERAD_enableCounterResetInput(uint32_t base, ERAD_Counter_Input_Event reset_event)
  • 函数功能:启用计数器的重置事件。
  • 参数说明:
  • 输入参数:

    • base: 要配置的计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4

    • reset_event: 触发计数器重置的事件,可选项如下:

    • ERAD_EVENT_HWBP1ERAD_EVENT_HWBP8:硬件断点事件。
    • ERAD_EVENT_COUNTER1_EVENTERAD_EVENT_COUNTER4_EVENT:与计数器相关的事件。
    • ERAD_EVENT_PIE_INT1ERAD_EVENT_PIE_INT12:中断事件。
    • ERAD_EVENT_TIMER1_TINT1ERAD_EVENT_TIMER2_TINT2:定时器的事件。
    • ERAD_EVENT_NO_EVENT:用于指示没有事件输入的情况,这个选项用于计数器将其工作模式设置为计数 CPU 周期。
  • 返回参数:无

void ERAD_disableCounterResetInput(uint32_t base)
  • 函数功能:禁用计数器的重置事件。
  • 参数说明:

  • 输入参数:

    • base: 要禁用重置事件的计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:无

void ERAD_clearCounterEvent(uint32_t base)
  • 函数功能:清除计数器触发的事件。
  • 参数说明:

  • 输入参数:

    • base: 要禁用重置事件的计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:无

void ERAD_clearCounterOverflow(uint32_t base)
  • 函数功能:清除计数器可能发生的溢出。
  • 参数说明:

  • 输入参数:

    • base: 要清除溢出的计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:无

uint32_t ERAD_getCurrentCount(uint32_t base)
  • 函数功能:获取计数器的当前计数值。
  • 参数说明:
  • 输入参数:
    • base: 计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:计数器的当前计数值。
void ERAD_setCurrentCount(uint32_t base, uint32_t value)
  • 函数功能:设置计数器的当前计数值。
  • 参数说明:
  • 输入参数:

    • base: 计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4

    • value: 要写入的计数值。

  • 返回参数:无

uint32_t ERAD_getMaxCount(uint32_t base)
  • 函数功能:获取计数器的最大计数值。
  • 参数说明:

  • 输入参数:

    • base: 计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:计数器的最大计数值。

void ERAD_setMaxCount(uint32_t base, uint32_t value)
  • 函数功能:设置计数器的最大计数值。
  • 参数说明:
  • 输入参数:

    • base: 计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4

    • value: 要写入的最大计数值。

  • 返回参数:无

void ERAD_profile(ERAD_Profile_Params config_params)
  • 函数功能:配置ERAD以分析特定代码段。
  • 参数说明:

  • 输入参数:

    • config_params: 配置参数,包含以下字段:
    • start_address: 分析代码的起始地址。
    • end_address: 分析代码的结束地址。
    • bus_sel: 要监控的总线选择,类型为ERAD_BusComp_Bus_Select,可使用以下宏:
      • ERAD_BUSCOMP_BUS_VPC: 虚拟程序计数器
      • ERAD_BUSCOMP_BUS_DWAB: 数据写入地址总线
      • ERAD_BUSCOMP_BUS_DRAB: 数据读取地址总线
      • ERAD_BUSCOMP_BUS_DWDB: 数据写入数据总线
    • busComp_base1: 第一个总线比较器的基地址,可使用以下宏:
      • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
    • busComp_base2: 第二个总线比较器的基地址,可使用以下宏:
      • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
    • counter_base: 计数器的基地址,可使用以下宏:
      • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:无
void ERAD_enableInterruptOnAddressHit(ERAD_AddressHit_Params config_params, uint32_t busComp_base)
  • 函数功能:在指定地址上启用RTOS中断。
  • 参数说明:
  • 输入参数:
    • config_params: 配置参数,包含以下字段:
    • address: 触发中断的地址。
    • mask: 地址掩码,用于地址比较。
    • bus_sel: 要监控的总线,类型为ERAD_BusComp_Bus_Select,可使用以下宏:
      • ERAD_BUSCOMP_BUS_VPC: 虚拟程序计数器
      • ERAD_BUSCOMP_BUS_DWAB: 数据写入地址总线
      • ERAD_BUSCOMP_BUS_DRAB: 数据读取地址总线
      • ERAD_BUSCOMP_BUS_DWDB: 数据写入数据总线
    • busComp_base: 要使用的总线比较器的基地址,可使用以下宏:
    • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
    • 返回参数:无
void ERAD_countAddressHits(ERAD_AddressHit_Params config_params, uint32_t busComp_base, uint32_t counter_base)
  • 函数功能:统计指定地址被命中的次数。
  • 参数说明:
  • 输入参数:
    • config_params: 配置参数,包含以下字段:
    • address: 比较地址。
    • mask: 地址掩码,用于地址比较。
    • bus_sel: 要监控的总线,类型为ERAD_BusComp_Bus_Select,可使用以下宏:
      • ERAD_BUSCOMP_BUS_VPC: 虚拟程序计数器
      • ERAD_BUSCOMP_BUS_DWAB: 数据写入地址总线
      • ERAD_BUSCOMP_BUS_DRAB: 数据读取地址总线
      • ERAD_BUSCOMP_BUS_DWDB: 数据写入数据总线
    • busComp_base: 总线比较器的基地址,可使用以下宏:
    • ERAD_INST_BUSCOMP1ERAD_INST_BUSCOMP8
    • counter_base: 计数器的基地址,可使用以下宏:
    • ERAD_INST_COUNTER1ERAD_INST_COUNTER4
  • 返回参数:无