在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → I.MX6U嵌入式Linux驱动开发指南.pdf

I.MX6U嵌入式Linux驱动开发指南.pdf

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:94.29M
  • 下载次数:85
  • 浏览次数:1404
  • 发布时间:2020-12-01
  • 实例类别:一般编程问题
  • 发 布 人:steven320
  • 文件格式:.pdf
  • 所需积分:2

实例介绍

【实例简介】
【实例截图】

【核心代码】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
目录
ALPHA/Mini 开发板教程适配表.................................................................................5
前言..............................................................................................................................41
第一篇 Ubuntu 系统入门篇.......................................................................................43
第一章 Ubuntu 系统安装...........................................................................................44
1.1 安装虚拟机软件 VMware ................................................................................. 45
1.2 创建虚拟机........................................................................................................ 51
1.3 安装 Ubuntu 操作系统...................................................................................... 62
1.3.1 获取 Ubuntu 系统........................................................................................... 62
1.3.2 安装 Ubuntu 操作系统................................................................................... 63
1.3.3 弹出系统镜像................................................................................................. 75
第二章 Ubuntu 系统入门...........................................................................................77
2.1 Ubuntu 系统初体验............................................................................................ 78
2.1.1 Hello Ubuntu .................................................................................................... 78
2.1.2 系统设置......................................................................................................... 80
2.1.3 系统注销与关机............................................................................................. 83
2.1.4 中文输入测试................................................................................................. 83
2.2 Ubuntu 终端操作................................................................................................ 86
2.3 Shell 操作............................................................................................................ 87
2.3.1 Shell 简介......................................................................................................... 87
2.3.2 Shell 基本操作................................................................................................. 87
2.2.4 常用 Shell 命令............................................................................................... 89
2.4 APT 下载工具..................................................................................................... 96
2.5 Ubuntu 下文本编辑............................................................................................ 99
2.5.1 Gedit 编辑器 .................................................................................................... 99
2.5.2 VI/VIM 编辑器.............................................................................................. 100
2.6 Linux 文件系统................................................................................................. 105
2.6.1 Linux 文件系统简介以及类型...................................................................... 105
2.6.2 Linux 文件系统结构...................................................................................... 107
2.6.2 文件操作命令............................................................................................... 110
2.6.3 文件压缩和解压缩....................................................................................... 114
2.6.4 文件查询和搜索........................................................................................... 120
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
9
I.MX6U 嵌入式 Linux 驱动开发指南
2.6.5 文件类型....................................................................................................... 121
2.7 Linux 用户权限管理......................................................................................... 122
2.7.1 Ubuntu 用户系统........................................................................................ 122
2.7.2 权限管理....................................................................................................... 122
2.7.3 权限管理命令............................................................................................... 125
2.8 Linux 磁盘管理................................................................................................. 127
2.8.1 Linux 磁盘管理基本概念.............................................................................. 127
2.8.2 磁盘管理命令............................................................................................... 128
第三章 Linux C 编程入门........................................................................................132
3.1 Hello World! ................................................................................................... 133
3.1.1 编写代码....................................................................................................... 133
3.1.2 编译代码....................................................................................................... 134
3.2 GCC 编译器...................................................................................................... 136
3.2.1 gcc 命令.......................................................................................................... 136
3.2.2 编译错误警告............................................................................................... 136
3.2.3 编译流程....................................................................................................... 137
3.3 Makefile 基础.................................................................................................... 137
3.3.1 何为 Makefile................................................................................................ 137
3.3.2 Makefile 的引入............................................................................................. 138
3.4 Makefile 语法.................................................................................................... 141
3.4.1 Makefile 规则格式......................................................................................... 141
3.4.2 Makefile 变量................................................................................................. 143
3.4.3 Makefile 模式规则......................................................................................... 145
3.4.4 Makefile 自动化变量..................................................................................... 146
3.4.5 Makefile 伪目标............................................................................................. 147
3.4.6 Makefile 条件判断......................................................................................... 148
3.4.7 Makefile 函数使用......................................................................................... 148
第二篇 裸机开发篇..................................................................................................151
第四章 开发环境搭建..............................................................................................152
4.1 Ubuntu 和 Windows 文件互传......................................................................... 153
4.2 Ubuntu 下 NFS 和 SSH 服务开启 ................................................................... 159
4.2.1 NFS 服务开启................................................................................................ 159
4.2.2 SSH 服务开启................................................................................................ 160
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
10
I.MX6U 嵌入式 Linux 驱动开发指南
4.3 Ubuntu 交叉编译工具链安装.......................................................................... 160
4.3.1 交叉编译器安装........................................................................................... 160
4.3.2 安装相关库................................................................................................... 164
4.3.3 交叉编译器验证........................................................................................... 164
4.4 Source Insight 软件安装和使用....................................................................... 166
4.4.1 Source Insight 安装........................................................................................ 166
4.4.2 Source Insight 新建工程................................................................................ 172
4.4.3 Source Insight 解决中文乱码........................................................................ 180
4.5 Visual Studio Code 软件的安装和使用........................................................... 182
4.5.1 Visual Studio Code 的安装............................................................................ 182
4.5.2 Visual Studio Code 插件的安装.................................................................... 186
4.5.3 Visual Studio Code 新建工程........................................................................ 189
4.6 CH340 串口驱动安装....................................................................................... 195
4.7 SecureCRT 软件安装和使用............................................................................ 198
4.7.1 SecureCRT 安装............................................................................................. 198
4.7.2 SecureCRT 使用............................................................................................. 203
4.8 Putty 软件的安装和使用.................................................................................. 208
4.8.1 Putty 软件安装............................................................................................... 208
4.8.2 Putty 软件使用............................................................................................... 211
4.9 MobaXterm 软件安装和使用........................................................................... 214
4.9.1 MobaXterm 软件安装.................................................................................... 214
4.9.2 MobaXterm 软件使用.................................................................................... 215
第五章 I.MX6U-ALPHA/Mini 开发平台介绍........................................................219
5.1 正点原子 I.MX6U-ALPHA/Mini 开发板资源初探....................................... 220
5.1.1 I.MX6U-ALPHA 开发板底板资源............................................................... 220
5.1.2 I.MX6U-Mini 开发板底板资源 .................................................................... 221
5.1.3 I.MX6U 核心板资源 ..................................................................................... 223
5.2 正点原子 I.MX6U-ALPHA/Mini 开发板资源说明....................................... 224
5.2.1 I.MX6U-ALPHA 硬件资源说明................................................................... 224
5.2.2 I.MX6U-ALPHA 软件资源说明................................................................... 228
5.2.3 I.MX6U-Mini 硬件资源说明 ........................................................................ 230
5.2.4 I.MX6U-Mini 软件资源说明 ........................................................................ 232
5.2.5 I.MX6ULL 核心板硬件资源说明................................................................. 232
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
11
I.MX6U 嵌入式 Linux 驱动开发指南
5.3 I.MX6U-ALPHA 开发板底板原理图详解...................................................... 233
5.3.1 核心板接口................................................................................................... 233
5.3.2 引出 IO 口..................................................................................................... 235
5.3.3 USB 串口/串口 1 选择接口 .......................................................................... 235
5.3.4 RGB LCD 模块接口...................................................................................... 236
5.3.5 复位电路....................................................................................................... 237
5.3.6 启动模式设置接口....................................................................................... 237
5.3.7 VBAT 供电接口............................................................................................. 238
5.3.8 RS232 串口 .................................................................................................... 238
5.3.9 RS485 接口 .................................................................................................... 239
5.3.10 CAN 接口..................................................................................................... 239
5.3.11 USB HUB 接口............................................................................................ 240
5.3.12 USB OTG 接口............................................................................................ 241
5.3.13 光环境传感器............................................................................................. 241
5.3.14 六轴传感器................................................................................................. 241
5.3.15 LED .............................................................................................................. 242
5.3.16 按键............................................................................................................. 242
5.3.17 摄像头模块接口......................................................................................... 243
5.3.18 有源蜂鸣器................................................................................................. 243
5.3.19 TF 卡接口..................................................................................................... 244
5.3.20 SDIO WIFI 接口 .......................................................................................... 244
5.3.21 4G 模块接口 ................................................................................................ 245
5.3.22 ATK 模块接口.............................................................................................. 246
5.3.23 以太网接口(RJ45)................................................................................. 247
5.3.24 SAI 音频编解码器....................................................................................... 249
5.3.25 电源............................................................................................................. 250
5.3.26 电源输入输出接口..................................................................................... 251
5.3.27 USB 串口 ..................................................................................................... 251
5.4 I.MX6U-Mini 开发板底板原理图详解 ........................................................... 252
5.4.1 核心板接口................................................................................................... 252
5.4.2 引出 IO 口..................................................................................................... 254
5.4.3 USB 串口 ....................................................................................................... 254
5.4.4 RGB LCD 模块接口...................................................................................... 255
5.4.5 复位电路....................................................................................................... 256
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
12
I.MX6U 嵌入式 Linux 驱动开发指南
5.4.6 启动模式设置接口....................................................................................... 256
5.4.7 VBAT 供电接口............................................................................................. 257
5.4.8 RS485 接口 .................................................................................................... 257
5.4.9 CAN 接口....................................................................................................... 258
5.4.10 USB HOST 接口.......................................................................................... 258
5.4.11 USB OTG 接口 ............................................................................................ 258
5.4.12 LED .............................................................................................................. 259
5.4.13 按键............................................................................................................. 259
5.4.14 摄像头模块接口......................................................................................... 260
5.4.15 有源蜂鸣器................................................................................................. 260
5.4.16 TF 卡接口..................................................................................................... 261
5.4.17 SDIO WIFI 接口 .......................................................................................... 261
5.4.18 ATK 模块接口.............................................................................................. 261
5.4.19 以太网接口(RJ45)................................................................................. 262
5.4.20 电源............................................................................................................. 263
5.4.21 电源输入输出接口..................................................................................... 263
5.5 I.MX6U 核心板原理图详解 ............................................................................ 263
5.5.1 SOC ................................................................................................................ 263
5.5.2 BTB 接口 ....................................................................................................... 267
5.5.3 NAND FLASH............................................................................................... 269
5.5.4 EMMC............................................................................................................ 269
5.5.5 DDR3L ........................................................................................................... 270
5.5.6 核心板电源................................................................................................... 271
5.6 开发板使用注意事项...................................................................................... 274
第六章 Cortex-A7 MPCore 架构 .............................................................................275
6.1 Cortex-A7 MPCore 简介 .................................................................................. 276
6.2 Cortex-A 处理器运行模型............................................................................... 277
6.3 Cortex-A 寄存器组........................................................................................... 277
6.3.1 通用寄存器................................................................................................... 279
6.3.2 程序状态寄存器........................................................................................... 280
第七章 ARM 汇编基础............................................................................................282
7.1 GNU 汇编语法 ................................................................................................. 283
7.2 Cortex-A7 常用汇编指令................................................................................. 285
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
13
I.MX6U 嵌入式 Linux 驱动开发指南
7.2.1 处理器内部数据传输指令........................................................................... 285
7.2.2 存储器访问指令........................................................................................... 285
7.2.3 压栈和出栈指令........................................................................................... 286
7.2.4 跳转指令....................................................................................................... 288
7.2.5 算术运算指令............................................................................................... 289
7.2.6 逻辑运算指令............................................................................................... 289
第八章 汇编 LED 灯实验 ........................................................................................291
8.1 I.MX6U GPIO 详解 .......................................................................................... 292
8.1.1 STM32 GPIO 回顾......................................................................................... 292
8.1.2 I.MX6U IO 命名 ............................................................................................ 292
8.1.3 I.MX6U IO 复用 ............................................................................................ 294
8.1.4 I.MX6U IO 配置 ............................................................................................ 295
8.1.5 I.MX6U GPIO 配置....................................................................................... 298
8.1.6 I.MX6U GPIO 时钟使能............................................................................... 302
8.2 硬件原理分析.................................................................................................. 304
8.3 实验程序编写.................................................................................................. 304
8.4 编译下载验证.................................................................................................. 309
8.4.1 编译代码....................................................................................................... 309
8.4.2 创建 Makefile 文件....................................................................................... 313
8.4.3 代码烧写....................................................................................................... 314
8.4.4 代码验证....................................................................................................... 318
第九章 I.MX6U 启动方式详解 ...............................................................................319
9.1 启动方式选择.................................................................................................. 320
9.1.1 串行下载....................................................................................................... 320
9.1.2 内部 BOOT 模式 .......................................................................................... 321
9.2 BOOT ROM 初始化内容 ................................................................................. 321
9.3 启动设备.......................................................................................................... 321
9.4 镜像烧写.......................................................................................................... 325
9.4.1 IVT 和 Boot Data 数据.................................................................................. 326
9.4.2 DCD 数据....................................................................................................... 328
第十章 C 语言版 LED 灯实验.................................................................................331
10.1 C 语言版 LED 灯简介.................................................................................... 332
10.2 硬件原理分析................................................................................................ 332
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
14
I.MX6U 嵌入式 Linux 驱动开发指南
10.3 实验程序编写................................................................................................ 332
10.3.1 汇编部分实验程序编写............................................................................. 332
10.3.2 C 语言部分实验程序编写 .......................................................................... 334
10.4 编译下载验证................................................................................................ 339
10.4.1 编写 Makefile.............................................................................................. 339
10.4.2 链接脚本..................................................................................................... 340
10.4.3 修改 Makefile.............................................................................................. 342
10.4.4 下载验证..................................................................................................... 342
第十一章 模仿 STM32 驱动开发格式实验............................................................343
11.1 模仿 STM32 寄存器定义.............................................................................. 344
11.1.1 STM32 寄存器定义简介............................................................................. 344
11.1.2 I.MX6U 寄存器定义.................................................................................... 345
11.2 硬件原理分析 ................................................................................................ 346
11.3 实验程序编写 ................................................................................................ 346
11.4 编译下载验证 ................................................................................................ 351
11.4.1 编写 Makefile 和链接脚本......................................................................... 351
11.4.2 编译下载 ..................................................................................................... 352
第十二章 官方 SDK 移植实验................................................................................353
12.1 I.MX6ULL 官方 SDK 包简介........................................................................ 354
12.2 硬件原理图分析............................................................................................ 355
12.3 试验程序编写................................................................................................ 355
12.3.1 SDK 文件移植............................................................................................. 355
12.3.2 创建 cc.h 文件............................................................................................. 355
12.3.3 编写实验代码............................................................................................. 356
12.4 编译下载验证................................................................................................ 362
12.4.1 编写 Makefile 和链接脚本......................................................................... 362
12.4.2 编译下载..................................................................................................... 363
第十三章 BSP 工程管理实验..................................................................................364
13.1 工程管理简介................................................................................................ 365
13.2 硬件原理分析................................................................................................ 365
13.3 实验程序编写................................................................................................ 366
13.3.1 创建 imx6ul.h 文件..................................................................................... 366
13.3.2 编写 led 驱动代码 ...................................................................................... 366
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
15
I.MX6U 嵌入式 Linux 驱动开发指南
13.3.3 编写时钟驱动代码..................................................................................... 368
13.3.4 编写延时驱动代码..................................................................................... 369
13.3.5 修改 main.c 文件 ........................................................................................ 371
13.4 编译下载验证................................................................................................ 372
13.4.1 编写 Makefile 和链接脚本......................................................................... 372
13.4.2 编译下载..................................................................................................... 375
第十四章 蜂鸣器实验..............................................................................................376
14.2 有源蜂鸣器简介............................................................................................ 377
14.3 硬件原理分析................................................................................................ 377
14.3 试验程序编写................................................................................................ 378
14.4 编译下载验证................................................................................................ 380
14.4.1 编写 Makefile 和链接脚本......................................................................... 380
14.4.2 编译下载..................................................................................................... 381
第十五章 按键输入实验..........................................................................................382
15.1 按键输入简介................................................................................................ 383
15.2 硬件原理分析................................................................................................ 383
15.3 实验程序编写................................................................................................ 383
15.4 编译下载验证................................................................................................ 391
15.4.1 编写 Makefile 和链接脚本......................................................................... 391
15.4.2 编译下载..................................................................................................... 392
第十六章 主频和时钟配置实验..............................................................................393
16.1 I.MX6U 时钟系统详解 .................................................................................. 394
16.1.1 系统时钟来源............................................................................................. 394
16.1.2 7 路 PLL 时钟源.......................................................................................... 394
16.1.3 时钟树简介................................................................................................. 396
16.1.4 内核时钟设置............................................................................................. 398
16.1.5 PFD 时钟设置.............................................................................................. 402
16.1.6 AHB、IPG 和 PERCLK 根时钟设置......................................................... 404
16.2 硬件原理分析................................................................................................ 408
16.3 实验程序编写................................................................................................ 408
16.4 编译下载验证................................................................................................ 411
16.4.1 编写 Makefile 和链接脚本......................................................................... 411
16.4.2 编译下载..................................................................................................... 412
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
16
I.MX6U 嵌入式 Linux 驱动开发指南
第十七章 GPIO 中断实验........................................................................................413
17.1 Cortex-A7 中断系统详解............................................................................... 414
17.1.1 STM32 中断系统回顾................................................................................. 414
17.1.2 Cortex-A7 中断系统简介............................................................................ 416
17.1.3 GIC 控制器简介 .......................................................................................... 419
17.1.4 CP15 协处理器 ............................................................................................ 425
17.1.5 中断使能..................................................................................................... 429
17.1.6 中断优先级设置......................................................................................... 429
17.2 硬件原理分析................................................................................................ 431
17.3 试验程序编写................................................................................................ 431
17.3.1 移植 SDK 包中断相关文件....................................................................... 431
17.3.2 重新编写 start.S 文件................................................................................. 431
17.3.3 通用中断驱动文件编写............................................................................. 436
17.3.4 修改 GPIO 驱动文件.................................................................................. 440
17.3.5 按键中断驱动文件编写............................................................................. 445
17.3.6 编写 main.c 文件 ........................................................................................ 448
17.4 编译下载验证................................................................................................ 449
17.4.1 编写 Makefile 和链接脚本......................................................................... 449
17.4.2 编译下载..................................................................................................... 450
第十八章 EPIT 定时器实验.....................................................................................451
18.1 EPIT 定时器简介............................................................................................ 452
18.2 硬件原理分析................................................................................................ 455
18.3 实验程序编写................................................................................................ 455
18.4 编译下载验证................................................................................................ 458
18.4.1 编写 Makefile 和链接脚本......................................................................... 458
18.4.2 编译下载..................................................................................................... 459
第十九章 定时器按键消抖实验..............................................................................460
19.1 定时器按键消抖简介.................................................................................... 461
19.2 硬件原理分析................................................................................................ 462
19.3 试验程序编写................................................................................................ 462
19.4 编译下载验证................................................................................................ 467
19.4.1 编写 Makefile 和链接脚本......................................................................... 467
19.4.2 编译下载..................................................................................................... 468
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
17
I.MX6U 嵌入式 Linux 驱动开发指南
第二十章 高精度延时实验......................................................................................469
20.1 高精度延时简介............................................................................................ 470
20.1.1 GPT 定时器简介.......................................................................................... 470
20.1.2 定时器实现高精度延时原理..................................................................... 473
20.2 硬件原理分析................................................................................................ 474
20.3 实验程序编写................................................................................................ 474
20.4 编译下载验证................................................................................................ 480
20.4.1 编写 Makefile 和链接脚本......................................................................... 480
20.4.2 编译下载..................................................................................................... 480
第二十一章 UART 串 口 通 信 实 验
483
21.1 I.MX6U 串口简介 .......................................................................................... 484
21.1.1 UART 简介................................................................................................... 484
21.1.2 I.MX6U UART 简介.................................................................................... 486
21.2 硬件原理分析................................................................................................ 489
21.3 实验程序编写................................................................................................ 490
21.4 编译下载验证................................................................................................ 499
21.4.1 编写 Makefile 和链接脚本......................................................................... 499
21.4.2 编译下载..................................................................................................... 501
第二十二章 串口格式化函数移植实验..................................................................504
22.1 串口格式化函数简介.................................................................................... 505
22.2 硬件原理分析................................................................................................ 505
22.3 实验程序编写................................................................................................ 505
22.4 编译下载验证................................................................................................ 507
22.4.1 编写 Makefile 和链接脚本......................................................................... 507
22.4.2 编译下载..................................................................................................... 508
第二十三章 DDR3 实验...........................................................................................510
23.1 DDR3 内存简介.............................................................................................. 511
23.1.1 何为 RAM 和 ROM? .................................................................................. 511
23.1.2 SRAM 简介.................................................................................................. 511
23.1.3 SDRAM 简介............................................................................................... 513
23.1.4 DDR 简介..................................................................................................... 516
23.2 DDR3 关键时间参数...................................................................................... 518
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
18
I.MX6U 嵌入式 Linux 驱动开发指南
23.3 I.MX6U MMDC 控制器简介......................................................................... 521
23.3.1 MMDC 控制器 ............................................................................................ 521
23.3.2 MMDC 控制器信号引脚 ............................................................................ 521
23.3.3 MMDC 控制器时钟源 ................................................................................ 522
23.4 ALPHA 开发板 DDR3L 原理图.................................................................... 522
23.5 DDR3L 初始化与测试 ................................................................................... 523
23.5.1 ddr_stress_tester 简介 .................................................................................. 523
23.5.2 DDR3L 驱动配置 ........................................................................................ 524
23.5.3 DDR3L 校准 ................................................................................................ 530
23.5.4 DDR3L 超频测试 ........................................................................................ 534
23.5.5 DDR3L 驱动总结 ........................................................................................ 535
第二十四章 RGBLCD 显示实验.............................................................................538
24.1 LCD 和 eLCDIF 简介..................................................................................... 539
24.1.1 LCD 简介..................................................................................................... 539
24.1.2 eLCDIF 接口................................................................................................ 547
24.2 硬件原理分析................................................................................................ 552
24.3 实验程序编写................................................................................................ 554
24.4 编译下载验证................................................................................................ 575
24.4.1 编写 Makefile 和链接脚本......................................................................... 575
24.4.2 编译下载..................................................................................................... 576
第二十五章 RTC 实时时钟实验..............................................................................577
25.1 I.MX6U RTC 简介.......................................................................................... 578
25.2 硬件原理分析................................................................................................ 580
25.3 实验程序编写................................................................................................ 580
25.3.1 修改文件 MCIMX6Y2.h ............................................................................ 581
25.3.2 编写实验程序............................................................................................. 581
25.4 编译下载验证................................................................................................ 591
25.4.1 编写 Makefile 和链接脚本......................................................................... 591
25.4.2 编译下载..................................................................................................... 592
第二十六章 I2C 实验...............................................................................................594
26.1 I2C & AP3216C 简介 ..................................................................................... 595
26.1.1 I2C 简介....................................................................................................... 595
26.1.2 I.MX6U I2C 简介 ........................................................................................ 597
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
19
I.MX6U 嵌入式 Linux 驱动开发指南
26.1.3 AP3216C 简介.............................................................................................. 600
26.2 硬件原理分析................................................................................................ 601
26.3 实验程序编写................................................................................................ 602
26.4 编译下载验证................................................................................................ 617
26.4.1 编写 Makefile 和链接脚本......................................................................... 617
26.4.2 编译下载..................................................................................................... 618
第二十七章 SPI 实验 ...............................................................................................620
27.1 SPI & ICM-20608 简介 .................................................................................. 621
27.1.1 SPI 简介 ....................................................................................................... 621
27.1.2 I.MX6U ECSPI 简介.................................................................................... 622
27.1.3 ICM-20608 简介 .......................................................................................... 626
27.2 硬件原理分析................................................................................................ 629
27.3 实验程序编写................................................................................................ 629
27.4 编译下载验证................................................................................................ 644
27.4.1 编写 Makefile 和链接脚本......................................................................... 644
27.4.2 编译下载..................................................................................................... 646
第二十八章 多点电容触摸屏实验..........................................................................647
28.1 多点电容触摸简介........................................................................................ 648
28.2 硬件原理分析................................................................................................ 649
28.3 实验程序编写................................................................................................ 650
28.4 编译下载验证................................................................................................ 660
28.4.1 编写 Makefile 和链接脚本......................................................................... 660
28.4.2 编译下载..................................................................................................... 661
第二十九章 LCD 背光调节实验.............................................................................663
29.1 LCD 背光调节简介........................................................................................ 664
29.2 硬件原理分析................................................................................................ 669
29.3 实验程序编写................................................................................................ 669
29.4 编译下载验证................................................................................................ 675
29.4.1 编写 Makefile 和链接脚本......................................................................... 675
29.4.2 编译下载..................................................................................................... 677
第三篇 系统移植篇..................................................................................................679
第三十章 U-Boot 使用实验.....................................................................................680
30.1 U-Boot 简介.................................................................................................... 681
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
20
I.MX6U 嵌入式 Linux 驱动开发指南
30.2 U-Boot 初次编译............................................................................................ 684
30.3 U-Boot 烧写与启动........................................................................................ 686
30.4 U-Boot 命令使用............................................................................................ 688
30.4.1 信息查询命令............................................................................................. 689
30.4.2 环境变量操作命令..................................................................................... 690
30.4.3 内存操作命令............................................................................................. 692
30.4.4 网络操作命令............................................................................................. 695
30.4.5 EMMC 和 SD 卡操作命令.......................................................................... 702
30.4.6 FAT 格式文件系统操作命令 ...................................................................... 707
30.4.7 EXT 格式文件系统操作命令 ..................................................................... 710
30.4.8 NAND 操作命令.......................................................................................... 711
30.4.9 BOOT 操作命令 .......................................................................................... 714
30.4.10 其他常用命令........................................................................................... 718
第三十一章 U-Boot 顶层 Makefile 详解.................................................................721
31.1 U-Boot 工程目录分析.................................................................................... 722
31.2 VScode 工程创建............................................................................................ 732
31.3 U-Boot 顶层 Makefile 分析............................................................................ 738
31.3.1 版本号......................................................................................................... 738
31.3.2 MAKEFLAGS 变量..................................................................................... 739
31.3.3 命令输出..................................................................................................... 739
31.3.4 静默输出..................................................................................................... 741
31.3.5 设置编译结果输出目录............................................................................. 743
31.3.6 代码检查..................................................................................................... 744
31.3.7 模块编译..................................................................................................... 745
31.3.8 获取主机架构和系统................................................................................. 746
31.3.9 设置目标架构、交叉编译器和配置文件................................................. 747
31.3.10 调用 scripts/Kbuild.include....................................................................... 748
31.3.11 交叉编译工具变量设置 ........................................................................... 748
31.3.12 导出其他变量........................................................................................... 749
31.3.13 make xxx_defconfig 过程.......................................................................... 753
31.3.14 Makefile.build 脚本分析 ........................................................................... 758
31.3.15 make 过程 .................................................................................................. 761
第三十二章 U-Boot 启动流程详解.........................................................................770
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
21
I.MX6U 嵌入式 Linux 驱动开发指南
32.1 链接脚本 u-boot.lds 详解.............................................................................. 771
32.2 U-Boot 启动流程详解.................................................................................... 775
32.2.1 reset 函数源码详解...................................................................................... 775
32.2.2 lowlevel_init 函数详解................................................................................ 780
32.2.3 s_init 函数详解 ............................................................................................ 783
32.2.4 _main 函数详解........................................................................................... 785
32.2.5 board_init_f 函数详解 ................................................................................. 792
32.2.6 relocate_code 函数详解............................................................................... 800
32.2.7 relocate_vectors 函数详解........................................................................... 806
32.2.8 board_init_r 函数详解 ................................................................................. 807
32.2.9 run_main_loop 函数详解............................................................................. 811
32.2.10 cli_loop 函数详解...................................................................................... 817
32.2.11 cmd_process 函数详解 .............................................................................. 819
32.3 bootz 启动 Linux 内核过程............................................................................ 825
32.3.1 images 全局变量.......................................................................................... 825
32.3.2 do_bootz 函数 .............................................................................................. 826
32.3.3 bootz_start 函数 ........................................................................................... 827
32.3.4 do_bootm_states 函数.................................................................................. 830
32.3.5 bootm_os_get_boot_func 函数 .................................................................... 835
32.3.6 do_bootm_linux 函数................................................................................... 836
第三十三章 U-Boot 移植.........................................................................................841
33.1 NXP 官方开发板 uboot 编译测试................................................................. 842
33.1.1 查找 NXP 官方的开发板默认配置文件................................................... 842
33.1.2 编译 NXP 官方开发板对应的 uboot......................................................... 843
33.1.3 烧写验证与驱动测试................................................................................. 845
33.2 在 U-Boot 中添加自己的开发板.................................................................. 847
33.2.1 添加开发板默认配置文件......................................................................... 848
33.2.2 添加开发板对应的头文件......................................................................... 848
33.2.3 添加开发板对应的板级文件夹................................................................. 856
33.2.4 修改 U-Boot 图形界面配置文件............................................................... 858
33.2.5 使用新添加的板子配置编译 uboot........................................................... 858
33.2.6 LCD 驱动修改............................................................................................. 860
33.2.7 网络驱动修改............................................................................................. 863
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
22
I.MX6U 嵌入式 Linux 驱动开发指南
33.2.8 其他需要修改的地方................................................................................. 873
33.3 bootcmd 和 bootargs 环境变量 ...................................................................... 874
33.3.1 环境变量 bootcmd ...................................................................................... 875
33.3.2 环境变量 bootargs ...................................................................................... 880
33.4 uboot 启动 Linux 测试 ................................................................................... 881
33.4.1 从 EMMC 启动 Linux 系统 ....................................................................... 881
33.4.2 从网络启动 Linux 系统.............................................................................. 882
第三十四章 U-Boot 图形化配置及其原理.............................................................885
34.1 U-Boot 图形化配置体验................................................................................ 886
34.2 menuconfig 图形化配置原理......................................................................... 890
34.2.1 make menuconfig 过程分析 ........................................................................ 890
34.2.2 Kconfig 语法简介........................................................................................ 891
34.3 添加自定义菜单............................................................................................ 900
第三十五章 Linux 内核顶层 Makefile 详解 ...........................................................903
35.1 Linux 内核获取............................................................................................... 904
35.2 Linux 内核编译初次编译............................................................................... 904
35.3 Linux 工程目录分析....................................................................................... 906
35.4 VSCode 工程创建........................................................................................... 912
35.5 顶层 Makefile 详解........................................................................................ 914
35.5.1 make xxx_defconfig 过程............................................................................ 919
35.5.2 Makefile.build 脚本分析 ............................................................................. 921
35.5.3 make 过程 .................................................................................................... 923
35.5.4 built-in.o 文件编译生成过程 ...................................................................... 928
35.5.5 make zImage 过程........................................................................................ 931
第三十六章 Linux 内核启动流程............................................................................933
36.1 链接脚本 vmlinux.lds.................................................................................... 934
36.2 Linux 内核启动流程分析............................................................................... 934
36.2.1 Linux 内核入口 stext................................................................................... 934
36.2.2 __mmap_switched 函数............................................................................... 937
36.2.3 start_kernel 函数 .......................................................................................... 937
36.2.4 rest_init 函数................................................................................................ 941
36.2.5 init 进程........................................................................................................ 943
第三十七章 Linux 内核移植....................................................................................947
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
23
I.MX6U 嵌入式 Linux 驱动开发指南
37.1 创建 VSCode 工程......................................................................................... 948
37.2 NXP 官方开发板 Linux 内核编译................................................................. 948
37.2.1 修改顶层 Makefile....................................................................................... 948
37.2.2 配置并编译 Linux 内核.............................................................................. 948
37.2.3 Linux 内核启动测试.................................................................................... 949
37.2.4 根文件系统缺失错误................................................................................. 950
37.3 在 Linux 中添加自己的开发板..................................................................... 951
37.3.1 添加开发板默认配置文件......................................................................... 951
37.3.2 添加开发板对应的设备树文件................................................................. 952
37.3.3 编译测试..................................................................................................... 953
37.4 CPU 主频和网络驱动修改 ............................................................................ 954
37.4.1 CPU 主频修改 ............................................................................................. 954
37.4.2 使能 8 线 EMMC 驱动............................................................................... 960
37.4.3 修改网络驱动............................................................................................. 961
37.4.4 保存修改后的图形化配置文件................................................................. 972
第三十八章 根文件系统构建..................................................................................974
38.1 根文件系统简介............................................................................................ 975
38.2 BusyBox 构建根文件系统 ............................................................................. 977
38.2.1 BusyBox 简介 .............................................................................................. 977
38.2.2 编译 BusyBox 构建根文件系统 ................................................................ 978
38.2.3 向根文件系统添加 lib 库........................................................................... 986
38.2.4 创建其他文件夹......................................................................................... 988
38.3 根文件系统初步测试.................................................................................... 988
38.4 完善根文件系统............................................................................................ 990
38.4.1 创建/etc/init.d/rcS 文件 .............................................................................. 990
38.4.2 创建/etc/fstab 文件 ..................................................................................... 991
38.4.3 创建/etc/inittab 文件................................................................................... 992
38.5 根文件系统其他功能测试............................................................................ 993
38.5.1 软件运行测试............................................................................................. 993
38.5.2 中文字符测试............................................................................................. 995
38.5.3 开机自启动测试......................................................................................... 996
38.5.4 外网连接测试............................................................................................. 997
第三十九章 系统烧写..............................................................................................999
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
24
I.MX6U 嵌入式 Linux 驱动开发指南
39.1 MfgTool 工具简介........................................................................................ 1000
39.2 MfgTool 工作原理简介................................................................................ 1001
39.2.1 烧写方式................................................................................................... 1001
39.2.2 系统烧写原理........................................................................................... 1002
39.3 烧写 NXP 官方系统.................................................................................... 1006
39.4 烧写自制的系统.......................................................................................... 1007
39.4.1 系统烧写................................................................................................... 1007
39.4.2 网络开机自启动设置............................................................................... 1009
39.5 改造我们自己的烧写工具.......................................................................... 1011
39.5.1 改造 MfgTool............................................................................................ 1011
39.5.2 烧写测试................................................................................................... 1014
39.5.3 解决 Linux 内核启动失败........................................................................ 1014
第四篇 ARM Linux 驱动开发篇 ...........................................................................1017
第四十章 字符设备驱动开发................................................................................1018
40.1 字符设备驱动简介...................................................................................... 1019
40.2 字符设备驱动开发步骤.............................................................................. 1021
40.2.1 驱动模块的加载和卸载........................................................................... 1022
40.2.2 字符设备注册与注销............................................................................... 1023
40.2.3 实现设备的具体操作函数....................................................................... 1025
40.2.4 添加 LICENSE 和作者信息..................................................................... 1027
40.3 Linux 设备号................................................................................................. 1027
40.3.1 设备号的组成........................................................................................... 1027
40.3.2 设备号的分配........................................................................................... 1028
40.4 chrdevbase 字符设备驱动开发实验............................................................ 1029
40.4.1 实验程序编写........................................................................................... 1029
40.4.2 编写测试 APP........................................................................................... 1035
40.4.3 编译驱动程序和测试 APP....................................................................... 1039
40.4.4 运行测试................................................................................................... 1041
第四十一章 嵌入式 Linux LED 驱动开发实验....................................................1045
41.1 Linux 下 LED 灯驱动原理........................................................................... 1046
41.1.1 地址映射................................................................................................... 1046
41.1.2 I/O 内存访问函数...................................................................................... 1048
41.2 硬件原理图分析.......................................................................................... 1048
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
25
I.MX6U 嵌入式 Linux 驱动开发指南
41.3 实验程序编写.............................................................................................. 1048
41.3.1 LED 灯驱动程序编写 ............................................................................... 1048
41.3.2 编写测试 APP........................................................................................... 1054
41.4 运行测试...................................................................................................... 1056
41.4.1 编译驱动程序和测试 APP....................................................................... 1056
41.4.2 运行测试................................................................................................... 1056
第四十二章 新字符设备驱动实验........................................................................1058
42.1 新字符设备驱动原理.................................................................................. 1059
42.1.1 分配和释放设备号................................................................................... 1059
42.1.2 新的字符设备注册方法........................................................................... 1060
42.2 自动创建设备节点...................................................................................... 1061
42.2.1 mdev 机制 .................................................................................................. 1061
42.2.1 创建和删除类........................................................................................... 1062
42.2.2 创建设备................................................................................................... 1062
42.2.3 参考示例................................................................................................... 1063
42.3 设置文件私有数据...................................................................................... 1063
42.4 硬件原理图分析.......................................................................................... 1064
42.5 实验程序编写.............................................................................................. 1064
42.5.1 LED 灯驱动程序编写 ............................................................................... 1064
42.5.2 编写测试 APP........................................................................................... 1071
42.6 运行测试...................................................................................................... 1071
42.6.1 编译驱动程序和测试 APP....................................................................... 1071
42.6.2 运行测试................................................................................................... 1071
第四十三章 Linux 设备树......................................................................................1073
43.1 什么是设备树?.......................................................................................... 1074
43.2 DTS、DTB 和 DTC...................................................................................... 1075
43.3 DTS 语法....................................................................................................... 1077
43.3.1 .dtsi 头文件 ................................................................................................ 1077
43.3.2 设备节点................................................................................................... 1080
43.3.3 标准属性................................................................................................... 1081
43.3.4 根节点 compatible 属性 ........................................................................... 1085
43.3.5 向节点追加或修改内容........................................................................... 1091
43.4 创建小型模板设备树.................................................................................. 1093
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
26
I.MX6U 嵌入式 Linux 驱动开发指南
43.5 设备树在系统中的体现.............................................................................. 1099
43.6 特殊节点...................................................................................................... 1100
43.6.1 aliases 子节点 ............................................................................................ 1100
43.6.2 chosen 子节点............................................................................................ 1101
43.7 Linux 内核解析 DTB 文件........................................................................... 1103
43.8 绑定信息文档.............................................................................................. 1104
43.9 设备树常用 OF 操作函数........................................................................... 1105
43.9.1 查找节点的 OF 函数................................................................................ 1106
43.9.2 查找父/子节点的 OF 函数....................................................................... 1107
43.9.3 提取属性值的 OF 函数............................................................................ 1108
43.9.4 其他常用的 OF 函数.................................................................................1111
第四十四章 设备树下的 LED 驱动实验 ..............................................................1114
44.1 设备树 LED 驱动原理 .................................................................................1115
44.2 硬件原理图分析...........................................................................................1115
44.3 实验程序编写...............................................................................................1115
44.3.1 修改设备树文件........................................................................................1115
44.3.2 LED 灯驱动程序编写 ................................................................................1116
44.3.3 编写测试 APP........................................................................................... 1124
44.4 运行测试...................................................................................................... 1124
44.4.1 编译驱动程序和测试 APP....................................................................... 1124
44.4.2 运行测试................................................................................................... 1124
第四十五章 pinctrl 和 gpio 子系统实验................................................................1126
45.1 pinctrl 子系统................................................................................................ 1127
45.1.1 pinctrl 子系统简介..................................................................................... 1127
45.1.2 I.MX6ULL 的 pinctrl 子系统驱动............................................................ 1127
45.1.3 设备树中添加 pinctrl 节点模板............................................................... 1136
45.2 gpio 子系统................................................................................................... 1137
45.2.1 gpio 子系统简介........................................................................................ 1137
45.2.2 I.MX6ULL 的 gpio 子系统驱动 ............................................................... 1137
45.2.3 gpio 子系统 API 函数................................................................................ 1145
45.2.4 设备树中添加 gpio 节点模板.................................................................. 1146
45.2.5 与 gpio 相关的 OF 函数........................................................................... 1147
45.3 硬件原理图分析.......................................................................................... 1148
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
27
I.MX6U 嵌入式 Linux 驱动开发指南
45.4 实验程序编写.............................................................................................. 1148
45.4.1 修改设备树文件....................................................................................... 1148
45.4.2 LED 灯驱动程序编写 ............................................................................... 1150
44.4.3 编写测试 APP........................................................................................... 1155
45.5 运行测试...................................................................................................... 1156
45.5.1 编译驱动程序和测试 APP....................................................................... 1156
45.5.2 运行测试................................................................................................... 1156
第四十六章 Linux 蜂鸣器实验..............................................................................1158
46.1 蜂鸣器驱动原理.......................................................................................... 1159
46.2 硬件原理图分析.......................................................................................... 1159
46.3 实验程序编写.............................................................................................. 1159
46.3.1 修改设备树文件....................................................................................... 1159
46.3.2 蜂鸣器驱动程序编写............................................................................... 1160
46.3.3 编写测试 APP........................................................................................... 1165
46.4 运行测试...................................................................................................... 1167
46.4.1 编译驱动程序和测试 APP....................................................................... 1167
46.4.2 运行测试................................................................................................... 1167
第四十七章 Linux 并发与竞争..............................................................................1169
47.1 并发与竞争.................................................................................................. 1170
47.2 原子操作...................................................................................................... 1171
47.2.1 原子操作简介........................................................................................... 1171
47.2.2 原子整形操作 API 函数........................................................................... 1172
47.2.3 原子位操作 API 函数............................................................................... 1173
47.3 自旋锁.......................................................................................................... 1174
47.3.1 自旋锁简介............................................................................................... 1174
47.3.2 自旋锁 API 函数....................................................................................... 1175
47.3.3 其他类型的锁........................................................................................... 1177
47.3.4 自旋锁使用注意事项............................................................................... 1178
47.4 信号量.......................................................................................................... 1179
47.4.1 信号量简介............................................................................................... 1179
47.4.2 信号量 API 函数....................................................................................... 1180
47.5 互斥体.......................................................................................................... 1180
47.5.1 互斥体简介............................................................................................... 1180
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
28
I.MX6U 嵌入式 Linux 驱动开发指南
47.5.2 互斥体 API 函数....................................................................................... 1181
第四十八章 Linux 并发与竞争实验......................................................................1182
48.1 原子操作实验.............................................................................................. 1183
48.1.1 实验程序编写........................................................................................... 1183
48.1.2 运行测试................................................................................................... 1190
48.2 自旋锁实验.................................................................................................. 1192
48.2.1 实验程序编写........................................................................................... 1192
48.2.2 运行测试................................................................................................... 1196
48.3 信号量实验.................................................................................................. 1197
48.3.1 实验程序编写........................................................................................... 1197
48.3.2 运行测试................................................................................................... 1200
48.4 互斥体实验.................................................................................................. 1201
48.4.1 实验程序编写........................................................................................... 1201
48.4.2 运行测试................................................................................................... 1204
第四十九章 Linux 按键输入实验..........................................................................1206
49.1 Linux 下按键驱动原理................................................................................. 1207
49.2 硬件原理图分析.......................................................................................... 1207
49.3 实验程序编写.............................................................................................. 1207
49.3.1 修改设备树文件....................................................................................... 1207
49.3.2 按键驱动程序编写................................................................................... 1208
49.3.3 编写测试 APP........................................................................................... 1213
49.4 运行测试...................................................................................................... 1215
49.4.1 编译驱动程序和测试 APP....................................................................... 1215
49.4.2 运行测试................................................................................................... 1215
第五十章 Linux 内核定时器实验.........................................................................1217
50.1 Linux 时间管理和内核定时器简介............................................................. 1218
50.1.1 内核时间管理简介................................................................................... 1218
50.1.2 内核定时器简介....................................................................................... 1221
50.1.3 Linux 内核短延时函数.............................................................................. 1223
50.2 硬件原理图分析.......................................................................................... 1223
50.3 实验程序编写.............................................................................................. 1224
50.3.1 修改设备树文件....................................................................................... 1224
50.3.2 定时器驱动程序编写............................................................................... 1224
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
29
I.MX6U 嵌入式 Linux 驱动开发指南
50.3.3 编写测试 APP........................................................................................... 1230
50.4 运行测试...................................................................................................... 1232
50.4.1 编译驱动程序和测试 APP....................................................................... 1232
50.4.2 运行测试................................................................................................... 1233
第五十一章 Linux 中断实验..................................................................................1234
51.1 Linux 中断简介............................................................................................. 1235
51.1.1 Linux 中断 API 函数................................................................................. 1235
51.1.2 上半部与下半部....................................................................................... 1237
51.1.3 设备树中断信息节点............................................................................... 1243
51.1.4 获取中断号............................................................................................... 1245
51.2 硬件原理图分析.......................................................................................... 1245
51.3 实验程序编写.............................................................................................. 1245
51.3.1 修改设备树文件....................................................................................... 1245
51.3.2 按键中断驱动程序编写........................................................................... 1246
51.3.3 编写测试 APP........................................................................................... 1254
51.4 运行测试...................................................................................................... 1256
51.4.1 编译驱动程序和测试 APP....................................................................... 1256
51.4.2 运行测试................................................................................................... 1256
第五十二章 Linux 阻塞和非阻塞 IO 实验 ...........................................................1258
52.1 阻塞和非阻塞 IO......................................................................................... 1259
52.1.1 阻塞和非阻塞简介................................................................................... 1259
52.1.2 等待队列................................................................................................... 1260
52.1.3 轮询........................................................................................................... 1262
52.1.4 Linux 驱动下的 poll 操作函数 ................................................................. 1266
52.2 阻塞 IO 实验................................................................................................ 1267
52.2.1 硬件原理图分析....................................................................................... 1267
52.2.2 实验程序编写........................................................................................... 1267
52.2.3 运行测试................................................................................................... 1274
52.3 非阻塞 IO 实验............................................................................................ 1275
52.3.1 硬件原理图分析....................................................................................... 1275
52.3.2 实验程序编写........................................................................................... 1276
52.3.3 运行测试................................................................................................... 1281
第五十三章 异步通知实验....................................................................................1284
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
30
I.MX6U 嵌入式 Linux 驱动开发指南
53.1 异步通知...................................................................................................... 1285
53.1.1 异步通知简介........................................................................................... 1285
53.1.2 驱动中的信号处理................................................................................... 1287
53.1.3 应用程序对异步通知的处理................................................................... 1289
53.2 硬件原理图分析.......................................................................................... 1289
53.3 实验程序编写.............................................................................................. 1289
53.3.1 修改设备树文件....................................................................................... 1290
53.3.2 程序编写................................................................................................... 1290
53.3.3 编写测试 APP........................................................................................... 1293
53.4 运行测试...................................................................................................... 1295
53.4.1 编译驱动程序和测试 APP....................................................................... 1295
53.4.2 运行测试................................................................................................... 1296
第五十四章 platform 设备驱动实验 .....................................................................1297
54.1 Linux 驱动的分离与分层............................................................................. 1298
54.1.1 驱动的分隔与分离................................................................................... 1298
54.1.2 驱动的分层............................................................................................... 1300
54.2 platform 平台驱动模型简介 ........................................................................ 1300
54.2.1 platform 总线 ............................................................................................. 1300
54.2.2 platform 驱动 ............................................................................................. 1302
54.2.3 platform 设备 ............................................................................................. 1307
54.3 硬件原理图分析.......................................................................................... 1310
54.4 试验程序编写.............................................................................................. 1310
54.4.1 platform 设备与驱动程序编写 ................................................................. 1310
54.4.2 测试 APP 编写.......................................................................................... 1320
54.5 运行测试...................................................................................................... 1321
54.5.1 编译驱动程序和测试 APP....................................................................... 1321
54.4.2 运行测试................................................................................................... 1322
第五十五章 设备树下的 platform 驱动编写 ........................................................1324
55.1 设备树下的 platform 驱动简介 .................................................................. 1325
55.2 硬件原理图分析.......................................................................................... 1326
55.3 实验程序编写.............................................................................................. 1326
55.3.1 修改设备树文件....................................................................................... 1326
55.3.2 platform 驱动程序编写 ............................................................................. 1326
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
31
I.MX6U 嵌入式 Linux 驱动开发指南
55.3.3 编写测试 APP........................................................................................... 1332
55.4 运行测试...................................................................................................... 1332
55.4.1 编译驱动程序和测试 APP....................................................................... 1332
55.4.2 运行测试................................................................................................... 1333
第五十六章 Linux 自带的 LED 灯驱动实验........................................................1334
56.1 Linux 内核自带 LED 驱动使能................................................................... 1335
56.2 Linux 内核自带 LED 驱动简介................................................................... 1336
56.2.1 LED 灯驱动框架分析 ............................................................................... 1336
56.2.2 module_platform_driver 函数简析............................................................ 1337
56.2.3 gpio_led_probe 函数简析.......................................................................... 1338
56.3 设备树节点编写.......................................................................................... 1341
56.4 运行测试...................................................................................................... 1341
第五十七章 Linux MISC 驱动实验.......................................................................1343
57.1 MISC 设备驱动简介 .................................................................................... 1344
57.2 硬件原理图分析.......................................................................................... 1345
57.3 实验程序编写.............................................................................................. 1345
57.3.1 修改设备树............................................................................................... 1345
57.3.2 beep 驱动程序编写.................................................................................... 1345
57.3.3 编写测试 APP........................................................................................... 1351
57.4 运行测试...................................................................................................... 1352
57.4.1 编译驱动程序和测试 APP....................................................................... 1352
57.4.2 运行测试................................................................................................... 1353
第五十八章 Linux INPUT 子系统实验.................................................................1354
58.1 input 子系统.................................................................................................. 1355
58.1.1 input 子系统简介....................................................................................... 1355
58.1.2 input 驱动编写流程................................................................................... 1355
58.1.3 input_event 结构体 .................................................................................... 1361
58.2 硬件原理图分析.......................................................................................... 1362
58.3 实验程序编写.............................................................................................. 1362
58.3.1 修改设备树文件....................................................................................... 1362
58.3.2 按键 input 驱动程序编写......................................................................... 1362
58.3.3 编写测试 APP........................................................................................... 1368
58.4 运行测试...................................................................................................... 1370
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
32
I.MX6U 嵌入式 Linux 驱动开发指南
58.4.1 编译驱动程序和测试 APP....................................................................... 1370
58.4.2 运行测试................................................................................................... 1371
58.5 Linux 自带按键驱动程序的使用................................................................. 1372
58.5.1 自带按键驱动程序源码简析................................................................... 1372
58.5.2 自带按键驱动程序的使用....................................................................... 1378
第五十九章 Linux LCD 驱动实验.........................................................................1380
59.1 Linux 下 LCD 驱动简析............................................................................... 1381
59.1.1 Framebuffer 设备 ....................................................................................... 1381
59.1.2 LCD 驱动简析........................................................................................... 1382
59.2 硬件原理图分析.......................................................................................... 1387
59.3 LCD 驱动程序编写...................................................................................... 1388
59.4 运行测试...................................................................................................... 1393
59.4.1 LCD 屏幕基本测试................................................................................... 1393
59.4.2 设置 LCD 作为终端控制台..................................................................... 1394
59.4.3 LCD 背光调节........................................................................................... 1395
59.4.4 LCD 自动关闭解决方法........................................................................... 1396
第六十章 Linux RTC 驱动实验.............................................................................1398
60.1 Linux 内核 RTC 驱动简介........................................................................... 1399
60.2 I.MX6U 内部 RTC 驱动分析....................................................................... 1403
60.3 RTC 时间查看与设置................................................................................... 1408
第六十一章 Linux I2C 驱动实验...........................................................................1411
61.1 Linux I2C 驱动框架简介.............................................................................. 1412
61.1.1 I2C 总线驱动............................................................................................. 1412
61.1.2 I2C 设备驱动............................................................................................. 1413
61.1.3 I2C 设备和驱动匹配过程......................................................................... 1417
61.2 I.MX6U 的 I2C 适配器驱动分析 ................................................................ 1418
61.3 I2C 设备驱动编写流程................................................................................ 1424
61.3.1 I2C 设备信息描述..................................................................................... 1425
61.3.2 I2C 设备数据收发处理流程..................................................................... 1426
61.4 硬件原理图分析.......................................................................................... 1429
61.5 实验程序编写.............................................................................................. 1429
61.5.1 修改设备树............................................................................................... 1429
61.5.2 AP3216C 驱动编写.................................................................................... 1431
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
33
I.MX6U 嵌入式 Linux 驱动开发指南
61.5.3 编写测试 APP........................................................................................... 1441
61.6 运行测试...................................................................................................... 1443
61.6.1 编译驱动程序和测试 APP....................................................................... 1443
61.6.2 运行测试................................................................................................... 1443
第六十二章 Linux SPI 驱动实验...........................................................................1445
62.1 Linux 下 SPI 驱动框架简介......................................................................... 1446
62.1.1 SPI 主机驱动 ............................................................................................. 1446
62.1.2 SPI 设备驱动 ............................................................................................. 1448
62.1.3 SPI 设备和驱动匹配过程 ......................................................................... 1450
62.2 I.MX6U SPI 主机驱动分析.......................................................................... 1451
62.3 SPI 设备驱动编写流程 ................................................................................ 1453
62.3.1 SPI 设备信息描述 ..................................................................................... 1453
62.3.2 SPI 设备数据收发处理流程 ..................................................................... 1454
62.4 硬件原理图分析.......................................................................................... 1458
62.5 试验程序编写.............................................................................................. 1458
62.5.1 修改设备树............................................................................................... 1458
62.5.2 编写 ICM20608 驱动................................................................................ 1459
62.5.3 编写测试 APP........................................................................................... 1470
62.6 运行测试...................................................................................................... 1473
62.6.1 编译驱动程序和测试 APP....................................................................... 1473
62.6.2 运行测试................................................................................................... 1474
第六十三章 Linux RS232/485/GPS 驱动实验......................................................1475
63.1 Linux 下 UART 驱动框架............................................................................ 1476
63.2 I.MX6U UART 驱动分析............................................................................. 1479
63.3 硬件原理图分析.......................................................................................... 1485
63.4 RS232 驱动编写 ........................................................................................... 1486
63.5 移植 minicom............................................................................................... 1488
63.6 RS232 驱动测试 ........................................................................................... 1491
63.6.1 RS232 连接设置 ........................................................................................ 1491
63.6.2 minicom 设置............................................................................................. 1492
63.6.3 RS232 收发测试 ........................................................................................ 1494
63.7 RS485 测试 ................................................................................................... 1496
63.7.1 RS485 连接设置 ........................................................................................ 1496
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
34
I.MX6U 嵌入式 Linux 驱动开发指南
63.7.2 RS485 收发测试 ........................................................................................ 1497
63.8 GPS 测试....................................................................................................... 1498
63.8.1 GPS 连接设置............................................................................................ 1498
63.8.2 GPS 数据接收测试.................................................................................... 1499
第六十四章 Linux 多点电容触摸屏实验.............................................................1501
64.1 Linux 下电容触摸屏驱动框架简介............................................................. 1502
64.1.1 多点触摸(MT)协议详解 .......................................................................... 1502
64.1.2 Type A 触摸点信息上报时序.................................................................... 1503
64.1.3 Type B 触摸点信息上报时序.................................................................... 1505
64.1.4 MT 其他事件的使用................................................................................. 1507
64.1.5 多点触摸所使用到的 API 函数............................................................... 1507
64.1.6 多点电容触摸驱动框架........................................................................... 1509
64.2 硬件原理图分析.......................................................................................... 1513
64.3 试验程序编写.............................................................................................. 1513
64.3.1 修改设备树............................................................................................... 1514
64.3.2 编写多点电容触摸驱动........................................................................... 1515
64.4 运行测试...................................................................................................... 1525
64.4.1 编译驱动程序........................................................................................... 1525
64.4.2 运行测试................................................................................................... 1526
64.4.3 将驱动添加到内核中............................................................................... 1527
64.5 tslib 移植与使用 ........................................................................................... 1529
64.5.1 tslib 移植 .................................................................................................... 1529
64.5.2 tslib 测试 .................................................................................................... 1530
64.6 使用内核自带的驱动.................................................................................. 1532
64.7 4.3 寸屏触摸驱动实验................................................................................. 1534
第六十五章 Linux 音频驱动实验.........................................................................1538
65.1 音频接口简介.............................................................................................. 1539
65.1.1 为何需要音频编解码芯片?................................................................... 1539
65.1.2 WM8960 简介............................................................................................ 1539
65.1.3 I2S 总线接口.............................................................................................. 1541
65.1.4 I.MX6ULL SAI 简介 ................................................................................. 1542
65.2 硬件原理图分析.......................................................................................... 1543
65.3 音频驱动使能.............................................................................................. 1544
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
35
I.MX6U 嵌入式 Linux 驱动开发指南
65.3.1 修改设备树............................................................................................... 1544
65.5.2 使能内核的 WM8960 驱动...................................................................... 1548
65.4 alsa-lib 和 alsa-utils 移植.............................................................................. 1550
65.4.1 alsa-lib 移植 ............................................................................................... 1550
65.4.2 alsa-utils 移植............................................................................................. 1551
65.5 声卡设置与测试.......................................................................................... 1552
65.5.1 amixer 使用方法........................................................................................ 1552
65.5.2 音乐播放测试........................................................................................... 1555
65.5.3 MIC 录音测试............................................................................................ 1555
65.5.4 LINE IN 录音测试..................................................................................... 1559
65.6 开机自动配置声卡...................................................................................... 1561
65.7 mplayer 播放器移植与使用......................................................................... 1562
65.7.1 mplayer 移植.............................................................................................. 1562
65.7.2 mplayer 使用.............................................................................................. 1563
65.8 alsamixer 简介............................................................................................... 1565
第六十六章 Linux CAN 驱动实验........................................................................1566
66.1 CAN 协议简析.............................................................................................. 1567
66.1.1 何为 CAN?.............................................................................................. 1567
66.1.2 CAN 电气属性........................................................................................... 1568
66.1.3 CAN 协议................................................................................................... 1569
66.1.4 CAN 速率................................................................................................... 1575
66.1.5 I.MX6ULL FlexCAN 简介 ........................................................................ 1577
66.2 硬件原理图分析.......................................................................................... 1579
66.3 实验程序编写.............................................................................................. 1579
66.3.1 修改设备树............................................................................................... 1579
66.3.2 使能 Linux 内核自带的 FlexCAN 驱动.................................................. 1581
66.4 FlexCAN 测试............................................................................................... 1582
66.4.1 检查 CAN 网卡设备是否存在................................................................. 1582
66.4.2 移植 iproute2............................................................................................. 1583
66.4.3 移植 can-utils 工具 ................................................................................... 1585
66.4.4 CAN 通信测试........................................................................................... 1585
第六十七章 Linux USB 驱动实验.........................................................................1589
67.1 USB 接口简介 .............................................................................................. 1590
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
36
I.MX6U 嵌入式 Linux 驱动开发指南
67.1.1 什么是 USB? .......................................................................................... 1590
67.1.2 USB 电气特性 ........................................................................................... 1591
67.1.3 USB 拓扑结构 ........................................................................................... 1592
67.1.4 什么是 USB OTG?................................................................................. 1593
67.1.5 I.MX6ULL USB 接口简介........................................................................ 1594
67.2 硬件原理图分析.......................................................................................... 1595
67.2.1 USB HUB 原理图分析.............................................................................. 1595
67.2.2 USB OTG 原理图分析.............................................................................. 1596
67.3 USB 协议简析 .............................................................................................. 1597
67.3.1 USB 描述符 ............................................................................................... 1597
67.3.3 USB 数据包类型 ....................................................................................... 1600
67.3.4 USB 传输类型 ........................................................................................... 1602
67.3.5 USB 枚举 ................................................................................................... 1603
67.4 Linux 内核自带 HOST 实验........................................................................ 1603
67.4.1 USB 鼠标键盘测试 ................................................................................... 1603
67.4.2 U 盘实验 .................................................................................................... 1606
67.5 Linux 内核自带 USB OTG 实验.................................................................. 1608
67.5.1 修改设备树............................................................................................... 1608
67.5.2 OTG 主机实验........................................................................................... 1609
67.5.3 OTG 从机实验........................................................................................... 1609
第六十八章 Linux 块设备驱动实验.....................................................................1613
第六十九章 Linux 网络驱动实验.........................................................................1614
第七十章 Linux WIFI 驱动实验............................................................................1615
70.1 WIFI 驱动添加与编译.................................................................................. 1616
70.1.1 向 Linux 内核添加 WIFI 驱动................................................................. 1616
70.1.2 配置 Linux 内核........................................................................................ 1619
70.1.3 编译 WIFI 驱动 ........................................................................................ 1620
70.1.4 驱动加载测试........................................................................................... 1622
70.2 wireless tools 工具移植与测试 .................................................................... 1625
70.2.1 wireless tools 移植 ..................................................................................... 1625
70.2.2 wireless tools 工具测试 ............................................................................. 1625
70.3 wpa_supplicant 移植..................................................................................... 1627
70.3.1 openssl 移植............................................................................................... 1627
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
37
I.MX6U 嵌入式 Linux 驱动开发指南
70.3.2 libnl 库移植................................................................................................ 1627
70.3.3 wpa_supplicant 移植.................................................................................. 1628
70.4 WIFI 联网测试.............................................................................................. 1630
70.4.1 RTL8188 USB WIFI 联网测试 ................................................................. 1630
70.4.2 RTL8189 SDIO WIFI 联网测试................................................................ 1632
第七十一章 Linux 4G 通信实验............................................................................1634
71.1 4G 网络连接简介 ......................................................................................... 1635
71.2 高新兴 ME3630 4G 模块实验 .................................................................... 1637
71.2.1 ME3630 4G 模块简介 ............................................................................... 1637
71.2.2 ME3630 4G 模块驱动修改 ....................................................................... 1638
71.2.3 ME3630 4G 模块 ppp 联网测试 ............................................................... 1641
71.2.4 ME3630 4G 模块 ECM 联网测试............................................................. 1646
71.2.5 ME3630 4G 模块 GNSS 定位测试........................................................... 1647
71.3 EC20 4G 模块实验....................................................................................... 1649
71.3.1 EC20 4G 模块简介.................................................................................... 1649
71.3.2 EC20 4G 模块驱动修改............................................................................ 1650
71.3.3 quectel-CM 移植........................................................................................ 1655
71.3.4 EC20 上网测试.......................................................................................... 1655
第七十二章 RGB 转 HDMI 实验 ..........................................................................1657
72.1 RGB 转 HMDI 简介 ..................................................................................... 1658
72.2 硬件原理图分析.......................................................................................... 1658
72.3 实验驱动编写.............................................................................................. 1659
72.3.1 修改设备树............................................................................................... 1659
72.3.2 使能内核自带的 sii902x 驱动 ................................................................. 1662
72.3.3 修改 sii902x 驱动 ..................................................................................... 1662
72.4 RGB 转 HDMI 测试 ..................................................................................... 1663
第七十三章 Linux PWM 驱动实验.......................................................................1665
73.1 PWM 驱动简析............................................................................................. 1666
73.1.1 设备树下的 PWM 控制器节点................................................................ 1666
73.1.2 PWM 子系统.............................................................................................. 1666
73.1.3 PWM 驱动源码分析.................................................................................. 1667
73.2 PWM 驱动编写............................................................................................. 1671
73.2.1 修改设备树............................................................................................... 1671
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
38
I.MX6U 嵌入式 Linux 驱动开发指南
73.2.2 使能 PWM 驱动........................................................................................ 1673
73.3 PWM 驱动测试............................................................................................. 1673
附录 A 其他根文件系统构建 ................................................................................1676
第 A1 章 Buildroot 根文件系统构建.....................................................................1677
A1.1 何为 buildroot?.......................................................................................... 1678
A1.1.1 buildroot 简介............................................................................................ 1678
A1.1.2 buildroot 下载............................................................................................ 1678
A1.2 buildroot 构建根文件系统........................................................................... 1679
A1.2.1 配置 buildroot........................................................................................... 1679
A1.2.2 编译 buildroot........................................................................................... 1684
A2.2.3 buildroot 根文件系统测试........................................................................ 1685
A1.3 buildroot 第三方软件和库的配置............................................................... 1685
A1.4 buildroot 下的 busybox 配置....................................................................... 1687
A1.4.1 busybox 配置............................................................................................. 1687
A1.4.2 busybox 中文字符的支持......................................................................... 1688
A1.4.3 编译 busybox............................................................................................ 1688
A1.5 根文件系统测试 ......................................................................................... 1689
第 A2 章 Yocto 根文件系统构建...........................................................................1691
第 A3 章 Ubuntu-base 根文件系统构建................................................................1692
A3.1 ubuntu-base 获取.......................................................................................... 1693
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
39
I.MX6U 嵌入式 Linux 驱动开发指南
A3.2 ubuntu 根文件系统构建.............................................................................. 1695
A3.2.1 解压缩 ubuntu base 根文件系统............................................................. 1695
A3.2.2 安装 qemu ................................................................................................ 1695
A3.2.3 设置软件源 .............................................................................................. 1696
A3.2.4 在主机挂载并配置根文件系统 .............................................................. 1696
A3.3 ubuntu 根文件系统测试.............................................................................. 1698
A3.3.1 nfs 挂载测试 ............................................................................................. 1698
A3.3.2 ubuntu 根文件系统烧写........................................................................... 1699
A3.4 ubuntu 系统使用.......................................................................................... 1700
A3.4.1 添加新用户 .............................................................................................. 1700
A3.4.2 网络 DHCP 配置...................................................................................... 1701
A3.4.3 安装软件 .................................................................................................. 1701
A3.4.4 FTP 服务器搭建 ....................................................................................... 1701
A3.4.5 gcc 和 make 工具安装.............................................................................. 1703
附录 B 其他第三方软件移植 ................................................................................1705
第 B1 章 开发板 FTP 服务器移植与搭建.............................................................1706
B1.1 vsftpd 源码下载 ........................................................................................... 1707
B1.2 vsftpd 移植 ................................................................................................... 1708
B1.3 vsftpd 服务器测试 ....................................................................................... 1708
B1.3.1 配置 vsftpd ............................................................................................... 1708
B1.3.2 添加新用户 .............................................................................................. 1709
B1.3.3 Filezilla 连接测试 ..................................................................................... 1710
第 B2 章节 开发板 OpenSSH 移植与使用 ...........................................................1713
B2.1 OpenSSH 简介 ............................................................................................. 1714
B2.2 OpenSSH 移植 ............................................................................................. 1714
B2.2.1 OpenSSH 源码获取 .................................................................................. 1714
B2.2.2 移植 zlib 库 .............................................................................................. 1714
B2.2.3 移植 openssl 库 ........................................................................................ 1714
B2.2.4 移植 openssh 库........................................................................................ 1714
B2.3 openssh 设置................................................................................................. 1716
B2.4 openssh 使用................................................................................................. 1716
B2.4.1 ssh 登录 ..................................................................................................... 1716
B2.4.2 scp 命令拷贝文件..................................................................................... 1718
原子哥在线教学:www.yuanzige.com 论坛:www.openedv.com
40
I.MX6U 嵌入式 Linux 驱动开发指南
第 B3 章节 嵌入式 GDB 调试搭建与使用...........................................................1720
B3.1 GDB 简介..................................................................................................... 1721
B3.2 GDB 移植..................................................................................................... 1721
B3.2.1 获取 gdb 和 gdbserver 源码..................................................................... 1721
B3.2.2 编译 gdb ................................................................................................... 1721
B3.2.3 移植 gdbserver.......................................................................................... 1723
B3.3 使用 GDB 进行嵌入式程序调试............................................................... 1724
B3.3.1 编写一个测试应用 .................................................................................. 1724
B3.3.2 GDB 调试程序.......................................................................................... 1725
第 B4 章节 VSCode gdbserver 图形化调试.........................................................1728
B4.1 VSCode 设置................................................................................................ 1729
B4.2 VSCode 调试方法........................................................................................ 1730

实例下载地址

I.MX6U嵌入式Linux驱动开发指南.pdf

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警