基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录

基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录

硬件环境

正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)
底板+核心板(EMMC版)+7寸RGB屏1024*600'

软件环境

VirtualBox
Ubuntu

学习计划

开始于2022/03/12
第一步,看完所有的视频教程并做好记录

正点原子Linux视频教程_B站
正点原子资料下载中心_opendev

视频教程目录

视频 选集 时长 时长
【第一期】手把手教你学Linux之Ubuntu入门篇 20 8小时58分 8秒 0天 8小时58分 8秒
【第二期】手把手教你学Linux之ARM(MX6U)裸机篇 76 39小时57分 2秒 1天15小时57分 2秒
【第三期】手把手教你学Linux之系统移植和根文件系统构建 56 29小时23分22秒 1天 5小时23分22秒
【第四期】手把手教你学 Linux之驱动开发篇 146 69小时44分38秒 2天21小时44分38秒

一共298集视频,总时长148小时 3分10秒,即6天 4小时 3分10秒

正点原子【第一期】手把手教你学Linux之Ubuntu入门篇

视频 选集 时间
P1 第1讲 开发电脑的选择 22:35
P2 第2讲 VMware软件安装和虚拟机创建 29:36
P3 第3讲 Ubuntu操作系统的安装 32:13
P4 第4讲 Ubuntu初次体验 27:25
P5 第5讲 虚拟机连接USB设备 09:21
P6 第6.1讲 Ubuntu终端操作与Shell命令1 30:41
P7 第6.2讲 Ubuntu终端操作与Shell命令2 29:41
P8 第7讲 Ubuntu软件安装 31:15
P9 第8讲 Ubuntu文件系统结构 18:21
P10 第9讲 Ubuntu下的磁盘管理 36:17
P11 第10讲 Ubuntu下压缩与解压缩 33:58
P12 第11讲 Ubuntu用户与用户组 22:50
P13 第12讲 Ubuntu文件权限管理 23:13
P14 第13讲 Linux连接文件 20:33
P15 第14讲 vim编辑器 22:00
P16 第15讲 Linux C编程 23:55
P17 第16讲 make工具和Makefile的引入 28:12
P18 第17讲 Makefile基本语法 33:47
P19 第18讲 shell脚本入门 33:11
P20 第19讲 shell脚本条件判断、函数和循环 29:04

正点原子【第二期】手把手教你学Linux之ARM(MX6U)裸机篇

