API GUIDE / Bus Monitor / LL

G32S10 Bus Monitor LL 接口

LL 层接口:功能说明: 判断通道序号是否在 0~`7` 范围内。

1. LL 与基础辅助接口规范

1.1 基础辅助接口

1.1.1 ll_bus_monitor_is_channel_valid

bool ll_bus_monitor_is_channel_valid(uint32_t channel);

功能说明: 判断通道序号是否在 0~`7` 范围内。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号

返回值表:

返回值说明
true通道序号合法
false通道序号非法

1.1.2 ll_bus_monitor_is_channel_mask_valid

bool ll_bus_monitor_is_channel_mask_valid(uint32_t channel_mask);

功能说明: 判断通道 bitmask 是否非空且仅包含 bit0~bit7。

参数表:

参数类型方向说明
channel_maskuint32_t输入通道 bitmask,bit0bit7 对应 CH0CH7

返回值表:

返回值说明
truebitmask 非空且仅包含有效通道 bit
falsebitmask 为空或包含无效通道 bit

1.1.3 ll_bus_monitor_channel_mask_from_index

uint32_t ll_bus_monitor_channel_mask_from_index(uint32_t channel);

功能说明: 根据通道序号生成对应 bitmask;通道非法时返回 0。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号

返回值表:

返回值说明
BIT(channel)通道合法时返回对应通道 bitmask
0通道非法

1.1.4 ll_bus_monitor_is_axi_channel

bool ll_bus_monitor_is_axi_channel(uint32_t channel);

功能说明: 判断通道是否为 AXI 通道。CH0~CH4、CH7 为 AXI 通道。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号

返回值表:

返回值说明
true通道为 AXI 通道
false通道不是 AXI 通道,或通道序号非法

1.1.5 ll_bus_monitor_is_ahb_channel

bool ll_bus_monitor_is_ahb_channel(uint32_t channel);

功能说明: 判断通道是否为 AHB 通道。CH5、CH6 为 AHB 通道。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号

返回值表:

返回值说明
true通道为 AHB 通道
false通道不是 AHB 通道,或通道序号非法

1.2 带宽监测控制接口

1.2.1 ll_bus_monitor_set_auto_mode

void ll_bus_monitor_set_auto_mode(uint32_t channel_mask);

功能说明: 将指定通道配置为自动停止模式,对应 CH_FUN_CTRL.CHn_FUN_MODE = 0。

参数表:

参数类型方向说明
channel_maskuint32_t输入待配置通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.2.2 ll_bus_monitor_set_manual_mode

void ll_bus_monitor_set_manual_mode(uint32_t channel_mask);

功能说明: 将指定通道配置为手动停止模式,对应 CH_FUN_CTRL.CHn_FUN_MODE = 1。

参数表:

参数类型方向说明
channel_maskuint32_t输入待配置通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.2.3 ll_bus_monitor_enable_channels

void ll_bus_monitor_enable_channels(uint32_t channel_mask);

功能说明: 启动指定通道带宽监测,对应 CH_FUN_CTRL.CHn_FUN_EN = 1。

参数表:

参数类型方向说明
channel_maskuint32_t输入待启动通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.2.4 ll_bus_monitor_disable_channels

void ll_bus_monitor_disable_channels(uint32_t channel_mask);

功能说明: 停止指定通道带宽监测,对应 CH_FUN_CTRL.CHn_FUN_EN = 0。

参数表:

参数类型方向说明
channel_maskuint32_t输入待停止通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.2.5 ll_bus_monitor_clear_channels

void ll_bus_monitor_clear_channels(uint32_t channel_mask);

功能说明: 清除指定通道带宽监测计数器,对应 CH_FUN_CTRL.CHn_FUN_CLR = 1。

参数表:

参数类型方向说明
channel_maskuint32_t输入待清除通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.2.6 ll_bus_monitor_set_clk_threshold

void ll_bus_monitor_set_clk_threshold(uint32_t channel, uint32_t threshold);

