迅为IMX6ULL开发板Linux学习教程

1800+页使用手册(持续更新)+入门视频教程+实战视频教程

关注VX公众号:迅为电子 ,  回复 :终结者,免费获取产品资料 

 

让教程更细致,终结入门难!

所有教程由迅为原创,是迅为工作多年的工程师精心编写,深知初学者痛点。从Linux入门到驱动开发再到系统移植,一步一步由浅入深,逐步掌握嵌入式技术。每个例子有详细的注释,每个命令详细的说明。只要你对嵌入式感兴趣,就可以学习。

 

注意事项与售后维修 2

技术支持与开发定制 4

资料获取与后续更新 5

更新记录 6

前言 开发板使用前必读 31

必须注意的问题 31

一 光盘资料介绍 31

二 开发板使用前装配流程 33

第一部分 总领及学习指引 37

01 框架学习法 38

02 嵌入式系统学习的框架 39

03 关于裸机程序和仿真 41

04 基于迅为开发板的学习步骤 42

第一章 开发板初体验 44

1.1 初识i.MX6ULL终结者开发板 45

1.2 i.MX6ULL终结者硬件资源说明 46

1.2.1 i.MX6ULL核心板资源说明 46

1.2.2 i.MX6ULL终结者底板资源说明 48

1.3 i.MX6ULL终结者底板原理分析 51

1.3.1 核心板接口 51

1.3.2 启动方式原理部分 52

1.3.3 系统电源接口 53

1.3.4 复位电路 54

1.3.5 纽扣电池电路 55

1.3.6 CAN接口电路 56

1.3.7 RS485/TTL串口选择电路 56

1.3.8 GPIO接口电路 57

1.3.9 RS485电路 57

1.3.10 USB转串口电路 58

1.3.11 LED电路 60

1.3.12 按键电路 60

1.3.13 蜂鸣器电路 60

1.3.14 TF卡电路 61

1.3.15 EEPROM电路 62

1.3.16 音频电路 62

1.3.17 RGB屏幕电路 64

1.3.18 LVDS屏幕接口 65

1.3.19 USB OTG电路 66

1.3.20 USB HOST接口 67

1.3.21 CSI摄像头接口电路 68

1.3.22 WIFI/蓝牙电路 69

1.3.23 PCIE 4G模块电路 69

1.3.24 六轴传感器电路 70

1.3.25 光环境传感器电路 71

1.3.26 温湿度传感器电路 71

1.3.27 ADC电位器电路 72

1.3.28 红外接收电路 73

1.3.29 HDMI接口电路 73

1.3.30 以太网电路 74

1.4 i.MX6ULL终结者软件资源 76

1.5 外设功能验证 79

1.5.1 用户LED测试 79

1.5.2 蜂鸣器测试 79

1.5.3 ADC电位器测试 80

1.5.4 TF卡测试 80

1.5.5 USB HOST测试 81

1.5.6 以太网测试 83

1.5.7 用户按键测试 86

1.5.8 内存测试 87

1.5.9 Linux系统时钟测试 88

1.5.10 CSI摄像头测试 89

1.5.11 USB摄像头测试 92

1.5.12 AP3216C测试 94

1.5.13 WIFI联网测试 95

1.5.14 PCIE 4G模块测试 97

1.5.15 CAN接口测试 101

1.5.16 485接口测试 103

1.5.17 DHT11模块测试 106

1.6 外设模块功能验证 108

1.6.1 RC522模块测试 108

1.6.2 步进电机模块测试 110

1.6.3 GPS模块测试 113

1.6.4 zigbee模块测试 115

1.6.5 继电器模块测试 121

第二章 Ubuntu系统安装及配置 123

2.1 虚拟机VMware的安装 124

2.2 虚拟机安装Ubuntu系统 130

2.2.1 获取Ubuntu系统镜像 130

2.2.2 虚拟机安装Ubuntu系统 131

2.3 Ubuntu系统初体验 145

2.3.1 登录Ubuntu系统 145

2.3.2 Ubuntu系统设置 150

2.3.3 Ubuntu系统关机 154

2.3.4 Ubuntu设置中文显示 155

2.4 Ubuntu终端和常用命令 163

2.4.1 Ubuntu的终端 163

2.5 Ubuntu常用命令 164

2.5.1 文件信息查看命令ls 165

2.5.2 目录切换命令cd 166

2.5.3 显示当前路径命令pwd 166

2.5.4 系统信息查看命令uname 167

2.5.5 清屏命令clear 167

2.5.6 切换用户执行身份命令sudo 168

2.5.7 添加用户命令adduser 169

2.5.8 删除用户命令deluser 169

2.5.9 切换用户命令su 170

2.5.10 查看文件内容命令cat 171

2.5.11 网络配置命令ifconfig 171

