摘要: USB基本概念 USB是主机(host)用来和外围设备进行连接的总线。主机的USB控制器(controller)负责寻味USB设备是否需要发送数据;因此,USB设备在控制器询问之前,无法主动发送数据——USB很容易实现PnP。 下图是USB驱动结构图,在USB控制器之上,还有一个USB core负责 阅读全文
posted @ 2018-10-31 15:17 glob 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 * Finalizes the stack vm_area_struct. The flags and permissions are updated, 3 * the stack is optionally relocated, and some extra space is added. 4 */ 5 6 /** The macro below ... 阅读全文
posted @ 2018-01-04 09:05 glob 阅读(828) 评论(0) 推荐(0) 编辑
摘要: 体会下面两种写法的区别: 阅读全文
posted @ 2017-11-30 14:12 glob 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 后台处理流程如下: 图中灰色矩形代表的操作也被称为superpass——其内部实现也是更小的pass,对于后台的成功执行十分重要;而白色矩形中的pass则主要为了提高代码的效率。 llc是后台的主要工具,相关命令如下: 与后台相关的代码都在lib目录下以及其子目录CodeGen,MC,TableGe 阅读全文
posted @ 2017-09-06 14:14 glob 阅读(1050) 评论(0) 推荐(0) 编辑
摘要: 官方的IR是由Instruction类产生的。IR有三种存在形式: 生成bitcode文件: 生成汇编表示: 二者之间可以相互转化: 从bitcode文件中提取某个函数: IR的内存中表示 内存中表示的相关头文件在include/llvm/IR目录下,下面是几个最为重要的类: 可以用IRBuilde 阅读全文
posted @ 2017-09-05 17:22 glob 阅读(373) 评论(0) 推荐(0) 编辑
摘要: Clang将源码转换为LLVM IR 比特码(bitcode)的流程如下: 词法分析(Lexical analysis): 词法分析将代码分解成单词和记号,删除注释,空格,和制表符,根据include/clang/Basic/TokenKinds.def将保留字转化为编译器的内部表示。 此外,词法分 阅读全文
posted @ 2017-09-05 14:10 glob 阅读(805) 评论(0) 推荐(0) 编辑
摘要: OS:win10 pro X64 安装docker ce for Windows,采用Linux container,默认配置。 mv /etc/apt/sources.list /etc/apt/sources.list.bak备份原来的更新源; cat > /etc/apt/sources.li 阅读全文
posted @ 2017-08-14 14:17 glob 阅读(769) 评论(0) 推荐(0) 编辑
摘要: either '$(foo)' or '${foo}' is a valid reference to the variable foo. This special significance of '$' is why you must write '$$' to have the effect o 阅读全文
posted @ 2017-06-09 16:19 glob 阅读(220) 评论(0) 推荐(0) 编辑
摘要: The /var/log/wtmp file records all logins and logouts. The /var/log/lastlog file records when each user last logged in. The /var/log/faillog file reco 阅读全文
posted @ 2017-06-08 15:52 glob 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1 unsigned long copy_from_user(void * to, const void __user * from, unsigned long n) 第一个参数to是内核空间的数据目标地址指针, 第二个参数from是用户空间的数据源地址指针, 第三个参数n是数据的长度。 如果数据 阅读全文
posted @ 2017-05-06 11:01 glob 阅读(141) 评论(0) 推荐(0) 编辑