这门课解决什么实际问题

嵌入式开发岗位的核心门槛不在于会写代码,而在于理解软硬件是如何协作的。市面上很多入门资料只讲语法,导致学员面对一块板子时依然无从下手。这套课程主要解决“如何从裸机起步,一步步构建可运行的系统”这一过程。它将重点放在底层驱动调试、外设控制以及系统移植上,填补了理论学习与工程落地之间的鸿沟。

课程涵盖了从基础外设驱动到操作系统移植的完整链路。这意味着你不仅能学会怎么写程序,更能理解程序在硬件上是如何跑起来的。对于想要进入物联网、工业自动化或智能硬件领域的从业者来说,这种全链路的视野是面试和实际工作中最看重的能力。

适合什么基础,建议先看哪几块

本课程适合具备 C 语言基础,且对计算机组成原理有初步认知的读者。如果你连指针和结构体还比较生疏,建议先补齐基础再入手,否则后续的中断处理和内存管理会让你感到吃力。适合的人群主要是电子类专业的在校生,或者是从事上位机开发、转行做嵌入式方向的程序员。

建议的学习顺序不要一上来就啃复杂的系统移植。先从基础的外设驱动入手,重点理解 GPIO、定时器、串口通信这些最常用的模块。这部分内容相对独立,容易产生正反馈。接着再进入中断系统和 DMA 的学习,这是理解实时性的关键。最后再挑战操作系统移植和驱动开发,这时候你已经有了足够的肌肉记忆来理解内核机制。

学完能独立做什么,资料如何配合练习

完成这套课程的学习并亲手跟随练习后,你应该能够独立完成基于常见嵌入式芯片的最小系统程序开发。具体包括:熟练配置和调试常用外设,能够阅读芯片数据手册并根据需求编写驱动,以及理解 Linux 或 RT-Thread 等主流嵌入式操作系统的启动流程和框架。

资料包中的课件和源码是核心辅助。课件部分用于梳理知识脉络,帮助你建立完整的概念图景,避免陷入细节而不知整体。源码部分则不能只看,必须动手敲一遍。建议在学习每一个章节时,对照源码进行复现,并在复现过程中加入自己的注释和理解。遇到报错时,尝试利用源码对照排查,这个过程就是真正的实战训练。只有通过不断的调试和纠错,这些知识才会真正转化为你的职业技能。

45 最新全套上官嵌入式,良许嵌入式

本课程隶属 会员库 · 其他机构课程,包含完整课程目录与配套资料,购买后联系客服获取下载方式;会员可直接免费下载。

课程目录