2.5.12 帮助命令man 172

2.5.13 系统重启命令reboot 173

2.5.14 系统关机命令poweroff 173

2.6 apt-get软件下载工具 174

2.6.1 更新软件列表 176

2.6.2 检查依赖是否有损坏 176

2.6.3 软件安装 176

2.6.4 软件更新 178

2.6.5 软件卸载 180

2.7 文本编辑工具 181

2.8 Linux文件系统 189

2.8.1 Linux文件系统类型 189

2.8.2 文件操作命令 191

2.9 Linux用户权限 200

2.9.1 用户组及用户 200

2.9.2 文件权限管理 201

2.9.3 权限管理命令 203

第三章 Ubuntu下C 编程入门 206

3.1 Linux下编写第一个C 程序 207

3.1.1 代码编写 207

3.1.2 代码编译 208

3.2 gcc编译器 210

3.2.1 gcc命令分析 210

3.2.2 编译警告错误处理 210

3.2.3 gcc编译流程 211

3.3 初识Makefile 212

3.3.1 什么是Makefile 212

3.3.2 第一个Makefile 212

3.4 Makefile语法 216

3.4.1 初识Makefile 216

3.4.2 Makefile的变量 218

3.4.3 条件判断 220

3.4.4 使用函数 221

3.4.5 在规则中使用通配符 223

第二部分 裸机开发 224

第四章 开发环境搭建详解 225

4.1 搭建SSH服务 226

4.2 Windows安装ssh客户端 228

4.3 搭建交叉编译环境 237

4.4 SecureCRT 软件安装和使用 241

4.5 安装CH340串口驱动 250

4.6 Source Insight 软件安装和使用 253

4.7 Putty软件的安装教程 283

4.8 MobaXterm的安装教程 291

4.9 VMware 虚拟机扩展Ubuntu系统磁盘空间 294

第五章 i.MX6ULL启动方式和镜像文件格式 299

5.1 i.MX6ULL启动方式 300

5.2 镜像格式 304

第六章 i.MX6ULL镜像烧写 309

6.1 mfgtool烧写镜像 310

6.2 屏幕设置 314

第七章 Cortex-A7架构 316

7.1 Cortex-A7运行模式 317

7.2 Cortex-A7寄存器组 318

7.2.1 通用寄存器 319

7.2.2 程序状态寄存器 320

第八章 初识ARM汇编 323

8.1 GNU汇编语法 324

8.2 ARM汇编指令 326

8.2.1 MOV指令 326

8.2.2 MRS指令 326

8.2.3 MSR指令 326

8.2.4 LDR指令 326

8.2.5 STR指令 327

8.2.6 入栈,出栈指令 327

8.2.7 跳转指令 327

8.2.8 逻辑运算指令 328

8.2.9 算数运算符 329

第九章 第一个汇编实验 330

9.1 i.MX6ULL GPIO分析 331

9.2 IO引脚配置 335

9.3 GPIO配置 336

9.4 GPIO时钟 342

9.5 LED原理分析 344

9.6 LED汇编程序 344

9.7 编译LED汇编程序 348

第十章 C 语言实现LED例程 356

10.1 C 程序版LED例程简介 357

10.2 原理图分析 357

10.3 程序编写 357

10.4 修改Makefile 364

10.5 编译烧写验证 366

第十一章 移植官方SDK 368

11.1 官方SDK简介 369

11.2 硬件原理图分析 370

11.3 SDK程序编写 370

11.4 编译下载 378

第十二章 创建裸机工程 380

12.1 创建工程目录结构 381

12.2 原理分析 382

12.3 程序设计 382

12.4 编译及运行 391

第十三章 蜂鸣器例程 393

13.1 蜂鸣器原理 394

13.2 原理分析 394

13.3 程序设计 395

13.4 编译及运行 400

第十四章 按键例程 404

14.1 按键输入原理 405

14.2 原理分析 405

14.3 程序设计 405

14.4 编译及运行 416

第十五章 主频和时钟配置例程 421

15.1 i.MX6ULL时钟系统 422

15.2 原理分析 435

15.3 程序设计 435

15.4 编译及运行 441

第十六章 GPIO中断例程 445

16.1 中断系统简介 446

16.1.1 中断向量表 446

16.1.2 GIC控制器 451

16.2 原理分析 468

16.3 程序设计 468

16.4 编译及运行 488

第十七章 EPIT定时器例程 492

17.1 EPIT定时器介绍 493

17.2 原理分析 496

17.3 程序设计 496

17.4 编译及运行 501

第十八章 定时器按键例程 504

18.1 定时器按键原理 505

18.2 原理分析 505

18.3 程序设计 505

18.4 编译及运行 512

第十九章 GPT定时器延时例程 515

19.1 GPT 定时器简介 516