视频 选集 时间
P1 第1.1讲 开发环境搭建 28:15
P2 第1.2讲 交叉编译器的安装 13:44
P3 第2讲 vscode软件的安装与使用 34:39
P4 第3讲 I.MX6U-ALPHA开发板简介 26:08
P5 第5讲 I.MX6U芯片简介 35:52
P6 第6.1讲 汇编LED驱动实验-原理分析 35:31
P7 第6.2讲 汇编LED驱动实验-汇编基本语法 28:07
P8 第6.3讲 汇编LED驱动实验-驱动编写 30:55
P9 第6.4讲 汇编LED驱动实验-编译程序 22:45
P10 第6.5讲 汇编LED驱动实验-烧写bin文件到SD卡中并运行 27:43
P11 第7.1讲 IMX启动方式-启动设备的选择 36:06
P12 第7.2讲 IMX启动方式-IVT表和BootData详解 31:17
P13 第7.3讲 IMX启动方式-DCD数据详解 20:40
P14 第8.1讲 C语言版本LED驱动实验-实验原理分析 26:53
P15 第8.2讲 C语言版本LED驱动实验-程序编写与验证 39:57
P16 第9.1讲 模仿STM32驱动开发实验-实验程序编写 31:43
P17 第9.2讲 模仿STM32驱动开发实验-主函数编写与下载验证 18:10
P18 第10.1讲 NXP官方SDK使用实验-SDK移植 25:42
P19 第10.2讲 NXP官方SDK使用实验-程序编写验证 36:59
P20 第11.1讲 BSP工程管理实验-工程整理与程序编写 31:16
P21 第11.2讲 BSP工程管理实验-编写测试通用Makefile 34:04
P22 第12讲 蜂鸣器实验 25:29
P23 第13.1讲 按键输入实验-实验程序编写 32:42
P24 第13.2讲 按键输入实验-驱动验证与调试 14:26
P25 第13.3讲 按键输入实验-通用GPIO驱动编写与验证 24:43
P26 第14.1讲 主频和时钟配置实验-时钟树详解 38:06
P27 第14.2讲 主频和时钟配置实验-主频修改 41:16
P28 第14.3讲 主频和时钟配置实验-8路PLL和8路PFD时钟设置 20:02
P29 第14.4讲 主频和时钟配置实验-其他时钟源设置 44:10
P30 第15.1讲 GPIO中断实验-Cortex-A中断原理 41:50
P31 第15.2讲 GPIO中断实验-6U中断向量表的编写 35:05
P32 第15.3讲 GPIO中断实验-6U复位中断服务函数的编写 23:13
P33 第15.4讲 GPIO中断实验-IRQ中断服务函数详解 28:04
P34 第15.5讲 GPIO中断实验-通用中断驱动编写 43:16
P35 第15.6讲 GPIO中断实验-向GPIO驱动添加中断处理函数 29:55
P36 第15.7讲 GPIO中断实验-编写按键中断驱动 30:12
P37 第16.1讲 EPIT定时器实验-EPIT原理详解 23:43
P38 第16.2讲 EPIT定时器实验-实验程序编写与验证 28:38
P39 第17讲 定时器按键消抖实验 32:24
P40 第18.1讲 高精度延时实验-GPT定时器原理 32:31
P41 第18.2讲 高精度延时实验-实验代码编写与测试 37:33
P42 第19.1讲 串口实验-串口原理详解 36:59
P43 第19.2讲 串口实验-串口驱动实验编写与验证1 29:55
P44 第19.3讲 串口实验-串口驱动实验编写与验证2 30:01
P45 第19.4讲 串口实验-printf格式化函数移植与测试 29:10
P46 第20.1讲 DDR3实验-RAM发展历史简介 41:47
P47 第20.2讲 DDR3实验-DDR3重要时间参数、时钟配置与原理图简析 27:53
P48 第20.3讲 DDR3实验-DDR3初始化、校准、超频测试 38:20
P49 第21.1讲 RGBLCD实验-LCD显示原理详解 41:18
P50 第21.2讲 RGBLCD实验-LCD时序与时间参数 28:52
P51 第21.3讲 RGBLCD实验-6ULL LCDIF接口寄存器详解 36:14
P52 第21.4讲 RGBLCD实验-6ULL像素时钟配置详解 24:34
P53 第21.5讲 RGBLCD实验-LCDID读取以及IO初始化程序编写 45:12
P54 第21.6讲 RGBLCD实验-LCD时间参数和像素时钟设置程序编写 44:40
P55 第21.7讲 RGBLCD实验-LCDIF控制器接口初始化程序编写 31:31
P56 第21.8讲 RGBLCD实验-LCDIF驱动以及API函数测试 28:56
P57 第22.1讲 RTC实验-6U内部RTC详解 28:29
P58 第22.2讲 RTC实验-驱动编写与测试 44:21
P59 第22.3讲 RTC实验-时间错误问题调试 22:06
P60 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 36:46
P61 第23.2讲 I2C实验-AP3216C简介与程序编写 27:19
P62 第23.3讲 I2C实验-I2C主机控制器驱动程序编写1 38:36
P63 第23.4讲 I2C实验-I2C主机控制器驱动程序编写2 33:21
P64 第23.5讲 I2C实验-AP3216C程序编写 21:20
P65 第23.6讲 I2C实验-AP3216C程序调试及bug解决 21:00
P66 第24.1讲 SPI实验-SPI以及ICM20608详解 37:25
P67 第24.2讲 SPI实验-6ULL SPI控制器寄存器详解 35:26
P68 第24.3讲 SPI实验-6ULL SPI控制器驱动程序编写 33:39
P69 第24.4讲 SPI实验-ICM20608驱动程序编写 37:03
P70 第24.5讲 SPI实验-ICM20608实际测量值计算与6ULL硬件浮点的开启 28:33
P71 第25.1讲 多点电容触摸屏实验-电容触摸屏与FT系列触摸芯片详解 33:15
P72 第25.2讲 多点电容触摸屏实验-电容触摸屏幕驱动编写1 35:52
P73 第25.3讲 多点电容触摸屏实验-电容触摸屏幕驱动编写2 31:05
P74 第25.4讲 多点电容触摸屏实验-电容触摸驱动测试 16:01
P75 第26.1讲 PWM背光实验-6ULL PWM详解 33:07
P76 第26.2讲 PWM背光实验-PWM背光驱动程序编写 43:12

