Orange's TTY

       一、TYY任务本质就是增加了一个进程,并且运行在ring1,且优先级调高了。并且设置了键盘中断用于接收键盘输入,并将扫描码存放在缓冲区。task_tyy也就是新加入的进程,循环执行读写缓冲区。

       现在TYY任务和用户进程依次执行(时钟中断),并且TYY任务的优先级高。当遇到系统调用,切换到ring0,执行到内核态不能被时钟中断打断,执行后返回刚才的进程。

       每遇到有键盘输入,和上面的过程一样,往键盘缓冲区输入扫描码。

       

       

       二、tty.c,keyboard.c,console.c的关系

       


       

        

       三、printf系统调用

       细节请参考http://blog.csdn.net/jltxgcy/article/details/8766537

        

  

       四、键盘Make Code和Break Code

       Make Code是键盘按下时产生的码,Break Code是键盘放开时产生的码,Break Code是Make Code与0x80相或后的结果。键盘每个按键对应的Make Code和Break Code如下图

       

       我们用的时候参考keymap.h,其中的一行为

       /* 0x1D - l. Ctrl*/ CTRL_L,CTRL_L, CTRL_R

       第一列为Make Code,第二列为!SHIFT对应的按键值,第三列为SHIFT对应的按键值,第四列为Make Code前面带E0的按键值,观察上图R_Ctrl的Make Code为E0,1D,找到第二列和第三列用代码实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值