19.2 GPT定时器延时原理 520

19.3 原理分析 520

19.4 程序设计 520

19.5 编译及运行 526

第二十章 串口通信例程 529

20.1 串口简介 530

20.2 原理分析 536

20.3 程序设计 538

20.4 编译及运行 549

第二十一章 串口格式化函数例程 555

21.1 原理分析 556

21.2 程序设计 556

21.3 编译及运行 559

第二十二章 LCD屏幕显示例程 563

22.1 eLCDIF接口简介 564

22.2 原理分析 576

22.3 程序设计 577

22.4 编译及运行 604

第二十三章 SRTC实时时钟例程 608

23.1 SRTC简介 609

23.2 原理分析 613

23.3 程序设计 614

23.4 编译及运行 627

第二十四章 I2C操作 631

24.1 I2C简介 632

24.2 原理分析 641

24.3 程序设计 641

24.4 编译及运行 660

第二十五章 电容触摸实验 665

25.1 触摸屏简介 666

25.2 原理分析 668

25.3 程序设计 668

25.4 编译及运行 681

第二十六章 屏幕背光调节例程 686

26.1 背光调节简介 687

26.2 原理分析 693

26.3 程序设计 693

26.4 编译及运行 701

第二十七章 MPU6050 六轴传感器例程 707

27.1 MPU6050简介 708

27.2 原理分析 712

27.3程序设计 712

27.4 编译运行 722

第二十八章 DHT11温湿度模块例程 726

28.1 DHT11简介 727

28.2 原理分析 729

28.3 程序设计 730

28.4 编译运行 741

第三部分 Linux系统移植篇 746

第二十九章 编译终结者开发板的Uboot和内核 747

29.1 安装第三方库 748

29.2 编译终结者开发板Uboot 750

29.3 编译终结者开发板Linux内核 751

第三十章 Linux内核启动流程 754

30.1 Linux内核启动(一):Linux内核自解压过程 755

30.2 Linux内核启动(二):ARM处理器相关设置 755

30.2.1 Linux内核入口函数Stext 756

30.2.2 _Mmap_Switched 函数 759

30.3 Linux内核启动(三):内核初始化 760

30.3.1 Start_Kernel 函数 760

30.3.2 Rest_Init 函数 764

30.3.3 Init 进程 766

第三十一章 linux内核裁剪与定制 770

31.1 获取Linux源码 771

31.2 NXP官方Linux源码编译 771

31.2.1 配置交叉编译工具链 771

31.2.2 配置并编译Linux内核 771

31.3 在Linux中添加自己的开发板 772

31.3.1 添加默认开发板内核配置文件 772

31.3.2 添加开发板对应的设备树文件 773

31.3.3 编译开发板对应镜像 773

31.4 添加简单设备驱动 774

31.4.1 网卡驱动 774

31.4.2 LED灯驱动 779

31.5 Linux 5.4.3系统移植 780

31.5.1 获取Linux内核源码 780

31.5.2 搭建编译环境 784

31.5.3 编译内核 785

第三十二章 Linux文件系统的构建 793

32.1 根文件系统简介 794

32.2 根文件系统目录介绍 794

32.3 BusyBox构建根文件系统 795

32.3.1 获取BusyBox源码 796

32.3.2 编译BusyBox构建根文件系统 797

32.3.3 构建整个根文件系统 804

32.4  完善根文件系统 807

32.4.1 创建/etc/init.d/rcS文件 807

32.4.2 创建/etc/fstab文件 808

32.4.3 创建/etc/inittab文件 809

32.4.4 生成文件系统镜像 810

第四部分 Linux驱动开发 812

第三十三章 字符设备驱动 813

33.1 字符设备驱动开发 814

33.2 常规字符设备驱动框架 814

33.3 简化版字符设备驱动框架 818

33.4 设备号 822

33.4.1 设备号的组成 822

33.4.2 设备号的分配 822

33.5 驱动模块的安装与卸载 824

33.6 字符设备驱动实验 825

33.6.1 常规字符驱动程序 825

33.6.2 简化版字符设备驱动程序 831

33.6.3 Linux下应用测试程序 832

33.6.4 编译驱动和应用程序 834

33.6.5 运行测试 835

33.7 自动创建设备节点 839

33.7.1 mdev简介 839

33.7.2 创建和删除类函数 839

33.7.3 创建设备函数 840

33.7.4 代码实例 840

33.7.5 运行测试 845

第三十四章 Linux设备树 848

34.1 什么是设备树 849

34.2 DTS、DTC和DTB 849

34.3 DTS设备树语法结构 851

34.3.1 dtsi头文件 851

34.3.2 设备节点信息 853

34.3.3 设备节点及label的命名 855

34.3.4 标准属性 856

