【Linux驱动】Linux设备树(一)—— 设备树基本语法

设备树是一种树形结构,用于描述某一个板级设备的硬件信息,比如 CPU数量、I2C接口上接了哪些设备、SPI接口上接了哪些设备等。设备树让驱动程序和硬件信息发生了解耦,对于不同的板级设备,即便是外设不同,也无需变动驱动,只需要修改设备树即可。

一、设备树文件类型

C语言的文件类型包含 .c、.h、.i、.s、.o,设备树也存在类似的文件,

  • .dts: 设备树源文件,一般描述板级信息(开发板上包含哪些外设)—— 类似于 .c 文件
  • .dtsi:描述 SOC 信息(即CPU数量、主频等)                                 —— 类似于 .h 文件
  • .dtb:二进制设备树文件,经过 .dts 编译得到的文件                         —— 类似于 .o 文件

通常会将不同板级设备的共同信息提取出来作为一个通用的文件,其他板级设备独有的 .dts 文件直接引入这个通用文件即可,这个通用文件就是 .dtsi 文件。

注意: 每次修改完 .dts 或 .dtsi 后,都需要重新编译成 .dtb

二、.dts 文件语法结构

.dts 文件内部也是以树形结构描述设备信息的,根节点下包含了其他子节点 cpus、backlight、spi@fe001000 等,其中 cpus 下又包含了 cpu@0 和 cpu@1 两个节点。

1、节点命名规范

每一个节点的命名规范为

【label:】node-name@unit-address

label:节点别名(可省略)。有时节点名比较长,为了方便其他地方获取节点,会给节点起一个别名

node-name:节点名(字母开头),同一级下的节点名不能重复。

unit-address:该节点的起始地址。如果该节点无 reg 属性,那么unit-address 必须省略

以下图为例,节点ov5640@3c的名字是 ov5640,地址是 3c,别名为 ov5640

2、获取节点

一般通过别名获取节点,获取节点使用的是 & 符号。

// &节点或节点别名
// 通过别名获取节点ov5640@3c
&ov5640

3、追加节点内容

.dtsi 文件中保存了不同板机设备的共同信息,但是当前开发板还包含了一些额外的 cpu0 的信息,我们需要追加这些信息。比如imx6ull.dtsi 中已经包含了 cpu0 的相关信息

我们希望追加一些额外信息,所以我们可以先获取到这个节点,然后追加内容

4、标准属性

(1) compatible

兼容性列表,表示当前设备是否与当前内核兼容,compatible 属性的格式如下:

/* 格式 */
compatible: "manufacturer,model", ... ;
  • manufacturer:表示厂商
  • model:表示驱动模块的名字

sound 设备会使用兼容性列表里的内容逐个在 Linux 内核查找,是否存在对应的驱动模块。

(2) model

描述的是设备模块信息,比如当前设备类型、型号等。

(3) status

描述了当前设备状态信息。

描述
"okay"表明设备是可操作的
"disable"表明设备当前不可被操作,但未来可以变为可操作
"fail"表明设备不可操作,因为检测到了一系列错误,未来不大可能变得可操作
"fail-xxx"意义和 "fail" 相同,后面的 xxx 表示检测到的错误内容

(4) #address-cells、#size-cells、reg属性

决定了子节点中的 reg 属性应该如何设置。

  • #address-cells:  reg属性中每个地址要使用多少个 u32 类型的值来表示
  • #size-cells:  reg属性中每个地址长度要使用多少个 u32 类型的值来表示
  • reg:  描述了某个外设寄存器地址的范围信息
/* 1、示例1 */
{
    #address-cells = <1>;    // 每个地址使用1个u32类型的值来表示
    #size-cells = <0>;       // 无地址长度
    gpio_spi: gpio_spi@0 {
        reg = <0>;           // 这里的 0 代表起始地址
    }
}

/* 2、示例2 */
{
    #address-cells = <1>;    // 每个地址使用1个u32类型的值来表示
    #size-cells = <1>;       // 每个地址长度使用1个u32类型的值来表示

    dcp: dcp@02280000 {
        reg = <0x02280000 0x4000>;    // 0x02280000代表起始地址,用 1 个u32类型的值来表示
                                      // 0x4000 代表地址长度,用 1 个u32类型的值来表示
    }
}