正点原子【第三期】手把手教你学Linux之系统移植和根文件系统构建

视频 选集 时间
P1 第1.1讲 正点原子官方系统镜像烧写实验-Windows下OTG烧写 23:23
P2 第1.2讲 正点原子官方系统镜像烧写实验-Ubuntu下脚本烧写 29:04
P3 第2.1讲 正点原子官方Uboot编译-什么是uboot 29:23
P4 第2.2讲 正点原子官方Uboot编译-uboot初次编译 30:08
P5 第3.1讲 Uboot命令使用-uboot启动log信息分析与基础命令使用 33:25
P6 第3.2讲 Uboot命令使用-uboot内存与网络命令 46:10
P7 第3.3讲 Uboot命令使用-MMC和文件操作命令 25:04
P8 第3.4讲 Uboot命令使用-NAND和BOOT命令 34:10
P9 第4讲 Uboot源码目录分析 37:19
P10 第5.1讲 Uboot顶层Makefile分析-vscode工程创建 23:20
P11 第5.2讲 Uboot顶层Makefile分析-Makefile前期所作的内容 42:51
P12 第5.3讲 Uboot顶层Makefile分析-make xxx_defconfig过程 43:53
P13 第5.4讲 Uboot顶层Makefile分析-make过程 28:48
P14 第6.1讲 Uboot启动流程详解-Uboot链接脚本到_start的处理过程 33:36
P15 第6.2讲 Uboot启动流程详解-lowlevel_init、s_init及_main函数执行过程 35:50
P16 第6.3讲 Uboot启动流程详解-board_init_f函数执行过程 43:11
P17 第6.4讲 Uboot启动流程详解-uboot内存分配 42:39
P18 第6.5讲 Uboot启动流程详解-uboot代码重定位 47:49
P19 第6.6讲 Uboot启动流程详解-中断向量表重定位与board_init_r函数执行过程 25:46
P20 第6.7讲 Uboot启动流程详解-main_loop到cmd_process处理过程 38:51
P21 第6.8讲 Uboot启动流程详解-bootz启动Linux过程详解1 26:40
P22 第6.9讲 Uboot启动流程详解-bootz启动Linux过程详解2 31:02
P23 第7.1讲 Uboot移植实验-NXP官方开发板uboot编译与测试 35:31
P24 第7.2讲 Uboot移植实验-在Uboot中添加ALPHA开发板 38:43
P25 第7.3讲 Uboot移植实验-Uboot LCD驱动修改 28:01
P26 第7.4讲 Uboot移植实验-Uboot 网络驱动原理简介 18:18
P27 第7.5讲 Uboot移植实验-Uboot 网络驱动修改 37:38
P28 第7.6讲 Uboot移植实验-Uboot启动Linux内核测试 17:57
P29 第7.7讲 Uboot移植实验-mx6ull_alientek_emmc.h文件详解 30:54
P30 第7.8讲 Uboot移植实验-bootcmd和bootargs详解 33:59
P31 第7.9讲 Uboot移植实验-DDR初始化参数修改 18:00
P32 第8.1讲 Uboot图形化界面配置-图形化配置操作 30:53
P33 第8.2讲 Uboot图形化界面配置-Kconfig语法简介 36:57
P34 第9讲 正点原子官方Linux内核编译与体验 39:03
P35 第10讲 Linux内核源码目录分析 21:17
P36 第11.1讲 Linux内核顶层Makefile分析-make xxx_defconfig和make过程 38:01
P37 第11.2讲 Linux内核顶层Makefile分析-built-in.o和zImage生成过程简介 17:42
P38 第12.1讲 Linux内核启动流程简介-第一阶段汇编流程简介 23:37
P39 第12.2讲 Linux内核启动流程简介-第二阶段start_kernel简介 26:06
P40 第13.1讲 Linux内核移植-向NXP官方Linux内核添加ALPHA开发板 40:29
P41 第13.2讲 Linux内核移植-主频设置以及超频测试 31:01
P42 第13.3讲 Linux内核移植-网络驱动修改 38:08
P43 第14.1讲 根文件系统构建-根文件系统简介 28:10
P44 第14.2讲 根文件系统构建-busybox配置、中文支持与编译 36:47
P45 第14.3讲 根文件系统构建-根文件系统lib库文件添加与初步测试 36:54
P46 第14.4讲 根文件系统构建-根文件系统完善 28:41
P47 第14.5讲 根文件系统构建-根文件系统其他功能测试 27:01
P48 第15.1讲 MfgTool烧写工具详解-MfgTool工具详解(上) 17:49
P49 第15.2讲 MfgTool烧写工具详解-MfgTool工具详解(下) 25:41
P50 第15.3讲 MfgTool烧写工具详解-烧写自制的系统文件 28:33
P51 第15.4讲 MfgTool烧写工具详解-定制化mfgtool工具 29:58
P52 第16.1讲 Uboot移植实验(NAND版本)-向Uboot中添加NAND版开发板-补录 30:12
P53 第16.2讲 Uboot移植实验(NAND版本)-Uboot中LCD及网络驱动修改-补录 31:29
P54 第16.3讲 Uboot移植实验(NAND版本)-Uboot启动内核测试与DDR初始化代码修改-补录 27:15
P55 第17讲 Linux内核移植(NAND版本)-补录 21:16
P56 第18讲 MfgTool烧写(NAND版本)-补录 38:59