34.3.5 根节点compatible属性 860

34.3.6 在设备节点中添加或修改内容 865

34.4 设备树实验 867

34.4.1 初始结构 868

34.4.2 添加CPU处理器 868

34.4.3 添加设备 868

34.4.4 CPU编址 870

34.4.5 内存映射设备 870

34.4.6 非内存映射设备 872

34.4.7 地址转换 872

34.4.8 添加中断 874

34.5 设备树在系统中的体现 877

34.6 特殊节点 877

34.6.1 aliases子节点 877

34.6.2 chosen子节点 878

34.7 DTB文件格式 879

34.7.1 DTB文件格式总览 879

34.7.2 DTB起始段 879

34.7.3 内存预留块 880

34.7.4 结构块 881

34.7.5 字符串块 881

34.8 Binding信息文档 883

34.9 设备树常用OF操作函数 884

34.9.1 查找节点的OF函数 885

34.9.2 查找父子节点的OF函数 887

34.9.3 获取属性值的OF函数 887

34.9.4 其他常用的 OF 函数 891

第三十五章 Pinctrl子系统和GPIO子系统 894

35.1 Pinctrl子系统 895

35.1.1 配置pinctrl 895

35.1.2 调用pinctrl 900

35.2 GPIO子系统 901

第三十六章 Linux LED实验 904

36.1 LED设备注册流程 905

36.2 LED硬件原理图分析 905

36.3 修改设备树文件 905

36.3.1 添加Pinctrl信息 905

36.3.2 添加LED设备节点 906

36.4 编写LED驱动程序 907

36.5 编写应用测试程序 913

36.6 编译运行测试 915

36.6.1 编译LED驱动文件 915

36.6.2 编译应用测试程序 916

36.6.3 运行测试 916

第三十七章 Linux 蜂鸣器实验 917

37.1 蜂鸣器设备注册流程 918

37.2 蜂鸣器硬件原理图分析 918

37.3 修改设备树文件 918

37.3.1 添加pinctrl信息 918

37.3.2 添加beep设备节点 919

37.4 编写蜂鸣器驱动程序 919

37.5 编写应用测试程序 925

37.6 编译运行测试 926

37.6.1 编译蜂鸣器驱动文件 926

37.6.2 编译应用测试程序 927

37.6.3 运行测试 927

第三十八章 Linux并发与竞争 929

38.1 并发与竞争 930

38.2 中断屏蔽 930

38.3 原子操作 931

38.3.1 什么是原子操作 931

38.3.2 整型原子操作 932

38.3.3 位原子操作 933

38.4 自旋锁 934

38.4.1 自旋锁简介 934

38.4.2 自旋锁相关函数 935

38.4.3 其他类型的锁 937

38.5 信号量 939

38.5.1 信号量简介 939

38.5.2 信号量相关函数 940

38.6 互斥体 941

38.6.1 互斥体简介 941

38.6.2 互斥体相关函数 942

第三十九章 Linux并发与竞争实验 944

39.1 原子操作 945

39.1.1 实验程序编写 945

39.1.2 编写应用测试程序 951

39.1.3 运行测试 953

39.2 自旋锁实验 955

39.2.1 实验程序编写 955

39.2.2 编写应用测试程序 962

39.2.3 运行测试 962

39.3 信号量实验 963

39.3.1 编写驱动程序 964

39.3.2 编写应用测试程序 967

39.3.3 运行测试 967

39.4 互斥体实验 969

39.4.1 编写驱动程序 969

39.4.2 编写应用测试程序 971

39.4.3 运行测试 972

第四十章 Linux按键输入实验 974

40.1 Linux下按键驱动原理 975

40.2 按键硬件原理图分析 975

40.3 修改设备树文件 975

40.3.1 添加Pinctrl节点 975

40.3.2 添加KEY设备节点 976

40.4 按键驱动程序 976

40.5 应用测试程序 982

40.6 运行测试 983

40.6.1 编译按键驱动文件 983

40.6.2 编译应用测试程序 984

40.6.3 运行测试 984

第四十一章 Linux内核定时器实验 986

41.1 Linux时间管理和内核定时器简介 987

41.1.1 Linux内核时间管理 987

41.1.2 内核定时器简介 989

41.2 实验程序编写 991

41.2.1 驱动程序编写 991

41.2.2 应用测试程序编写 999

41.3 运行测试 1001

41.3.1 编译驱动文件 1001

41.3.2 编译应用程序 1001

41.3.3 运行测试 1002

第四十二章 Linux中断实验 1003

42.1 Linux中断简介 1004

42.1.1 Linux中断介绍 1004

42.1.2 Linux中断相关函数 1004

42.1.3 顶半部与底半部 1006

42.1.4 设备树中的中断节点 1013

42.1.5 驱动获取中断号函数 1015