功能说明: 设置单个通道自动停止阈值,对应 CH_CLK_THRES[n]。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`
thresholduint32_t输入自动停止阈值

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel

1.3 带宽监测中断接口

1.3.1 ll_bus_monitor_enable_done_irq

void ll_bus_monitor_enable_done_irq(uint32_t channel_mask);

功能说明: 使能指定通道 done 中断,对应 CH_INT_CTRL.CHn_INT_EN = 1。

参数表:

参数类型方向说明
channel_maskuint32_t输入待使能中断通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.3.2 ll_bus_monitor_disable_done_irq

void ll_bus_monitor_disable_done_irq(uint32_t channel_mask);

功能说明: 关闭指定通道 done 中断,对应 CH_INT_CTRL.CHn_INT_EN = 0。

参数表:

参数类型方向说明
channel_maskuint32_t输入待关闭中断通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.3.3 ll_bus_monitor_clear_done_irq

void ll_bus_monitor_clear_done_irq(uint32_t channel_mask);

功能说明: 清除指定通道 done 中断状态,对应 CH_INT_CTRL.CHn_INT_CLR = 1。

参数表:

参数类型方向说明
channel_maskuint32_t输入待清除中断状态通道 bitmask,调用方需保证仅包含 bit0~bit7

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel_mask

1.3.4 ll_bus_monitor_get_done_status

uint32_t ll_bus_monitor_get_done_status(void);

功能说明: 读取 CH_INT_STATE.CHn_CNT_DONE 状态 bitmask。

参数表:

参数类型方向说明
无--无

返回值表:

返回值说明
uint32_tdone 状态 bitmask,bit0bit7 对应 CH0CH7

1.4 计数读取接口

1.4.1 ll_bus_monitor_get_val_clk_num

uint32_t ll_bus_monitor_get_val_clk_num(uint32_t channel);

功能说明: 读取单个通道 VAL_CLK_NUM[n]。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`

返回值表:

返回值说明
uint32_tVAL_CLK_NUM[n] 原始寄存器值

1.4.2 ll_bus_monitor_get_wval_hit_num

uint32_t ll_bus_monitor_get_wval_hit_num(uint32_t channel);

功能说明: 读取单个通道 WVAL_HIT_NUM[n]。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`

返回值表:

返回值说明
uint32_tWVAL_HIT_NUM[n] 原始寄存器值

1.4.3 ll_bus_monitor_get_rval_hit_num

uint32_t ll_bus_monitor_get_rval_hit_num(uint32_t channel);

功能说明: 读取单个通道 RVAL_HIT_NUM[n]。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`

返回值表:

返回值说明
uint32_tRVAL_HIT_NUM[n] 原始寄存器值

1.5 Debug LL 接口

1.5.1 ll_bus_monitor_enable_debug

void ll_bus_monitor_enable_debug(void);

功能说明: 使能 debug 模式,对应 DBG_TRANS_EN.DEBUG_EN = 1。

参数表:

参数类型方向说明
无--无

返回值表:

返回值说明
无接口不返回状态码

1.5.2 ll_bus_monitor_disable_debug

void ll_bus_monitor_disable_debug(void);

功能说明: 关闭 debug 模式,对应 DBG_TRANS_EN.DEBUG_EN = 0。

参数表:

参数类型方向说明
无--无

返回值表:

返回值说明
无接口不返回状态码

1.5.3 ll_bus_monitor_get_debug_enable

bool ll_bus_monitor_get_debug_enable(void);

功能说明: 读取当前 debug 使能状态。

参数表:

参数类型方向说明
无--无

返回值表:

返回值说明
truedebug 模式已使能
falsedebug 模式未使能

1.5.4 ll_bus_monitor_set_debug_threshold

void ll_bus_monitor_set_debug_threshold(uint32_t channel, uint32_t threshold);

功能说明: 设置单个通道 debug 超时阈值,对应 DBG_THRES[n]。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`
thresholduint32_t输入Debug 超时阈值

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel

1.5.5 ll_bus_monitor_set_debug_addr_start

void ll_bus_monitor_set_debug_addr_start(uint32_t channel, uint32_t addr_start);

功能说明: 设置单个通道 debug 地址范围最小值,对应 DBG_ADDR_START[n]。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`
addr_startuint32_t输入Debug 地址范围最小值

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel

1.5.6 ll_bus_monitor_set_debug_addr_end

void ll_bus_monitor_set_debug_addr_end(uint32_t channel, uint32_t addr_end);

