diff --git a/docs/doc/kernel/imagesrc/int_arm_test_code.png b/docs/doc/kernel/imagesrc/int_arm_test_code.png new file mode 100644 index 0000000..8f85608 Binary files /dev/null and b/docs/doc/kernel/imagesrc/int_arm_test_code.png differ diff --git a/docs/doc/kernel/imagesrc/int_arm_test_connect.png b/docs/doc/kernel/imagesrc/int_arm_test_connect.png new file mode 100644 index 0000000..554e4f8 Binary files /dev/null and b/docs/doc/kernel/imagesrc/int_arm_test_connect.png differ diff --git a/docs/doc/kernel/imagesrc/int_arm_test_result.png b/docs/doc/kernel/imagesrc/int_arm_test_result.png new file mode 100644 index 0000000..d7651d3 Binary files /dev/null and b/docs/doc/kernel/imagesrc/int_arm_test_result.png differ diff --git a/docs/doc/kernel/imagesrc/int_riscv_test_code.png b/docs/doc/kernel/imagesrc/int_riscv_test_code.png new file mode 100644 index 0000000..5cc908c Binary files /dev/null and b/docs/doc/kernel/imagesrc/int_riscv_test_code.png differ diff --git a/docs/doc/kernel/imagesrc/int_riscv_test_connect.png b/docs/doc/kernel/imagesrc/int_riscv_test_connect.png new file mode 100644 index 0000000..160e828 Binary files /dev/null and b/docs/doc/kernel/imagesrc/int_riscv_test_connect.png differ diff --git a/docs/doc/kernel/imagesrc/int_riscv_test_result.png b/docs/doc/kernel/imagesrc/int_riscv_test_result.png new file mode 100644 index 0000000..cb834bf Binary files /dev/null and b/docs/doc/kernel/imagesrc/int_riscv_test_result.png differ diff --git a/docs/doc/kernel/int.md b/docs/doc/kernel/int.md index ee65c31..1571e8d 100644 --- a/docs/doc/kernel/int.md +++ b/docs/doc/kernel/int.md @@ -15,6 +15,10 @@ * [中断服务程序](#riscv_int_service) * [中断处理流程](#riscv_int_process2) * [中断函数接口](#riscv_int_api) +* [中断响应时间测试](#time_test) + * [概述](#time_test_intro) + * [基于 ARM 处理器的中断响应时间测试](#time_test_arm) + * [基于 RISC-V 处理器的中断响应时间测试](#time_test_riscv) * [使用场景](#situation) @@ -200,6 +204,140 @@ xs_int32 xs_EnableHwIrq(xs_uint32 irq_num); | --- | --- | | irq_num | 硬件中断号 | + + +## 中断响应时间测试 + + + +### 概述 + +下面分别测试XiUOS系统运行在基于ARM和RISC-V不同处理器的开发板时,中断响应时间。 + + + + +### 基于 ARM 处理器的中断响应时间测试 + +#### 测试方法 +为了测试系统的中断响应时间,考虑使用GPIO管脚进行中断测试,利用GPIO中断服务函数当中管脚波形输出配合输入源波形进行分析。使用Tektronix TB1202B示波器的1KHz方波输出作为中断触发源。 +* 配置GPIO C2为输入模式,配置上升沿触发中断 +* 配置C13管脚为输出模式,接示波器通道1 +* 示波器的1KHz信号输出分别接C2管脚和示波器通道2 +* 示波器GND和开发板GND共地对接 + +示波器的1KHz方波输出将在1s钟内触发1000个中断。接线图如下图所示。 + +
+ +![XiUOS PROCESS](./imagesrc/int_arm_test_connect.png) + +
+1KHz的方波信号输出到GPIO C2上,将触发上升沿中断,在GPIO中断处理函数当中,将GPIO C13拉高,再将其置为低电平。触发源1KHz方波周期为1ms,因此不会影响到中断的响应。根据CMOS电路的电平特性,当电压值达到0.7*Vcc时,识别为高电平。 +从波形上来看,当输入源触发信号给到GPIO C2的电平值达到3.3v * 0.7 = 2.31v(0.7*Vcc)时将触发中断,进入中断处理。因此,通道1的电平值高于2.31v到GPIO C13变为高电平这段时间即为中断响应时间。 + +#### 编程代码清单 + +
+ +![XiUOS PROCESS](./imagesrc/int_arm_test_code.png) + +
+ +#### 示波器测试选项设置 +* 通道设置 + * 耦合:直流 + * 带宽限制:关闭 + * 伏/格:粗调 + * 探头:10X 电压 + * 反相:关闭 +* 触发设置 + * 类型:边沿 + * 信源: CH1 + * 斜率:上升 + * 模式:自动 + * 触发电压:2.28v (略低于 2.31v即可) + +* 测量设置 + * 测量选通:开启 + * 类型:时间 + * 信源:CH1 + * CH1:周期、频率、上升时间 + * CH2:周期、频率、上升时间 + * Scale:2.5us + +#### 测试结果 + +
+ +![XiUOS PROCESS](./imagesrc/int_arm_test_result.png) + +
+ +从示波器测试结果上来看,从触发源电平达2.28v到C13管脚拉高,响应时间为11.9us。 + + + +### 基于 RISC-V 处理器的中断响应时间测试 + +#### 测试方法 + +为了测试系统的中断响应时间,考虑使用GPIO管脚进行中断测试,利用GPIO中断服务函数当中管脚波形输出配合输入源波形进行分析。使用Tektronix TB1202B示波器的1KHz方波输出作为中断触发源。 +* 配置GPIO19为输入模式,配置上升沿触发中断 +* 配置GPIO18管脚为输出模式,接示波器通道1 +* 示波器的1KHz信号输出分别接GPIO19管脚和示波器通道2 +* 示波器GND和开发板GND共地对接 + +示波器的1KHz方波输出将在1s钟内触发1000个中断,接线图如下图所示。 + +
+ +![RISC-V INT TIME TEST](./imagesrc/int_riscv_test_connect.png) + +
+ +1KHz的方波信号输出到GPIO19上,将触发上升沿中断,在GPIO中断处理函数当中,将GPIO18拉高,延时100us,再将其置为低电平。触发源1KHz方波周期为1ms,因此不会影响到中断的响应。根据CMOS电路的电平特性,当电压值达到0.7*Vcc时,识别为高电平。 + +从波形上来看,当输入源触发信号给到GPIO19的电平值达到3.3v * 0.7 = 2.31v(0.7*Vcc)时将触发中断,进入中断处理。因此,通道1的电平值高于2.31v到GPIO18变为高电平这段时间即为中断响应时间。 +#### 编程代码清单 + +
+ +![RISC-V INT TIME TEST](./imagesrc/int_riscv_test_code.png) + +
+ +#### 示波器测试选项设置 +* 通道设置 + * 耦合:直流 + * 带宽限制:关闭 + * 伏/格:粗调 + * 探头:10X 电压 + * 反相:关闭 +* 触发设置 + * 类型:边沿 + * 信源: CH1 + * 斜率:上升 + * 模式:自动 + * 触发电压:2.28v (略低于 2.31v即可) + +* 测量设置 + * 测量选通:开启 + * 类型:时间 + * 信源:CH1 + * CH1:周期、频率、上升时间 + * CH2:周期、频率、上升时间 + * Scale:250us +#### 测试结果 + +
+ +![RISC-V INT TIME TEST](./imagesrc/int_riscv_test_result.png) + +
+ +从示波器测试结果上来看,从触发源电平达2.28v到GPIO18管脚拉高,响应时间为2.6us。 + ## 使用场景