42.2 实验程序编写 1015

42.2.1 修改设备树文件 1015

42.2.2 按键中断驱动程序 1016

42.2.3 编写应用测试程序 1025

42.3 运行测试 1027

42.3.1 编译驱动程序 1027

42.3.2 编译应用测试程序 1027

42.3.3 运行测试 1027

第四十三章 Linux阻塞和非阻塞IO实验 1029

43.1 阻塞和非阻塞IO 1030

43.1.1 阻塞和非阻塞简介 1030

43.1.2 等待队列 1031

43.1.3 轮询 1034

43.1.4 Linux驱动下的poll操作函数 1039

43.2 阻塞IO实验 1040

43.2.1 驱动程序编写 1040

43.2.2 编写应用测试程序 1050

43.2.3 运行测试 1050

43.3 非阻塞IO实验 1052

43.3.1 编写驱动程序 1052

43.3.2 编写应用测试程序 1056

43.3.3 运行测试 1058

第四十四章 Linux异步通知实验 1061

44.1 异步通知 1062

44.1.1 异步通知概念 1062

44.1.2 Linux信号 1062

44.1.3 应用程序中信号的处理 1064

44.1.4 驱动中信号的处理 1065

44.2 编写实验程序 1067

44.2.1 驱动程序编写 1067

44.2.2 应用测试程序 1077

44.2.3 运行测试 1079

第四十五章 Platform设备驱动 1081

45.1 Linux设备驱动分层和分离 1082

45.1.1 设备驱动的分层思想 1082

45.1.2 主机驱动和外设驱动分离思想 1083

45.2 Platform平台驱动模型 1084

45.2.1 Platform设备 1084

45.2.2 Platform驱动 1087

45.2.3 Platform总线 1092

45.3 实验程序 1095

45.3.1 Platform设备和驱动程序 1095

45.3.2 应用测试程序 1106

45.4 运行测试 1107

45.4.1 编译驱动和设备程序 1107

45.4.2 编译应用测试程序 1108

45.4.3 运行测试 1108

第四十六章 设备树下的Platform驱动 1111

46.1 设备树下的Platform设备 1112

46.2 实验程序编写 1113

46.2.1 修改设备树文件 1113

46.2.2 platform驱动程序 1113

46.2.3 应用测试程序 1119

46.3 运行测试 1119

46.3.1 编译驱动程序 1119

46.3.2 编译应用测试程序 1120

46.3.3 运行测试 1120

第四十七章 Linux内核自带LED灯驱动 1122

47.1 Linux内核中的LED灯驱动 1123

47.2 Linux自带LED驱动分析 1124

47.2.1 LED灯驱动框架分析 1124

47.2.2 Module_platform_driver函数解析 1125

47.2.3 Gpio_led_probe函数解析 1126

47.3 添加设备树节点 1129

47.4 运行测试 1130

第四十八章 Linux MISC驱动 1132

48.1 misc设备驱动简介 1133

48.2 编写实验程序 1134

48.2.1 修改设备树文件 1134

48.2.2 编写驱动程序 1134

48.2.3 应用测试程序 1140

48.3 运行测试 1142

48.3.1 编译驱动程序 1142

48.3.2 编译应用测试程序 1142

48.3.3 运行测试 1142

第四十九章 Linux INPUT子系统实验 1144

49.1 Input子系统 1145

49.1.1 input子系统简介 1145

49.1.2 input驱动程序编写流程 1146

49.1.3 input_event结构体 1152

49.2 编写实验程序 1153

49.2.1 编写驱动程序 1153

49.2.2 应用测试程序 1159

49.3 运行测试 1162

49.3.1 编译驱动程序 1162

49.3.2 编译应用测试程序 1162

49.3.3 运行测试 1162

49.4 linux自带按键驱动程序 1164

49.4.1 Linux自带按键驱动程序源码 1164

49.4.2 Linux内核自带按键驱动程序的使用 1170

第五十章 Linux LCD驱动实验 1172

50.1 Linux下LCD驱动简介 1173

50.1.1 framebuffer设备 1173

50.1.2 LCD驱动解析 1174

50.2 编写LCD驱动程序 1180

50.2.1 设备树中LCD屏幕GPIO配置 1180

50.2.2 LCD屏幕参数节点信息 1182

50.2.3 LCD屏幕背光节点信息 1184

50.3 运行测试 1186

50.3.1 LCD屏幕基本测试 1186

50.3.2 LCD背光调节 1187

第五十一章 Linux RTC驱动实验 1189

51.1 Linux内核RTC驱动简介 1190

51.2 i.MX6UL下的RTC驱动 1194

51.3 Linux系统下RTC时间设置与查看 1200

51.3.1 查看RTC时间 1200

51.3.2 设置RTC时间 1200