1.C语言/
01. C语言零基础入门/
code/
(C语言代码编辑软件)notepadplusplus_v.8.1.2.exe
(C语言笔记软件)Xmind8.7z
(gcc工具包)x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
C语言课程思维导图笔记.xmind
[100]-8.4 结构体和数组的结合.mp4
[101]-8.5. 结构体数组应用之选票系统.mp4
[102]-8.6 结构体指针变量引入.mp4
[103]-8.7 通过结构体指针来访问结构体内容.mp4
[104]-8.8 结构体指针应用01.mp4
[105]-8.9 结构体指针应用02之改写选票系统.mp4
[106]-8.10 结构体指针数组函数综合应用改写选票系统.mp4
[107]-8.11 结构体二级指针.mp4
[108]-8.12 联合体共用体概念引入.mp4
[109]-8.13 共用体注意数据覆盖问题.mp4
[10]-2.5 变量名标识符.mp4
[110]-8.14 共用体开发案例.mp4
[111]-8.15 枚举类型介绍.mp4
[112]-8.16 typedef关键字介绍.mp4
[113]-8.17 typedef和结构体案例.mp4
[114]-8.1. Linux的简介.mp4
[115]-8.2. 全网最快搭建Linux开发环境(ubuntu).mp4
[116]-8.3. 如何在Linux下编写代码和执行程序.mp4
[117]-8.4. Linux常用初级指令介绍和使用.mp4
[118]-8.5. Linux虚拟机和windows间的文件传输方式.mp4
[119]-8.6. VMware虚拟接网络连接的三种方式.mp4
[11]-2.6 计算机的数据类型.mp4
[120]-9.1 链表是个好东西.mp4
[121]-9.2 链表和数组区别及实现.mp4
[122]-9.3 链表静态添加和动态遍历.mp4
[123]-9.4 链表遍历中的point=point-next.mp4
[124]-9.5 统计链表节点个数及链表查找.mp4
[125]-9.6 链表从指定节点后方插入新节点.mp4
[126]-9.7 链表从指定节点前方插入新节点.mp4
[127]-9.8 链表删除指定节点.mp4
[128]-9.9 链表动态创建之头插法.mp4
[129]-9.10 头插法优化补充.mp4
[12]-2.7 printf打印的用法.mp4
[130]-9.11 尾插法创建链表.mp4
[131]-1.项目演示.mp4
[132]-2.基础要求.mp4
[133]-3.为什么需要ncurse.mp4
[134]-4.curse输入输出.mp4
[135]-5.ncurse上下左右键获取.mp4
[136]-6.地图规划.mp4
[137]-7.地图实现一.mp4
[138]-8.贪吃蛇地图实现结束.mp4
[139]-9.贪吃蛇地图优化及算法说明.mp4
[13]-2.8 printf小练习.mp4
[140]-10.显示贪吃蛇身子的一个节点.mp4
[141]-11.显示贪吃蛇完整身子.mp4
[142]-12.显示贪吃蛇完整身子改进.mp4
[143]-13.贪吃蛇向右移动.mp4
[144]-14.贪吃蛇不想活了撞墙找死.mp4
[145]-15.贪吃蛇脱缰向右自行游走.mp4
[146]-16.贪吃蛇方向移动和刷新界面一起实现面临的问题.mp4
[147]-17.Linux线程概念引入及编程实现.mp4
[148]-18.使用线程解决16节中提到问题.mp4
[149]-19.实现贪吃蛇四方向的疯烧走位.mp4
[14]-2.9 scanf输入的用法.mp4
[150]-20.绝对值方式解决不合理走位一.mp4
[151]-21.绝对值方式解决不合理走位二.mp4
[152]-22.贪吃蛇吃饭咯.mp4
[153]-23.贪吃蛇食物位置随机.mp4
[154]-24.贪吃蛇撞墙找死和想不开咬死自己来结束游戏的代码优化.mp4
[15]-2.10 scanf混合输入的那些坑.mp4
[16]-2.11 其它输入输出的方式.mp4
[17]-2.12 输入输出练习题.mp4
[18]-2.13 布置简陋土逼密码学和计算器小作业.mp4
[19]-3.1 流程控制之if语句.mp4
[1]-1.1 揭秘之什么是程序.mp4
[20]-3.2 if控制经典案例代数法交换值.mp4
[21]-3.3 逻辑判断与或非.mp4
[22]-3.4 ifelse编程练习.mp4
[23]-3.5 选择判断的机器人案例.mp4
[24]-3.6 列表选择switchcase.mp4
[25]-3.7 switch练习学生成绩等级划分.mp4
[26]-3.8 选择练习题之根据路程算折扣.mp4
[27]-3.9 作业布置.mp4
[28]-3.10 while循环爱你一万遍.mp4
[29]-3.11 while循环计算1到100所有数据之和.mp4
[2]-1.2.认知延伸之程序和数据算法的关系.mp4
[30]-3.12 doWhile的小微妙自行体会.mp4
[31]-3.13 while的表达式及for循环等价引入.mp4
[32]-3.14 关于for循环的见怪不怪.mp4
[33]-3.15 循环干涉之break和continue编码分析.mp4
[34]-3.16 循环的嵌套输出某个规律的数列.mp4
[35]-3.17 作业布置.mp4
[36]-4.1 数组的引入及基本用法.mp4
[37]-4.2 数组计算大小和各种初始化.mp4
[38]-4.3 数组应用编程练习.mp4
[39]-4.4 数组编程练习之冒泡排序法.mp4
[3]-1.3 生产一个程序的过程是什么样.mp4
[40]-4.5 数组编程练习之简单选择排序法.mp4
[41]-4.6 二维数组.mp4
[42]-4.7 二维数组见怪不怪的初始化.mp4
[43]-4.8 二维数组应用之找最大值及对应下标.mp4
[44]-5.1 为什么需要用函数.mp4
[45]-5.2 函数三要素.mp4
[46]-5.3 函数的封装和调用.mp4
[47]-5.4 函数的封装和调用2.mp4
[48]-5.5 形参实参区别.mp4
[49]-5.6 编程案例函数封装获取两个数的大数.mp4
[4]-1.4 偷偷学的计算机语言是什么.mp4
[50]-5.7 关于函数的一些小总结.mp4
[51]-5.8 函数嵌套及编码实战.mp4
[52]-5.9 递归函数编码实战.mp4
[53]-5.10 求阶乘案例.mp4
[54]-5.11 数组和函数开发初见.mp4
[55]-5.12 数组传参中关于形式参数的秘密.mp4
[56]-5.13 数组实参很有意思的问题启发.mp4
[57]-5.14 数组实战之计算不同班级学生的平均分.mp4
[58]-5.15 二维数组和函数的概念和实战.mp4
[59]-5.16 外部变量和全局变量.mp4
[5]-1.5 线上课程学习方法适用于所有编程类课程.mp4
[60]-5.17 全局变量实战开发.mp4
[61]-5.18 函数完结和作业布置.mp4
[62]-6.1. 指针的引入.mp4
[63]-6.2 指针变量的引入.mp4
[64]-6.3 指针变量为什么要求类型.mp4
[65]-6.4 为什么要用指针之场景一.mp4
[66]-6.5 为什么要用指针之场景二.mp4
[67]-6.6 指针回顾和作业布置.mp4
[68]-6.7 定义一个指针变量指向数组.mp4
[69]-6.8 指针偏移遍历数组.mp4
[6]-2.1 C语言常用开发环境有哪些.mp4
[70]-6.9 指针偏移的补充,记得回到数组首地址.mp4
[71]-6.10 指针和数组名的见怪不怪,重要面试.mp4
[72]-6.11 练习函数指针数组结合.mp4
[73]-6.12 练习之数组翻转.mp4
[74]-6.13 二维数组的地址认知,很猛.mp4
[75]-6.14 认知继续.mp4
[76]-6.15 通过编程验证认知.mp4
[77]-6.16 二维数组的地址写法应用,见怪不怪了.mp4
[78]-6.17 数组指针.mp4
[79]-6.18 数组指针和二维数组的配合应用.mp4
[7]-2.2 C开发环境安装.mp4
[80]-6.19 函数指针认知.mp4
[81]-6.20 函数指针编程实战-回调函数.mp4
[82]-6.21. 指针数组地概念和实战练习.mp4
[83]-6.22指针函数的概念和实战.mp4
[84]-6.23 二级指针认知.mp4
[85]-6.24 为什么要用二级指针的实战.mp4
[86]-6.25 二级指针和二维数组的避坑指南.mp4
[87]-6.26 指针完结.mp4
[88]-7.1 字符串引入和注意事项.mp4
[89]-7.2 字符串的内存存放方式及结束标志.mp4
[8]-2.3 C程序的基础框架.mp4
[90]-7.3 sizeof和strlen区别很重要.mp4
[91]-7.4 malloc动态开辟内存空间.mp4
[92]-7.5 字符常用操作函数第一部分.mp4
[93]-7.6 自己实现字符串拷贝函数.mp4
[94]-7.7 C语言断言函数assert.mp4
[95]-7.8 字符串拼接strcat使用及实现.mp4
[96]-7.9 字符串比较strcmp使用及实现.mp4
[97]-8.1. 结构体引入.mp4
[98]-8.2. 定义结构体和使用变量.mp4
[99]-8.3小应用.mp4
[9]-2.4 基础认知什么是变量.mp4
10.智能家居项目/
787_1.智能家居项目运行效果展示.mp4
788_2.智能家居功能细节拆分.mp4
789_3.智能家居模型搭建.mp4
789_4. 设计模式的概念引入.mp4
790_5.C语言面向对象引入类和对象的概念.mp4
791_6.C结构体新玩法.mp4
791_7.工厂模式概念引入.mp4
792_8.工厂模式的实现.mp4
793_9.工厂模式使用及功能验证.mp4
794_10.智能家居项目框架设计.mp4
795_11.智能家居架构代码文件工程建立.mp4
796_12.主流程设计和浴室灯框架编写.mp4
797_13.浴室灯代码实现和测试.mp4
797_14.浴室灯改错全过程及功能验证.mp4
798_15.二楼灯功能实现.mp4
799_16.sourceInsight乱码问题注意.mp4
800_17.继电器组四盏灯全部实现及功能验证.mp4
801_18.添加火灾检测模块.mp4
802_19.添加声音识别模块的串口读取功能.mp4
803_20.串口代码调错全过程(坎坷确实大家常遇见的难题).mp4
804_21.添加Socket服务器功能.mp4
805_22.主程序代码初步编写,实现语音和网络线程.mp4
806_23.主程序编译运行,测试网络功能.mp4
807_24.测试串口功能.mp4
808_25.摄像头模块安装.mp4
809_26.树莓派mjpg-streamer实现监控功能调试.mp4
809_27.人脸识别方案.mp4
810_28.OSI网络模型记忆点.mp4
811_29.三次握手四次挥手面试理解和记忆.mp4
812_30.Socket TCP HTTP之间的区别.mp4
812_31.HTTP协议相关名词概念扫盲.mp4
812_32.HTTPS协议及密码学基础名字扫盲.mp4
812_33.初见Libcurl库.mp4
813_34.libcurl等第三方库的通用编译方法.mp4
814_35.调用libcurl编程访问百度主页.mp4
815_36.libcurl函数库常用字段解读并设置数据读取回调函数.mp4
815_37.人工智能OCR识别平台翔云等介绍.mp4
815_38.人脸识别接口购买.mp4
815_39.编程实现人脸识别第一次.mp4
816_40.编译openssl支持libcurl的https访问.mp4
817_41.编程实现人脸识别第二次加入图片base64编码.mp4
818_42.人脸识别成功并封装Base64编码函数.mp4
819_6分钟识别车牌.mp4
11.安卓APP之Java基础/
820_1.嵌入式为什么学习java.mp4
821_2.Java安卓开发环境搭建并运行HelloWorld.mp4
822_3.JAVASE EE ME的概念和区别扯淡.mp4
823_4.JRE JDK扯淡继续.mp4
824_5.通过java书本来了解java学习的大致内容.mp4
825_6.Java的基本数据类型和C基本一样.mp4
826_7.选择控制流程和C语言一毛一样.mp4
827_8.循环控制和C语言一毛一样.mp4
828_9.JAVA数组和C基本一样,稍微区别.mp4
829_10.Java方法就是C的函数,稍微区别.mp4
830_11.Java找最高分最低分和计算器案例实现.mp4
831_12.数组规范一个小补充.mp4
832_13.Java的输入类Scanner.mp4
833_14.java封装之封装类及类的使用.mp4
834_15.java封装之访问修饰符.mp4
835_16.java封装之访问修饰符封装属性及方法.mp4
836_17.java封装之构造方法.mp4
837_18.java封装之this关键字.mp4
838_19.java封装之static关键字.mp4
839_20.java封装之包.mp4
840_21.java继承的概念及用法.mp4
841_22.java继承之super关键字.mp4
842_23.java继承之私有权限.mp4
843_24.java继承之方法重写.mp4
844_25.java继承之object类.mp4
845_26.java继承之综合小练习.mp4
846_27.java继承之简单工厂模式.mp4
847_28.java抽象方法和抽象类.mp4
848_29.java抽象类应用模板方法模式.mp4
850_31.java内部类之成员内部类.mp4
851_32.java内部类之匿名内部类.mp4
852_33.多态的概念和案例实现.mp4
853_34.多态中上下转型要注意的点.mp4
854_35.多态应用案例之打印机.mp4
855_36.异常的概念及分类.mp4
856_37.异常的处理.mp4
857_38.异常抛出及自定义异常.mp4
858_39.Java高级之泛型概念引入.mp4
859_40.泛型可以设置多个类型参数.mp4
860_41.泛型继承和泛型接口实现.mp4
861_42.限制泛型可用类型.mp4
862_43.泛型通配的方式.mp4
863_44.泛型方法.mp4
864_45.泛型方法限制泛型可用类型.mp4
12.安卓app入门及应用/
06. Android代码/
.metadata/
Activity生命周期/
JavaSocket客户端/
JavaSocket服务端/
android/
docs/
安卓Socket客户端/
安卓Socket客户端接收并刷新控件/
安卓基础控件/
安卓程序之布局和页面的关系/
按键响应第一种方式/
按键响应第三种方式-匿名内部类/
按键响应第二种方式-自定义类/
按键响应第四种方式-Activity/
按键响应第四种方式-自定义类/
显示一个美女/
显示两个美女/
智能家居Final/
智能家居界面/
百度/
相对布局控件属性测试/
第一个安卓程序/
线性布局/
线程刷新控件遇到的问题/
页面自动跳转/
页面跳转/
页面跳转传参/
页面跳转传参方式一/
页面跳转传参方式二/
AndroidLessons源码.rar
eclipse.lnk
安卓开发笔记_截至到安卓的第37节.docx
865_1.安卓工程构建及第一个安卓程序运行.mp4
866_2.安卓工程结构介绍.mp4
867_3.安卓app启动过程简述.mp4
868_4.安卓布局分类及布局和页面的关系.mp4
869_5.安卓app开发显示一个美女.mp4
870_6.安卓app开发显示两个美女.mp4
871_7.相对布局RelativeLayout常用属性.mp4
872_8.基础控件按键文本框输入框制作登录界面.mp4
873_9.Margin和Padding.mp4
874_10.相对布局综合小演练-智能家居刷卡界面.mp4
875_11.按键快速美化的小技巧.mp4
876_12.线性布局介绍.mp4
877_13.线性布局weight属性.mp4
878_14.线性布局微调参数gravity.mp4
879_15.线性布局divider.mp4
880_16.按键响应第一种方式onClick属性.mp4
881_17.按键响应第一中方式,xml中onclick属性.mp4
882_18.按键响应第二种方式,接口类.mp4
883_19.按键响应的第三种方式,匿名内部类.mp4
884_20.按键响应第四种方式,Activity.mp4
885_21.如何添加一个页面(activity).mp4
886_22.如何跳转页面.mp4
887_23.页面跳转传参方式一(剩余代码自己补充).mp4
888_24.页面跳转传参方式二.mp4
889_25.安卓线程实现页面的自动跳转.mp4
890_26.Activity(页面)的生命周期.mp4
891_27.Java高级补充之Socket服务端.mp4
892_28.Java高级之Socket服务端支持多连接.mp4
893_29.Java高级之Socket客户端.mp4
894_30.Java高级之Socket客户端支持发送和接收.mp4
895_31.Android的Socket客户端开发.mp4
896_32.Android的Socket客户端优化.mp4
897_33.Android非UI线程修改控件程序崩溃的问题.mp4
898_34.倒计时软件.mp4
899_35.Android网络接收数据并刷新界面.mp4
900_36.WebView控件之自制浏览器APP.mp4
901_37.第三阶段智能家居APP页面开发.mp4
13.WemosD1垃圾桶/
902_1.基于Wemos的项目演示和项目意义.mp4
903_3.Wemos玩转蜂鸣器,叫你一声敢响吗?.mp4
904_4.Wemos通过串口告诉电脑陈立臣很帅.mp4
905_5.编程让Wemos见人说人话,见鬼说鬼话.mp4
906_6.通过串口控制蜂鸣器的响与不响.mp4
907_7.垃圾桶硬件整体连接过程.mp4
908_8.详细接线图,接错了是小狗啊.mp4
909_9.Wemos控制SG90电机调试开关盖效果.mp4
910_10.Wemos串口控制垃圾桶开关盖.mp4
911_11.超声波的测距原理.mp4
912_12.根据原理实现超声波测距的代码.mp4
913_14.超声波测距代码中为什么要除以58.mp4
914_15.项目综合及效果验证.mp4
915_16.项目总结.mp4
14.WemosD1小车/
916_1.wifi避障小车效果一睹为快.mp4
917_3.Wemos玩转蜂鸣器,叫你一声敢响吗?.mp4
918_4.Wemos通过串口告诉电脑陈立臣很帅.mp4
919_5.编程让Wemos见人说人话,见鬼说鬼话.mp4
920_6.通过串口控制蜂鸣器的响与不响.mp4
921_7.Wemos接入wifi靓仔迅捷开发啊.mp4
922_8.牛逼吊炸天的CS模式也就这样.mp4
923_9.编程Wemos服务器,通过手机tcp工具远程网络控制蜂.mp4
924_10.超声波的测距原理.mp4
925_11.根据原理实现超声波测距的代码.mp4
926_12.超声波测距代码验证,小于10厘米蜂鸣器响起.mp4
927_13.超声波测距代码中为什么要除以58.mp4
928_14.避障小车改造过程.mp4
929_15.小车接线详解.mp4
930_16.实现小车前后左右的电机驱动功能.mp4
931_17.项目综合一串口控制小车前后左右.mp4
932_18.项目综合二wifi控制小车前后左右.mp4
933_19.吊炸酷炫安卓环境搭建和基本代码修改.mp4
934_20.项目综合三手机APP控制小车完结.mp4
935_21.项目综合四app控制小车加入避障功能.mp4
936_22.嵌入式工程师从智能小车开始起飞.mp4
937_23小车使用电池供电,实现脱缰的野狗.mp4
15.RGBWemosD1/
0. RGB体验课/
代码/
AI智能离线语音.rar
AiThinker Serial Tool V1.2.3.exe
CH340G_drvier.ZIP
arduino-1.6.5-ESP8266-2.0.rar
typora-setup-x64.exe
语音红外控制系统--嵌入式体验课.pdf
672_选修-RGBWemosD1-01. 项目运行效果_1080p.mp4
673_选修-RGBWemosD1-02. 项目配套赠送硬件一览学浪版_1080p.mp4
674_选修-RGBWemosD1-2. 配套赠送硬件说明_1080p.mp4
675_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制_1080p.mp4
676_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制学浪版_1080p.mp4
677_选修-RGBWemosD1-04. 开发环境安装及注意三点事项_1080p.mp4
678_选修-RGBWemosD1-05. 蜂鸣器控制原理_1080p.mp4
679_选修-RGBWemosD1-06. 编程实现蜂鸣器滴滴响_1080p.mp4
680_选修-RGBWemosD1-07. 串口简介_1080p.mp4
681_选修-RGBWemosD1-08. 编程实现电脑控制蜂鸣器_1080p.mp4
682_选修-RGBWemosD1-09. 语音模块配置固件_1080p.mp4
683_选修-RGBWemosD1-10. 语音模块固件烧写并控制蜂鸣器_1080p.mp4
684_选修-RGBWemosD1-11. PERFECT PG社区的RGB手写板介绍_1080p.mp4
685_选修-RGBWemosD1-12.电脑控制RGB手写板,完成红外码破解_1080p.mp4
686_选修-RGBWemosD1-13. 编程轻微地实现以下语音控制RGB手写板_1080p.mp4
687_选修-RGBWemosD1-14. 针对上节课的复盘和接线变化梳理补充_1080p.mp4
688_选修-RGBWemosD1-15. WemosD1代码完整遥控码添加_1080p.mp4
689_选修-RGBWemosD1-16. 优化后的代码_1080p.mp4
690_选修-RGBWemosD1-17.完善语音识别词条,制作最终固件_1080p.mp4
691_选修-RGBWemosD1-02. 项目配套赠送硬件一览学浪版_1080p.mp4
692_选修-RGBWemosD1-2. 配套赠送硬件说明_1080p.mp4
693_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制_1080p.mp4
694_选修-RGBWemosD1-03. 单片机就像听话的朋友,接受人类的控制学浪版_1080p.mp4
695_选修-RGBWemosD1-04. 开发环境安装及注意三点事项_1080p.mp4
696_选修-RGBWemosD1-05. 蜂鸣器控制原理_1080p.mp4
697_选修-RGBWemosD1-06. 编程实现蜂鸣器滴滴响_1080p.mp4
698_选修-RGBWemosD1-07. 串口简介_1080p.mp4
699_选修-RGBWemosD1-08. 编程实现电脑控制蜂鸣器_1080p.mp4
700_选修-RGBWemosD1-09. 语音模块配置固件_1080p.mp4
701_选修-RGBWemosD1-10. 语音模块固件烧写并控制蜂鸣器_1080p.mp4
702_选修-RGBWemosD1-11. PERFECT PG社区的RGB手写板介绍_1080p.mp4
703_选修-RGBWemosD1-12.电脑控制RGB手写板,完成红外码破解_1080p.mp4
… 共 1453 条