三、设备树在系统中的体现

Linux内核在启动时会解析设备树中各个节点的信息,并且在根文件系统的 /proc/device-tree 目录下根据节点名字创建对应的文件夹,属性则是创建对应的文件。

板级设备的 dts 文件:

/proc/device-tree 目录

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 第1章 嵌入式系统基础知识 .1 1.1 嵌入式系统概述 1 1.1.1 嵌入式系统的发展史 2 1.1.2 嵌入式系统的定义与特点 3 1.1.3 嵌入式系统的特点 4 1.2 嵌入式系统的组成 5 1.2.1 嵌入式系统的硬件架构 6 1.2.2 嵌入式操作系统 9 1.2.3 嵌入式应用软件 11 1.3 arm处理器平台介绍 12 1.3.1 arm处理器简介 12 1.3.2 arm处理器系列 13 1.3.3 arm体系结构简介 17 1.3.4 s3c2410处理器简介 18 1.4 嵌入式系统硬件平台选型 22 1.4.1 硬件平台的选择 22 1.4.2 arm处理器选型 23 1.5 嵌入式系统开发概述 25 1.5.1 嵌入式系统开发流程 25 1.5.2 嵌入式软件开发流程 26 .本章小结 31 动手练练 31 第2章 嵌入式linux c语言开发工具 32 2.1 嵌入式linux下c语言概述 32 2.1.1 c语言简史 33 2.1.2 c语言特点 33 2.1.3 嵌入式linux c语言编程环境 34 2.2 嵌入式linux编辑器vi的使用 35 2.2.1 vi的基本模式 35 2.2.2 vi的基本操作 36 2.2.3 vi的使用实例分析 40 2.3 嵌入式linux编译器gcc的使用 41 2.3.1 gcc概述 41 2.3.2 gcc编译流程分析 42 2.3.3 gcc警告提示 45 2.3.4 gcc使用库函数 47 2.3.5 gcc代码优化 49 2.4 嵌入式linux调试器gdb的使用 49 2.4.1 gdb使用实例 50 2.4.2 设置/删除断点 53 2.4.3 数据相关命令 54 2.4.4 调试运行环境相关命令 55 2.4.5 堆栈相关命令 55 2.5 make工程管理器 55 2.5.1 makefile基本结构 56 2.5.2 makefile变量 58 2.5.3 makefile规则 61 2.5.4 make使用 62 2.6 emacs综合编辑器 63 2.6.1 emacs的启动与退出 63 2.6.2 emacs的基本编辑 64 2.6.3 emacs的c模式 66 2.6.4 emacs的shell模式 69 本章小结 70 动手练练 70 第3章 构建嵌入式linux系统 71 3.1 嵌入式系统开发环境的构建 71 3.1.1 嵌入式交叉编译环境搭建 71 3.1.2 minicom和超级终端配置及使用 76 3.1.3 宿主机服务配置 83 3.2 bootloader 87 3.2.1 bootloader的概念 88 3.2.2 bootloader启动流程分析 89 3.2.3 u-boot概述 89 3.2.4 u-boot源码导读 90 3.3 编译嵌入式linux内核 91 3.4 linux内核目录结构 95 3.5 制作文件系统 95 本章小结 97 动手练练 97 第4章 嵌入式linux c语言基础——数据、表达式 98 4.1 嵌入式linux c语言概述 98 4.2 基本数据类型 100 4.2.1 整型家族 100 4.2.2 实型家族 102 4.2.3 字符型家族 103 4.2.4 枚举家族 104 4.2.5 指针家族 105 4.3 变量与常量 107 4.3.1 变量的定义 107 4.3.2 typedef 113 4.3.3 常量定义 114 4.3.4 arm-linux基本数据类型综合应用实例 115 4.4 运算符与表达式 118 4.4.1 算术运算符和表达式 119 4.4.2 赋值运算符和表达式 121 4.4.3 逗号运算符和表达式 123 4.4.4 位运算符和表达式 124 4.4.5 关系运算符和表达式 126 4.4.6 逻辑运算符和表达式 127 4.4.7 sizeof操作符 129 4.4.8 条件(?)运算符 130 4.4.9 运算符优先级总结 131 4.4.10 arm-linux运算符 综合实例 133 本章小结 137 动手练练 137 第5章 嵌入式linux c语言基础——控制语句及函数 138 5.1 嵌入式linux c语言程序结构概述 138 5.1.1 嵌入式linux c语言3种程序结构 138 5.1.2 嵌入式linux c语言基本语句 139 5.2 选择语句 142 5.2.1 if语句 142 5.2.2 switch语句 145 5.2.3 arm-linux选择语句应用实例 147 5.3 循环语句 148 5.3.1 while和do-while语句 148 5.3.2 for循环语句 149 5.3.3 break和continue语句 151 5.3.4 arm-linux循环语句应用实例 152 5.4 goto语句 154 5.4.1 goto语句语法 154 5.4.2 arm-linux中goto语句应用实例 154 5.5 函数的定义与声明 155 5.5.1 c语言函数概述 155 5.5.2 函数定义 157 5.5.3 函数声明 157 5.5.4 arm-linux函数定义与声明实例 158 5.6 函数的参数、值和基本调用 160 5.6.1 函数的参数 160 5.6.2 函数的值 161 5.6.3 函数的基本调用 161 5.7 函数的嵌套、递归调用 162 5.7.1 函数的嵌套调用 162 5.7.2 函数的递归调用 162 5.7.3 arm-linux函数调用应用实例 165 本章小结 167 动手练练 ..167 第6章 嵌入式linux c语言基础——数组、指针与结构 168 6.1 数组 169 6.1.1 一维数组 169 6.1.2 字符串 172 6.1.3 二维数组 174 6.2 指针 175 6.2.1 指针的概念 175 6.2.2 指针变量的操作 177 6.2.3 指针和数组 184 6.2.4 指针高级议题 191 6.3 结构体与联合 196 6.3.1 结构体 196 6.3.2 联合 200 6.3.3 arm-linux指针、结构体使用实例 201 本章小结 203 动手练练 203 第7章 嵌入式linux c语言基础——高级议题 204 7.1 预处理 204 7.1.1 预处理的概念 204 7.1.2 预定义 205 7.1.3 文件包含 211 7.1.4 条件编译 212 7.2 c语言中的内存分配 214 7.2.1 c语言程序所占内存分类 214 7.2.2 堆和栈的区别 215 7.3 嵌入式linux可移植性考虑 216 7.3.1 字长和数据类型 216 7.3.2 数据对齐 218 7.3.3 字节顺序 218 7.4 c和汇编的接口 219 7.4.1 内嵌汇编的语法 219 7.4.2 编译器优化介绍 221 7.4.3 c语言关键字volatile 222 7.4.4 memory描述符 222 7.4.5 gcc对内嵌汇编语言的处理方式 223 本章小结 224 动手练练 224 第8章 嵌入式linux c语言基础——arm linux内核常见数据结构 225 8.1 链表 226 8.1.1 链表概述 226 8.1.2 单向链表 226 8.1.3 双向链表 233 8.1.4 循环链表 234 8.1.5 arm linux中链表使用实例 235 8.2 树、二叉树、平衡树 237 8.2.1 树 237 8.2.2 二叉树 238 8.2.3 平衡树 245 8.2.4 arm linux中红黑树使用实例 247 8.3 哈希表 249 8.3.1 哈希表的概念及作用 249 8.3.2 哈希表的构造方法 250 8.3.3 哈希表的处理冲突方法 252 8.3.4 arm linux中哈希表使用实例 253 本章小结 255 动手练练 255 第9章 文件i/o相关实例 256 9.1 linux系统调用及用户编程接口(api) 257 9.1.1 系统调用 257 9.1.2 用户编程接口(api) 257 9.1.3 系统命令 258 9.2 arm linux文件i/o系统概述 258 9.2.1 虚拟文件系统(vfs) 258 9.2.2 通用文件模型 259 9.2.3 arm linux的设备文件 264 9.3 文件i/o操作 265 9.3.1 不带缓存的文件i/o操作 265 9.3.2 标准i/o开发 276 9.4 嵌入式linux串口应用开发 279 9.4.1 串口概述 279 9.4.2 串口设置详解 280 9.4.3 串口使用详解 284 本章小结 287 动手练练 287 第10章 arm linux进程线程开发实例 288 10.1 arm linux进程线程管理 289 10.1.1 进程描述符及任务结构 289 10.1.2 进程的调度 291 10.1.3 linux中的线程 293 10.1.4 linux中进程间通信 293 10.2 arm linux进程控制相关api 294 10.3 arm linux进程间通信api 301 10.3.1 管道通信 301 10.3.2 信号通信 303 10.3.3 共享内存 308 10.3.4 消息队列 309 10.4 arm linux线程相关api 312 10.5 linux守护进程 317 10.5.1 守护进程概述 317 10.5.2 编写规则 318 10.5.3 守护进程实例 319 本章小结 321 动手练练 321 第11章 arm linux网络开发实例 322 11.1 tcp/ip协议简介 322 11.1.1 tcp/ip的分层模型 322 11.1.2 tcp/ip分层模型特点 324 11.1.3 tcp/ip核心协议 325 11.2 网络基础编程 328 11.2.1 socket概述 328 11.2.2 地址及顺序处理 328 11.2.3 socket基础编程 333 11.3 web服务器 339 11.3.1 web服务器功能 339 11.3.2 web服务器协议 341 11.3.3 web服务器协议 342 11.3.4 运行web服务器 347 11.4 traceroute程序实例 347 11.4.1 traceroute原理简介 347 11.4.2 traceroute实例与分析 348 11.4.3 traceroute实例运行结果 354 本章小结 354 动手练练 354 第12章 嵌入式linux设备驱动开发 355 12.1 设备驱动概述 355 12.1.1 设备驱动简介 355 12.1.2 设备驱动程序的特点 356 12.2 模块编程 357 12.2.1 模块编程简介 357 12.2.2 模块相关命令 357 12.2.3 模块编程流程 358 12.3 字符设备驱动编写 360 12.4 块设备驱动编写 369 12.4.1 块设备驱动程序描述符 369 12.4.2 块设备驱动编写流程 369 12.5 简单的skull驱动实例 375 12.5.1 驱动简介 375 12.5.2 驱动编写流程 376 12.5.3 结果分析 379 12.6 lcd驱动编写实例 379 12.6.1 lcd工作原理 379 12.6.2 lcd驱动实例 382 本章小结 389 动手练练 389 第13章 视频监控系统  390 13.1 视频监控系统概述 390 13.1.1 系统组成 390 13.1.2 音视频服务器 391 13.1.3 音视频客户端 392 13.1.4 通信传输控制协议 393 13.2 基本数据结构 395 13.3 功能实现 398 13.3.1 传输控制 398 13.3.2 用户检验 401 13.3.3 控制命令处理 403 13.3.4 云台转动控制 404 13.3.5 线程相关 407 本章小结 408 动手练练 ...408
9 2.1.2 ARM处理器体系结构........................................................................................ 10 2.1.3 Linux 与ARM处理器........................................................................................ 12 2.2 ARM指令集................................................................................................................... 13 2.2.1 ARM微处理器的指令集概述............................................................................ 13 2.2.2 ARM指令寻址方式............................................................................................ 15 2.2.3 Thumb 指令概述................................................................................................. 17 2.3 典型ARM处理器简介.................................................................................................. 17 2.3.1 Atmel AT91RM9200............................................................................................ 17 2.3.2 Samsung S3C2410 ............................................................................................... 18 2.3.3 TI OMAP1510/1610 系列................................................................................... 19 2.3.4 Freescale i.Max21 ................................................................................................ 22 2.3.5 Intel Xscale PXA系列......................................................................................... 23 2.4 三星S3C2410开发板.................................................................................................... 24 2.4.1 三星S3C2410开发板介绍................................................................................. 24 2.4.2 众多的开发板供应商.......................................................................................... 26 第3 章 Linux 编程环境................................................................................................................ 28 ║2 嵌入式系统开发技术详解——基于ARM 3.1 Linux 常用工具.............................................................................................................. 28 3.1.1 Shell简介............................................................................................................ 28 3.1.2 常用Shell命令.................................................................................................... 30 3.1.3 编写Shell脚本.................................................................................................... 38 3.1.4 正则表达式.......................................................................................................... 42 3.1.5 程序编辑器.......................................................................................................... 44 3.2 Makefile .......................................................................................................................... 48 3.2.1 GNU make ........................................................................................................... 48 3.2.2 Makefile规则语法.............................................................................................. 49 3.2.3 Makefile文件中变量的使用.............................................................................. 51 3.3 二进制代码工具的使用................................................................................................. 52 3.3.1 GNU Binutils工具介绍....................................................................................... 52 3.3.2 Binutils工具软件使用........................................................................................ 54 3.4 编译器GCC的使用....................................................................................................... 54 3.4.1 GCC编译器介绍................................................................................................. 54 3.4.2 GCC编译选项解析............................................................................................. 56 3.5 调试器GDB的使用技巧.............................................................................................. 60 3.5.1 GDB调试器介绍................................................................................................ 60 3.5.2 GDB调试命令.................................................................................................... 61 3.6 Linux 编程库.................................................................................................................. 66 3.6.1 Linux 编程库介绍............................................................................................... 66 3.6.2 Linux 系统调用................................................................................................... 67 3.6.3 Linux 线程库....................................................................................................... 70 第4 章 交叉开发环境.................................................................................................................. 73 4.1 交叉开发环境介绍......................................................................................................... 73 4.1.1 交叉开发概念模型.............................................................................................. 73 4.1.2 目标板与主机之间的连接.................................................................................. 75 4.1.3 文件传输.............................................................................................................. 76 4.1.4 网络文件系统...................................................................................................... 77 4.2 安装交叉编译工具......................................................................................................... 78 4.2.1 获取交叉开发工具链.......................................................................................... 78 4.2.2 主机安装工具链.................................................................................................. 79 4.3 主机开发环境配置......................................................................................................... 80 4.3.1 主机环境配置...................................................................................................... 80 4.3.2 串口控制台工具.................................................................................................. 81 4.3.3 DHCP服务.......................................................................................................... 84 4.3.4 TFTP服务........................................................................................................... 85 4.3.5 NFS服务............................................................................................................. 86 第1 章 目录 3║ 4.4 启动目标板..................................................................................................................... 88 4.4.1 系统引导过程...................................................................................................... 88 4.4.2 内核解压启动...................................................................................................... 89 4.4.3 挂接根文件系统.................................................................................................. 90 4.5 应用程序的远程交叉调试............................................................................................. 91 4.5.1 交叉调试的模型.................................................................................................. 91 4.5.2 交叉调试程序实例.............................................................................................. 92 第5章 交叉开发工具链.............................................................................................................. 94 5.1 工具链软件..................................................................................................................... 94 5.1.1 相关软件工程...................................................................................................... 94 5.1.2 软件版本的匹配.................................................................................................. 95 5.1.3 工具链制作流程.................................................................................................. 97 5.2 制作交叉编译器............................................................................................................. 98 5.2.1 准备编译环境...................................................................................................... 98 5.2.2 编译binutils......................................................................................................... 99 5.2.3 编译GCC的辅助编译器.................................................................................. 100 5.2.4 编译生成glibc库.............................................................................................. 101 5.2.5 编译生成完整的GCC编译器.......................................................................... 105 5.3 制作交叉调试器........................................................................................................... 106 5.3.1 编译交叉调试器................................................................................................ 106 5.3.2 编译gdbserver ................................................................................................... 106 第6章 Bootloader..................................................................................................................... 108 6.1 Bootloader ..................................................................................................................... 108 6.1.1 Bootloader 介绍................................................................................................. 108 6.1.2 Bootloader 的启动............................................................................................. 109 6.1.3 Bootloader 的种类..............................................................................................111 6.2 U-Boot编程...................................................................................................................113 6.2.1 U-Boot工程简介................................................................................................113 6.2.2 U-Boot源码结构................................................................................................113 6.2.3 U-Boot的编译....................................................................................................114 6.2.4 U-Boot 的移植....................................................................................................117 6.2.5 添加U-Boot命令...............................................................................................118 6.3 U-Boot的调试.............................................................................................................. 121 6.3.1 硬件调试器........................................................................................................ 121 6.3.2 软件跟踪............................................................................................................ 121 6.3.3 U-Boot启动过程............................................................................................... 123 6.3.4 U-Boot 与内核的关系....................................................................................... 128 ║4 嵌入式系统开发技术详解——基于ARM 6.4 使用U-Boot.................................................................................................................. 133 6.4.1 烧写U-Boot 到Flash ........................................................................................ 134 6.4.2 U-Boot的常用命令........................................................................................... 134 6.4.3 U-Boot的环境变量........................................................................................... 141 第7 章 配置编译内核................................................................................................................ 143 7.1 Linux 内核特点............................................................................................................ 143 7.1.1 Linux 内核版本介绍......................................................................................... 143 7.1.2 Linux 内核特点................................................................................................. 143 7.1.3 Linux 2.6 内核新特性....................................................................................... 144 7.2 配置编译内核源码....................................................................................................... 147 7.2.1 内核源码结构.................................................................................................... 148 7.2.2 内核配置系统.................................................................................................... 150 7.2.3 Kbuild Makefile ................................................................................................. 157 7.2.4 内核编译............................................................................................................ 169 7.2.5 内核编译结果.................................................................................................... 179 7.3 内核配置选项............................................................................................................... 180 7.3.1 使用配置菜单.................................................................................................... 180 7.3.2 基本配置选项.................................................................................................... 181 7.3.3 驱动程序配置选项............................................................................................ 183 第8 章 内核移植浅析................................................................................................................ 185 8.1 移植内核源码............................................................................................................... 185 8.1.1 移植前的准备工作............................................................................................ 185 8.1.2 开发板内核移植................................................................................................ 186 8.1.3 移植后的工作.................................................................................................... 194 8.2 Linux 内核启动过程分析............................................................................................ 194 8.2.1 内核启动流程源代码分析................................................................................ 194 8.2.2 内核自引导程序................................................................................................ 195 8.2.3 内核vmlinux入口............................................................................................ 199 8.2.4 Linux 系统初始化............................................................................................. 201 8.2.5 挂接根文件系统................................................................................................ 206 8.2.6 初始化设备驱动................................................................................................ 208 8.2.7 启动用户空间init进程..................................................................................... 209 第9 章 内核调试技术................................................................................................................ 212 9.1 内核调试方法............................................................................................................... 212 9.1.1 内核调试概述.................................................................................................... 212 9.1.2 学会分析内核源程序........................................................................................ 213 第1 章 目录 5║ 9.1.3 调试方法介绍.................................................................................................... 213 9.2 内核打印函数............................................................................................................... 216 9.2.1 内核映像解压前的串口输出函数.................................................................... 216 9.2.2 内核错误报告子程序........................................................................................ 218 9.2.3 内核打印函数.................................................................................................... 220 9.3 获取内核信息............................................................................................................... 227 9.3.1 系统请求键........................................................................................................ 227 9.3.2 通过/proc接口................................................................................................... 228 9.3.3 通过/sys 接口..................................................................................................... 229 9.3.4 通过ioctl方法................................................................................................... 232 9.4 处理出错信息............................................................................................................... 233 9.4.1 oops信息........................................................................................................... 233 9.4.2 panic ................................................................................................................... 234 9.5 内核源码调试............................................................................................................... 236 9.5.1 KGDB调试内核源代码.................................................................................... 236 9.5.2 BDI2000 调试内核源代码................................................................................ 237 第10 章 制作Linux根文件系统............................................................................................... 242 10.1 根文件系统目录结构................................................................................................. 242 10.1.1 FHS目录结构................................................................................................. 243 10.1.2 文件存放规则.................................................................................................. 246 10.2 添加系统文件............................................................................................................. 247 10.2.1 添加共享链接库.............................................................................................. 247 10.2.2 添加内核模块.................................................................................................. 249 10.2.3 添加设备文件.................................................................................................. 251 10.3 init系统初始化过程.................................................................................................. 253 10.3.1 inittab 文件....................................................................................................... 253 10.3.2 System V init启动过程................................................................................... 256 10.3.3 Busybox init启动过程分析............................................................................ 258 10.4 定制文件系统............................................................................................................. 260 10.4.1 定制应用程序.................................................................................................. 260 10.4.2 配置应用程序自动启动.................................................................................. 260 第11 章 充分利用开源软件...................................................................................................... 262 11.1 开放源代码工程介绍................................................................................................. 262 11.1.1 Linux 系统和开源软件................................................................................... 263 11.1.2 开源软件的特点.............................................................................................. 264 11.2 Busybox使用.............................................................................................................. 265 11.2.1 Busybox工程介绍........................................................................................... 265 ║6 嵌入式系统开发技术详解——基于ARM 11.2.2 配置编译Busybox........................................................................................... 265 11.3 X11 图形系统............................................................................................................. 270 11.3.1 X Windows介绍.............................................................................................. 270 11.3.2 Tiny-X 介绍..................................................................................................... 270 11.3.3 GTK 图形库..................................................................................................... 271 11.4 Qt图形库.................................................................................................................... 277 11.4.1 Qt介绍............................................................................................................. 277 11.4.2 Qt/Embedded介绍........................................................................................... 278 11.4.3 Qt/Embedded架构........................................................................................... 280 11.4.4 Qt/Embedded软件包与安装........................................................................... 281 11.5 MiniGUI图形系统..................................................................................................... 283 11.5.1 MiniGUI图形系统概述.................................................................................. 283 11.5.2 MiniGUI移植.................................................................................................. 285 11.6 MicroWindows图形系统........................................................................................... 290 11.7 Linux 下的网络应用.................................................................................................. 292 11.7.1 嵌入式设备的网络化...................................................................................... 292 11.7.2 TCP/IP协议概述............................................................................................. 292 11.7.3 Linux 下的Socket编程.................................................................................. 294 11.8 嵌入式Linux 的串行通信......................................................................................... 304 11.8.1 Linux 下的串口操作....................................................................................... 304 11.8.2 Linux 串口编程实例....................................................................................... 309 第12 章 系统集成测试.............................................................................................................. 314 12.1 系统集成测试............................................................................................................. 314 12.1.1 系统集成测试概述.......................................................................................... 314 12.1.2 系统集成测试要求.......................................................................................... 315 12.2 系统跟踪工具............................................................................................................. 315 12.2.1 为什么需要跟踪工具...................................................................................... 315 12.2.2 Strace................................................................................................................ 316 12.2.3 Ltrace ............................................................................................................... 316 12.2.4 LTT................................................................................................................... 317 12.3 系统性能测量工具..................................................................................................... 321 12.3.1 代码效率测量.................................................................................................. 321 12.3.2 LTP................................................................................................................... 324 12.3.3 LMbench .......................................................................................................... 325 12.4 测量内存泄漏............................................................................................................. 326 12.4.1 mtrace............................................................................................................... 326 12.4.2 dmalloc............................................................................................................. 327 12.4.3 memwatch ........................................................................................................ 328 第1 章 目录 7║ 12.4.4 YAMD.............................................................................................................. 330 第13 章 部署Linux系统........................................................................................................... 333 13.1 部署Linux系统概述................................................................................................. 333 13.1.1 部署Linux系统的基本流程.......................................................................... 333 13.1.2 部署Linux系统的关键问题.......................................................................... 334 13.2 文件系统类型............................................................................................................. 335 13.2.1 EXT2/EXT3 ..................................................................................................... 335 13.2.2 JFS.................................................................................................................... 337 13.2.3 cramfs............................................................................................................... 339 13.2.4 JFFS/JFFS2 ...................................................................................................... 340 13.2.5 YAFFS.............................................................................................................. 341 13.3 存储设备..................................................................................................................... 343 13.3.1 MTD 类型设备................................................................................................ 343 13.3.2 磁盘类型设备.................................................................................................. 344 13.4 部署Linux系统......................................................................................................... 346 13.4.1 安装MTD 工具............................................................................................... 346 13.4.2 使用磁盘文件系统.......................................................................................... 347 13.4.3 使用RAMDISK 设备..................................................................................... 348 13.4.4 使用MTD 设备和JFFS2文件系统............................................................... 349 13.4.5 系统启动和升级.............................................................................................. 351 第14 章 系统设计开发实例...................................................................................................... 352 14.1 需求分析..................................................................................................................... 352 14.2 系统硬件设计............................................................................................................. 354 14.3 系统软件设计............................................................................................................. 364 14.4 系统集成与部署......................................................................................................... 366

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值