一、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,找到第二列和第三列用代码实现。

Orange's TTY相关推荐

  1. IO_FILE——FSOP、house of orange

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  2. Orange Pi编译脚本的分析

    脚本的运行流程 /scripts/main.sh 变量设置 DEST="${SRC}"/output REVISION="2.2.2" DOWNLOAD_MIR ...

  3. Orange Pi i96 入手填坑问题(2)-wifi网卡MAC地址随机变化和串口粘贴死机问题

    i96在上一篇文章中写道了一些坑和问题 Orange Pi i96 入手填坑问题总结_hoopertsau的博客-CSDN博客 今天在说两个个问题 一.MAC地址每次启动都会变化的问题 主要是要重新编 ...

  4. 终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系

    1.终端(terminal) 终端(termimal)= tty(Teletypewriter, 电传打印机),作用是提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是 ...

  5. java 操作uart串口_【tty】应用程序调用write写串口调用流程

    这几天在跟进串口使能流控后收发异常问题,特简单梳理了下应用程序执行write操作的调用流程,在这简单记录下,平台为全志方案 tty_io.c         tty_io.c              ...

  6. CLI、终端 (Terminal)、Shell、TTY、Console、Bash都是什么?

    CLI.终端 (Terminal).Shell.TTY.Console.Bash都是什么? terminal = tty = text input/output environment console ...

  7. Linux关于终端的基本概念汇总(tty/pty)(转)

    在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种: 1.串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal)是使用计算机串行端口 ...

  8. cannot open line '/dev/tty.usbserial' for r/w resource busy

    在进行串口调试的时候,需要在iterm上查看log信息只需要输入以下命令 screen /dev/tty.usbserial-gggggggg1 115200 有时候会遇到以下问题 cannot op ...

  9. 如何修复“ sudo:不存在tty且未指定AskPass程序”错误?

    本文翻译自:How to fix 'sudo: no tty present and no askpass program specified' error? I am trying to compi ...

最新文章

  1. toft 测试用例rat_一篇文章详述配对测试的测试用例设计!强烈建议收藏
  2. yeoman_使用yeoman轻松创建Yeoman生成器
  3. UCGUI的模拟器UCGUISim详解
  4. 插值问题(拉格朗日插值、牛顿插值)
  5. 如何在Win11上本地显示CPU、GPU和RAM使用情况?
  6. 美食博主整本菜譜全記錄
  7. dos命令 oracle显示时间,Oracle 常用 Dos命令
  8. 【AI芯片】中国AI芯片爆发,架构创新迫在眉睫
  9. kindeditor 文件上传 java_富文本编辑器kindeditor上传图片的配置方法
  10. python股票接口_python获取股票数据接口
  11. 美团java后端_美团笔试题(Java后端5题2小时)(示例代码)
  12. 编程初学者的那些痛楚
  13. 环信php修改头像,环信客服 如何正确设置用户的头像和昵称?
  14. 《数据库原理》实验报告DB4——视图与索引
  15. 15.7数据库(7):MySQL创建校园数据库
  16. 这段温暖的路程谁能丈量
  17. 关于一次美团java程序员招聘面试的经历
  18. t420i升级固态硬盘提升_2100MB超高读速,雷克沙推出新品固态,笔记本硬盘升级新选择...
  19. My Interview
  20. Alibaba官方发文:阿里技术人的成长路径与方法论

热门文章

  1. 前端传过来集合,后端如何接
  2. 禁用nouveau后黑屏_在Windows中禁用自适应亮度以修复黑屏问题
  3. camtasia studio2022屏幕录制工具支持MAC/WIN
  4. 第11章作业(含有知识点)
  5. 曲率圆方程的求解思路,防止遗忘!!!
  6. Python刘氏神数奇门排盘程序
  7. 如何在线解决微信扫二维码无法打开网页的难题
  8. qDebug 输出中文
  9. 人生若只如初见,何来秋风悲画扇!
  10. [leetcode] 748. Shortest Completing Word