前言
第一篇 Ubuntu系统入门篇
第一章 Ubuntu系统安装
1.1 安装虚拟机软件VMware
1.2 创建虚拟机
1.3 安装Ubuntu操作系统
1.3.1 获取Ubuntu系统
1.3.2 安装Ubuntu操作系统
1.3.3 弹出系统镜像
第二章 Ubuntu系统入门
2.1 Ubuntu系统初体验
2.1.1 hello Ubuntu
2.1.2 系统设置
2.1.3 系统注销与关机
2.1.4 中文输入测试
2.2 Ubuntu终端操作
2.3 Shell操作
2.3.1 Shell简介
2.3.2 Shell基本操作
2.3.3 常用Shell命令
2.4 APT下载工具
2.5 Ubuntu下文本编辑
2.5.1 Gedit编辑器
2.5.2 VI/VIM编辑器
2.6 Linux文件系统
2.6.1 Linux文件系统简介以及类型
2.6.2 Linux文件系统结构
2.6.3 文件操作命令
2.6.4 文件压缩和解压缩
2.6.5 文件查询和搜索
2.6.6 文件类型
2.7 Linux用户权限管理
2.7.1 Ubuntu用户系统
2.7.2 权限管理
2.7.3 权限管理命令
2.8 Linux磁盘管理
2.8.1 Linux磁盘管理基本概念
2.8.2 磁盘管理命令
第三章 Linux C编程入门
3.1 Hello World!
3.1.1 编写代码
3.1.2 编译代码
3.2 GCC编译器
3.2.1 gcc命令
3.2.2 编译错误警告
3.2.3 编译流程
3.3 Makefile基础
3.3.1 何为Makefile
3.3.2 Makefile的引入
3.4 Makefile语法
3.4.1 Makefile规则格式
3.4.2 Makefile变量
3.4.3 Makefile模式规则
3.4.4 Makefile自动化变量
3.4.5 Makefile伪目标
3.4.6 Makefile条件判断
3.4.7 Makefile函数使用
第二篇 Petalinux使用篇
第四章 开发环境搭建
4.1 Ubuntu和Windows文件互传
4.2 Ubuntu和Windows文件本地共享
4.3 Ubuntu系统搭建tftp服务器
4.4 Ubuntu下NFS和SSH服务开启
4.4.1 NFS服务开启
4.4.2 SSH服务开启
4.5 Source Insight软件安装和使用
4.5.1 Source Insight安装
4.5.2 Source Insight新建工程
4.5.3 Source Insight解决中文乱码
4.6 Visual Studio Code软件的安装和使用
4.6.1 Visual Studio Code的安装
4.6.2 Visual Studio Code插件的安装
4.6.3 Visual Studio Code新建工程
4.7 CH340串口驱动安装
4.8 SecureCRT软件安装和使用
4.8.1 SecureCRT安装
4.8.2 SecureCRT使用
4.9 Putty软件的安装和使用
4.9.1 Putty软件安装
4.9.2 Putty软件使用
第五章 Petalinux的安装
5.1 Petalinux简介
5.2 下载Petalinux安装包
5.3 安装Petalinux
5.3.1 安装依赖库以及软件
5.3.2 安装Petalinux
5.3.3 修改bash
5.4 安装XSDK
5.5 Linux系统安装JTAG cable驱动
第六章 Petalinux设计流程实战
6.1 Petalinux的设计流程概述
6.2 使用Petalinux定制Linux系统
6.2.1 创建Vivado硬件平台
6.2.2 设置Petalinux环境变量
6.2.3 创建petalinux工程
6.2.4 配置petalinux工程
6.2.5 配置Linux内核
6.2.6 配置Linux根文件系统
6.2.7 配置设备树文件
6.2.8 编译Petalinux工程
6.2.9 制作BOOT.BIN启动文件
6.2.10 制作SD启动卡
6.2.11 开发板启动模式设置
6.2.12 打开串口上位机,进入Linux系统
第七章 使用XSDK开发Linux应用
7.1 创建XSDK工程
7.2 使用TCF Agent方式运行
7.3 使用NFS共享方式运行
7.4 使用SSH方式运行
第八章 Linux基础外设的使用
8.1 GPIO之LED的使用
8.2 IIC之EEPROM与RTC的使用
第九章 Linux显示设备的驱动
9.1 准备工作
9.2 配置Petalinux工程
9.3 配置Linux内核
9.4 配置设备树
9.5 编译Petalinux工程
9.6 制作BOOT.BIN启动文件并复制到SD卡
9.7 在开发板上启动Linux
第十章 Linux图形界面的使用
10.1 简介
10.2 配置Petalinux工程
10.3 编译Petalinux工程
10.4 制作BOOT.BIN启动文件并复制到SD卡
10.5 拷贝根文件系统到SD卡的ext4分区
10.6 在开发板上启动Linux
第三篇 系统移植篇
第十一章 U-Boot使用实验
11.1 U-Boot简介
11.2 U-Boot初次编译
11.3 U-Boot烧写与启动
11.4 U-Boot命令使用
11.4.1 信息查询命令
11.4.2 环境变量操作命令
11.4.3 内存操作命令
11.4.4 网络操作命令
11.4.5 EMMC和SD卡操作命令
11.4.6 FAT格式文件系统操作命令
11.4.7 EXT格式文件系统操作命令
11.4.8 BOOT操作命令
11.4.9 其他常用命令
第十二章 U-Boot顶层Makefile详解
12.1 U-Boot工程目录分析
12.2 VScode创建uboot工程
12.3 U-Boot顶层Makefile分析
12.3.1 版本号
12.3.2 MAKEFLAGS变量
12.3.3 命令输出
12.3.4 静默输出
12.3.5 设置编译结果输出目录
12.3.6 代码检查
12.3.7 模块编译
12.3.8 获取主机架构和系统
12.3.9 设置目标架构、交叉编译器和配置文件
12.3.10 调用scripts/Kbuild.include
12.3.11 交叉编译工具变量设置
12.3.12 导出其他变量
12.3.13 make xxx_defconfig过程
12.3.14 Makefile.build脚本分析
12.3.15 make过程
第十三章 U-Boot移植
13.1 Xilinx官方开发板uboot编译测试
13.1.1 查找Xilinx官方的开发板默认配置文件
13.1.2 编译Xilinx官方开发板对应的uboot
13.1.3 验证与驱动测试
13.2 在U-Boot中添加自己的开发板
13.2.1 添加开发板默认配置文件
13.2.2 添加开发板对应的头文件
13.2.3 添加开发板对应的板级文件夹
13.2.4 添加开发板对应的设备树
13.2.5 修改U-Boot图形界面配置文件
13.2.6 使用新添加的板子配置编译uboot
13.3 bootcmd和bootargs环境变量
13.3.1 环境变量bootcmd
13.3.2 环境变量bootargs
13.4 uboot启动Linux测试
13.4.1 从SD卡启动Linux系统
13.4.2 从网络启动Linux系统
第十四章 U-Boot图形化配置及其原理
14.1 U-Boot图形化配置体验
14.2 menuconfig图形化配置原理
14.2.1 make menuconfig过程分析
14.2.2 Kconfig语法简介
14.3 添加自定义菜单
第十五章 Linux内核目录分析
15.1 Linux内核获取
15.2 Linux内核编译初次编译
15.3 Linux工程目录分析
第四篇 ARM Linux驱动开发篇
第十六章 字符设备驱动开发
16.1 字符设备驱动简介
16.2 字符设备驱动开发步骤
16.2.1 驱动模块的加载和卸载
16.2.2 字符设备注册与注销
16.2.3 实现设备的具体操作函数
16.2.4 添加LICENSE和作者信息
16.3 Linux设备号
16.3.1 设备号的组成
16.3.2 设备号的分配
16.4 chrdevbase字符设备驱动开发实验
16.4.1 实验程序编写
16.4.2 编写测试APP
16.4.3 编译驱动程序和测试APP
16.4.4 运行测试
附录A1 Coretx-A9 MPCore架构
A1.1 Cortex-A9 MPCore简介
A1.2 Cortex-A处理器运行模型
A1.3 Cortex-A寄存器组
A1.3.1 通用寄存器
A1.3.2 程序状态寄存器
附录A2 ARM汇编基础
A2.1 GNU汇编语法
A2.2 Cortex-A9常用汇编指令
A2.2.1 处理器内部数据传输指令
A2.2.2 存储器访问指令
A2.2.3 压栈和出栈指令
A2.2.4 跳转指令
A2.2.5 算术运算指令
A2.2.5 逻辑运算指令
参考文献