正点原子【第四期】手把手教你学 Linux之驱动开发篇

视频 选集 时间
P1 第1讲 Linux驱动开发与裸机开发区别 20:52
P2 第2讲 字符设备驱动开发基础实验 21:55
P3 第3.1讲 我的第一个Linux驱动-字符设备驱动框架 36:14
P4 第3.2讲 我的第一个Linux驱动-驱动模块加载与卸载实验 31:57
P5 第3.3讲 我的第一个Linux驱动-字符设备驱动框架搭建实验 39:01
P6 第3.4讲 我的第一个Linux驱动-应用程序编写 36:32
P7 第3.5讲 我的第一个Linux驱动-完善chrdevbase驱动 32:41
P8 第4.1讲 Linux LED灯驱动实验(直接操作寄存器)-地址映射 20:34
P9 第4.2讲 Linux LED灯驱动实验(直接操作寄存器)-驱动框架搭建以及网络问题解决方法 35:14
P10 第4.3讲 Linux LED灯驱动实验(直接操作寄存器)-LED灯初始化 34:02
P11 第4.4讲 Linux LED灯驱动实验(直接操作寄存器)-完善驱动与应用程序编写测试 25:07
P12 第5.1讲 Linux新字符设备驱动实验-新驱动框架的搭建 39:57
P13 第5.2讲 Linux新字符设备驱动实验-完善驱动 26:57
P14 第5.3讲 Linux新字符设备驱动实验-自动创建设备节点 31:32
P15 第5.4讲 Linux新字符设备驱动实验-私有数据以及goto对于错误的处理方法 34:29
P16 第6.1讲 Linux设备树详解-什么是设备树? 28:17
P17 第6.2讲 Linux设备树详解-DTS文件以及组织形式 41:40
P18 第6.3讲 Linux设备树详解-6ULL设备树节点信息 35:56
P19 第6.4讲 Linux设备树详解-设备树在根文件系统中的体现以及添加自定义节点 38:42
P20 第6.5讲 Linux设备树详解-设备树特殊节点 23:58
P21 第6.6讲 Linux设备树详解-设备树中的标准属性 27:56
P22 第6.7讲 Linux设备树详解-根节点下的compatible属性作用 27:27
P23 第6.8讲 Linux设备树详解-绑定文档以及OF函数 42:35
P24 第6.9讲 Linux设备树详解-OF函数操作实验 50:18
P25 第7.1讲 设备树下的LED驱动试验-实验驱动框架搭建 38:52
P26 第7.2讲 设备树下的LED驱动试验-实验驱动完善 45:17
P27 第8.1讲 pinctrl和gpio子系统试验-pincrl子系统详解 40:57
P28 第8.2讲 pinctrl和gpio子系统试验-pincrl子系统驱动分析 35:50
P29 第8.3讲 pinctrl和gpio子系统试验-gpio子系统详解和驱动分析 42:25
P30 第8.4讲 pinctrl和gpio子系统试验-设备树节点创建与驱动框架编写 47:11
P31 第8.5讲 pinctrl和gpio子系统试验-完善驱动 35:21
P32 第9讲 beep蜂鸣器实验 42:24
P33 第10.1讲 Linux并发与竞争试验-并发与竞争基础概念与原子操作 30:31
P34 第10.2讲 Linux并发与竞争试验-自旋锁、信号量与互斥体 30:56
P35 第10.3讲 Linux并发与竞争试验-原子操作实验 27:28
P36 第10.4讲 Linux并发与竞争试验-自旋锁、信号量以及互斥体操作实验 34:45
P37 第11讲 Linux按键输入试验 40:03
P38 第12.1讲 Linux内核定时器实验-内核时间管理简介 25:44
P39 第12.2讲 Linux内核定时器实验-内核定时器简介以及实验编写 40:04
P40 第12.3讲 Linux内核定时器实验-使用ioctl控制定时器 42:17
P41 第13.1讲 Linux中断实验-Linux内核中断框架简介 22:28
P42 第13.2讲 Linux中断实验-Linux内核中断上半部和下半部 25:07
P43 第13.3讲 Linux中断实验-如何在设备树中描述中断信息 20:49
P44 第13.4讲 Linux中断实验-按键中断实验驱动编写(上) 22:25
P45 第13.5讲 Linux中断实验-按键中断实验驱动编写(下) 27:45
P46 第13.6讲 Linux中断实验-使用定时器实现按键消抖处理 31:34
P47 第13.7讲 Linux中断实验-中断下半部处理实验 26:07
P48 第14.1讲 Linux阻塞和非阻塞IO实验-阻塞与非阻塞简介 39:29
P49 第14.2讲 Linux阻塞和非阻塞IO实验-阻塞IO实验 29:54
P50 第14.3讲 Linux阻塞和非阻塞IO实验-非阻塞IO实验 29:49
P51 第15.1讲 Linux异步通知实验-异步通知简介 26:49
P52 第15.2讲 Linux异步通知实验-驱动程序编写 40:17
P53 第16.1讲 platform设备驱动实验-驱动的分离与分层 23:24
P54 第16.2讲 platform设备驱动实验-驱动、总线和设备 32:42
P55 第16.3讲 platform设备驱动实验-platform总线简介1 31:09
P56 第16.4讲 platform设备驱动实验-platform总线简介2 19:54
P57 第16.5讲 platform设备驱动实验-无设备树platform设备注册实验 31:33
P58 第16.6讲 platform设备驱动实验-无设备树platform驱动注册实验 39:06
P59 第16.7讲 platform设备驱动实验-设备树下的platform驱动注册实验 34:22
P60 第17.1讲 Linux自带LED驱动实验-linux自带LED驱动简析 29:13
P61 第17.2讲 Linux自带LED驱动实验-设备树节点创建与测试 18:28
P62 第18.1讲 Linux杂项(MISC)驱动实验-MISC驱动框架简介 27:28
P63 第18.2讲 Linux杂项(MISC)驱动实验-misc蜂鸣器驱动编写与测试 28:11
P64 第19.1讲 Linux INPUT子系统驱动实验-INPUT驱动框架简介 35:39
P65 第19.2讲 Linux INPUT子系统驱动实验-实验驱动编写 34:28
P66 第19.3讲 Linux INPUT子系统驱动实验-input_event详解 20:34
P67 第19.4讲 Linux INPUT子系统驱动实验-应用编写 19:22
P68 第19.5讲 Linux INPUT子系统驱动实验-内核自带按键驱动程序 22:31
P69 第20.1讲 Linux LCD驱动实验-Framebuffer简介 21:14
P70 第20.2讲 Linux LCD驱动实验-LCD驱动源码简析 39:52
P71 第20.3讲 Linux LCD驱动实验-LCD驱动编写 25:47
P72 第20.4讲 Linux LCD驱动实验-LCD屏幕测试 24:24
P73 第21.1讲 Linux RTC驱动实验-RTC驱动框架简介 23:22
P74 第21.2讲 Linux RTC驱动实验-RTC驱动源码简析与测试 26:30
P75 第22.1讲 Linux IIC驱动实验-Linux IIC适配器驱动框架简析 38:15
P76 第22.2讲 Linux IIC驱动实验-Linux IIC设备驱动框架简析 26:29
P77 第22.3讲 Linux IIC驱动实验-Linux IIC驱动编写之驱动框架搭建(上) 39:19
P78 第22.4讲 Linux IIC驱动实验-Linux IIC驱动编写之驱动框架搭建(下) 26:43
P79 第22.5讲 Linux IIC驱动实验-Linux IIC驱动编写之AP3216C寄存器数据读写函数编写 37:14
P80 第22.6讲 Linux IIC驱动实验-Linux IIC驱动编写之AP3216C驱动完善与测试 34:25
P81 第23.1讲 Linux SPI驱动实验-SPI控制器驱动详解(上) 15:01
P82 第23.2讲 Linux SPI驱动实验-SPI控制器驱动详解(下) 27:38
P83 第23.3讲 Linux SPI驱动实验-SPI设备驱动框架详解与设备树修改 36:57
P84 第23.4讲 Linux SPI驱动实验-SPI驱动编写之ICM20608驱动框架搭建 28:18
P85 第23.5讲 Linux SPI驱动实验-SPI驱动编写之ICM20608寄存器数据读写函数编写 41:35
P86 第23.6讲 Linux SPI驱动实验-SPI驱动编写之ICM20608驱动完善与测试APP编写 17:57
P87 第23.7讲 Linux SPI驱动实验-SPI驱动片选引脚讲解错误声明(修改讲解错误的地方) 21:46
P88 第24.1讲 Linux 串口实验-串口驱动框架详解与驱动分析 33:34
P89 第24.2讲 Linux 串口实验-使能UART3 12:10
P90 第24.3讲 Linux 串口实验-minicom移植 32:23
P91 第24.4讲 Linux 串口实验-使用minicom测试串口 15:51
P92 第25.1讲 Linux 多点电容触摸屏实验-Linux多点电容触摸TypeA协议 19:22
P93 第25.2讲 Linux 多点电容触摸屏实验-Linux多点电容触摸TypeB协议 24:35
P94 第25.3讲 Linux 多点电容触摸屏实验-驱动编写之FT5426驱动框架搭建 32:34
P95 第25.4讲 Linux 多点电容触摸屏实验-驱动编写之FT5426中断以及芯片初始化 24:27
P96 第25.5讲 Linux 多点电容触摸屏实验-驱动编写之FT5426驱动完善与触摸测试 44:24
P97 第25.6讲 Linux 多点电容触摸屏实验-tslib移植与测试 19:22
P98 第25.7讲 Linux 多点电容触摸屏实验-触摸驱动文件添加到Linux内核中 13:08
P99 第26.1讲 Linux音频驱动实验-音频基础知识 35:04
P100 第26.2讲 Linux音频驱动实验-IIS协议以及原理图分析 25:14
P101 第26.3讲 Linux音频驱动实验-ALSA和ASOC驱动框架简析 35:28
P102 第26.4讲 Linux音频驱动实验-音频驱动使能 07:10
P103 第26.5讲 Linux音频驱动实验-alsa-lib与alsa-utils移植 20:40
P104 第26.6讲 Linux音频驱动实验-播放与录音测试 38:04
P105 第26.7讲 Linux音频驱动实验-开机自动配置声卡与mplayer移植 24:08
P106 第26.8讲 Linux音频驱动实验-alsamixer介绍 13:35
P107 第27.1讲 Linux CAN驱动实验-CAN简介 24:07
P108 第27.2讲 Linux CAN驱动实验-CAN驱动使能 18:45
P109 第27.3讲 Linux CAN驱动实验-can-utils移植 15:17
P110 第27.4讲 Linux CAN驱动实验-CAN数据收发测试 11:16
P111 第28.1讲 Linux USB驱动实验-USB基础知识 32:16
P112 第28.2讲 Linux USB驱动实验-6UL USB控制器简析与硬件原理分析 29:06
P113 第28.3讲 Linux USB驱动实验-USB HOST测试实验 30:44
P114 第28.4讲 Linux USB驱动实验-USB OTG测试实验 30:31
P115 第29.1讲 Linux块设备驱动实验-块设备驱动框架分析1 24:26
P116 第29.2讲 Linux块设备驱动实验-块设备驱动框架分析2 23:11
P117 第29.3讲 Linux块设备驱动实验-使用请求队列驱动编写之驱动框架搭建 35:37
P118 第29.4讲 Linux块设备驱动实验-使用请求队列驱动编写之驱动完善与测试 33:34
P119 第29.5讲 Linux块设备驱动实验-使用制造请求函数驱动编写与测试 25:02
P120 第30.1讲 Linux网络驱动实验-嵌入式网络硬件方案介绍 17:43
P121 第30.2讲 Linux网络驱动实验-MII&RMII接口详解 14:21
P122 第30.3讲 Linux网络驱动实验-PHY芯片详解 27:31
P123 第30.4讲 Linux网络驱动实验-Linux驱动框架详解之net_device 14:22
P124 第30.5讲 Linux网络驱动实验-Linux驱动框架详解之net_device_ops&sk_buff&NAPI2 17:14
P125 第30.6讲 Linux网络驱动实验-I.MX6ULL网络驱动之设备树编写 17:45
P126 第30.7讲 Linux网络驱动实验-I.MX6ULL网络驱动之fec_probe函数简析 28:04
P127 第30.8讲 Linux网络驱动实验-I.MX6ULL网络驱动之通用PHY以及LAN8720驱动详解 29:11
P128 第30.9讲 Linux网络驱动实验-I.MX6ULL网络测试 19:26
P129 第31.1讲 Linux WIFI驱动实验-WIFI驱动移植编译 26:07
P130 第31.2讲 Linux WIFI驱动实验-WIFI测试工具移植 24:00
P131 第31.3讲 Linux WIFI驱动实验-WIFI联网测试 11:50
P132 第32.1讲 Linux 4G驱动实验-4G模块驱动修改 18:15
P133 第32.2讲 Linux 4G驱动实验-4G联网测试 28:06
P134 第33讲 Linux RGB转HDMI驱动实验 38:13
P135 第34.1讲 Linux PWM驱动实验-PWM驱动源码详解 22:08
P136 第34.2讲 Linux PWM驱动实验-PWM驱动测试 16:03
P137 第35.1讲 Linux Regmap API实验-Regmap驱动框架详解 28:15
P138 第35.2讲 Linux Regmap API实验-驱动编写测试 22:33
P139 第36.1讲 Linux IIO驱动实验-为什么要用IIO框架 31:00
P140 第36.2讲 Linux IIO驱动实验-IIO驱动框架详解 41:50
P141 第36.3讲 Linux IIO驱动实验-IIO驱动程序编写之框架搭建 25:40
P142 第36.4讲 Linux IIO驱动实验-IIO驱动程序编写之通道配置 22:59
P143 第36.5讲 Linux IIO驱动实验-IIO驱动程序编写之iio_info编写 31:10
P144 第36.6讲 Linux IIO驱动实验-IIO驱动程序编写之传感器数据读写 35:00
P145 第36.7讲 Linux IIO驱动实验-IIO驱动程序编写之应用程序编写 20:17
P146 第37讲 Linux ADC驱动实验 23:09
#coding=utf-8

