嵌入式 Linux 系统开发入门

嵌入式 Linux 系统开发入门
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2018-05
版次: 1
ISBN: 9787121335341
定价: 48.00
装帧: 其他
开本: 16开
纸张: 胶版纸
28人买过
  • 本书基于嵌入式Linux系统,介绍其软件开发方法,重点介绍多任务、网络和设备驱动的编程。本书分为两个部分。第1部分是基础篇(第1~8章),内容包括Linux系统的基本使用方法、Linux系统的主要开发工具、文件读写、多任务机制、网络套接字编程、模块与设备驱动、嵌入式Linux系统开发、GUI程序设计初步。第2部分是实验篇(第9~21章),内容包括实验系统介绍、嵌入式系统开发实验、引导加载器、内核配置和编译、根文件系统的构建、图形用户接口、音频接口程序设计、嵌入式系统中的I/O接口驱动、触摸屏移植、Qt/Embedded移植、MPlayer移植、GTK 移植、实时操作系统RTEMS。本书可作为电子信息、通信、自动化等专业相关课程的教材,也可供相关领域的工程技术人员学习、参考。 方元,博士,南京大学电子科学与工程学院副教授,长期讲授微机原理、嵌入式系统、DSP原理与应用等课程,获得2013年石林奖教金。 第1部分  基  础  篇

      第1章  Linux系统的基本使用方法

        1.1  Linux系统的使用环境

          1.1.1  Linux系统的目录结构

          1.1.2  Linux系统的用户

        1.2  命令行工作方式

          1.2.1  终端

          1.2.2  目录操作

          1.2.3  文件操作

          1.2.4  浏览文件

          1.2.5  打包、压缩和解压

          1.2.6  进程控制

          1.2.7  管道与重定向

          1.2.8  shell脚本程序

        1.3  规则表达式

        1.4  与开发相关的常用命令

          1.4.1  文件比较

          1.4.2  文本搜索

          1.4.3  流编辑

        1.5  文本编辑工具

          1.5.1  vim工作模式

          1.5.2  vim常用编辑命令

          1.5.3  vim高级操作

        本章练习

        本章参考资源

      第2章  Linux系统的主要开发工具

        2.1  gcc工具链

          2.1.1  gcc编译器

          2.1.2  汇编器和链接器

        2.2  代码分析与转换工具

          2.2.1  函数地址解析addr2line

          2.2.2  符号列表nm

          2.2.3  目标文件转储objdump

          2.2.4  代码剖析gprof

          2.2.5  ELF符号解析readelf

          2.2.6  代码瘦身strip

        2.3  GNU Make

          2.3.1  源代码的组织

          2.3.2  第一个Makefile

          2.3.3  GNU Make基本规则

          2.3.4  完善Makefile

          2.3.5  GNU Make的依赖

        2.4  开源软件的移植

          2.4.1  工具准备

          2.4.2  源代码的组织结构

          2.4.3  配置编译环境

          2.4.4  编译和安装

        2.5  调试工具

          2.5.1  gdb使用示例

          2.5.2  远程调试

        2.6  版本控制系统

          2.6.1  集中式版本控制系统svn

          2.6.2  追溯历史、分支与合并

          2.6.3  分布式版本控制系统git

          2.6.4  git基本操作

          2.6.5  git分支与合并

        2.7  合理地组织程序

          2.7.1  头文件的要求

          2.7.2  C语言源文件

          2.7.3  库的产生和作用

          2.7.4  项目的目录组织结构

        2.8  交叉编译工具链的制作

        本章练习

        本章参考资源

      第3章  文件读写

        3.1  文件系统的概念

        3.2  文件与目录

          3.2.1  Linux系统中的虚拟文件系统

          3.2.2  Linux系统的文件类型

          3.2.3  改变文件属性

        3.3  文件描述符

          3.3.1  标准I/O设备

          3.3.2  有关文件操作的系统功能调用

          3.3.3  文件描述符复制

          3.3.4  文件描述符操作

          3.3.5  文件共享与读写冲突

        3.4  标准I/O库的文件操作

          3.4.1  打开文件

          3.4.2  文件流读写

          3.4.3  文件流定位

          3.4.4  格式化I/O文件操作函数

        本章练习

        本章参考资源

      第4章  多任务机制

        4.1  理解进程的概念

          4.1.1  什么是进程

          4.1.2  进程的状态

          4.1.3  进程的创建和结束

          4.1.4  创建进程的例子

        4.2  进程间的数据交换

          4.2.1  管道

          4.2.2  共享内存

          4.2.3  消息队列

        4.3  守护进程

        4.4  线程——轻量级进程

        4.5  线程的竞争与同步

          4.5.1  互斥锁

          4.5.2  信号和信号量

          4.5.3  进程与线程的对比

        本章练习

        本章参考资源

      第5章  网络套接字编程

        5.1  套接字API

          5.1.1  两种类型的套接口

          5.1.2  网络协议分层

          5.1.3  关闭套接口

        5.2  TCP网络程序分析

          5.2.1  网络地址

          5.2.2  端口

        5.3  TCP服务器程序设计

        5.4  简单的数据流对话

        5.5  多任务数据流对话

        5.6  基于数据报的对话程序

        本章练习

        本章参考资源

      第6章  模块与设备驱动

        6.1  设备驱动程序简介

          6.1.1  内核功能划分

          6.1.2  设备驱动程序的作用

          6.1.3  设备和模块分类

        6.2  构建和运行模块

          6.2.1  第一个示例模块

          6.2.2  模块的编译

          6.2.3  模块的运行

          6.2.4  内核模块与应用程序

        6.3  模块的结构

          6.3.1  模块的初始化和清除函数

          6.3.2  内核符号表

          6.3.3  模块的卸载

          6.3.4  资源使用

        6.4  字符设备驱动程序

          6.4.1  timer的设计

          6.4.2  文件操作

          6.4.3  打开设备

          6.4.4  I/O控制

          6.4.5  阻塞型I/O

        6.5  设备驱动程序的使用

          6.5.1  驱动程序与应用程序

          6.5.2  内核源码中的模块结构

          6.5.3  将模块加入内核

        6.6  调试技术

          6.6.1  输出调试

          6.6.2  查询调试

          6.6.3  监视调试

          6.6.4  故障调试

          6.6.5  使用gdb调试工具

          6.6.6  使用内核调试工具

        6.7  硬件管理与中断处理

          6.7.1  I/O寄存器和常规内存

          6.7.2  中断

        6.8  内核的定时

          6.8.1  时间间隔

          6.8.2  获取当前时间

          6.8.3  延迟执行

          6.8.4  定时器

        本章练习

        本章参考资源

      第7章  嵌入式Linux系统开发

        7.1  引导装载程序

        7.2  内核设置

          7.2.1  内核布局

          7.2.2  内核链接和装入

          7.2.3  参数传递和内核引导

        7.3  设备驱动程序

          7.3.1  帧缓冲区驱动程序

          7.3.2  输入设备驱动程序

          7.3.3  MTD驱动程序

          7.3.4  MTD驱动程序设置

        7.4  嵌入式设备的文件系统

          7.4.1  扩展文件系统

          7.4.2  日志闪存文件系统的第2版(JFFS2)

          7.4.3  tmpfs

        7.5  图形用户界面(GUI)

          7.5.1  XFree86 4.X(带帧缓冲区支持的X11R6)

          7.5.2  Microwindows

          7.5.3  Microwindows上的FLTKAPI

          7.5.4  Qt/Embedded

        7.6  帧缓冲

      第8章  GUI程序设计初步

        8.1  基本组件介绍

          8.1.1  一个简单的图形接口程序

          8.1.2  按钮类组件

          8.1.3  数据类组件

          8.1.4  菜单栏与工具栏

        8.2  画图区

        8.3  界面布局方法

          8.3.1  盒子

          8.3.2  表格

          8.3.3  对位

          8.3.4  便签

    第2部分  实  验  篇

      第9章  实验系统介绍

        9.1  实验系统性能概括

        9.2  软件

          9.2.1  交叉编译工具链

          9.2.2  工具链安装

          9.2.3  嵌入式操作系统软件

        9.3  实验系统搭建

      第10章  嵌入式系统开发实验

        10.1  实验目的

        10.2  嵌入式系统开发过程

          10.2.1  串口设置(使用minicom)

          10.2.2  TFTP(简单文件传输协议)

          10.2.3  NFS服务器架设

          10.2.4  编译应用程序

        10.3  实验报告要求

      第11章  引导加载器

        11.1  实验目的

        11.2  BootLoader

          11.2.1  BootLoader的作用

          11.2.2  BootLoader程序结构框架

        11.3  实验内容

          11.3.1  获取U-Boot

          11.3.2  配置BootLoader选项

          11.3.3  制作TF卡

        11.4  实验报告要求

      第12章  内核配置和编译

        12.1  实验目的

        12.2  相关知识

          12.2.1  内核源代码目录结构

          12.2.2  内核配置的基本结构

          12.2.3  编译规则Makefile

        12.3  编译内核

          12.3.1  Makefile的选项参数

          12.3.2  内核配置项介绍

        12.4  实验内容

        12.5  实验报告要求

      第13章  根文件系统的构建

        13.1  实验目的

        13.2  Linux文件系统的类型

          13.2.1  EXT文件系统

          13.2.2  NFS文件系统

          13.2.3  JFFS2文件系统

          13.2.4  YAFFS2

          13.2.5  RAM Disk

        13.3  文件系统的制作

          13.3.1  BusyBox介绍

          13.3.2  BusyBox的编译

          13.3.3  配置文件系统

          13.3.4  制作ramdisk文件镜像

          13.3.5  制作init_ramfs

        13.4  实验内容

        13.5  实验报告要求

      第14章  图形用户接口

        14.1  实验目的

        14.2  原理概述

          14.2.1  帧缓冲设备

          14.2.2  帧缓冲与色彩

          14.2.3  LCD控制器

          14.2.4  帧缓冲设备操作

        14.3  实验内容

          14.3.1  实现基本画图功能

          14.3.2  合理的软件结构

        14.4  实验报告要求

      第15章  音频接口程序设计

        15.1  实验目的

        15.2  接口介绍

        15.3  应用软件设计

          15.3.1  OSS

          15.3.2  ALSA

        15.4  实验内容

        15.5  实验报告要求

      第16章  嵌入式系统中的I/O接口驱动

        16.1  实验目的

        16.2  接口电路介绍

        16.3  I/O端口地址映射

        16.4  LED控制

        16.5  实验内容

        16.6  实验报告要求

      第17章  触摸屏移植

        17.1  实验目的

        17.2  Linux系统的触摸屏支持

          17.2.1  触摸屏的基本原理

          17.2.2  内核配置

          17.2.3  触摸屏库tslib

          17.2.4  触摸屏库的安装和测试

        17.3  实验内容

        17.4  实验报告要求

      第18章  Qt/Embedded移植

        18.1  实验目的

        18.2  Qt/Embedded介绍

          18.2.1  Qt/Embedded软件包结构

          18.2.2  编译环境设置

          18.2.3  编译过程

          18.2.4  Qt/Embedded
  • 内容简介:
    本书基于嵌入式Linux系统,介绍其软件开发方法,重点介绍多任务、网络和设备驱动的编程。本书分为两个部分。第1部分是基础篇(第1~8章),内容包括Linux系统的基本使用方法、Linux系统的主要开发工具、文件读写、多任务机制、网络套接字编程、模块与设备驱动、嵌入式Linux系统开发、GUI程序设计初步。第2部分是实验篇(第9~21章),内容包括实验系统介绍、嵌入式系统开发实验、引导加载器、内核配置和编译、根文件系统的构建、图形用户接口、音频接口程序设计、嵌入式系统中的I/O接口驱动、触摸屏移植、Qt/Embedded移植、MPlayer移植、GTK 移植、实时操作系统RTEMS。本书可作为电子信息、通信、自动化等专业相关课程的教材,也可供相关领域的工程技术人员学习、参考。
  • 作者简介:
    方元,博士,南京大学电子科学与工程学院副教授,长期讲授微机原理、嵌入式系统、DSP原理与应用等课程,获得2013年石林奖教金。
  • 目录:
    第1部分  基  础  篇

      第1章  Linux系统的基本使用方法

        1.1  Linux系统的使用环境

          1.1.1  Linux系统的目录结构

          1.1.2  Linux系统的用户

        1.2  命令行工作方式

          1.2.1  终端

          1.2.2  目录操作

          1.2.3  文件操作

          1.2.4  浏览文件

          1.2.5  打包、压缩和解压

          1.2.6  进程控制

          1.2.7  管道与重定向

          1.2.8  shell脚本程序

        1.3  规则表达式

        1.4  与开发相关的常用命令

          1.4.1  文件比较

          1.4.2  文本搜索

          1.4.3  流编辑

        1.5  文本编辑工具

          1.5.1  vim工作模式

          1.5.2  vim常用编辑命令

          1.5.3  vim高级操作

        本章练习

        本章参考资源

      第2章  Linux系统的主要开发工具

        2.1  gcc工具链

          2.1.1  gcc编译器

          2.1.2  汇编器和链接器

        2.2  代码分析与转换工具

          2.2.1  函数地址解析addr2line

          2.2.2  符号列表nm

          2.2.3  目标文件转储objdump

          2.2.4  代码剖析gprof

          2.2.5  ELF符号解析readelf

          2.2.6  代码瘦身strip

        2.3  GNU Make

          2.3.1  源代码的组织

          2.3.2  第一个Makefile

          2.3.3  GNU Make基本规则

          2.3.4  完善Makefile

          2.3.5  GNU Make的依赖

        2.4  开源软件的移植

          2.4.1  工具准备

          2.4.2  源代码的组织结构

          2.4.3  配置编译环境

          2.4.4  编译和安装

        2.5  调试工具

          2.5.1  gdb使用示例

          2.5.2  远程调试

        2.6  版本控制系统

          2.6.1  集中式版本控制系统svn

          2.6.2  追溯历史、分支与合并

          2.6.3  分布式版本控制系统git

          2.6.4  git基本操作

          2.6.5  git分支与合并

        2.7  合理地组织程序

          2.7.1  头文件的要求

          2.7.2  C语言源文件

          2.7.3  库的产生和作用

          2.7.4  项目的目录组织结构

        2.8  交叉编译工具链的制作

        本章练习

        本章参考资源

      第3章  文件读写

        3.1  文件系统的概念

        3.2  文件与目录

          3.2.1  Linux系统中的虚拟文件系统

          3.2.2  Linux系统的文件类型

          3.2.3  改变文件属性

        3.3  文件描述符

          3.3.1  标准I/O设备

          3.3.2  有关文件操作的系统功能调用

          3.3.3  文件描述符复制

          3.3.4  文件描述符操作

          3.3.5  文件共享与读写冲突

        3.4  标准I/O库的文件操作

          3.4.1  打开文件

          3.4.2  文件流读写

          3.4.3  文件流定位

          3.4.4  格式化I/O文件操作函数

        本章练习

        本章参考资源

      第4章  多任务机制

        4.1  理解进程的概念

          4.1.1  什么是进程

          4.1.2  进程的状态

          4.1.3  进程的创建和结束

          4.1.4  创建进程的例子

        4.2  进程间的数据交换

          4.2.1  管道

          4.2.2  共享内存

          4.2.3  消息队列

        4.3  守护进程

        4.4  线程——轻量级进程

        4.5  线程的竞争与同步

          4.5.1  互斥锁

          4.5.2  信号和信号量

          4.5.3  进程与线程的对比

        本章练习

        本章参考资源

      第5章  网络套接字编程

        5.1  套接字API

          5.1.1  两种类型的套接口

          5.1.2  网络协议分层

          5.1.3  关闭套接口

        5.2  TCP网络程序分析

          5.2.1  网络地址

          5.2.2  端口

        5.3  TCP服务器程序设计

        5.4  简单的数据流对话

        5.5  多任务数据流对话

        5.6  基于数据报的对话程序

        本章练习

        本章参考资源

      第6章  模块与设备驱动

        6.1  设备驱动程序简介

          6.1.1  内核功能划分

          6.1.2  设备驱动程序的作用

          6.1.3  设备和模块分类

        6.2  构建和运行模块

          6.2.1  第一个示例模块

          6.2.2  模块的编译

          6.2.3  模块的运行

          6.2.4  内核模块与应用程序

        6.3  模块的结构

          6.3.1  模块的初始化和清除函数

          6.3.2  内核符号表

          6.3.3  模块的卸载

          6.3.4  资源使用

        6.4  字符设备驱动程序

          6.4.1  timer的设计

          6.4.2  文件操作

          6.4.3  打开设备

          6.4.4  I/O控制

          6.4.5  阻塞型I/O

        6.5  设备驱动程序的使用

          6.5.1  驱动程序与应用程序

          6.5.2  内核源码中的模块结构

          6.5.3  将模块加入内核

        6.6  调试技术

          6.6.1  输出调试

          6.6.2  查询调试

          6.6.3  监视调试

          6.6.4  故障调试

          6.6.5  使用gdb调试工具

          6.6.6  使用内核调试工具

        6.7  硬件管理与中断处理

          6.7.1  I/O寄存器和常规内存

          6.7.2  中断

        6.8  内核的定时

          6.8.1  时间间隔

          6.8.2  获取当前时间

          6.8.3  延迟执行

          6.8.4  定时器

        本章练习

        本章参考资源

      第7章  嵌入式Linux系统开发

        7.1  引导装载程序

        7.2  内核设置

          7.2.1  内核布局

          7.2.2  内核链接和装入

          7.2.3  参数传递和内核引导

        7.3  设备驱动程序

          7.3.1  帧缓冲区驱动程序

          7.3.2  输入设备驱动程序

          7.3.3  MTD驱动程序

          7.3.4  MTD驱动程序设置

        7.4  嵌入式设备的文件系统

          7.4.1  扩展文件系统

          7.4.2  日志闪存文件系统的第2版(JFFS2)

          7.4.3  tmpfs

        7.5  图形用户界面(GUI)

          7.5.1  XFree86 4.X(带帧缓冲区支持的X11R6)

          7.5.2  Microwindows

          7.5.3  Microwindows上的FLTKAPI

          7.5.4  Qt/Embedded

        7.6  帧缓冲

      第8章  GUI程序设计初步

        8.1  基本组件介绍

          8.1.1  一个简单的图形接口程序

          8.1.2  按钮类组件

          8.1.3  数据类组件

          8.1.4  菜单栏与工具栏

        8.2  画图区

        8.3  界面布局方法

          8.3.1  盒子

          8.3.2  表格

          8.3.3  对位

          8.3.4  便签

    第2部分  实  验  篇

      第9章  实验系统介绍

        9.1  实验系统性能概括

        9.2  软件

          9.2.1  交叉编译工具链

          9.2.2  工具链安装

          9.2.3  嵌入式操作系统软件

        9.3  实验系统搭建

      第10章  嵌入式系统开发实验

        10.1  实验目的

        10.2  嵌入式系统开发过程

          10.2.1  串口设置(使用minicom)

          10.2.2  TFTP(简单文件传输协议)

          10.2.3  NFS服务器架设

          10.2.4  编译应用程序

        10.3  实验报告要求

      第11章  引导加载器

        11.1  实验目的

        11.2  BootLoader

          11.2.1  BootLoader的作用

          11.2.2  BootLoader程序结构框架

        11.3  实验内容

          11.3.1  获取U-Boot

          11.3.2  配置BootLoader选项

          11.3.3  制作TF卡

        11.4  实验报告要求

      第12章  内核配置和编译

        12.1  实验目的

        12.2  相关知识

          12.2.1  内核源代码目录结构

          12.2.2  内核配置的基本结构

          12.2.3  编译规则Makefile

        12.3  编译内核

          12.3.1  Makefile的选项参数

          12.3.2  内核配置项介绍

        12.4  实验内容

        12.5  实验报告要求

      第13章  根文件系统的构建

        13.1  实验目的

        13.2  Linux文件系统的类型

          13.2.1  EXT文件系统

          13.2.2  NFS文件系统

          13.2.3  JFFS2文件系统

          13.2.4  YAFFS2

          13.2.5  RAM Disk

        13.3  文件系统的制作

          13.3.1  BusyBox介绍

          13.3.2  BusyBox的编译

          13.3.3  配置文件系统

          13.3.4  制作ramdisk文件镜像

          13.3.5  制作init_ramfs

        13.4  实验内容

        13.5  实验报告要求

      第14章  图形用户接口

        14.1  实验目的

        14.2  原理概述

          14.2.1  帧缓冲设备

          14.2.2  帧缓冲与色彩

          14.2.3  LCD控制器

          14.2.4  帧缓冲设备操作

        14.3  实验内容

          14.3.1  实现基本画图功能

          14.3.2  合理的软件结构

        14.4  实验报告要求

      第15章  音频接口程序设计

        15.1  实验目的

        15.2  接口介绍

        15.3  应用软件设计

          15.3.1  OSS

          15.3.2  ALSA

        15.4  实验内容

        15.5  实验报告要求

      第16章  嵌入式系统中的I/O接口驱动

        16.1  实验目的

        16.2  接口电路介绍

        16.3  I/O端口地址映射

        16.4  LED控制

        16.5  实验内容

        16.6  实验报告要求

      第17章  触摸屏移植

        17.1  实验目的

        17.2  Linux系统的触摸屏支持

          17.2.1  触摸屏的基本原理

          17.2.2  内核配置

          17.2.3  触摸屏库tslib

          17.2.4  触摸屏库的安装和测试

        17.3  实验内容

        17.4  实验报告要求

      第18章  Qt/Embedded移植

        18.1  实验目的

        18.2  Qt/Embedded介绍

          18.2.1  Qt/Embedded软件包结构

          18.2.2  编译环境设置

          18.2.3  编译过程

          18.2.4  Qt/Embedded
