添加F12功能键盘处理
文件位置 kernel/chr_drv/tty_io.c
文件末尾添加
文件位置 include/linux/tty.h
文件末尾添加
文件位置 kernel/chr_drv/keyboard.S
注意位置 525行注释掉,改成调用 press_f12_handle 函数
添加字符*显示处理
文件位置 linux-0.11/kernel/chr_drv/console.c
其实很简单,就是循环队列一个个取字符进行处理后放入显存
我们就在放入显存之前进行一次过滤,即 F12_flag == 1 时将字符转变为 *
编译运行
make all
run
😉 实验完成
实验问题
1.在原始代码中,按下F12,中断响应后,中断服务程序会调用func?它实现的是什么功能?
将F12转义成转义字符序列 [ [ L , 对F1-F12处理类似 [ [ A -> [ [ L
2.在你的实现中,是否把向文件输出的字符也过滤了?如果是,那么怎么能只过滤向终端输出的字符?如果不是,那么怎么能把向文件输出的字符也一并进行过滤?
没有把向文件输出的字符过滤,只过滤向终端输出的字符是通过con_write函数的修改来实现的。过滤向文件输出的字符则通过修改file_write函数来实现。
天道酬勤
这次实验十分简单,一个多小时就完成了。主要就是要捋顺文件之间的逻辑。