摘要: 目标:根据USB驱动分析和上节的USB鼠标驱动,编写键盘驱动,并测试。 一、原理分析 1. 首先通过打印usb_buf[i]中的8字节数据,看一下按键按下之后会接收到什么。 1)通过按完所有键盘按键打印的结果可知,有8个按键会打印在usb_buf[0]里,即: ctrl左键 0x01 0000000 阅读全文
posted @ 2019-01-03 19:29 程序猿爱吃鸡 阅读(2264) 评论(0) 推荐(0) 编辑
摘要: 1. 串口接收数据原理(以“ls”命令为例) (1) 每个终端设备都有一个接收缓冲区,保存原始数据。shell程序一直在休眠,等待合适的字符; (2) 串口接收到'l'字符,把它保存下来; (3) 串口输出‘l’字符,这样控制台就可以显示出字符‘l’; (4) 接收字符‘s’同理,保存,输出; (5 阅读全文
posted @ 2019-01-03 16:07 程序猿爱吃鸡 阅读(885) 评论(0) 推荐(0) 编辑
摘要: 1. make:警告检测到时钟错误。您的创建可能是不完整的 原因:服务器上的文件修改时间比当前时间要晚 解决方案1:用touch命令把源程序的时间戳修改下 执行# touch * 阅读全文
posted @ 2019-01-03 11:20 程序猿爱吃鸡 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 目标:熟悉父子进程之间资源共享 在fork函数执行之后,父子进程之间有哪些相同和不同之处呢? -->相同处: 全局变量、.data、.text、栈、堆、环境变量、用户ID、宿主目录、进程工作目录、信号处理方式... -->不同处: 1.进程ID 2.fork返回值 3.父进程ID 4.进程运行时间 阅读全文
posted @ 2019-01-03 11:00 程序猿爱吃鸡 阅读(316) 评论(0) 推荐(0) 编辑
摘要: fork()函数 目标:熟悉fork创建一个和多个子进程子线程 函数原型:pid_t fork(void); 返回值:成功返回:① 父进程返回子进程的ID(非负) ②子进程返回 0 ; 失败返回-1。 注意:pid_t类型表示进程ID,它是有符号整型。 例程一:创建一个子线程 编译执行结果: 例程二 阅读全文
posted @ 2019-01-03 10:20 程序猿爱吃鸡 阅读(1893) 评论(0) 推荐(0) 编辑