查看详情
12
相关图书 / 更多
嵌入式 Linux 系统开发入门
嵌入与网络:西南民族地区禁毒社会组织制度结构优化的路径选择
谢勇 著
嵌入式 Linux 系统开发入门
嵌入式金融:金融技术应用新革命
[美]斯嘉丽·西贝尔(Scarlett Sieber);[英]苏菲·吉博(Sophie Guibaud)
嵌入式 Linux 系统开发入门
嵌入式系统及应用
付少华主编
嵌入式 Linux 系统开发入门
嵌入式系统应用开发——基于NI LabVIEW&myRIO的设计与实现
杨帆;张彩丽;刘晋东;李宁
嵌入式 Linux 系统开发入门
嵌入式技术入门与实战(基于STM32)
尹静
嵌入式 Linux 系统开发入门
嵌入式单片机技术实战教程
郭海如;熊曾刚;李志敏;赵恒;谈怀江;刘江华;万青;万兴
嵌入式 Linux 系统开发入门
嵌入城市:农民工永久迁移意愿及其影响因素研究
陆文荣
嵌入式 Linux 系统开发入门
嵌入式Linux系统开发 ——基于ARM处理器通用平台(第2版)
冯新宇;蒋洪波;程坤
嵌入式 Linux 系统开发入门
嵌入式技术及应用(STM32CubeMX版)
李文华
嵌入式 Linux 系统开发入门
嵌入式系统设计与应用——基于ARM Cortex-A8和Linux(第3版)(微课视频版)
王剑、刘鹏
嵌入式 Linux 系统开发入门
嵌入地方的市场--对一个西南村镇集市的人类学考察
张琪 著
嵌入式 Linux 系统开发入门
嵌入式Linux驱动开发实践
朱文伟 李建英
您可能感兴趣 / 更多
嵌入式 Linux 系统开发入门
电子学基础实验
方元
嵌入式 Linux 系统开发入门
食用农产品资源与健康(向福)
方元平 主编;向福
嵌入式 Linux 系统开发入门
树莓派Linux操作系统移植
方元;沈克勤
嵌入式 Linux 系统开发入门
了不起的思维训练书
方元
嵌入式 Linux 系统开发入门
Linux操作系统基础
方元
嵌入式 Linux 系统开发入门
中小学班主任工作理论与实践(梦山书系)
方元山 著
嵌入式 Linux 系统开发入门
政府间转移支付与区域基本公共服务均等化
方元子
嵌入式 Linux 系统开发入门
中国古典文学名著选译:史记两汉书选(朝鲜文版)
方元成、崔起仙 编
嵌入式 Linux 系统开发入门
岁月
方元茂 著
嵌入式 Linux 系统开发入门
清史耕读
方元 撰
嵌入式 Linux 系统开发入门
课堂教学改革研究——新课程教师必读丛书·通识系列
方元山 著
嵌入式 Linux 系统开发入门
小学生古诗文手册
方元 编;孙绮