嵌入式linux应用开发完全手册,比较具体的描述了嵌入式开发的方方面面 尤其在bootloader章节中描述十分详细
2022-06-06 09:02:00 111.42MB linux 运维 服务器
1
《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。接着系统地讲解了嵌入式Linux的环境搭建,以及嵌入式Linux的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且还安排了丰富的实验内容与课后实践,使读者能够边学边用,更快更好地掌握所学知识。   《嵌入式Linux应用程序开发标准教程(第2版)》可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材,也可供希望转入嵌入式领域的科研和工程技术人员参考使用,还可作为嵌入式培训班的教材和参考书。 第1章 Linux快速入门 1.1 嵌入式Linux基础 1.1.1 Linux发展概述 1.1.2 Linux作为嵌入式操作系统的优势 1.1.3 Linux发行版本 1.1.4 如何学习Linux 1.2 Linux安装 1.2.1 基础概念 1.2.2 硬件需求 1.2.3 安装准备 1.3 Linux文件及文件系统 1.3.1 文件类型及文件属性 1.3.2 文件系统类型介绍 1.3.3 Linux目录结构 1.4 实验内容——安装Linux操作系统 1.5 本章小结 1.6 思考与练习 第2章 Linux基础命令 2.1 Linux常用命令 2.1.1 用户系统相关命令 2.1.2 文件相关命令 2.1.3 压缩打包相关命令 2.1.4 文件比较合并相关命令 2.1.5 网络相关命令 2.2 Linux启动过程详解 2.2.1 概述 2.2.2 内核引导阶段 2.2.3 init阶段 2.3 Linux系统服务 2.3.1 独立运行的服务 2.3.2 xinetd设定的服务 2.3.3 系统服务的其他相关命令 2.4 实验内容 2.4.1 在Linux下解压常见软件 2.4.2 定制Linux系统服务 2.5 本章小结 2.6 思考与练习 第3章 Linux下C编程基础 3.1 Linux下C语言编程概述 3.1.1 C语言简单回顾 3.1.2 Linux下C语言编程环境概述 3.2 常用编辑器 3.2.1 进入vi 3.2.2 初探emacs 3.3 gcc编译器 3.3.1 gcc编译流程解析 3.3.2 gcc编译选项分析 3.4 gdb调试器 3.4.1 gdb使用流程 3.4.2 gdb基本命令 3.5 make工程管理器 3.5.1 makefile基本结构 3.5.2 makefile变量 3.5.3 makefile规则 3.5.4 make管理器的使用 3.6 使用autotools 3.6.1 autotools使用流程 3.6.2 使用autotools所生成的makefile 3.7 实验内容 3.7.1 vi使用练习 3.7.2 用gdb调试程序的bug 3.7.3 编写包含多文件的makefile 3.7.4 使用autotools生成包含多文件的makefile 3.8 本章小结 3.9 思考与练习 第4章 嵌入式系统基础 4.1 嵌入式系统概述 4.1.1 嵌入式系统简介 4.1.2 嵌入式系统发展历史 4.1.3 嵌入式系统的特点 4.1.4 嵌入式系统的体系结构 4.1.5 几种主流嵌入式操作系统分析 4.2 ARM处理器硬件开发平台 4.2.1 ARM处理器简介 4.2.2 ARM体系结构简介 4.2.3 ARM9体系结构 4.2.4 S3C2410处理器详解 4.3 嵌入式软件开发流程 4.3.1 嵌入式系统开发概述 4.3.2 嵌入式软件开发概述 4.4 实验内容——使用JTAG烧写NandFlash 4.5 本章小结 4.6 思考与练习 第5章 嵌入式Linux开发环境的搭建 5.1 嵌入式开发环境的搭建 5.1.1 嵌入式交叉编译环境的搭建 5.1.2 超级终端和minicom配置及使用 5.1.3 下载映像到开发板 5.1.4 编译嵌入式Linux内核 5.1.5 Linux内核源码目录结构 5.1.6 制作文件系统 5.2 U-Boot移植 5.2.1 Bootloader介绍 5.2.2 U-Boot概述 5.2.3 U-Boot源码导读 5.2.4 U-Boot移植主要步骤 5.3 实验内容——创建Linux内核和文件系统 5.4 本章小结 5.5 思考与练习 第6章 文件I/O编程 6.1 Linux系统调用及用户编程接口(API) 6.1.1 系统调用 6.1.2 用户编程接口(API) 6.1.3 系统命令 6.2 Linux中文件及文件描述符概述 6.3 底层文件I/O操作 6.3.1 基本文件操作 6.3.2 文件锁 6.3.3 多路复用 6.4 嵌入式Linux串口应用编程 6.4.1 串口概述 6.4.2 串口设置详解 6.4.3 串口使用详解 6.5 标准I/O编程 6.5.1 基本操作 6.5.2 其他操作 6.6 实验内容 6.6.1 文件读写及上锁 6.6.2 多路复用式串口操作 6.7 本章小结 6.8 思考与练习 第7章 进程控制开发 7.1 Linux进程概述 7.1.1 进程的基本概念 7.1.2 Linux下的进程结构 7.1.3 Linux下进程的模式和类型 7.1.4 Linux下的进程管理 7.2 Linux进程控制编程 7.3 Linux守护进程 7.3.1 守护进程概述 7.3.2 编写守护进程 7.3.3 守护进程的出错处理 7.4 实验内容 7.4.1 编写多进程程序 7.4.2 编写守护进程 7.5 本章小结 7.6 思考与练习 第8章 进程间通信 8.1 Linux下进程间通信概述 8.2 管道 8.2.1 管道概述 8.2.2 管道系统调用 8.2.3 标准流管道 8.2.4 FIFO 8.3 信号 8.3.1 信号概述 8.3.2 信号发送与捕捉 8.3.3 信号的处理 8.4 信号量 8.4.1 信号量概述 8.4.2 信号量的应用 8.5 共享内存 8.5.1 共享内存概述 8.5.2 共享内存的应用 8.6 消息队列 8.6.1 消息队列概述 8.6.2 消息队列的应用 8.7 实验内容 8.7.1 管道通信实验 8.7.2 共享内存实验 8.8 本章小结 8.9 思考与练习 第9章 多线程编程 9.1 Linux线程概述 9.1.1 线程概述 9.1.2 线程机制的分类和特性 9.2 Linux线程编程 9.2.1 线程基本编程 9.2.2 线程之间的同步与互斥 9.2.3 线程属性 9.3 实验内容——“生产者消费者”实验 9.4 本章小结 9.5 思考与练习 第10章 嵌入式Linux网络编程 10.1 TCP/IP概述 10.1.1 OSI参考模型及TCP/IP参考模型 10.1.2 TCP/IP协议族 10.1.3 TCP和UDP 10.2 网络基础编程 10.2.1 socket概述 10.2.2 地址及顺序处理 10.2.3 socket基础编程 10.3 网络高级编程 10.4 实验内容——NTP协议实现 10.5 本章小结 10.6 思考与练习 第11章 嵌入式Linux设备驱动开发 11.1 设备驱动概述 11.1.1 设备驱动简介及驱动模块 11.1.2 设备分类 11.1.3 设备号 11.1.4 驱动层次结构 11.1.5 设备驱动程序与外界的接口 11.1.6 设备驱动程序的特点 11.2 字符设备驱动编程 11.3 GPIO驱动程序实例 11.3.1 GPIO工作原理 11.3.2 GPIO驱动程序 11.4 块设备驱动编程 11.5 中断编程 11.6 按键驱动程序实例 11.6.1 按键工作原理 11.6.2 按键驱动程序 11.6.3 按键驱动的测试程序 11.7 实验内容——test驱动 11.8 本章小结 11.9 思考与练习 第12章 Qt图形编程基础 12.1 嵌入式GUI简介 12.1.1 Qt/Embedded 12.1.2 MiniGUI 12.1.3 Microwindows、TinyX等 12.2 Qt/Embedded开发入门 12.2.1 Qt/Embedded介绍 12.2.2 Qt/Embedded信号和插槽机制 12.2.3 搭建Qt/Embedded开发环境 12.2.4 Qt/Embedded窗口部件 12.2.5 Qt/Embedded图形界面编程 12.2.6 Qt/Embedded对话框设计 12.3 实验内容——使用Qt编写“Hello,World”程序 12.4 本章小结
2022-05-27 10:19:50 14.83MB Linux Linux教程 Linux应用
1
项目4 管理用户和用户组;第四讲 主要内容;Linux用户组;Linux用户与组;举例 添加用户aa,不指定属组。 结论:aa属于私有组,aa组是aa用户的主组。 添加用户bb,指定属于aa组,使aa组成为bb用户的主组。 结论:aa属于标准组,aa组是bb用户的主组。 添加用户cc,指定属于aa组,使aa组成为cc用户的附属组。 结论:aa属于标准组,aa组是cc用户的附属组。 ;用户和用户组的关系P120图4-1;主用户组和其他用户组的区别;用户组文件;用户组账号文件—/etc/group;用户组账号文件;用户组密码文件—/etc/gshadow;;用户组管理;创建用户组;修改用户组属性;修改用户组属性—练习;操作演示;修改用户组属性;修改用户组属性—练习;修改用户组属性;修改用户组属性—练习;修改用户组属性;使用Linux图形化工具管理用户和组
2022-05-26 09:00:58 196KB linux 文档资料 运维 服务器
项目3 Linux磁盘文件管理 第三讲 主要内容 Linux操作命令 Linux目录管理 Linux文件管理 拓展:管道和重定向 Linux文件系统 系统及其他命令 vi编辑器 磁盘分区管理 拓展:重定向 输出重定向 功能:将一个命令的输出重定向到一个文件中,而不是屏幕显示。 输出重定向符:> 、>> 例如:将last命令的输出结果,传输到mylog.txt文件中 例如:将/etc/grub.conf文件内容输出追加到mylog.txt文件中 将/etc/grub.conf文件内容输出替换mylog.txt文件中的内容 #last >mylog.txt #cat /etc/grub.conf >>mylog.txt #cat /etc/grub.conf > mylog.txt 拓展:重定向 输入重定向 输入重定向符:< 、<< “<“:标准输入重定向,用于改变一个命令的输入源 例如:cat < mylog.txt 含义:读取mylog.txt文件的内容,并显示输出在屏幕上 “<<”:为此处操作符,该操作符在从键盘读取内容时,读到指定字符串时,停止读取动作,然后将所读内容输出。与cat
2022-05-26 09:00:57 123KB linux 文档资料 运维 服务器
项目5 软件包管理;第五讲 主要内容;RPM软件包管理;RPM;RPM的优点;RPM的功能;RPM包管理前的准备;RPM包的名称;获得RPM包;查询软件包;查询软件包;查询软件包;查询软件包命令总结;安装软件包;使用rpm方式安装软件;查询telnet服务器的软件包是否安装成功 启动telnet服务 ;测试 使用telnet连接(本机测试,因为默认不允许root连接,所以可增加测试用户admin,将其加入root组,并设置密码,并连接。) ;升级软件包;卸载软件包;课堂练习
2022-05-26 09:00:56 446KB linux 文档资料 运维 服务器
项目5 软件包管理;第五讲 主要内容;TAR;tar简介;tar命令;常用选项;Tar包的管理;Tar包的管理;Tar包的管理;Tar包的管理;Tar包的管理;Tar包的管理;Tar包的管理;Tar包的管理
2022-05-26 09:00:55 314KB linux 文档资料 运维 服务器
项目5 软件包管理;第五讲 主要内容;YUM简介;搭建YUM仓库;YUM方式安装软件;YUM方式安装软件;YUM方式安装软件;YUM方式管理软件;YUM方式管理软件;YUM方式管理软件;YUM方式管理软件;YUM方式管理软件
2022-05-26 09:00:54 312KB linux 文档资料 运维 服务器
项目一 初识Linux 概况及安装;第一讲 主要内容;Linux如此了不起?谁创造了Linux?如何创造的? ;;;1991.9 Linux在互联网上发布了自己的成果并取名为Linux,意思是Linus的Minux操作系统。版本为0.0.1;1991年 ,大学时期的Torvalds 22岁的芬兰计算机程序员Linus Torvalds对操作系统产生了兴趣,发布了自己的操作系统,取名为Linux0.01 一声“Hello everybody out there”, 他把代码放到网上,于是Linux开始了。;这个问题如何解决呢?;Linux的历史;GNU项目的创立:标志着自由软件运动的开始,随后的 1985.10 他又创立了自由软件基金会 在此支持下,1991年GNU很多工具被开发(gcc编译器、GDB调试器、Emacs编辑器等);Richard Stallman创立GNU项目 GNU 工程 开始於一九八四年,旨在发展一个类似 Unix ,且为 自由软件 的完整操作系统: GNU 系统。(GNU 是由“GNU‘s Not Unix”所递回定义出的首字母缩写语;Stallman宣布GNU应当
2022-05-26 09:00:53 2.36MB linux 文档资料 运维 服务器
第二讲 Linux初体验 项目二 主要内容 启动与关闭系统 Linux基本操作及常用命令 Init进程 Linux命令操作界面 启动与关闭系统 Linux的启动与关闭 选择登录用户 选择使用语言 选择启动会话的模式 重新启动 关机 Linux命令基本格式 格式: 命令 [-选项] 参数 例如: 关机操作命令的使用 # shutdown –h 10 惯用的关机命令 shutdown 功能:⑴直接关机、⑵延迟一定时间关机、⑶重启计算机 命令用法:shutdown [-option] time Linux系统在线帮助的使用 命令 --help man 命令 例如:查询shutdown命令的帮助信息 shutdown --help man shutdown 课堂练习1 要求:借助Linux在线帮助,查询关机命令的使用方法。 设置10分钟后关机,之后取消该操作。 答案: 课堂练习2 要求:设置10分钟后关机,但仅显示关机通知信息,而不会真正关机。 答案: 例3:设置系统在早上8:20时候关机 例4:设置系统10分钟后重启 重启、关机的其他命令 halt,poweroff 关机 halt:相当于调
2022-05-26 09:00:53 963KB linux 文档资料 运维 服务器
项目二 Linux基础使用 第三讲 主要内容 启动与关闭系统 Linux常用命令 init运行级别 Linux系统的命令操作界面 Linux命令的操作界面 命令行界面(CLI) 图形用户界面得到普及之前使用最为广泛的用户界面。不支持鼠标,通过键盘输入指令。 命令行界面也被称为字符命令行用户界面(CUI) 命令行优势 节约系统资源 比图形用户界面(GUI)响应速度快 在使用者是管理维护人员时,更多情况下会使用远程登录管理服务器(易受到网络等因素影响),故更节省资源,更快速的命令行成为首选。 命令行缺点——需要记忆的内容多 命令行界面的使用 Linux启动后,默认进入图形界面,进入命令行的方法: 通过init命令实现图形界面和命令行界面的相互切换: init 3 文本命令行 init 5 图形化——启动终端进行命令操作 命令行界面的使用 修改开机启动菜单参数,进入命令行 课堂练习:P51 -52操作 临时修改,一次生效。 修改inittab配置文件 命令行界面的使用 进入虚拟控制台登录命令行界面: 虚拟控制台 Linux是一个多用户操作系统 允许多个用户登录 允许一个用户登录多次 需要
2022-05-26 09:00:52 868KB linux 文档资料 运维 服务器