add int time test into kernel/int.md
This commit is contained in:
parent
f46e3577eb
commit
43457fa0ea
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
Binary file not shown.
After Width: | Height: | Size: 300 KiB |
Binary file not shown.
After Width: | Height: | Size: 641 KiB |
Binary file not shown.
After Width: | Height: | Size: 60 KiB |
Binary file not shown.
After Width: | Height: | Size: 300 KiB |
Binary file not shown.
After Width: | Height: | Size: 949 KiB |
|
@ -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)
|
||||
|
||||
<span id="interrupt"></span>
|
||||
|
@ -200,6 +204,140 @@ xs_int32 xs_EnableHwIrq(xs_uint32 irq_num);
|
|||
| --- | --- |
|
||||
| irq_num | 硬件中断号 |
|
||||
|
||||
<span id="time_test"></span>
|
||||
|
||||
## 中断响应时间测试
|
||||
|
||||
<span id="time_test_intro"></span>
|
||||
|
||||
### 概述
|
||||
|
||||
下面分别测试XiUOS系统运行在基于ARM和RISC-V不同处理器的开发板时,中断响应时间。
|
||||
|
||||
|
||||
<span id="time_test_arm"></span>
|
||||
|
||||
### 基于 ARM 处理器的中断响应时间测试
|
||||
|
||||
#### 测试方法
|
||||
为了测试系统的中断响应时间,考虑使用GPIO管脚进行中断测试,利用GPIO中断服务函数当中管脚波形输出配合输入源波形进行分析。使用Tektronix TB1202B示波器的1KHz方波输出作为中断触发源。
|
||||
* 配置GPIO C2为输入模式,配置上升沿触发中断
|
||||
* 配置C13管脚为输出模式,接示波器通道1
|
||||
* 示波器的1KHz信号输出分别接C2管脚和示波器通道2
|
||||
* 示波器GND和开发板GND共地对接
|
||||
|
||||
示波器的1KHz方波输出将在1s钟内触发1000个中断。接线图如下图所示。
|
||||
|
||||
<center>
|
||||
|
||||

|
||||
|
||||
</center>
|
||||
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变为高电平这段时间即为中断响应时间。
|
||||
|
||||
#### 编程代码清单
|
||||
|
||||
<center>
|
||||
|
||||

|
||||
|
||||
</center>
|
||||
|
||||
#### 示波器测试选项设置
|
||||
* 通道设置
|
||||
* 耦合:直流
|
||||
* 带宽限制:关闭
|
||||
* 伏/格:粗调
|
||||
* 探头:10X 电压
|
||||
* 反相:关闭
|
||||
* 触发设置
|
||||
* 类型:边沿
|
||||
* 信源: CH1
|
||||
* 斜率:上升
|
||||
* 模式:自动
|
||||
* 触发电压:2.28v (略低于 2.31v即可)
|
||||
|
||||
* 测量设置
|
||||
* 测量选通:开启
|
||||
* 类型:时间
|
||||
* 信源:CH1
|
||||
* CH1:周期、频率、上升时间
|
||||
* CH2:周期、频率、上升时间
|
||||
* Scale:2.5us
|
||||
|
||||
#### 测试结果
|
||||
|
||||
<center>
|
||||
|
||||

|
||||
|
||||
</center>
|
||||
|
||||
从示波器测试结果上来看,从触发源电平达2.28v到C13管脚拉高,响应时间为11.9us。
|
||||
|
||||
<span id="time_test_riscv"></span>
|
||||
|
||||
### 基于 RISC-V 处理器的中断响应时间测试
|
||||
|
||||
#### 测试方法
|
||||
|
||||
为了测试系统的中断响应时间,考虑使用GPIO管脚进行中断测试,利用GPIO中断服务函数当中管脚波形输出配合输入源波形进行分析。使用Tektronix TB1202B示波器的1KHz方波输出作为中断触发源。
|
||||
* 配置GPIO19为输入模式,配置上升沿触发中断
|
||||
* 配置GPIO18管脚为输出模式,接示波器通道1
|
||||
* 示波器的1KHz信号输出分别接GPIO19管脚和示波器通道2
|
||||
* 示波器GND和开发板GND共地对接
|
||||
|
||||
示波器的1KHz方波输出将在1s钟内触发1000个中断,接线图如下图所示。
|
||||
|
||||
<center>
|
||||
|
||||

|
||||
|
||||
</center>
|
||||
|
||||
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变为高电平这段时间即为中断响应时间。
|
||||
#### 编程代码清单
|
||||
|
||||
<center>
|
||||
|
||||

|
||||
|
||||
</center>
|
||||
|
||||
#### 示波器测试选项设置
|
||||
* 通道设置
|
||||
* 耦合:直流
|
||||
* 带宽限制:关闭
|
||||
* 伏/格:粗调
|
||||
* 探头:10X 电压
|
||||
* 反相:关闭
|
||||
* 触发设置
|
||||
* 类型:边沿
|
||||
* 信源: CH1
|
||||
* 斜率:上升
|
||||
* 模式:自动
|
||||
* 触发电压:2.28v (略低于 2.31v即可)
|
||||
|
||||
* 测量设置
|
||||
* 测量选通:开启
|
||||
* 类型:时间
|
||||
* 信源:CH1
|
||||
* CH1:周期、频率、上升时间
|
||||
* CH2:周期、频率、上升时间
|
||||
* Scale:250us
|
||||
#### 测试结果
|
||||
|
||||
<center>
|
||||
|
||||

|
||||
|
||||
</center>
|
||||
|
||||
从示波器测试结果上来看,从触发源电平达2.28v到GPIO18管脚拉高,响应时间为2.6us。
|
||||
|
||||
<span id="situation"></span>
|
||||
|
||||
## 使用场景
|
||||
|
|
Loading…
Reference in New Issue