第五十二章 Linux I2C驱动实验 1202

52.1 Linux I2C驱动框架简介 1203

52.1.1 I2C总线驱动 1203

52.1.2 I2C设备驱动 1205

52.1.3 I2C核心 1209

52.2 IMX6ULL的I2C总线驱动分析 1210

52.3 I2C设备驱动编写流程 1217

52.3.1 设备信息描述 1217

52.3.2 I2C设备的数据收发和处理 1219

52.4 实验程序编写 1223

52.4.1 硬件原理图 1223

52.4.2 修改设备树 1223

52.4.3 驱动程序编写 1225

52.4.4 应用测试程序 1236

52.5 运行测试 1237

52.5.1 编译驱动程序 1237

52.5.2 编译应用测试程序 1238

52.5.3 运行测试 1238

第五十三章 Linux RS232/485驱动实验 1240

53.1 Linux下的UART驱动框架 1241

53.1.1 uart_driver结构体 1241

53.1.2 uart_port结构体 1242

53.1.3 uart_ops结构体 1243

53.2 i.MX6UL UART驱动分析 1244

53.2.1 uart的platform驱动框架 1244

53.2.2 uart_driver初始化 1247

53.2.3 uart_port初始化和注册 1247

53.2.4 imx_pops结构体 1250

53.3 硬件原理图 1252

53.3.1 RS232原理图 1252

53.3.2 RS485原理图 1252

53.4 RS232驱动 1253

53.4.1 设备树添加UART3节点 1253

53.5 RS232驱动测试 1254

53.5.1 编写应用测试程序 1254

53.5.2 运行测试 1259

53.6 RS485测试 1260

第五十四章 Linux 电容触摸屏实验 1261

54.1 Linux下电容触摸屏驱动框架 1262

54.1.1 多点触摸协议详解 1262

54.1.2 Type A 触摸点信息上报时序 1263

54.1.3 Type B触摸点信息上报时序 1265

54.1.4 MT其他事件的使用 1267

54.1.5 多点触摸使用到的API函数 1267

54.1.6 多点电容触摸驱动框架 1269

54.2 硬件原理图 1274

54.3 实验程序编写 1275

54.3.1 修改设备树文件 1275

54.3.2 编写多点电容触摸驱动 1276

54.4 运行测试 1288

54.4.1 编译驱动程序 1288

54.4.2 运行测试 1289

54.4.3 将驱动添加到内核中 1290

54.5 Tslib移植和使用 1291

54.5.1 获取tslib源码 1291

54.5.2 编译tslib 1292

54.5.3 测试tslib 1293

54.6 使用Linux内核自带的ft5426驱动 1294

第五十五章 Linux WIFI驱动实验 1297

55.1 wifi驱动添加和编译 1298

55.1.1 在Linux内核中添加wifi驱动 1298

55.1.2 配置Linux内核 1299

55.1.3 Rtl8723 wifi模块驱动测试 1302

55.2 Wireless Tools 工具移植与测试 1303

55.2.1 wireless tools工具移植 1303

55.2.2 wireless tools工具测试 1304

55.3 Wpa_supplicant 移植 1305

55.3.1 libopenssl移植 1305

55.3.2 libnl库移植 1306

55.3.3 wpa_supplicant 移植 1307

55.4 rtl8723 Wifi联网测试 1308

第五十六章 Linux 4G通信实验 1312

56.1 4G网络连接 1313

56.2 EC20 4G模块配置 1314

56.2.1 添加USB设备信息 1314

56.2.2 Linux内核配置 1315

56.3 EC20 4G模块联网测试 1317

56.3.1 PPP软件包编译 1317

56.3.2 EC20 4G模块联网测试 1318

第五部分 Linux构建文件系统篇 1324

第五十七章 Linux文件系统开发 1325

57.1 根文件系统简介 1326

57.1.1 根文件系统 1326

57.1.2 根文件系统目录 1326

57.2 制作最小文件系统镜像 1328

57.2.1 BusyBox工具简介 1328

57.2.2 Busybox 制作最小文件系统 1329

57.3 最小Linux系统功能测试 1351

57.3.1 U盘挂载与卸载 1351

57.3.2 编译测试helloworld 1352

57.3.3 广域网连接测试 1355

57.3.4 中文显示测试 1355

第五十八章 Buildoot文件系统构建篇 1358

58.1 buildroot简介 1359

58.2 buildroot构建文件系统 1359

58.2.1 获取Buildroot 1359

58.2.2 配置及编译Buildroot 1360

58.3 buildroot文件系统测试 1369

58.4 buildroot添加支持第三方软件 1370

58.4.1 使能Alsa-lib 1370

58.4.2 使能Alsa-utils 1372

58.5 buildroot下配置Busybox 1375

