上海应用技术学院
程序设计语言实验报告
实验名称 | 设备驱动程序 | 实验序号 | 实验七 | 实验日期 | |
姓 名 |
| 学 号 |
| 指导教师 | |
专 业 | 计算机科学与技术 | 班 级 | | 成 绩 | |
一、实验目的及要求 调试EOS 串口驱动程序向串口发送数据的功能,了解设备驱动程序工作原理。 为EOS 串口驱动程序添加从串口接收数据的功能,进一步加深对设备驱动程序工作原理的理解。 | |||||
二、实验环境 | |||||
三、实验内容 2. 新建一个EOS Kernel 项目如图1。
图1 | |||||
软盘镜像。 4. 将本实验文件夹中的serial.exe 文件添加到软盘镜像的根目录中,如图2。5. 点击FloppyImageEditor 工具栏上的保存按钮,关闭该工具。
图2 2 练习使用EOS 应用程序向串口发送数据
图3 |
图4
图5 2. 在“连接到”对话框中选择COM7,点击“确定”按钮,如图7。
图7 |
3. 在“属性”对话框中点击“确定”按钮,使用默认设置。接下来就会显示Terminal 的 输入输出窗口,用于显示从COM7 接收到的数据和向COM7 发送的数据。 4. 此时激活虚拟机窗口,在EOS 控制台中输入任意字符串并按回车后,Terminal 会接收到由serial.exe 发送到串口COM2 的内容。例如在serial 中输入“hello”后按回车,Terminal 会接收到并显示“hello” 如图8-9。
图8
图9 6.结束此次调试。关闭Terminal 工具。 3 调试EOS 串口驱动程序向串口发送数据的功能 |
图10
图11 2. 按F5 启动调试,如图12。 图12 3. 在内核初始化过程中,初始化8250 控制器时会触发一个8250 中断,并命中SrlIsr 中 设置的断点,按F5 让EOS 继续执行忽略此次中断。 4. 激活虚拟机窗口,在EOS 控制台中输入命令“serial”按回车如图13。
|
图13
图14
图15 8. 将鼠标指针移动到SrlWrite 函数参数Request 上,可以查看其值为6。 9. 说明要发送包括“12345”和字符串结束符“\0”在内的6 个字符。如图16。
图16 |
10.对照SrlWrite 的流程图,按F10 单步跟踪该函数的执行过程。当变量Data 被赋值后,查看变量的值为0x31(字符“1”的ASCII 代码)。当执行语句(第332 行):WRITE_PORT_UCHAR(REG_PORT(DeviceObject, THR), Data);
图17
图18 4 为EOS 串口驱动程序添加从串口接收数据的功能 2. 按F5 启动调试。 3. 按照之前练习的方法启动serial.exe 和Terminal 工具。 4. 在EOS 控制台输入字符串并发送到Terminal 工具后,从Terminal 工具输入字符串应 该可以再发送到EOS 控制台,并可以交替的进行输入输出。如图19-20:
图19
图20 |
|
四、实验结果与分析
图21
图22 |