Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick Start
Create a new post
|
|
More info: Writing
Run server
|
|
More info: Server
Generate static files
|
|
More info: Generating
Deploy to remote sites
|
|
More info: Deployment
用git保存空目录
git 和 svn 不同,仅仅跟踪文件的变动,不跟踪目录。Perforce 也是如此。所以,一个空目录,如果里面没有文件,即便 git add 这个目录,另外在别处 check out 的时候,是没有这个空目录的。
只跟踪文件变化,不跟踪目录,这么设计是有原因的。但这会带来一些小麻烦。有时候,确实需要在代码仓库中保留某个空目录。比如测试时需要用到的空目录。
变通的解决办法是在空目录下存一个 .gitignore
文件。然后 git add
此目录后,相当于跟踪了 .gitignore
文件,产生的“副作用”就是这个“空”目录也纳入“跟踪”,最终的效果是可以 check out 出一个看起来空空的目录。如果有许多这样的空目录,可以用下面的命令自动补充 .gitignore
文件:
递归找寻当前目录下,类型为目录,且为空,也没有 .git
开头的文件,在其中用 touch 新建一个空的 .gitignore
文件。然后 git add .
之后即可。
如果这些特殊文件会对测试带来干扰,那就只好在测试程序运行具体测试项目之前,先跑一段初始化目录结构的代码。另外可能还需要编写负责清理的代码。
Linux 3.10 ARM Device Tree 的初始化
原文:http://blog.chinaunix.net/uid-20522771-id-3785808.html
本文代码均来自标准 linux kernel 3.10,可以到这里下载 https://www.kernel.org/
以 arch/arm/mach-msm/board-dt-8960.c 为例,在该文件中的msm_dt_init
函数的作用就是利用 dt(device tree)结构初始化 platform device。
Device Tree(三):代码分析
原文链接:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html
转自:蜗窝科技
前言
Device Tree总共有三篇,分别是:
1、为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因)
2、Device Tree的基础概念(请参考DT基础概念)
3、ARM linux中和Device Tree相关的代码分析(这是本文的主题)
本文主要内容是:以Device Tree相关的数据流分析为索引,对ARM linux kernel的代码进行解析。主要的数据流包括:
1、初始化流程。也就是扫描dtb并将其转换成Device Tree Structure。
2、运行时参数传递以及platform的识别流程分析
3、如何将Device Tree Structure并入linux kernel的设备驱动模型。
注:本文中的linux kernel使用的是3.14版本。
Device Tree(二):基本概念
转自:蜗窝科技
原文链接:http://www.wowotech.net/linux_kenrel/dt_basic_concept.html
前言
一些背景知识(例如:为何要引入Device Tree,这个机制是用来解决什么问题的)请参考引入Device Tree的原因,本文主要是介绍Device Tree的基础概念。
简单的说,如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运行参数,并把这些信息组织成Device Tree source file。通过DTC(Device Tree Compiler),可以将这些适合人类阅读的Device Tree source file变成适合机器处理的Device Tree binary file(有一个更好听的名字,DTB,device tree blob)。在系统启动的时候,boot program(例如:firmware、bootloader)可以将保存在flash中的DTB copy到内存(当然也可以通过其他方式,例如可以通过bootloader的交互式命令加载DTB,或者firmware可以探测到device的信息,组织成DTB保存在内存中),并把DTB的起始地址传递给client program(例如OS kernel,bootloader或者其他特殊功能的程序)。对于计算机系统(computer system),一般是firmware->bootloader->OS,对于嵌入式系统,一般是bootloader->OS。
本文主要描述下面两个主题:
1、Device Tree source file语法介绍
2、Device Tree binary file格式介绍
Device Tree(一):背景介绍
转自:蜗窝科技
原文链接http://www.wowotech.net/device_model/why-dt.html
前言
作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的、扯皮的俗务占据了大部分的时间。当有机会下载3.14的内核并准备学习的时候,突然发现linux kernel对于我似乎变得非常的陌生了,各种新的机制,各种framework、各种新的概念让我感到阅读内核代码变得举步维艰。 还好,剖析内核的热情还在,剩下的就交给时间的。首先进入视线的是Device Tree机制,这是和porting内核非常相关的机制,如果想让将我们的硬件平台迁移到高版本的内核上,Device Tree是一个必须要扫清的障碍。
我想从下面三个方面来了解Device Tree:
1、为何要引入Device Tree,这个机制是用来解决什么问题的?(这是本文的主题)
2、Device Tree的基础概念(请参考DT基础概念)
3、ARM linux中和Device Tree相关的代码分析(请参考DT代码分析)
阅读linux内核代码就像欣赏冰山,有看得到的美景(各种内核机制及其代码),也有埋在水面之下看不到的基础(机制背后的源由和目的)。沉醉于各种内核机制的代码固然有无限乐趣,但更重要的是注入更多的思考,思考其背后的机理,真正理解软件抽象。这样才能举一反三,并应用在具体的工作和生活中。
本文主要从下面几个方面阐述为何ARM linux会引入Device Tree:
1、没有Device Tree的ARM linux是如何运转的?
2、混乱的ARM architecture代码和存在的问题
3、新内核的解决之道
设备树使用手册(译)
原文链接:http://devicetree.org/Device_Tree_Usage
参考译文:http://blog.chinaunix.net/uid-20522771-id-3457184.html
本文将介绍如何为一个新机器编写设备树。我们准备提供一个有关设备树概念的概述和如何使用这些设备树来描述一个机器。
完整的设备树数据格式的技术说明书请参考 ePAPR 规范。ePAPR 规范涵盖了比本文基本主题更丰富的细节,要查阅本文没有涉及到的高级用法请参考该规范。
Relay:一种内核到用户空间的高效数据传输技术
原文:http://www.ibm.com/developerworks/cn/linux/l-cn-relay/index.html
Relay 是一种从 Linux 内核到用户空间的高效数据传输技术。通过用户定义的 relay 通道,内核空间的程序能够高效、可靠、便捷地将数据传输到用户空间。Relay 特别适用于内核空间有大量数据需要传输到用户空间的情形,目前已经广泛应用在内核调试工具如 SystemTap中。本文介绍了 Relay 的历史和原理,并且用一个简单的实例介绍了 Relay 的具体用法。