第五十九章 Yocto文件系统构建篇 1377

59.1 注意事项 1378

59.2 在线构建文件系统 1378

59.2.1 安装软件包与配置git 1378

59.2.2 获取Yocto项目 1380

59.2.3 构建文件系统 1382

59.2.4 构建SDK工具 1387

59.3 离线构建文件系统 1388

第六十章 Ubuntu文件系统 1390

60.1 Ubuntu-base获取 1391

60.2 Ubuntu-base构建 1392

60.2.1 解压Ubuntu-base 1392

60.2.2 安装Qemu-User-Static工具 1393

60.2.3 设置软件源 1393

60.2.4 挂载根文件系统并Chroot 1394

60.3 Ubuntu文件系统测试 1398

60.3.1 打包烧写Ubuntu 1398

60.3.2 Ubuntu 根文件系统测试 1399

第六十一章 Debian文件系统的构建 1402

61.1 i.MX6ULL 移植Debian文件系统 1402

61.1.1 安装Qumu和Debootstrap 1402

61.1.2 抽取Debain文件系统 1402

61.1.3 完善文件系统 1403

61.1.4 打包文件系统 1405

61.1.5 烧写验证 1406

第六部分 QT开发 1407

第六十二章 QT应用开发 1408

62.1 c++入门 1408

62.1.1 c++基础 1408

62.1.2 c++类和对象 1409

62.1.3 函数的重载 1411

62.1.4 构造函数和析构函数 1411

62.1.5 虚函数和纯虚函数 1413

62.2 Qt基础 1413

62.2.1 安装Qtcreator 1414

62.2.2 创建工程 1416

62.2.3 信号和槽 1419

62.2.4 给界面添加图片 1426

62.2.5 界面布局 1433

62.2.6 界面切换 1437

62.2.7 Qt串口编程 1439

62.2.8 Qt程序打包和部署 1449

62.2.9 Qt网络编程 1452

62.2.10 Qt定时器 1466

62.3 Qt系统移植 1472

62.3.1 制作根文件系统 1472

62.3.2 交叉编译Qt源码 1494

62.3.3 搭建Qt文件系统 1498

62.3.4 交叉编译 Qt代码 1501

62.4 Qt下控制硬件 1503

62.5 Qt for Android 1511

62.5.1 搭建开发环境 1511

62.5.2 制作安卓APP 1514

62.6 一键烧写QT程序到开发板 1519

62.6.1 在开发板上移植ssh 1519

62.6.2 安装ssh 1525

62.6.3 生成KEY文件,并安装 1526

62.6.4 修改目标板密钥文件 1527

62.6.5 测试 1527

62.6.6 在Ubuntu上搭建QT开发环境 1529

62.6.7 配置编译套件 1535

第六十三章 QT实战项目 1546

63.1 DHT11&网络编程实战练习 1546

63.1.1 项目前准备 1546

63.1.3 Linux应用程序 1546

63.1.4 终结者Qt服务器 1550

63.1.2 软件流程图 1557

63.1.5 PC端Qt软件开发 1560

63.1.6 运行测试 1567

第六十四章 使用Yocto文件系统开发QT 1571

64.1 安装测试Qt Creator 1572

64.1.1 QT安装包获取 1572

64.1.2 QT安装 1573

64.1.3 Ubuntu下QT应用开发 1577

64.2 安装交叉编译工具及QT 1585

64.3 搭建IMX6Ul/ULL QT Creator交叉编译环境 1586

64.4 QT工程的编译及测试 1596

64.4.1 QT Creator直接编译ARM架构程序 1596

64.4.2 命令行编译QT程序 1599

64.4.3 运行Helloworld 1601

64.5 文件系统 1603

64.5.1 外部存储设备(U盘,TF卡)使用 1603

64.5.2 网络配置 1604

64.5.3 触摸测试 1607

64.5.4 屏幕亮度(背光) 1608

第七部分 Linux系统开发进阶 1609

第六十五章 Mfgtools修改单独只烧写Uboot,内核,文件系统 1610

第六十六章 iTOP-i.MX6ULL开发板-修改开机进度条修改文档 1615

第六十七章 iTOP-i.MX6ULL开发板-Uboot-Logo修改文档 1622

67.1 Uboot修改 1622

67.2 Uboot测试 1630

第六十八章 iTOP-i.MX6ULL开发板-内核-Logo 修改使用文档 1631

68.1 内核配置 1631

68.2 生成 PPM 文件 1635

68.2.1 使用 PS 软件修改图片分辨率和位深度 1635

68.2.2 使用工具“Bmptopnm”将图片转化为 ppm 格式 1637

68.2.3 修改内核 Logo 文件 1638

68.3 测试 1638

68.4 Logo 位置的居中调整 1639

