add int time test into kernel/int.md

This commit is contained in:
Yan_yan 2020-11-10 17:49:45 +08:00
parent f46e3577eb
commit 43457fa0ea
7 changed files with 138 additions and 0 deletions

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

View File

@ -15,6 +15,10 @@
* [中断服务程序](#riscv_int_service) * [中断服务程序](#riscv_int_service)
* [中断处理流程](#riscv_int_process2) * [中断处理流程](#riscv_int_process2)
* [中断函数接口](#riscv_int_api) * [中断函数接口](#riscv_int_api)
* [中断响应时间测试](#time_test)
* [概述](#time_test_intro)
* [基于 ARM 处理器的中断响应时间测试](#time_test_arm)
* [基于 RISC-V 处理器的中断响应时间测试](#time_test_riscv)
* [使用场景](#situation) * [使用场景](#situation)
<span id="interrupt"></span> <span id="interrupt"></span>
@ -200,6 +204,140 @@ xs_int32 xs_EnableHwIrq(xs_uint32 irq_num);
| --- | --- | | --- | --- |
| 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>
![XiUOS PROCESS](./imagesrc/int_arm_test_connect.png)
</center>
1KHz的方波信号输出到GPIO C2上将触发上升沿中断在GPIO中断处理函数当中将GPIO C13拉高,再将其置为低电平。触发源1KHz方波周期为1ms,因此不会影响到中断的响应。根据CMOS电路的电平特性当电压值达到0.7*Vcc时识别为高电平。
从波形上来看当输入源触发信号给到GPIO C2的电平值达到3.3v * 0.7 = 2.31v0.7*Vcc时将触发中断进入中断处理。因此通道1的电平值高于2.31v到GPIO C13变为高电平这段时间即为中断响应时间。
#### 编程代码清单
<center>
![XiUOS PROCESS](./imagesrc/int_arm_test_code.png)
</center>
#### 示波器测试选项设置
* 通道设置
* 耦合:直流
* 带宽限制:关闭
* 伏/格:粗调
* 探头10X 电压
* 反相:关闭
* 触发设置
* 类型:边沿
* 信源: CH1
* 斜率:上升
* 模式:自动
* 触发电压2.28v (略低于 2.31v即可)
* 测量设置
* 测量选通:开启
* 类型:时间
* 信源CH1
* CH1周期、频率、上升时间
* CH2周期、频率、上升时间
* Scale2.5us
#### 测试结果
<center>
![XiUOS PROCESS](./imagesrc/int_arm_test_result.png)
</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>
![RISC-V INT TIME TEST](./imagesrc/int_riscv_test_connect.png)
</center>
1KHz的方波信号输出到GPIO19上将触发上升沿中断在GPIO中断处理函数当中将GPIO18拉高,延时100us,再将其置为低电平。触发源1KHz方波周期为1ms,因此不会影响到中断的响应。根据CMOS电路的电平特性当电压值达到0.7*Vcc时识别为高电平。
从波形上来看当输入源触发信号给到GPIO19的电平值达到3.3v * 0.7 = 2.31v0.7*Vcc时将触发中断进入中断处理。因此通道1的电平值高于2.31v到GPIO18变为高电平这段时间即为中断响应时间。
#### 编程代码清单
<center>
![RISC-V INT TIME TEST](./imagesrc/int_riscv_test_code.png)
</center>
#### 示波器测试选项设置
* 通道设置
* 耦合:直流
* 带宽限制:关闭
* 伏/格:粗调
* 探头10X 电压
* 反相:关闭
* 触发设置
* 类型:边沿
* 信源: CH1
* 斜率:上升
* 模式:自动
* 触发电压2.28v (略低于 2.31v即可)
* 测量设置
* 测量选通:开启
* 类型:时间
* 信源CH1
* CH1周期、频率、上升时间
* CH2周期、频率、上升时间
* Scale250us
#### 测试结果
<center>
![RISC-V INT TIME TEST](./imagesrc/int_riscv_test_result.png)
</center>
从示波器测试结果上来看从触发源电平达2.28v到GPIO18管脚拉高响应时间为2.6us。
<span id="situation"></span> <span id="situation"></span>
## 使用场景 ## 使用场景