功能说明: 设置单个通道 debug 地址范围最大值,对应 DBG_ADDR_END[n]。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`
addr_enduint32_t输入Debug 地址范围最大值

返回值表:

返回值说明
无接口不返回状态码;LL 不校验 channel

1.5.7 ll_bus_monitor_get_debug_channel_raw

uint32_t ll_bus_monitor_get_debug_channel_raw(uint32_t channel);

功能说明: 读取单个通道 debug 原始寄存器值,对应 DBG_DDRC_CHn。

参数表:

参数类型方向说明
channeluint32_t输入Bus Monitor 通道序号,调用方需保证为 0~`7`

返回值表:

返回值说明
uint32_tDBG_DDRC_CHn 原始寄存器值

1.5.8 ll_bus_monitor_get_debug_sort_raw

uint32_t ll_bus_monitor_get_debug_sort_raw(void);

功能说明: 读取 DBG_SORT 原始值。

参数表:

参数类型方向说明
无--无

返回值表:

返回值说明
uint32_tDBG_SORT 原始寄存器值

1.5.9 ll_bus_monitor_get_debug_system0_raw

uint32_t ll_bus_monitor_get_debug_system0_raw(void);

功能说明: 读取 DBG_SYSTEM_0 原始值。

参数表:

参数类型方向说明
无--无

返回值表:

返回值说明
uint32_tDBG_SYSTEM_0 原始寄存器值

1.5.10 ll_bus_monitor_get_debug_system1_raw

uint32_t ll_bus_monitor_get_debug_system1_raw(void);

功能说明: 读取 DBG_SYSTEM_1 原始值。

参数表:

参数类型方向说明
无--无

返回值表:

返回值说明
uint32_tDBG_SYSTEM_1 原始寄存器值

2. 寄存器映射与位域约定

2.1 寄存器映射

名称RW复位值偏移地址说明
CH_FUN_CTRLRW0x000000000x100通道带宽监测功能控制
CH_INT_CTRLRW0x000000000x104通道 done 中断控制
CH_INT_STATER0x000000000x108通道 done 状态
CH_CLK_THRES[n]RW0x000000000x110 + n * 4自动停止阈值
VAL_CLK_NUM[n]R0x000000000x140 + n * 4周期计数值
WVAL_HIT_NUM[n]R0x000000000x160 + n * 4写传输计数值
RVAL_HIT_NUM[n]R0x000000000x180 + n * 4读传输计数值
DBG_TRANS_ENRW0x000000000x1B0Debug 总使能
DBG_DDRC_CHnR0x????????0x1C0 + n * 4通道 debug 状态,n=0~7
DBG_SORTR0x0???????0x1E0挂死通道顺序
DBG_SYSTEM_0R0x????????0x1F0系统 debug 状态 0
DBG_SYSTEM_1R0x????????0x1F4系统 debug 状态 1
DBG_THRES[n]RW0x000000000x200 + n * 4Debug 超时阈值
DBG_ADDR_START[n]RW0x000000000x220 + n * 4Debug 地址范围起始
DBG_ADDR_END[n]RW0xFFFFFFFF0x240 + n * 4Debug 地址范围结束

2.2 CH_FUN_CTRL 位域

位名称说明
31:24Reserved保留,读为 0
23:16CHn_FUN_CLR每个通道的带宽计数清除,1 表示清除
15:8CHn_FUN_MODE每个通道的带宽监测模式,0 自动停止,1 手动停止
7:0CHn_FUN_EN每个通道的带宽监测使能,1 表示启用

2.3 CH_INT_CTRL 与 CH_INT_STATE 位域

寄存器位名称说明
CH_INT_CTRL31:16Reserved保留,读为 0
CH_INT_CTRL15:8CHn_INT_CLR每个通道 done 中断清除,1 表示清除
CH_INT_CTRL7:0CHn_INT_EN每个通道 done 中断使能,1 表示启用
CH_INT_STATE31:8Reserved保留,读为 0
CH_INT_STATE7:0CHn_CNT_DONE每个通道自动计数完成状态

2.4 AXI debug 状态位域

AXI 通道 CH0~CH4、CH7 的 DBG_DDRC_CHn 使用以下位域:

位名称说明
31:20Reserved保留,读为 0
19TIMEOUT_WR写数据超出阈值无法响应
18:11MISMATCH_ID写数据量与写命令数据量不匹配时记录的 AXI ID
10MISMATCH_WR写数据量与写命令数据量不匹配
9EXCEED_RANGE_RD读地址超出配置范围
8EXCEED_RANGE_WR写地址超出配置范围
7EXCEED_4K_RD读传输跨 4K 边界
6EXCEED_4K_WR写传输跨 4K 边界
5BUSY_WR写传输未完成
4BUSY_RD读传输未完成
3RREADY读传输 ready 信号
2RVALID读传输 valid 信号
1WREADY写传输 ready 信号
0WVALID写传输 valid 信号

2.5 AHB debug 状态位域

AHB 通道 CH5、CH6 的 DBG_DDRC_CHn 使用以下位域:

位名称说明
31:8Reserved保留,读为 0
7TIMEOUT_WR传输超出阈值无法响应
6EXCEED_RANGE传输地址超出配置范围
5EXCEED_4K传输跨 4K 边界
4MISMATCH_FLAG实际数据量与命令数据量不匹配
3TRANS_BUSYAHB 传输未完成
2HREADYAHB ready 信号
1:0HTRANSAHB trans 信号