第六十九章 iTOP-i.MX6ULL开发板-移植Gdb+Gdbserver调试 1641

第七十章 iTOP-iMX6ULL开发板-移植ssh服务 1649

70.1 SSH 官网和下载地址 1649

70.2 详细移植过程 1649

70.2.1 移植 Zlib 1650

70.2.2 移植 Openssl 1652

70.2.3 移植 SSH 1656

70.3 安装测试 1658

70.3.1 基本文件的安装 1658

70.3.2 生成 Key 文件,并安装 1659

70.3.3 修改目标板密钥文件 1660

70.3.4 测试 1660

第七十一章 iTOP-i.MX6ULL开发板-Jtag调试 1665

71.1 调试需要的硬件环境 1665

71.2 搭建开发环境 1665

71.2.1 安装Jlink V9驱动 1665

71.2.2 安装I.MX6ULL SDK开发包 1669

71.2.3 安装IAR开发工具 1673

71.3 IAR JLNK调试SDK程序 1679

71.4 查看变量的实时值 1692

第七十二章 iTOP-i.MX6ULL开发板-网络通信-套字节TCP 1699

72.1 实验操作 1699

第七十三章 iTOP-i.MX6ULL开发板-网络通信-套字节UDP 1707

73.1 实验操作 1707

第七十四章 iTOP-i.MX6ULL开发板-Tftp烧写和Nfs启动 1713

74.1 配置开发板网络 1713

74.2 Tftp服务搭建 1715

74.3 Nfs服务搭建 1715

74.4 设置自启动参数 1716

第七十五章 iTOP-i.MX6ULL开发板-搭建Web服务器 1720

第七十六章 iTOP-i.MX6ULL开发板-Modbus移植和使用 1727

76.1 什么是Modbus 1727

76.2 源码下载 1727

76.3 编译和移植 1728

76.4 移植ARM测试程序 1730

76.5 X86-Linux的Modbus的移植和编译 1731

76.6 测试 1732

第七十七章 iTOP-i.MX6ULL开发板-USB转串口驱动Ch34X移植 1734

第七十八章 iTOP-i.MX6ULL开发板-Sqlite3移植和使用 1737

第七十九章 iTOP-i.MX6ULL开发板-Qt5.7Mplayer移植文档 1741

79.1 交叉编译Libmad-0.15.1b 1741

79.2 交叉编译Alsa-lob-1.0.22 1742

79.3 交叉编译MPlayer-1.0rc3 1743

79.4 测试软件使用 1744

第八十章 iTOP-i.MX6ULL开发板-移植OpenCv2.4.9 1746

80.1 安装交叉编译工具 1746

80.2 搭建OpenCv编译环境 1746

80.3 QT程序编译 1751

80.4 烧写文件系统 1753

80.5 测试开发板 1754

第八十一章 iTOP-i.MX6ULL开发板-移植OpenCv3.4.1 1756

81.1 安装交叉编译工具 1756

81.2 搭建 OpenCV 的编译环境 1756

81.3 编译 OpenCV 源码 1760

81.4 打包文件系统 1762

81.5 烧写文件系统 1764

81.6 测试开发板 1765

第八十二章 iTOP-i.MX6ULL开发板-网络测试方法 1767

82.1 测试环境搭建 1767

82.2 安装 Java环境 1769

82.3 安装测试软件 1772

82.4 设置网络 1773

82.5 TCP测试 1774

82.6 UDP测试 1775

第八十三章 iTOP-i.MX6ULL开发板-Mqtt 移植教程 1778

83.1 MQTT介绍 1778

83.2 在 X86 上安装mosquitto 1778

83.3 在x86上测试mosquitto 1778

83.4 移植 mosquitto 到开发板 1779

83.5 把 mosquitto 移植到开发板 1783

83.6 使用命令在开发板上测试 mqtt 1785

83.7 使用代码在开发板上测试 mqtt 1789

第八十四章 iTOP-i.MX6ULL开发板-Busybox移植DHCP 1793

84.1 安装交叉编译工具链 1793

84.2 下载DHCP-4.4.1源码 1796

84.3 交叉编译DHCP-4.4.1 1797

84.4 打包文件系统 1799

84.5 烧写文件系统 1801

84.6 测试开发板 1802

第八十五章 iTOP-i.MX6ULL开发板-C程序调用shell 1805

第八十六章 iTOP-iMX6ULL开发板-八路串口配置 1809

86.1 文档说明 1809

86.2 UART2配置 1810

86.3 UART3配置 1815

86.4 UART4配置 1817

86.5 UART5配置 1820

86.6 UART6配置 1822

86.7 UART7配置 1823

86.8 UART8配置 1825

86.9 UART1使用方法 1827

 

你可能感兴趣的:(迅为IMX6ULL开发板Linux学习教程)