import os
import re
import sys
import time

if len(sys.argv) < 2:
    print("Please input file!")
    #time.sleep(3)
    #sys.exit()

#FILE=sys.argv[1]
FILE="test.txt"

def list_merge():
    with open(FILE, 'rb') as fp_read:
        cnt = 0;
        while 1:
            buf = fp_read.readline()
            if len(buf) > 0:
                print(buf.decode("utf-8").strip("\r\n")+'|', end="")
            else:
                break

            if (cnt + 1) % 3 == 0:
                print()
            cnt = cnt + 1

pattern_time = '(\d+:\d+)'
def time_calc():
    with open(FILE, 'rb') as fp_read:
        cnt = 0
        days= 0
        hour= 0
        min = 0
        sec = 0
        while 1:
            buf = fp_read.readline().decode("utf-8")
            if len(buf) > 0:
                if len(buf.strip("\r\n")) == 0:
                    min = min + int(sec / 60)
                    sec = sec % 60

                    hour=hour + int(min / 60)
                    min = min % 60
                    
                    days=days + int(hour/ 24)
                    hour=hour % 24
                    
                    print(str(cnt), str(days), str(hour), str(min), str(sec))

                    cnt = 0
                    days= 0
                    hour= 0
                    min = 0
                    sec = 0
                else:
                    searchObj = re.search(pattern_time,buf,re.I)
                    if searchObj:
                        tmp_min = buf[searchObj.span()[0]:searchObj.span()[0]+2]
                        min = min + int(tmp_min)
                        
                        tmp_sec = buf[searchObj.span()[1]-2:searchObj.span()[1]]
                        sec = sec + int(tmp_sec)

                        cnt = cnt + 1
            else:
                min = min + int(sec / 60)
                sec = sec % 60

                hour=hour + int(min / 60)
                min = min % 60
                
                days=days + int(hour/ 24)
                hour=hour % 24
                
                print(str(cnt), str(days), str(hour), str(min), str(sec))

                #days= 0
                #hour= 0
                #min = 0
                #sec = 0

                break

if __name__ == "__main__":
    #list_merge()
    time_calc()
    time.sleep(3)
    sys.exit()

你可能感兴趣的:(Linux视频教程自学,linux,ubuntu,arm)